Estoy enviando datos con mi transacción usando la siguiente manera
var tx = {from: eth.coinbase, to:eth.accounts[1], value: web3.toWei(1, "ether"),data:web3.toHex("Test Data")}
personal.sendTransaction(tx, "password")
Como podemos ver, estoy usando una cadena simple en los datos que se convierten a hexadecimal, tengo algunas preguntas al respecto.
(nota: actualmente estoy enviando datos JSON al convertir manualmente los datos a una cadena JSON de la siguiente maneradata:web3.toHex("{\"key1\":\"Data1\",\"key2\":\"Data2\"}"))
Codificar una cadena JSON no parece una buena idea. Mira esto .
En lugar de proporcionar un objeto como datos, debe definir su función de contrato para tomar las entradas relevantes (como function f(string key1, uint key2){}
) y usar una biblioteca de transacciones como ethereumjs-tx para calcular los datos de acuerdo con sus parámetros. Aquí hay un ejemplo con solo Web3.
SwapnilKumbhar
jeff
SwapnilKumbhar
var tx = {from: eth.coinbase, to:eth.accounts[1], value: web3.toWei(10, "ether"),data:web3.toHex("D1:Testing Data")}
SwapnilKumbhar
jeff
"name: value"
y ponerlo como datos. Si lo hace, su contrato necesita hacer un análisis complejo, eso es lo que llamé software especial.SwapnilKumbhar
jeff
SwapnilKumbhar