es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Solidity arroja “UnhandledRejections detectadas” después de finalizar la migración.

Tengo un error después de la migración de Solidity.

El código se basa en el vídeo de Youtube (parte 1 y parte 2).

“I BUILT AN NFT GAME IN 12 HOURS (Part 1) – Building the Ethereum Smart Contract.mp4”

El código original muestra un error antes de que finalice el archivo 2tokenmigration.js.

Por lo tanto, modifiqué Token.sol de la siguiente manera:

const Token = artifacts.require("Token");
module.exports = async function (deployer) {
  await deployer.deploy(Token, "NFT Game", "NFTG");
  Token.deployed().then(async function (tokenInstance) {
    tokenInstance.mint(100, 200, 100000);
    let pet = await tokenInstance.getTokenDetails(0);
    console.log('pet: ', pet);
  }).catch(error => {
    console.log('capturado', error.message);
  });
};

Se ejecuta correctamente, pero lanza una nueva excepción “UnhandledRejections detected”.

Se detectaron rechazos no controlados 
Promise {
  <rejected> Error: Error devuelto: VM Exception mientras se procesaba la transacción: revertir
      at D:\Study\nft\test-3\migrations\2_token_migration.js:16:19
      at processTicksAndRejections (internal/process/task_queues.js:95:5) {
    data: {
      '0xb03a68fed3e50abda1702ad0d871d7eee6876ce0d9261d3b230079b9c46ebc20': [Object],
      stack: 'Error en tiempo de ejecución: excepción VM mientras se procesaba la transacción: revertir\n' +
        '    en Función.RuntimeError.fromResults (C: \\ Program Files \\ WindowsApps \\ GanacheUI_2.5.4.0_x64__5dg5pnz03psnj \\ app \\ resources \\ static \\ node \\ node_modules \\ ganache-core \\ lib \\ utils\\runtimeerror.js: 94: 13) \ n & amp; # 39; +
        & amp; # 39;    en BlockchainDouble.processBlock (C: \\ Program Files \\ WindowsApps \\ GanacheUI_2.5.4.0_x64__5dg5pnz03psnj \\ app \\ resources \\ static \\ node \\ node_modules \\ ganache-core \\ lib \\ blockchain_double.js: 627:24) \ n & amp; # 39; +
        & amp; # 39;    en runMicrotasks (& amp; lt; anónimo & amp; gt;) \ n & amp; # 39; +
        & amp; # 39;    en processTicksAndRejections (internal / process / task_queues.js:93:5) & amp; # 39 ;,
      nombre: & # 39; RuntimeError & # 39;
    },

¿Alguien puede arreglar este error?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que tu código actualizado está lanzando una nueva excepción “UnhandledRejections detectadas”. Este error ocurre cuando una promesa es rechazada pero no hay código para manejar el rechazo.

    Al examinar tu código actualizado, parece que el problema puede estar con la llamada a la función “tokenInstance.mint”. Es probable que esta llamada esté causando el error de “revert” que se está lanzando.

    Para solucionar este error, necesitas proporcionar más información sobre lo que hace la función “mint” y qué parámetros espera. También debes verificar si los parámetros que estás pasando a “mint” son correctos.

    Además, debes agregar un bloque “catch” para manejar el rechazo de la promesa. Aquí tienes un ejemplo de cómo puedes actualizar tu código para manejar el rechazo:

        const Token = artifacts.require("Token");
        module.exports = async function (deployer) {
          await deployer.deploy(Token, "NFT Game", "NFTG");
          Token.deployed().then(async function (tokenInstance) {
            try {
              await tokenInstance.mint(100, 200, 100000);
              let pet = await tokenInstance.getTokenDetails(0);
              console.log('pet: ', pet);
            } catch (error) {
              console.log('capturado', error.message);
            }
          }).catch(error => {
            console.log('capturado', error.message);
          });
        };
    

    Con este código actualizado, deberías poder ver el mensaje de error cuando se rechaza la promesa, lo que te dará más información sobre lo que está causando el error.

Comments are closed.