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

394
Vistas
No definido web3.eth.getAccounts() en React Native, autenticación de metamáscara

Quiero autenticar al usuario por su billetera Metamask. Estoy usando el paquete web3 para interactuar con los bloques y firmar transacciones. Cuando intento obtener las cuentas de usuario, obtengo un resultado vacío:

 const Web3 = require('web3'); const web3 = new Web3( new Web3.providers.HttpProvider('https://api.avax.network/ext/bc/C/rpc') ); const addresses = await web3.eth.getAccounts();

Supongo que necesito solicitar cuentas como esta await window.ethereum.request({ method: 'eth_requestAccounts'}); pero no existe la aplicación móvil de window .

Supongo que en un flujo normal, el usuario presiona el botón de autenticación y será redirigido a la billetera Metamask para autorizar la aplicación, ¿cómo puedo hacer esto?

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

0

Tiene razón, pero también necesita conectarse a MetaMask, no a su propio RPC. Aquí está su código fijo:

 import detectEthereumProvider from '@metamask/detect-provider'; const web3 = await detectEthereumProvider(); // Use Metamask-injected web3 await web3.request({ method: 'eth_requestAccounts'}); const addresses = await web3.eth.getAccounts();
about 4 years ago · Juan Pablo Isaza Denunciar

0

Encontré una solución, no sé si es la mejor manera de hacerlo.

Para interactuar con los bloques y firmar transacciones, los usuarios autentican su billetera MetaMask a través del servicio WalletConnect .

Después de autenticar al usuario, puedo usar el conector para crear un proveedor para usarlo con ethers.js lib (Usando web3.js, la conexión con RPC falló, decidí usar ethers en su lugar):

 const walletConnectProvider = new WalletConnectProvider({ rpc: { 43114: RPC }, chainId: 43114, connector: this.connector, qrcode: false }) let wp = await walletConnectProvider.enable(); if(wp){ this.provider = new providers.Web3Provider(walletConnectProvider); } const signer = this.provider.getSigner(); const contract = new Contract(GAMESESSION_ADDRESS, GameSession.abi, signer); ....

Es un poco complicado pero WalletConnect funciona bien.

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