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.watch
kann 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:
Was ist die Lösung? Danke schön!
Ich löse dieses Problem, indem ich dies lese
Beginnen wir mit dem Hash der Transaktion. In Geth können wir verwenden, getTransactionReceipt
um 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 from
Adresse, und logs.topics[ 2 ]
ist die to
Adresse; 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.
Wiederholung 122442
Jonathan ZHU