Wie kann man Token-Transfers wie etherscan.io abfragen?

Schau dir das an .

Wir können tx, from, to, value usw. sehen. Wie erreicht Etherscan dies? Ich brauche diese Art von Funktionalität dringend in meiner App. Wie kann ich Token-Transfers für einen ERC20-Vertrag auflisten?

Beachten Sie, schlagen Sie mir keine Etherscan-API usw. vor, ich muss dies mit web3js oder anderen Ethereum-Ansätzen tun.

Antworten (1)

Vertragsereignisse :

Die ERC20-Spezifikation definiert Ereignisse wie Transfer, die "protokolliert" werden, wenn ein Token von einer Adresse zu einer anderen übertragen wird; Diese Ereignisse enthalten ziemlich viele Informationen.

Mit der Web3 JS-API können Sie entweder vergangene Blöcke auf protokollierte Ereignisse durchsuchen oder auf Ereignisse lauschen, wenn neue Blöcke abgebaut werden.

Sehen Sie sich eine Reihe von Blöcken an


// watch for an event with {some: 'args'}
var myEvent = myContractInstance.MyEvent({some: 'args'}, {fromBlock: 0, toBlock: 'latest'});
myEvent.watch(function(error, result){
   ...
});

Achten Sie auf neue Ereignisse


var event = myContractInstance.MyEvent({valueA: 23} [, additionalFilterObject])

// watch for changes
event.watch(function(error, result){
  if (!error)
    console.log(result);
});

Die Details, die in den zurückgegebenen Ereignisobjekten zu finden sind


Object - An event object as follows:

**address**: String, 32 Bytes - address from which this log originated.
**args**: Object - The arguments coming from the event.
**blockHash**: String, 32 Bytes - hash of the block where this log was in. null when its pending.
**blockNumber**: Number - the block number where this log was in. null when its pending.
**logIndex**: Number - integer of the log index position in the block.
**event**: String - The event name.
**removed**: bool - indicate if the transaction this event was created from was removed from the blockchain (due to orphaned block) or never get to it (due to rejected transaction).
**transactionIndex**: Number - integer of the transactions index position log was created from.
**transactionHash**: String, 32 Bytes - hash of the transactions this log was created from.

Quelle

Danke, aber wenn ich alte Protokolle erhalte, was ich brauche, sehe ich, dass transactionHashes 0x0000000000000000000000000000000000000000000000000000000000000000für alle Protokolle gilt, ist das beabsichtigt? Alles, was ich will, ist, dass hash...