Usando javascript, actualmente puedo escribir datos en un contrato inteligente que construí en la red de prueba Ethereum Rovan usando este código (tomado de los documentos de MetaMask )
const transactionParameters = { to: '0xacb241f59e1a8c7a61f0781aed7ad067269feb26', from: account, data: '0xfcc74f71aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', }; const txHash = await ethereum.request({ method: 'eth_sendTransaction', params: [ transactionParameters ], });
Sin embargo, no soy capaz de leer los datos. ¿Cómo puedo hacer esto? El código hexadecimal del método para leer datos es 0x1f1bd692, así que pensé que usar estos parámetros funcionaría:
to: '0xacb241f59e1a8c7a61f0781aed7ad067269feb26', from: account, data: '0x1f1bd692',
Desafortunadamente, esto solo devuelve el hash de la transacción, no los datos que quiero del contrato inteligente.
Nota: si es posible, no sugiera ninguna biblioteca.
Aquí está la solución:
const data = await ethereum.request({ method: 'eth_getStorageAt', params: [ '0xacb241f59e1a8c7a61f0781aed7ad067269feb26', '0x0' ], })
El primer argumento en params[] es la dirección del contrato. El segundo argumento es el índice del elemento almacenado que desea recuperar. Debe ser un número hexadecimal que comience con '0x'.