2025-01-27 18:23:04 +11:00
|
|
|
/**
|
2025-01-27 18:24:47 +11:00
|
|
|
* This script generates addresses given an account extended public key
|
|
|
|
* Usage: edit these fields below and run it like `node generate-address.js`
|
2025-01-27 18:23:04 +11:00
|
|
|
*/
|
|
|
|
|
|
|
|
const assert = require('node:assert/strict');
|
|
|
|
const HDPublicKey = require('hsd/lib/hd/public');
|
|
|
|
const Address = require('hsd/lib/primitives/address');
|
2025-01-27 21:33:14 +11:00
|
|
|
const minimist = require('minimist');
|
|
|
|
const args = minimist(process.argv.slice(2));
|
|
|
|
|
2025-01-27 18:23:04 +11:00
|
|
|
|
|
|
|
const NETWORK = 'main';
|
2025-01-27 21:33:14 +11:00
|
|
|
const ACCOUNT_XPUB = args.xpub || 'xpub6BvF6DnLZRV6my62FuQ8nw5TRebL8qr9Wa7u2tE1aEedHWBt4XAfSaNTmP1SM2nXErGWSzxRAHVwqstPzRrsXtA2vn1a4KzLwAVEgLNmfca';
|
|
|
|
|
|
|
|
const START = parseInt(args.start || '0');
|
|
|
|
const NUMBER = parseInt(args.number || '1000');
|
|
|
|
const END = START + NUMBER - 1;
|
|
|
|
|
|
|
|
// Toggle to display change addresses
|
|
|
|
const DISPLAY_CHANGE = args.change || false;
|
2025-01-27 18:23:04 +11:00
|
|
|
|
|
|
|
|
|
|
|
(() => {
|
|
|
|
const account = HDPublicKey.fromBase58(ACCOUNT_XPUB, NETWORK);
|
|
|
|
console.log('[*] Using account public key:', account.xpubkey(NETWORK));
|
|
|
|
console.log('[*] Generating addresses', START, 'to', END);
|
|
|
|
|
2025-01-27 21:33:14 +11:00
|
|
|
assert(END >= START);
|
|
|
|
if (DISPLAY_CHANGE) {
|
|
|
|
for (let i = START; i <= END; i++) {
|
|
|
|
/** @type {Buffer[]} */
|
|
|
|
const keys = [
|
|
|
|
account.derive(0).derive(i).publicKey, // receive
|
|
|
|
account.derive(1).derive(i).publicKey, // change
|
|
|
|
];
|
|
|
|
|
|
|
|
for (const [branch, key] of keys.entries()) {
|
|
|
|
const addr = Address.fromPubkey(key);
|
|
|
|
console.log(addr.toString());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
for (let i = START; i <= END; i++) {
|
|
|
|
/** @type {Buffer[]} */
|
|
|
|
const keys = [
|
|
|
|
account.derive(0).derive(i).publicKey, // receive
|
|
|
|
];
|
|
|
|
|
|
|
|
for (const [branch, key] of keys.entries()) {
|
|
|
|
const addr = Address.fromPubkey(key);
|
|
|
|
console.log(addr.toString());
|
|
|
|
}
|
2025-01-27 18:23:04 +11:00
|
|
|
}
|
|
|
|
}
|
|
|
|
})();
|