Wie checke ich alle Token-Transaktionen in einer Ether-Transaktion mit GETH aus?

Ich erstelle einen erc20-Vertrag auf meiner privaten Blockchain. Dann übertrage ich einige Token von einem Konto auf ein anderes. Jetzt kann ich den neuen Block überprüfen und diese Transaktion wie folgt finden:

{
  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
}

Dies zeigt jedoch keine Informationen zu den von mir gesendeten Token. Mit Transfer.watchkann bekommen, was ich will, wie folgt:

  { 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] } } }

Ich kann nicht alle Transaktionen über Watch überprüfen und Watch ist nicht immer online. Ich möchte die Transaktion wie etherscan.io überprüfen:Geben Sie hier die Bildbeschreibung ein

Was ist die Lösung? Danke schön!

Mit geth meinst du direkt die CLI? Oder etwas wie Web3js verwenden?
sowohl CLI als auch Web3js ^-^

Antworten (1)

Ich löse dieses Problem, indem ich dies lese

Beginnen wir mit dem Hash der Transaktion. In Geth können wir verwenden, getTransactionReceiptum detaillierte Informationen zu erhalten:

    > 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 ]ist der Hash der Token-Transaktion; logs.topics[ 1 ]ist die fromAdresse, und logs.topics[ 2 ]ist die toAdresse; und logs.data ist die Menge, Sie können Daten in die Konsole kopieren:

 > 0x00000000000000000000000000000000000000000000043c33c1937564800000
2e+22

2e+22 ist genau der Wert, den ich gesendet habe.