Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

565
Vistas
¿Cómo aprobar el gasto de un token con Web3.js?

Busco a través de mi página web de prueba crear un botón que permita autorizar el gasto de un Contrato (Token). Si voy a la página y hago clic, me gustaría que el script cargue web3 (carga bien) entonces si Presiono el botón que Metamask autoriza el gasto del contrato.

Metamask se abre bien y solicita la conexión para mi sitio de prueba en el BSC en Web3js. Sin embargo, no puedo encontrar el código exacto para la función de aprobación.

Aquí está el código:

 <head> <script src='https://cdnjs.cloudflare.com/ajax/libs/web3/1.7.0/web3.min.js'></script> </head> <button onclick="approvebutton();">Approve button to authorize tokens to be spent</button> <script type="text/javascript"> if (typeof window.ethereum !== 'undefined') { ethereum.request({ method: 'eth_requestAccounts' }); } else { alert('Please install metamask') } var Web3 = require('web3'); const web3 = new Web3('https://bsc-dataseed1.binance.org:443'); async function approvebutton() { /// APPROVE FUNCTION WITH THE CONTRACT } </script>

Intenté este enfoque pero no funciona (la confirmación de metamask no aparecerá):

 if (typeof window.ethereum !== 'undefined') { ethereum.request({ method: 'eth_requestAccounts' }); } else { alert('Please install metamask') } var Web3 = require('web3'); const web3 = new Web3('https://bsc-dataseed1.binance.org:443'); const Contract = ('0xContractAddress'); const spenderAdr = ('0xSpenderAddress'); const amount = ('AmountTokensNumber') async function approvebutton(Contract,spenderAdr){ Contract.methods.approve(spenderAddr, amount).send({ from: ownerAddr }) }

Metamask no aparecerá para confirmar la TX.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En primer lugar, el método de approve toma 2 parámetros, el spender y la amount , por lo que será algo como esto:

 Contract.methods.approve(spenderAddr, amount).send({ from: ownerAddr })

El parámetro gas es opcional.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda