Estoy tratando de construir una aplicación web3 muy simple. El objetivo es poder acuñar un NFT al hacer clic en un botón y realizar una transacción por una cantidad específica de ETH con metamask. Para eso quiero usar moralis (pero también estoy abierto a alternativas). También estoy usando la red de prueba Rinkeby para esto.
Todo este tema es bastante nuevo para mí y estoy tratando de averiguar cómo puedo hacerlo, pero sigo recibiendo un error tras otro.
El inicio de sesión / cierre de sesión ya está funcionando y construyo una interfaz de usuario simple. Después de conectarse a MetaMask, quiero que el usuario seleccione la cantidad que desea acuñar del contrato y luego haga clic en "Acuñar ahora". Sin embargo, esta transacción sigue fallando.
el error es:
- MetaMask - Error de RPC: ejecución revertida {código: -32000, mensaje: 'ejecución revertida'}
- moralis.js:42068 No detectado (en promesa) Error: no se puede estimar el gas; la transacción puede fallar o puede requerir un límite de gas manual (error={"código":-32000,"mensaje":"ejecución revertida"}, método="estimateGas", transacción={"desde":"X","hasta" :"Y","data":"Z","accessList":null}, code=UNPREDICTABLE_GAS_LIMIT, version=providers/5.5.2) en Logger.makeError (moralis.js:42068:21) en Logger.throwError ( moralis.js:42077:20) en checkError (moralis.js:47333:16) en Web3Provider. (moralis.js:47866:47) en el paso (moralis.js:47255:23) en Object.throw (moralis.js:47236:53) en rechazado (moralis.js:47228:65)
mi código es:
async function moralisWeb3() { // Get the EthersJs library const ethers = Moralis.web3Library; // Get a (ethers.js) web3Provider const web3Provider = await Moralis.enableWeb3(); // Enable web3 and get the initialized web3 instance from Web3.js await Moralis.enableWeb3(); const web3Js = new Web3(Moralis.provider); // connector const web3 = await Moralis.enableWeb3(); const options = { contractAddress: contractID, functionName: "mint", abi: ABI, params: { _mintAmount: "2" } }; const transaction = await Moralis.executeFunction(options); const receipt = await transaction.wait(); console.log(receipt); document.getElementById("btn-mint").onclick = moralisWeb3; }¿Puede alguien ayudarme a construir esto?