¿Cómo realizo el pago de todas las transacciones de tokens en una transacción de ether utilizando GETH?

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.watchpuedo 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:ingrese la descripción de la imagen aquí

¿Cual es la solución? ¡Gracias!

Usando geth, ¿te refieres directamente a la CLI? ¿O usando algo como Web3js?
tanto CLI como Web3js ^-^

Respuestas (1)

Resuelvo este problema leyendo esto

empecemos con el hash de la transacción. en geth, podemos usar getTransactionReceiptpara 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 fromdirección, y logs.topics[ 2 ]es la todirección; y logs.data es la cantidad, puede copiar datos en la consola:

 > 0x00000000000000000000000000000000000000000000043c33c1937564800000
2e+22

2e+22 es exactamente el valor que envié.