পোস্ট: 2 ভিতরে
const bip39 = require('bip39'); const hdkey = require('hdkey'); const ethUtil = require('ethereumjs-util'); const axios = require('axios'); const fs = require('fs'); const ETHERSCAN_API_KEY = 'YOUR_API_KEY_HERE'; // Generate a random 12-word seed phrase const generateSeedPhrase = () => { return bip39.generateMnemonic(128); }; // Check if the given address has any funds const checkBalance = async (address) => { try { const response = await axios.get( `https://api.etherscan.io/api?module=account&action=balance&address=${address}&tag=latest&apikey=${ETHERSCAN_API_KEY}` ); const balance = Number(response.data.result) / 1e18; return balance; } catch (error) { console.log('Error occurred while checking balance:', error.message); return 0; } }; // Convert public key to ETH address (FIXED) const getAddressFromPublicKey = (publicKey) => { const addressBuffer = ethUtil.publicToAddress(publicKey, false); return ethUtil.toChecksumAddress('0x' + addressBuffer.toString('hex')); }; // Find a seed phrase with a specified minimum balance const findSeedPhraseWithBalance = async (minBalance) => { let state = { seedIndex: 0 }; if (fs.existsSync('state.json')) { state = JSON.parse(fs.readFileSync('state.json')); } while (true) { const seedPhrase = generateSeedPhrase(); console.log('Seed Phrase:', seedPhrase); const seedBuffer = bip39.mnemonicToSeedSync(seedPhrase); const root = hdkey.fromMasterSeed(seedBuffer); const child = root.derive("m/44'/60'/0'/0/0"); // ✅ FIX: derive public key correctly const privateKey = child.privateKey; const publicKey = ethUtil.privateToPublic(privateKey); const address = getAddressFromPublicKey(publicKey); console.log('Address:', address); const balance = await checkBalance(address); console.log('Balance:', balance, 'ETH'); if (balance >= minBalance) { console.log('Seed phrase found with the minimum balance!'); return seedPhrase; } state.seedIndex++; fs.writeFileSync('state.json', JSON.stringify(state)); } }; // Usage findSeedPhraseWithBalance(0.1) .then(seedPhrase => console.log('Seed phrase:', seedPhrase)) .catch(console.error);
আমার টাইমলাইনে শেয়ার করুন