Wie überprüft man Transaktionen einer Adresse, die Ether für einen Vertrag ausgegeben hat?

Ich bin mir nicht sicher, ob die Frage schon irgendwo gestellt wurde, ich habe versucht, sie zu finden, aber ich habe sie nicht gefunden.

Das habe ich bisher getan.

  1. Token-Vertrag erstellt und bereitgestellt
  2. CrowdSale-Vertrag erstellt und bereitgestellt

Wie liste ich nun die Transaktionen auf, die von einer Adresse (Person) an den Crowdsale-Vertrag gesendet werden, um den Token zu kaufen? Ich habe die Codes überprüft, um die Anzahl der von der Adresse gekauften Token zu erfahren, aber ich möchte auch die Anzahl der Ether zeigen, die er in verschiedenen Phasen des Crowdsale gesendet hat. Ich weiß, dass es einen API-Endpunkt gibt, um die Transaktionen einer Adresse herauszuziehen, aber hier möchte ich die Transaktion nur mit dem CrowdSale-Vertrag erledigen.

Ich hoffe, ich konnte die Notwendigkeit erklären. Jede Hilfe ist willkommen.

Antworten (1)

Persönlich ist mein Ansatz, Ereignisse innerhalb des Vertrags zu verwenden, was ziemlich einfach ist, Transaktionsdetails mit spezifischen Informationen aufzulisten, z

Im Vertrag definiere ich ein Ereignis wie dieses

event buy(address indexed customerAddress, uint priceValue, uint amount);

Dann in js-Datei wie folgt

var buyEevent= contractInstance.buy({customerAddress:customerAddress},{fromBlock: 0, toBlock: 'latest'});
            buyEvent.watch(function(error, response) {
                 if (!error) {
                      console.log("event: "+response.args.customerName);
                      console.log("event: "+response.args.priceValue);
                      console.log("event: "+response.args.amount);

                 } else {
                      console.error(error);
                 }
            });

Hoffe, es kann hilfreich für Sie sein.

Danke. Vermutung purchaseEvent.watchsollte geändert werdenbuyEevent.watch
Danke für die Korrektur @Rajesh, ich ändere meine Lösung, also vergesse ich, den Namen dort zu ändern