Kurze Frage: Kann eine Funktion mehrere Token senden?

Und mit der Frage meine ich, ob ich ein paar verschiedene ERC20 schicken kann oder sagen wir sogar 1 ERC20 + etwas Ether in einer Funktion?

Antworten (1)

Sie können beides tun, indem Sie einen Smart Contract verwenden. Die Einschränkung, auf die Sie hier stoßen werden, ist die Menge an Gas, die für diese Transaktion verwendet wird.

Wenn Sie viele ERC20-Token senden möchten, würden Sie den folgenden Code in Ihrem Smart Contract verwenden:

ERC20Interface(ERC20Token0).transfer(to_address, value);
ERC20Interface(ERC20Token1).transfer(to_address, value);
ERC20Interface(ERC20Token2).transfer(to_address, value);

Wenn Sie einen ERC20-Token und Ether übertragen möchten, würden Sie Folgendes tun:

ERC20Interface(ERC20Token0).transfer(to_address, value);
to_address.transfer(value);

Es gibt noch anderen Code, der in den Smart Contract eingefügt werden muss, aber das sind die kritischen Teile.

Ich mache genau das, was Sie gesagt haben, aber ich erhalte beim Senden der Transaktion immer wieder den folgenden Fehler in Remix: imgur.com/a/k1dMOqr
Senden Sie ETH oder einen Token?
1 Token und etwas Ether
Versuchen Sie, jede Zeile auszukommentieren, um zu sehen, wo der Fehler auftritt. Versuchen Sie, zuerst einfach ETH zu senden, und wenn das funktioniert, wissen Sie, dass es das Token ist, das fehlschlägt. Hinweis: Damit diese Transaktion funktioniert, müssen Sie ETH in den Smart Contract gesendet haben. Es kann nicht aus Ihrer Brieftasche ziehen. Sie müssten also die ETH bereits anfangs in den Vertrag geschickt haben.
Ich bin deinen Ausführungen gefolgt und es stellte sich heraus, dass mein ERC20-Interface einen kleinen Fehler hatte. Ich hatte es als function transfer(address _to, uint256 _value) returns (bool success);und das Entfernen der Return-Anweisung löste das Problem. Vielen Dank für Ihre Hilfe.
Froh das zu hören.