Ich möchte in der Lage sein, einen ERC20-Token an einen Smart Contract zu senden und nachvollziehen zu können, welche Adresse den ERC20-Token gesendet hat und für welchen Betrag. Zum Beispiel sendet eine Adresse X-Token an einen Smart Contract und sobald sie die Übertragung durchgeführt haben, kann die Adresse nun eine Funktion im Smart Contract ausführen, um einen Domainnamen zu registrieren. Ohne die Hinterlegung des ERC20-Tokens wäre diese Funktion nicht lauffähig. Beachten Sie, dass es zwei Smart-Contract-Aufrufe gibt, einen zum Übertragen der Token und einen zum Smart-Contract, der das ERC20-Token empfängt.
Wenn ich den ERC20 Solidity Smart Contract Code lese, sehe ich eine Zuordnung von Salden. Ich verstehe nicht, wie ich nachverfolgen kann, wer welche Beträge gesendet hat.
Bei erfolgreicher Übertragung eines ERC20-Tokens wird ein Event mit den Adressen der Parteien und dem übertragenen Wertbetrag ausgegeben. Das Transfer-Ereignis sieht folgendermaßen aus:
event Transfer(address indexed _from, address indexed _to, uint _value);
Ihr Vertrag kann den Token-Vertrag für Übertragungsereignisse abhören, bei denen Ihr Vertrag der _to
Parameter ist – Sie können dies außerhalb der Kette mit dem web3-API-Überwachungsereignis tun.
Möglicherweise finden Sie diese verwandten Fragen hilfreich:
Token-Transaktion zu einem Vertrag erkennen
Rufen Sie eine zahlbare Smart-Contract-Funktion auf, die das erc20-Token sendet
Jaime