Cómo leer un dato enviado a mi Smart Contract

¿Cómo puedo leer/obtener datos que se han enviado a mi contrato inteligente?

Probé sendTransaction({data: xyz }) y cuando traté de obtener estos datos del contrato inteligente usando msg.data obtuve NULL, esto significa que los datos no se enviaron al SC, ¿alguna ayuda? necesito el código de línea de la transacción con un dato

proporcione un código de ejemplo tanto de su contrato inteligente como de su método de interfaz (¿geth?) para probar esto. de lo contrario, es difícil ayudar específicamente.
token.addAssets.sendTransaction(1,{from: web3.eth.accounts[0], value: web3.toWei(1, 'ether'), data: web3.toHex("0x228aef67c65077f864d9f5e00697578627f3b331")}); esta es mi transaccion
esta es mi función de contrato inteligente
la función addAssets (cantidad int) devuelve (bytes) {ad = msg.data; if (mensaje.remitente == 0xd1b4b395a0f9deff0275c3cca2eeb9539af365e2) saldoDe[mensaje.remitente]=saldoDe[mensaje.remitente]+cantidad; de lo contrario tirar; anuncio de vuelta; }

Respuestas (1)

Suponga que tiene una función de solidez dentro de su contrato inteligente que acepta datos en forma de, por ejemplo, un número entero llamado xyz:

function takeData(int xyz)

Ahora, por ejemplo, en geth, puede crear una instancia de ese contrato inteligente y llamar a la función de la siguiente manera:

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

Puede encontrar un ejemplo de recorrido completo que creé para nuestros esfuerzos de enseñanza en Validity Labs en mi github: https://github.com/SCBuergel/timeLock-smartContract