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.

Estimar gas en ETH desde un contrato aprobado.

Me gustaría estimar el “gas” después de aprobar un contrato:

WETH = weth.address;
USDC = usdc.address;

await usdc.approve(addr1, addr2).estimateGas;

Cuando intento esto, obtengo el siguiente error:

TypeError: usdt.approve(...).estimateGas no es una función
Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que la función estimateGas no está disponible para el método approve del contrato usdc.

    Para estimar el costo de gas para la función approve, puedes utilizar el método JSON-RPC eth_estimateGas proporcionado por el cliente de Ethereum.

    Aquí tienes un ejemplo usando web3.js:

    const gasEstimate = await web3.eth.estimateGas({
      from: myAddress,
      to: usdc.address,
      value: 0,
      data: usdc.methods.approve(addr1, addr2).encodeABI()
    });
    

    Este código envía una transacción que llama al método approve del contrato usdc con los argumentos especificados, pero con un valor cero, por lo que no transferirá ningún token. El método encodeABI genera los datos de la carga útil de la transacción.

    El costo estimado de gas para la transacción se devuelve en la variable gasEstimate.

Comments are closed.