So lesen Sie an meinen Smart Contract gesendete Daten

Wie kann ich Daten lesen/erhalten, die an meinen Smart Contract gesendet wurden?

Ich habe sendTransaction ({data: xyz }) getestet und als ich versuchte, diese Daten mit msg.data aus dem Smart Contract abzurufen, erhielt ich NULL. Dies bedeutet, dass die Daten nicht an den SC gesendet wurden. a benötigen den Zeilencode der Transaktion mit a-Daten

Bitte geben Sie einen Beispielcode für Ihren Smart Contract und Ihre Schnittstellenmethode (geth?) an, um dies zu versuchen. sonst ist es schwer gezielt zu helfen.
token.addAssets.sendTransaction(1,{from: web3.eth.accounts[0], value: web3.toWei(1, 'ether'), data: web3.toHex("0x228aef67c65077f864d9f5e00697578627f3b331")}); Das ist meine Transaktion
Dies ist meine Smart-Contract-Funktion
Funktion addAssets (int Betrag) gibt zurück (Bytes) {ad=msg.data; if (msg.sender == 0xd1b4b395a0f9deff0275c3cca2eeb9539af365e2) balanceOf[msg.sender]=balanceOf[msg.sender]+amount; sonst werfen; Gegenanzeige; }

Antworten (1)

Angenommen, Sie haben eine Solidity-Funktion in Ihrem Smart Contract, die Daten in Form von z. B. einer Ganzzahl namens xyz akzeptiert:

function takeData(int xyz)

Jetzt können Sie in z. B. Geth eine Instanz dieses intelligenten Vertrags erstellen und die Funktion aufrufen, indem Sie:

contractInstance.takeData.sendTransaction(12345, {from: web3.eth.accounts[0]})

Ein vollständiges Walk-Through-Beispiel, das ich für unsere Lehrbemühungen bei Validity Labs erstellt habe, finden Sie auf meinem GitHub: https://github.com/SCBuergel/timeLock-smartContract