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

133
Vistas
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 Respuestas
Responde la pregunta

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 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