Creo un contrato erc20 en mi cadena de bloques privada. Luego transfiero algunas fichas de una cuenta a otra. Ahora puedo verificar el nuevo bloque y encontrar esa transacción como esta:
{
blockHash: "0x860ed4316ecd45b58e439f195a0312111c3e7ef73666d37f382ac2f64b2ce213",
blockNumber: 3519,
from: "0xecf6e8cbb8633a3c490d587fa357ad20e21d4b93",
gas: 90000,
gasPrice: 0,
hash: "0xa4aedd34557884e977f0981ab55035527fd990efbee9115d2b37df51ee79180e",
input: "0xa9059cbb00000000000000000000000089bb2b310f9379986972bc2940461540591a332d00000000000000000000000000000000000000000000043c33c1937564800000",
nonce: 13,
r: "0x4b4a8cfb24766e96abfafd2197773e8816683afd7191bb8720e3445ad02ab70c",
s: "0x69132b6f453aa23f2bd037d0a044b74d5dd1b4b0678af99e8581efc7f66cf8cd",
to: "0xae4193c5100e173c123619fc2b3845e1091e1aa8",
transactionIndex: 0,
v: "0xa96",
value: 0
}
pero esto no muestra ninguna información sobre los tokens que envié. Usando Transfer.watch
puedo obtener lo que quiero así:
{ address: '0xae4193c5100e173c123619fc2b3845e1091e1aa8',
blockNumber: 3519,
transactionHash: '0xa4aedd34557884e977f0981ab55035527fd990efbee9115d2b37df51ee79180e',
transactionIndex: 0,
blockHash: '0x860ed4316ecd45b58e439f195a0312111c3e7ef73666d37f382ac2f64b2ce213',
logIndex: 0,
removed: false,
event: 'Transfer',
args:
{ from: '0xecf6e8cbb8633a3c490d587fa357ad20e21d4b93',
to: '0x89bb2b310f9379986972bc2940461540591a332d',
value: { [String: '2e+22'] s: 1, e: 22, c: [Array] } } }
No puedo verificar todas las transacciones a través de Watch, y Watch no estará siempre en línea. Quiero verificar la transacción como etherscan.io:
¿Cual es la solución? ¡Gracias!
Resuelvo este problema leyendo esto
empecemos con el hash de la transacción. en geth, podemos usar getTransactionReceipt
para obtener información detallada:
> eth.getTransactionReceipt("0x506fea5ae6d5bf08df79b3f2371b553c974a61ba9949225dac9a45017fd0d86d")
{
blockHash: "0x2a5be303d5326d1004b9bcd840120648f898914f9b8e879b19d072bb19fd9434",
blockNumber: 3511,
contractAddress: null,
cumulativeGasUsed: 53419,
from: "0xecf6e8cbb8633a3c490d587fa357ad20e21d4b93",
gasUsed: 53419,
logs: [{
address: "0xae4193c5100e173c123619fc2b3845e1091e1aa8",
blockHash: "0x2a5be303d5326d1004b9bcd840120648f898914f9b8e879b19d072bb19fd9434",
blockNumber: 3511,
data: "0x00000000000000000000000000000000000000000000043c33c1937564800000",
logIndex: 0,
removed: false,
topics: ["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", "0x000000000000000000000000ecf6e8cbb8633a3c490d587fa357ad20e21d4b93", "0x00000000000000000000000089bb2b310f9379986972bc2940461540591a332d"],
transactionHash: "0x506fea5ae6d5bf08df79b3f2371b553c974a61ba9949225dac9a45017fd0d86d",
transactionIndex: 0
}],
logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000008000000000001000000001000000020000000200000000000000000000000000000000000000000000000000000000410000000000000000000100000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000",
status: "0x1",
to: "0xae4193c5100e173c123619fc2b3845e1091e1aa8",
transactionHash: "0x506fea5ae6d5bf08df79b3f2371b553c974a61ba9949225dac9a45017fd0d86d",
transactionIndex: 0
}
logs.topics[ 0 ]
es el hash de la transacción del token; logs.topics[ 1 ]
es la from
dirección, y logs.topics[ 2 ]
es la to
dirección; y logs.data es la cantidad, puede copiar datos en la consola:
> 0x00000000000000000000000000000000000000000000043c33c1937564800000
2e+22
2e+22 es exactamente el valor que envié.
Iteración 122442
jonathan zhu