primero debe convertir su cadena a la forma hexadecimal usando un convertidor en línea como http://string-functions.com/string-hex.aspx .
luego póngalo en el campo de datos (con 0x al principio)
por ejemplo, he convertido StackExchange en 0x 537461636b45786368616e6765
colóquelo en el campo de datos y luego he enviado con éxito mi transacción. Puedes verificar la transacción aquí .
puede presionar el botón convertir a asci en la parte inferior para recuperar la cadena enviada codificada.
Puede usar el nivel bajo de Solidity call
, pero tenga cuidado con ¿Qué significa `call.value` y cómo permitió el ataque a The DAO?
Ejemplo:
bytes calldata = 0xabcdef;
address to = 0x...
if (to.call(calldata)) { // checks the return value
....
} else {
....
}
Si quisiera enviar 2 ETH, la sintaxis sería:
to.call.value(2 * 10**18)(calldata); // should check the return value
Alguna información en los documentos y preguntas frecuentes de Solidity .
Siempre que use , se puede ejecutar call
el código del contrato y, dado que puede devolverle la llamada de formas que no espera (como TheDAO ), se deben seguir pautas como actualizar primero las variables de estado y dar el último paso (un ejemplo que muestra una variable de estado que se establece en cero primero y luego se realiza una llamada a msg.sender).to
call
send
o transfer
es mejor si eso es todo lo que se necesita. La pregunta era acerca de agregar datos.
usuario1506104