Estoy desarrollando un contrato y una Web 3.0 usando Hardhat, Ethers.js, Node.js y Web3.0 (Metamask) para hacer contratos y transacciones inteligentes de ETH y recibo un error raro al intentar ejecutar la función 'eth_sendTransaction ' mientras implementa un contrato , sin transferir ETH de una cuenta a otra, desde la API RPC de Metamask.
El código que tengo es:
async function awaitContract(contractAddress, currentAccount, parsedAmount) { return await ethereum.request({ method: 'eth_sendTransaction', params: [{ from: currentAccount, //window.ethereum.request({ method: "eth_accounts" })[0] gas: '0x124F80', value: parsedAmount._hex, data: contractAddress', //contract address (0x....) }] }); }Primero compilo e implemento el contrato en la cadena de bloques, pero luego quiero crear nuevas instancias específicas del contrato usando eth_sendTransaction. Obtengo el error.
De acuerdo con los documentos de la API de RPC de Metamask ( https://eth.wiki/json-rpc/API#eth_sendtransaction ), si no especifico la dirección pero sí el campo de datos , se debe crear un nuevo contrato.
Mi sorpresa llega cuando voy a buscar el resultado de la transacción a Etherscan y me aparece el siguiente error:
¡Advertencia! Error encontrado durante la ejecución del contrato [desbordamiento de la pila (0 <=> 2)]