Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

382
Views
botón de pago web3 JS para token Metamask BSC bep20

Me gustaría aceptar donaciones de visitantes, solo quiero un token específico con una cantidad preestablecida y solo personas con metamask.

 if (typeof window.ethereum !== 'undefined') { ethereum.request({ method: 'eth_requestAccounts' }); } else { alert('Please install metamask') } const web3 = new Web3('https://bsc-dataseed1.binance.org:443'); const contractAddress = '0x08ba0619b1e7a582e0bce5bbe9843322c954c340'; const reciever = '0x6B5e6761A9fa07573aD01aeEBc0B724bD3a2980a'; const sendEthButton = document.querySelector('.sendEthButton'); sendEthButton.addEventListener('click', () => { (async ()=>{ const contract = new web3.eth.Contract(ABI, contractAddress); const transfer = await contract.methods.transfer(reciever, 10); const encodedABI = await transfer.encodeABI(); if(window.ethereum.chainId == '0x38'){ ethereum .request({ method: 'eth_sendTransaction', params: [ { from: ethereum.selectedAddress, to: reciever, gasPrice: '', gas: '', data: encodedABI }, ], }) .then((txHash) => console.log(txHash)) .catch((error) => console.error); } else { ethereum.request({ method: 'wallet_switchEthereumChain', params:[{chainId: '0x38'}]}) } })() });

lo que tengo hasta ahora casi funciona, pero no puedo encontrar ningún ejemplo adecuado ni explicación de lo que estoy haciendo mal.

Lo que estoy haciendo hasta ahora es verificar primero si Metamask está instalado. Luego, si alguien hace clic en el botón, compruebo si estamos en la red correcta (BSC). Uso el Contrato ABI para codificar una transacción para enviar a Metamask. todo funciona bien, solo en Metamask el token con el que quiero hacer el pago no está seleccionado (debe ser BMON pero muestra TKN). Alguien por favor ayúdeme un poco.

--- ACTUALIZAR ---

Entonces, descubrí que en bscscan.com en la pestaña de contrato de BMON, puedo conectarme a web3, ir al botón "Escribir contrato" y luego en la función "transferir" ingresar mis datos y Escribir. eso funciona bien, luego verifico en Metamask los datos. incluso si copio y pego esos datos, todavía no funcionan.

--- ACTUALIZAR ---

Esto es lo que obtengo con mi código No está seleccionando BMON

Esto es lo que quiero Aquí seleccionó BMON, hecho en bscscan.com

La primera imagen es lo que obtengo, ese es el problema, mi código no selecciona BMON, y eso es lo que no entiendo. Estoy usando abi para decodificar los datos, incluso si uso los datos de la transacción correcta, todavía no funciona

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Bienvenido a Stackoverflow. Explique el problema claramente, y si tiene algún hash de transacción para mostrar los resultados, sería de gran ayuda para diagnosticar el problema.

Hasta ahora, su código me parece bien y la captura de pantalla dice BMON, pero el combustible parece un poco alto.

Una vez que haga eso, editaré esta respuesta con una solución.

about 4 years ago · Juan Pablo Isaza Report

0

Encontré el problema. en lugar de solicitar la transacción, puedo enviarla en contract.method.transfer, espero que esto ayude a cualquier otra persona que tenga problemas.

 (async ()=>{ const contract = new web3.eth.Contract(ABI, contractAddress); if(window.ethereum.chainId == '0x38'){ await contract.methods.transfer(reciever, 10) .send('from':ethereum.selectedAddress) .on('receipt',(receipt)=>{console.log(receipt)}) } else { ethereum.request({ method: 'wallet_switchEthereumChain', params:[{chainId: '0x38'}]}) } })()
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!