Ich muss ERC20-Token (genauer gesagt Golem) automatisiert senden, also richte ich einen Geth-JSON-RPC-Server ein
./geth --fast --rpc
So kann ich die API problemlos aufrufen.
Die Dokumentation für eth_sendtransaction macht es einfach, Ethereum an eine andere Adresse zu senden, aber ich konnte nicht finden, wie man ERC20-Token sendet. Ich habe das Datenfeld gesehen, das es ermöglichte, Smart Contracts auszulösen. Ich nehme an, ich muss eine Funktion im Smart Contract des ERC20-Tokens auslösen, aber da ich Solidität lernen und den gesamten Golem Smart Contract durchlesen müsste, dachte ich, ich würde zuerst hier fragen.
Vielen Dank !
Um ein ERC20-konformes Token zu senden, müssen Sie die transfer
Vertragsmethode aufrufen. Um dies mit geth zu tun, haben Sie korrekterweise eth_sendTransaction
RPC Call ausgewählt.
Im data
Parameter sollten Sie die ABI-codierte Funktion transfer
mit Parametern angeben, die wie hier beschrieben codiert sind (ABI-codiert).
Um Parameter zu kodieren, können Sie das Online-Tool https://abi.hashex.org verwenden . Sie geben den Namen der Funktion (Übergabe) ein und fügen Parameter mit Typen und Werten hinzu. Oder Sie können einfach das Token abi einfügen und die Funktion transfer
in der Dropdown-Liste "Funktionstyp" auswählen. Hier ist ein Beispiel für die Verwendung dieses Tools.
Es gibt auch eine Javascript-Bibliothek zum Codieren von Parametern, wenn Sie dies automatisch tun möchten.
Nachdem Sie Ihre ABI-codierten Daten erhalten haben, setzen Sie sie data
im RPC-Aufruf von Geth auf das Feld, legen Sie andere Werte fest und Sie sind bereit, Geth aufzurufen und Token zu übertragen.
Achten Sie darauf, dass das Konto, von dem Sie Token senden ( from
Parameter im RPC-Aufruf), in Geth entsperrt sein sollte, um die Transaktion zu signieren.
Danke, habe deine Methode ausprobiert und sie hat ETH und nicht das Token übertragen. Wie und wo definieren wir die Vertragsadresse (damit sie weiß, dass die ABI zum Vertrag gehört), damit wir den richtigen Token senden können.
<--BEARBEITEN-->
Habe gerade die Lösung gefunden: An: die Adresse des Tokenvertrags, da dies der Empfänger des Funktionsaufrufs ist.
Wert = 0 (zu sendende Menge an Ethereum.)
Wenn Sie mit der Verwendung einer REST-API zufrieden sind, können Sie Chaingateway.io verwenden , das es ermöglicht, jedes ERC20-Token automatisch zu senden und zu empfangen. Auf diese Weise müssen Sie Solidity nicht lernen und können sich auf Ihre Anwendung konzentrieren.
ʰᵈˑ
transfer()
Da Golem ein ERC20-konformer Token ist, müssen Sie die Standardfunktion des Smart Contract aufrufen , um x Token an y Adresse zu übertragen. Die Funktion ist wie folgt:transfer(address _to, uint256 _value)
.