No estoy acostumbrado a javascript y estoy usando el siguiente código para enviar una transacción de ethereum a través de metamask, y parece que todo funciona bien, puedo imprimir el hash de la transacción después de enviarla con document.write, pero no puedo. No encuentre una manera de almacenar el hash en una variable php para luego tratarlo en una base de datos y lo que sea.
Necesito el valor de 'txHash' en una variable php. Agradecería mucho alguna ayuda! Gracias
sendEthButton.addEventListener('click', () => { ethereum .request({ method: 'eth_sendTransaction', params: [ { from: accounts[0], to: '< - RECEIVING ACCOUNT - >', value: '0xDE0B6B3A7640000', }, ], }) .then((txHash) => document.write(txHash)) .catch((error) => console.error); });PHP se ejecuta antes que el JavaScript del navegador. No puede interactuar con MetaMask, ya que no tiene acceso al objeto window.ethereum de la extensión.
Sin embargo, puede usar la función fetch() de JavaScript para enviar el ID de la transacción (o cualquier otro dato) desde JS a un script PHP.
ethereum.request({ // ... }).then((txHash) => { fetch('/txIdReceiver.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: 'hash=' + txHash, }) }) Debido al tipo de contenido x-www-form-urlencoded , el hash de la transacción ahora está disponible en la variable $_POST["hash"] del script PHP.