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.

“La transacción no se completó correctamente. Se minó la transacción pero la ejecución falló” después de intentar hacer una Transferencia Desde utilizando OpenZeppelin.

Después de implementar y utilizar la función transferFrom, está dando el siguiente error: “false Transaction mined but execution failed”. Este es el código:

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";

contract TransferToken {
    function transferFrom(IERC20 token, address from, address to, uint amount) public{
        token.transferFrom(from, to, amount);
    }
}

¿Cómo puedo transferir mi token ERC20 de la billetera 1 a la billetera 2? ¿Sin pedir autorización? Porque esto será una forma de retirada de un juego NFT. La billetera 1 será la mía y la billetera 2 será la del jugador.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para transferir tokens ERC20 desde la cartera 1 a la cartera 2 sin pedir autorización, primero debes aprobar la transacción llamando a la función approve en el contrato del token ERC20 desde la cartera 1.

    Suponiendo que ya hayas implementado el contrato ERC20 y tengas la dirección del contrato, puedes llamar a la función approve de la siguiente manera:

    IERC20(direcciónDelToken).approve(to, cantidad);
    

    Donde direcciónDelToken es la dirección del contrato ERC20, to es la dirección de la cartera 2 y cantidad es la cantidad de tokens que deseas transferir.

    Una vez que hayas aprobado la transacción, puedes llamar a la función transferFrom en el contrato TransferToken de la siguiente manera:

    TransferToken.transferFrom(IERC20(direcciónDelToken), from, to, cantidad);
    

    Donde direcciónDelToken es la dirección del contrato ERC20, from es la dirección de la cartera 1, to es la dirección de la cartera 2 y cantidad es la cantidad de tokens que deseas transferir.

    Ten en cuenta que necesitas tener suficiente balance del token ERC20 en la cartera 1 para transferir la cantidad deseada a la cartera 2. Adicionalmente, puede ocurrir el error “false Transaction mined but execution failed” debido a varias razones, como balance insuficiente, parámetros inválidos u otros errores en el contrato inteligente. Es posible que necesites depurar el código del contrato inteligente para identificar y solucionar el problema.

Comments are closed.