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 processunknown
javascript
a year ago
2.4 kB
8
Indexable
// 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();Editor is loading...
Leave a Comment