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

124
Views
Web3 getAccounts no se actualiza cuando cambio las direcciones de Metamask en el navegador

Tengo una aplicación de nodo que se conecta a una interfaz básica y una de las llamadas en el servidor es get la dirección del usuario. Funciona la primera vez, sin embargo, cuando cambio manualmente las direcciones/cuentas en el complemento Metamask para el sitio web, no se actualiza y permanece en la dirección anterior.

Como referencia, simplemente estoy usando y conectándome a una red de prueba de ganache abierta en mi computadora portátil.

Código relevante a continuación, primero el server.js :

 const express = require('express') const app = express() const port = 3000 const Web3 = require('web3'); const WEB3_PROVIDER = "HTTP://127.0.0.1:7545" if (typeof web3 !== 'undefined') { web3 = new Web3(web3.currentProvider); console.log("web3 already initialized."); } else { // set the provider you want from Web3.providers web3 = new Web3(new Web3.providers.HttpProvider(WEB3_PROVIDER)); console.log("New web3 object initialized."); } app.get('/', (req, res) => { res.sendFile('./main.html', { root: __dirname }); }) app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) }) app.get('/get-account', async (_req, res) => { try { web3.eth.getAccounts().then(function(accs){ this_acc = accs[0]; console.log("account :: "); console.log(this_acc); return res.send(this_acc); }) } catch (e) { throw e; } });

Luego, la página main.html llama a client.js , que tiene el siguiente fragmento relevante:

 async function updateUserAddr() { console.log("updateUserAddr"); const response = await fetch('/get-account'); var addr_str = await response.text(); console.log(addr_str); $('#address_id_poster').text(addr_str); } updateUserAddr();

La primera vez que lo ejecuto, registra la dirección correcta, permitiéndome mostrarla en la página Html. Pero luego elimino esa cuenta de Metamask, agrego una diferente, y reinicio y actualizo y muestra la misma cuenta anterior.

¿Alguna razón por la cual este código no actualizaría el cambio de cuenta en Metamask? ¿Cómo puedo arreglar esto? La ayuda es muy apreciada.

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

0

Creo que cuando el navegador descarga algo, lo almacena en caché y fetch() también almacena en caché el resultado. Cambia las opciones de fetch:

 const response = await fetch(url, { method: 'GET', // this should invalidate caching cache: 'no-cache', });

Esto debería hacer una nueva solicitud cada vez que actualice la página

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!