Ich kann alle Ereignisprotokolle erhalten. Mein Code ist:
var contractInstance = contract.at("0x123456...789");
var transferEvents = contractInstance.allEvents({fromBlock:0, toBlock:'latest'});
und die Ausgabe ist:
{ address: '0xafe6851c1d9ee2e759acdee8cfc827e22a9ec5d7',
blockHash: '0xe5cdc4ae1e70ad4b4610a1f5a45fb3ff56bc3530f159ab0613ffeb33a7bf9c0a',
blockNumber: 1924935,
logIndex: 3,
transactionHash: '0x2e18ac5cb925b95ec609970e66d566623f446bc67bd0b72aac0a2ca6e96ef128',
transactionIndex: 4,
event: 'Transfer',
args:
{ from: '0xd94c9ff168dc6aebf9b6cc86deff54f3fb0afc33',
to: '0x414755edffa43707f7d51600edf9ecbe57152a8a',
value: [Object] } },
Aber ich bekomme Übertragungsereignisdaten
var contractInstance = contract.at("0x123456...789");
var transferEvents = contractInstance.Transfer({fromBlock:0, toBlock:'latest'});
die Ausgabe ist leer.
Gibt es ein Problem in meinem Code?
Versuchen
var transferEvents = contractInstance.Transfer({}, {fromBlock:0, toBlock:'latest'});
Quelle: Wie rufe ich die Voted-Ereignisse von The DAO ab
Antwort auf die Frage im Kommentar
Q Die Rückgabe scheint eine lange Zeichenfolge zu sein, die alle Protokolle enthält. Wie kann ich sie einzeln aufteilen?
(vom selben Link oben) verwende ich zunächst JSON.stringify(...)
, um die Daten anzuzeigen:
> var theDAOVotedEvent = theDAO.Voted({}, {fromBlock: 1614771, toBlock: 'latest'});
undefined
> theDAOVotedEvent.watch(function(error, result){
console.log(JSON.stringify(result));
});
...
{"address":"0xbb9bc244d798123fde783fcc1c72d3bb8c189413","args":{"position":true,"proposalID":"15","voter":"0xebbf5d7d649aedde2c27a8b850a2a3862595eb53"},"blockHash":"0x3d0e8b47fbb03727c72585fbe2fd5f25c69c03f2b832753567c2309f1ecb3b2a","blockNumber":1614808,"event":"Voted","logIndex":0,"transactionHash":"0x0060654808a2dee9710fa01e26adb46e77df03c17e453e8fddc8749269ffad92","transactionIndex":1}
{"address":"0xbb9bc244d798123fde783fcc1c72d3bb8c189413","args":{"position":false,"proposalID":"11","voter":"0xebbf5d7d649aedde2c27a8b850a2a3862595eb53"},"blockHash":"0x607d940ebbbb17e6d5c3c8a871cd4783b271ddf71f4aeb83dbcdcaf8ce2154d9","blockNumber":1614812,"event":"Voted","logIndex":1,"transactionHash":"0x6b5cab6f7987d7283fdde051c76ace98c9f080bda6dbdf720689fc0c3958005b","transactionIndex":6}
{"address":"0xbb9bc244d798123fde783fcc1c72d3bb8c189413","args":{"position":false,"proposalID":"11","voter":"0xebbf5d7d649aedde2c27a8b850a2a3862595eb53"},"blockHash":"0x69be968ce90c7e910c149cc80ab1e5f2ae6bdb45f142ee0e6fa181be9d1e106e","blockNumber":1614812,"event":"Voted","logIndex":0,"transactionHash":"0x6b5cab6f7987d7283fdde051c76ace98c9f080bda6dbdf720689fc0c3958005b","transactionIndex":2}
...
Sobald Sie die Daten sehen, können Sie auf jedes Feld verweisen, zum Beispiel:
result.address
result.args
...
rong jialei
rong jialei
Datenschutz ist ein Menschenrecht.eth
rong jialei
Datenschutz ist ein Menschenrecht.eth
Alper
result.args.position
oderresult.args.proposalID
ist der richtige Weg, um auf Args-Werte zuzugreifen? @BokkyPooBahDatenschutz ist ein Menschenrecht.eth
result.args
Werte.