Intelligenter Vertrag, der benutzerdefinierte Token akzeptiert

Ich habe erfolgreich mein eigenes benutzerdefiniertes Token im Rinkeby-Testnet erstellt. Nach der Erstellung des Tokens habe ich alle neuen Coins an meine Brieftasche gesendet. Ich kann das neue Token problemlos an andere Wallets senden und es wird angezeigt.

Ich habe jedoch Schwierigkeiten, einen Smart Contract zu schreiben, um das neue Token zu akzeptieren. Ich habe das Token von meiner Brieftasche an die Vertragsadresse gesendet und es wurde bestätigt. Im Vertrag kann ich jedoch nicht sehen, dass er das Token erhalten hat.

Antworten (2)

Sie müssen dies lesen

Der Prozess ist komplizierter, aber er erfüllt immer noch seinen Zweck, also denke ich, dass es sich lohnt

Derzeit legt der ERC-20-Token-Standard nicht fest, wie ein Vertrag benachrichtigt werden soll, wenn Token an ihn gesendet werden.

Es gibt einen Vorschlag ERC-223 mit einer neuen Spezifikation, die festlegt, wie zu benachrichtigen ist, wenn Gelder an einen Vertrag gesendet werden.

Problemumgehungen mit ERC-20 beinhalten ein zweistufiges Verfahren:

  1. token.approve(contractAddress, amount, { from: userAddress })Der Benutzer genehmigt den Vertrag zum Abrufen einer bestimmten Menge an Token
  2. contract.purchase(token, amount)Benutzer ruft Vertrag auf, um anzuzeigen, dass er genehmigt wurde (Funktionsname variiert je nach Vertrag)

    2.1 token.transferFrom(msg.sender, this, amount)Vertrag überträgt Token vom Benutzer zum Vertrag in der angegebenen Menge