Check Ethereum Wallet Balance
This snippet demonstrates how to check the balance of an Ethereum wallet and generate a random mnemonic phrase using the ethers.js library. It connects to the Ethereum mainnet via Infura and handles any errors in the balance checking process// Importar las librerías necesarias const { ethers } = require("ethers"); require("dotenv").config(); // Cargar las variables de entorno desde .env // Configurar la conexión a Infura const INFURA_API_KEY = process.env.INFURA_API_KEY; const provider = new ethers.providers.InfuraProvider("mainnet", INFURA_API_KEY); // Función para verificar el saldo de una dirección async function checkWalletBalance(address) { try { const balance = await provider.getBalance(address); return ethers.utils.formatEther(balance); // Convertir el balance a Ether } catch (error) { console.error(`Error al comprobar el saldo de ${address}:`, error); return null; } } // Función para generar una frase mnemónica aleatoria function generateMnemonic() { return ethers.Wallet.createRandom().mnemonic.phrase; // Genera una frase de 12 palabras } // Función para generar la dirección desde la frase mnemónica y verificar el saldo async function generateAndCheckWallets() { // Generar una nueva frase mnemónica const mnemonic = generateMnemonic(); console.log(`Frase mnemónica generada: ${mnemonic}`); try { // Validar si la frase mnemónica es correcta if (!ethers.utils.isValidMnemonic(mnemonic)) { console.log(`Frase mnemónica no válida: ${mnemonic}`); return; } // Generar la wallet desde la frase mnemónica const wallet = ethers.Wallet.fromMnemonic(mnemonic); // Obtener la dirección pública de la wallet const address = wallet.address; console.log(`Dirección generada: ${address}`); // Verificar el saldo de la dirección const balance = await checkWalletBalance(address); if (balance !== null) { console.log(`Saldo de ${address}: ${balance} ETH`); } // Verificar si la seed coincide con la dirección const derivedAddress = ethers.Wallet.fromMnemonic(mnemonic).address; if (derivedAddress === address) { console.log(`La frase mnemónica coincide con la dirección: ${address}`); } else { console.log(`La frase mnemónica NO coincide con la dirección: ${address}`); } } catch (error) { console.error(`Error al procesar la frase mnemónica: ${mnemonic}`, error); } } // Ejecutar la función principal generateAndCheckWallets();
Leave a Comment