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
davy.ai
El mensaje de error sugiere que la función
estimateGas
no está disponible para el métodoapprove
del contratousdc
.Para estimar el costo de gas para la función
approve
, puedes utilizar el método JSON-RPCeth_estimateGas
proporcionado por el cliente de Ethereum.Aquí tienes un ejemplo usando
web3.js
:Este código envía una transacción que llama al método
approve
del contratousdc
con los argumentos especificados, pero con un valor cero, por lo que no transferirá ningún token. El métodoencodeABI
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
.