Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

390
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda