Sie müssen zuerst Ihre Zeichenfolge mit einem Online-Konverter wie http://string-functions.com/string-hex.aspx in die hexadezimale Form konvertieren .
dann in das Datenfeld einfügen (mit 0x am Anfang)
Zum Beispiel habe ich StackExchange in 0x 537461636b45786368616e6765 konvertiert
Geben Sie es in das Datenfeld ein und dann habe ich meine Transaktion erfolgreich gesendet. Sie können die Transaktion hier überprüfen .
Sie können unten auf die Schaltfläche zum Konvertieren in Asci klicken, um die verschlüsselte gesendete Zeichenfolge zurückzubekommen.
Sie können Soliditys Low-Level verwenden call
, aber seien Sie vorsichtig mit Was bedeutet "call.value" und wie hat es den Angriff auf The DAO zugelassen?
Beispiel:
bytes calldata = 0xabcdef;
address to = 0x...
if (to.call(calldata)) { // checks the return value
....
} else {
....
}
Wenn Sie 2 ETH mitschicken wollten, wäre die Syntax:
to.call.value(2 * 10**18)(calldata); // should check the return value
Einige Informationen in den Solidity- Dokumenten und FAQ .
Wann immer Sie verwenden call
, kann der Code im to
Vertrag ausgeführt werden, und da er Sie auf eine Weise zurückrufen kann, die Sie möglicherweise nicht erwarten (wie TheDAO ), sollten Sie Richtlinien wie das Aktualisieren von Zustandsvariablen zuerst und call
den allerletzten Schritt befolgen (ein Beispiel das zeigt, dass zuerst eine Zustandsvariable auf Null gesetzt wird und dann ein Aufruf an msg.sender erfolgt).
send
oder transfer
ist besser, wenn das alles ist, was benötigt wird. Die Frage war nach dem Hinzufügen von Daten.
Benutzer1506104