├── .DS_Store ├── README.MD ├── creatingMMC.js ├── generateBTCAddress.js ├── mmcToPk.js ├── package-lock.json ├── package.json └── solanaToPk.js /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xsongsu/walletManager/a72c2dd222222bd2c34d4f2374977a7815292831/.DS_Store -------------------------------------------------------------------------------- /README.MD: -------------------------------------------------------------------------------- 1 | # 多链钱包生成器 2 | 3 | 这个项目可以帮助您生成多个区块链(比特币BTC、以太坊ETH和索拉纳SOL)的钱包地址和私钥。 4 | 5 | ## 使用前准备 6 | 7 | 1. 确保您的电脑已安装Node.js (版本12或更高)。如果没有安装,请访问 [Node.js官网](https://nodejs.org/) 下载并安装。 8 | 9 | 2. 下载或克隆本项目到您的电脑。 10 | 11 | 3. 打开命令行工具(如Windows的命令提示符或Mac的终端),进入项目文件夹。 12 | 13 | 4. 运行以下命令安装必要的依赖: 14 | 15 | ``` 16 | npm install 17 | ``` 18 | 19 | ## 使用方法 20 | 21 | ### 1. 生成助记词 22 | 23 | 首先,您需要生成助记词。使用 `creatingMMC.js` 文件: 24 | 25 | 1. 打开 `creatingMMC.js` 文件。 26 | 2. 修改以下变量: 27 | ```javascript 28 | const mnemonicCount = 1; // 生成的助记词数量 29 | const wordCountPerMnemonic = 12; // 生成的助记词位数 30 | ``` 31 | 3. 保存文件并运行: 32 | ``` 33 | node creatingMMC.js 34 | ``` 35 | 4. 生成的助记词将保存在 `mnemonic.txt` 文件中。 36 | 37 | ### 2. 生成比特币(BTC)钱包 38 | 39 | 使用 `generateBTCAddress.js` 文件: 40 | 41 | 1. 打开 `generateBTCAddress.js` 文件。 42 | 2. 找到并修改以下行: 43 | ```javascript 44 | const mnemonic = ""; // 填入您的助记词 45 | const walletCount = 10; // 设置想要生成的钱包数量 46 | ``` 47 | 3. 保存文件并运行: 48 | ``` 49 | node generateBTCAddress.js 50 | ``` 51 | 4. 生成的钱包信息将保存在 `btc_wallets.csv` 和 `BTCIncompleteWallet.txt` 文件中。 52 | 53 | ### 3. 生成以太坊(ETH)钱包 54 | 55 | 使用 `mmcToPk.js` 文件: 56 | 57 | 1. 打开 `mmcToPk.js` 文件。 58 | 2. 找到并修改以下行: 59 | ```javascript 60 | const mnemonic = " "; // 填入您的助记词 61 | const walletCount = 10; // 设置想要生成的钱包数量 62 | ``` 63 | 3. 保存文件并运行: 64 | ``` 65 | node mmcToPk.js 66 | ``` 67 | 4. 生成的钱包信息将保存在 `wallet.csv` 和 `IncompleteWallet.txt` 文件中。 68 | 69 | ### 4. 生成索拉纳(SOL)钱包 70 | 71 | 使用 `solanaToPk.js` 文件: 72 | 73 | 1. 打开 `solanaToPk.js` 文件。 74 | 2. 找到并修改以下行: 75 | ```javascript 76 | const mnemonic = " "; // 填入您的助记词 77 | const walletCount = 10; // 设置想要生成的钱包数量 78 | ``` 79 | 3. 保存文件并运行: 80 | ``` 81 | node solanaToPk.js 82 | ``` 83 | 4. 生成的钱包信息将保存在 `solana_wallet.csv` 和 `SolanaIncompleteWallet.txt` 文件中。 84 | 85 | ## 注意事项 86 | 87 | - 请妥善保管生成的文件,特别是包含私钥的文件。私钥可以用来控制您的加密货币,请不要泄露给他人。 88 | - 本程序生成的是主网地址,可以直接在相应的区块链主网上使用。 89 | - 如果您想要重复使用同一组钱包,请保存并使用相同的助记词。 90 | - 使用完毕请及时清理助记词等高风险信息 91 | 92 | ## 安全提示 93 | 94 | - 在处理真实资金时,请确保在安全的环境中运行此程序。 95 | - 建议在离线环境中生成钱包,以提高安全性。 96 | - 定期备份您的钱包信息和助记词。 97 | - 不要在不安全的设备或网络上使用这些钱包。 98 | 99 | 如果您在使用过程中遇到任何问题,请随时提出问题或寻求帮助。 100 | -------------------------------------------------------------------------------- /creatingMMC.js: -------------------------------------------------------------------------------- 1 | const bip39 = require('bip39'); 2 | const crypto = require('crypto'); 3 | const fs = require('fs'); 4 | 5 | const mnemonicCount = 1; // 生成的助记词数量 6 | const wordCountPerMnemonic = 12; // 生成的助记词位数 7 | 8 | function generateMultipleMnemonics(count, wordCount) { 9 | if (![12, 15, 18, 21, 24].includes(wordCount)) { 10 | throw new Error('助记词位数必须为12, 15, 18, 21, 24位'); 11 | } 12 | 13 | const mnemonics = []; 14 | for (let i = 0; i < count; i++) { 15 | const entropyBits = (wordCount / 3) * 32; 16 | const entropy = crypto.randomBytes(entropyBits / 8); 17 | const mnemonic = bip39.entropyToMnemonic(entropy.toString('hex')); 18 | mnemonics.push(mnemonic); 19 | } 20 | 21 | return mnemonics; 22 | } 23 | 24 | function saveMnemonicsToFile(mnemonics, filename) { 25 | const data = mnemonics.join('\n\n'); 26 | fs.writeFileSync(filename, data, 'utf8'); 27 | } 28 | 29 | const mnemonics = generateMultipleMnemonics(mnemonicCount, wordCountPerMnemonic); 30 | 31 | saveMnemonicsToFile(mnemonics, 'mnemonic.txt'); 32 | 33 | console.log(`创建的 ${mnemonicCount} 已经保存至 mnemonic.txt`); 34 | -------------------------------------------------------------------------------- /generateBTCAddress.js: -------------------------------------------------------------------------------- 1 | const bitcoin = require('bitcoinjs-lib'); 2 | const ecc = require('tiny-secp256k1'); 3 | const { BIP32Factory } = require('bip32'); 4 | const bip32 = BIP32Factory(ecc); 5 | const bip39 = require('bip39'); 6 | const fs = require('fs'); 7 | const createCsvWriter = require('csv-writer').createObjectCsvWriter; 8 | const ECPair = require('ecpair').ECPairFactory(ecc); 9 | 10 | bitcoin.initEccLib(ecc); 11 | 12 | const mnemonic = ""; // 用户提供的助记词 13 | const walletCount = 10; // 用户自定义生成的钱包数量 14 | 15 | function generateBTCAddress(mnemonic, index) { 16 | // 从助记词生成种子 17 | const seed = bip39.mnemonicToSeedSync(mnemonic); 18 | 19 | // 创建HD钱包 20 | const root = bip32.fromSeed(seed); 21 | 22 | // 派生路径 (使用BIP84标准的P2TR路径) 23 | const path = `m/86'/0'/${index}'/0/0`; 24 | const child = root.derivePath(path); 25 | 26 | // 创建P2TR地址 (主网) 27 | const { address } = bitcoin.payments.p2tr({ 28 | internalPubkey: child.publicKey.slice(1, 33), 29 | network: bitcoin.networks.bitcoin 30 | }); 31 | 32 | // 生成WIF格式的私钥 33 | const keyPair = ECPair.fromPrivateKey(child.privateKey); 34 | const wif = keyPair.toWIF(); 35 | 36 | return { address, wif }; 37 | } 38 | 39 | async function saveWalletsToCSV(wallets, filename) { 40 | const csvWriter = createCsvWriter({ 41 | path: filename, 42 | header: [ 43 | { id: 'index', title: 'Index' }, 44 | { id: 'address', title: 'Address' }, 45 | { id: 'privateKey', title: 'PrivateKey' }, 46 | ], 47 | }); 48 | await csvWriter.writeRecords(wallets); 49 | } 50 | 51 | function saveIncompleteWalletsToFile(incompleteWallets, filename) { 52 | const data = incompleteWallets.map(wallet => `钱包${wallet.index}:${wallet.incompletePrivateKey}`).join('\n'); 53 | fs.writeFileSync(filename, data, 'utf8'); 54 | } 55 | 56 | async function main() { 57 | if (!mnemonic) { 58 | console.error('请提供助记词'); 59 | return; 60 | } 61 | 62 | const wallets = []; 63 | for (let i = 0; i < walletCount; i++) { 64 | const wallet = generateBTCAddress(mnemonic, i); 65 | wallets.push({ index: i + 1, address: wallet.address, privateKey: wallet.wif }); 66 | } 67 | 68 | await saveWalletsToCSV(wallets, 'btc_wallets.csv'); 69 | 70 | // 生成不完整的私钥 71 | const incompleteWallets = wallets.map(wallet => ({ 72 | index: wallet.index, 73 | incompletePrivateKey: wallet.privateKey.slice(0, -6) 74 | })); 75 | 76 | saveIncompleteWalletsToFile(incompleteWallets, 'BTCIncompleteWallet.txt'); 77 | 78 | 79 | console.log('BTC钱包已经全部生成并保存.'); 80 | } 81 | 82 | main().catch(console.error); -------------------------------------------------------------------------------- /mmcToPk.js: -------------------------------------------------------------------------------- 1 | const bip39 = require('bip39'); 2 | const hdkey = require('hdkey'); 3 | const Wallet = require('ethereumjs-wallet').default; 4 | const fs = require('fs'); 5 | const createCsvWriter = require('csv-writer').createObjectCsvWriter; 6 | 7 | const mnemonic = " "; // 提供的助记词 8 | const walletCount = 10; // 自定义生成的钱包数量 9 | 10 | function generateWalletFromMnemonic(mnemonic, index) { 11 | const seed = bip39.mnemonicToSeedSync(mnemonic); 12 | const root = hdkey.fromMasterSeed(seed); 13 | const path = `m/44'/60'/0'/0/${index}`; 14 | const child = root.derive(path); 15 | const wallet = Wallet.fromPrivateKey(child.privateKey); 16 | const address = wallet.getAddressString(); 17 | const privateKey = wallet.getPrivateKeyString().slice(2); // remove '0x' prefix 18 | return { address, privateKey }; 19 | } 20 | 21 | async function saveWalletsToCSV(wallets, filename) { 22 | const csvWriter = createCsvWriter({ 23 | path: filename, 24 | header: [ 25 | { id: 'index', title: 'Index' }, 26 | { id: 'address', title: 'Address' }, 27 | { id: 'privateKey', title: 'PrivateKey' }, 28 | ], 29 | }); 30 | await csvWriter.writeRecords(wallets); 31 | } 32 | 33 | function saveIncompleteWalletsToFile(incompleteWallets, filename) { 34 | const data = incompleteWallets.map(wallet => `钱包${wallet.index}:${wallet.incompletePrivateKey}`).join('\n'); 35 | fs.writeFileSync(filename, data, 'utf8'); 36 | } 37 | 38 | async function main() { 39 | const wallets = []; 40 | for (let i = 0; i < walletCount; i++) { 41 | const wallet = generateWalletFromMnemonic(mnemonic, i); 42 | wallets.push({ index: i + 1, address: wallet.address, privateKey: wallet.privateKey }); 43 | } 44 | 45 | await saveWalletsToCSV(wallets, 'wallet.csv'); 46 | 47 | const incompleteWallets = wallets.map(wallet => ({ 48 | index: wallet.index, 49 | incompletePrivateKey: wallet.privateKey.slice(0, -6), 50 | })); 51 | 52 | saveIncompleteWalletsToFile(incompleteWallets, 'IncompleteWallet.txt'); 53 | 54 | console.log('钱包已经全部生成并保存.'); 55 | } 56 | 57 | main().catch(console.error); 58 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "walletmanager", 3 | "version": "1.0.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "walletmanager", 9 | "version": "1.0.0", 10 | "license": "ISC", 11 | "dependencies": { 12 | "@solana/web3.js": "^1.95.3", 13 | "bip32": "^4.0.0", 14 | "bip39": "^3.1.0", 15 | "bitcoinjs-lib": "^6.1.6", 16 | "crypto": "^1.0.1", 17 | "csv-writer": "^1.6.0", 18 | "ecpair": "^2.1.0", 19 | "ed25519-hd-key": "^1.3.0", 20 | "ethereumjs-wallet": "^1.0.2", 21 | "fs": "^0.0.1-security", 22 | "hdkey": "^2.1.0", 23 | "tiny-secp256k1": "^2.2.3" 24 | } 25 | }, 26 | "node_modules/@babel/runtime": { 27 | "version": "7.25.6", 28 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", 29 | "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", 30 | "license": "MIT", 31 | "dependencies": { 32 | "regenerator-runtime": "^0.14.0" 33 | }, 34 | "engines": { 35 | "node": ">=6.9.0" 36 | } 37 | }, 38 | "node_modules/@noble/curves": { 39 | "version": "1.5.0", 40 | "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.5.0.tgz", 41 | "integrity": "sha512-J5EKamIHnKPyClwVrzmaf5wSdQXgdHcPZIZLu3bwnbeCx8/7NPK5q2ZBWF+5FvYGByjiQQsJYX6jfgB2wDPn3A==", 42 | "license": "MIT", 43 | "dependencies": { 44 | "@noble/hashes": "1.4.0" 45 | }, 46 | "funding": { 47 | "url": "https://paulmillr.com/funding/" 48 | } 49 | }, 50 | "node_modules/@noble/hashes": { 51 | "version": "1.4.0", 52 | "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.4.0.tgz", 53 | "integrity": "sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==", 54 | "engines": { 55 | "node": ">= 16" 56 | }, 57 | "funding": { 58 | "url": "https://paulmillr.com/funding/" 59 | } 60 | }, 61 | "node_modules/@scure/base": { 62 | "version": "1.1.8", 63 | "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.8.tgz", 64 | "integrity": "sha512-6CyAclxj3Nb0XT7GHK6K4zK6k2xJm6E4Ft0Ohjt4WgegiFUHEtFb2CGzmPmGBwoIhrLsqNLYfLr04Y1GePrzZg==", 65 | "license": "MIT", 66 | "funding": { 67 | "url": "https://paulmillr.com/funding/" 68 | } 69 | }, 70 | "node_modules/@solana/buffer-layout": { 71 | "version": "4.0.1", 72 | "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", 73 | "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", 74 | "license": "MIT", 75 | "dependencies": { 76 | "buffer": "~6.0.3" 77 | }, 78 | "engines": { 79 | "node": ">=5.10" 80 | } 81 | }, 82 | "node_modules/@solana/web3.js": { 83 | "version": "1.95.3", 84 | "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.95.3.tgz", 85 | "integrity": "sha512-O6rPUN0w2fkNqx/Z3QJMB9L225Ex10PRDH8bTaIUPZXMPV0QP8ZpPvjQnXK+upUczlRgzHzd6SjKIha1p+I6og==", 86 | "license": "MIT", 87 | "dependencies": { 88 | "@babel/runtime": "^7.25.0", 89 | "@noble/curves": "^1.4.2", 90 | "@noble/hashes": "^1.4.0", 91 | "@solana/buffer-layout": "^4.0.1", 92 | "agentkeepalive": "^4.5.0", 93 | "bigint-buffer": "^1.1.5", 94 | "bn.js": "^5.2.1", 95 | "borsh": "^0.7.0", 96 | "bs58": "^4.0.1", 97 | "buffer": "6.0.3", 98 | "fast-stable-stringify": "^1.0.0", 99 | "jayson": "^4.1.1", 100 | "node-fetch": "^2.7.0", 101 | "rpc-websockets": "^9.0.2", 102 | "superstruct": "^2.0.2" 103 | } 104 | }, 105 | "node_modules/@swc/helpers": { 106 | "version": "0.5.12", 107 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.12.tgz", 108 | "integrity": "sha512-KMZNXiGibsW9kvZAO1Pam2JPTDBm+KSHMMHWdsyI/1DbIZjT2A6Gy3hblVXUMEDvUAKq+e0vL0X0o54owWji7g==", 109 | "license": "Apache-2.0", 110 | "dependencies": { 111 | "tslib": "^2.4.0" 112 | } 113 | }, 114 | "node_modules/@types/bn.js": { 115 | "version": "5.1.5", 116 | "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.5.tgz", 117 | "integrity": "sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A==", 118 | "dependencies": { 119 | "@types/node": "*" 120 | } 121 | }, 122 | "node_modules/@types/connect": { 123 | "version": "3.4.38", 124 | "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", 125 | "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", 126 | "license": "MIT", 127 | "dependencies": { 128 | "@types/node": "*" 129 | } 130 | }, 131 | "node_modules/@types/node": { 132 | "version": "20.12.12", 133 | "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", 134 | "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", 135 | "dependencies": { 136 | "undici-types": "~5.26.4" 137 | } 138 | }, 139 | "node_modules/@types/pbkdf2": { 140 | "version": "3.1.2", 141 | "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.2.tgz", 142 | "integrity": "sha512-uRwJqmiXmh9++aSu1VNEn3iIxWOhd8AHXNSdlaLfdAAdSTY9jYVeGWnzejM3dvrkbqE3/hyQkQQ29IFATEGlew==", 143 | "dependencies": { 144 | "@types/node": "*" 145 | } 146 | }, 147 | "node_modules/@types/secp256k1": { 148 | "version": "4.0.6", 149 | "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.6.tgz", 150 | "integrity": "sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==", 151 | "dependencies": { 152 | "@types/node": "*" 153 | } 154 | }, 155 | "node_modules/@types/uuid": { 156 | "version": "8.3.4", 157 | "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.4.tgz", 158 | "integrity": "sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==", 159 | "license": "MIT" 160 | }, 161 | "node_modules/@types/ws": { 162 | "version": "7.4.7", 163 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", 164 | "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", 165 | "license": "MIT", 166 | "dependencies": { 167 | "@types/node": "*" 168 | } 169 | }, 170 | "node_modules/aes-js": { 171 | "version": "3.1.2", 172 | "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz", 173 | "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==" 174 | }, 175 | "node_modules/agentkeepalive": { 176 | "version": "4.5.0", 177 | "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", 178 | "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", 179 | "license": "MIT", 180 | "dependencies": { 181 | "humanize-ms": "^1.2.1" 182 | }, 183 | "engines": { 184 | "node": ">= 8.0.0" 185 | } 186 | }, 187 | "node_modules/base-x": { 188 | "version": "3.0.9", 189 | "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", 190 | "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", 191 | "dependencies": { 192 | "safe-buffer": "^5.0.1" 193 | } 194 | }, 195 | "node_modules/base64-js": { 196 | "version": "1.5.1", 197 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", 198 | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", 199 | "funding": [ 200 | { 201 | "type": "github", 202 | "url": "https://github.com/sponsors/feross" 203 | }, 204 | { 205 | "type": "patreon", 206 | "url": "https://www.patreon.com/feross" 207 | }, 208 | { 209 | "type": "consulting", 210 | "url": "https://feross.org/support" 211 | } 212 | ], 213 | "license": "MIT" 214 | }, 215 | "node_modules/bech32": { 216 | "version": "2.0.0", 217 | "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", 218 | "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==", 219 | "license": "MIT" 220 | }, 221 | "node_modules/bigint-buffer": { 222 | "version": "1.1.5", 223 | "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", 224 | "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", 225 | "hasInstallScript": true, 226 | "license": "Apache-2.0", 227 | "dependencies": { 228 | "bindings": "^1.3.0" 229 | }, 230 | "engines": { 231 | "node": ">= 10.0.0" 232 | } 233 | }, 234 | "node_modules/bindings": { 235 | "version": "1.5.0", 236 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", 237 | "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", 238 | "license": "MIT", 239 | "dependencies": { 240 | "file-uri-to-path": "1.0.0" 241 | } 242 | }, 243 | "node_modules/bip174": { 244 | "version": "2.1.1", 245 | "resolved": "https://registry.npmjs.org/bip174/-/bip174-2.1.1.tgz", 246 | "integrity": "sha512-mdFV5+/v0XyNYXjBS6CQPLo9ekCx4gtKZFnJm5PMto7Fs9hTTDpkkzOB7/FtluRI6JbUUAu+snTYfJRgHLZbZQ==", 247 | "license": "MIT", 248 | "engines": { 249 | "node": ">=8.0.0" 250 | } 251 | }, 252 | "node_modules/bip32": { 253 | "version": "4.0.0", 254 | "resolved": "https://registry.npmjs.org/bip32/-/bip32-4.0.0.tgz", 255 | "integrity": "sha512-aOGy88DDlVUhspIXJN+dVEtclhIsfAUppD43V0j40cPTld3pv/0X/MlrZSZ6jowIaQQzFwP8M6rFU2z2mVYjDQ==", 256 | "license": "MIT", 257 | "dependencies": { 258 | "@noble/hashes": "^1.2.0", 259 | "@scure/base": "^1.1.1", 260 | "typeforce": "^1.11.5", 261 | "wif": "^2.0.6" 262 | }, 263 | "engines": { 264 | "node": ">=6.0.0" 265 | } 266 | }, 267 | "node_modules/bip39": { 268 | "version": "3.1.0", 269 | "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", 270 | "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", 271 | "license": "ISC", 272 | "dependencies": { 273 | "@noble/hashes": "^1.2.0" 274 | } 275 | }, 276 | "node_modules/bitcoinjs-lib": { 277 | "version": "6.1.6", 278 | "resolved": "https://registry.npmjs.org/bitcoinjs-lib/-/bitcoinjs-lib-6.1.6.tgz", 279 | "integrity": "sha512-Fk8+Vc+e2rMoDU5gXkW9tD+313rhkm5h6N9HfZxXvYU9LedttVvmXKTgd9k5rsQJjkSfsv6XRM8uhJv94SrvcA==", 280 | "license": "MIT", 281 | "dependencies": { 282 | "@noble/hashes": "^1.2.0", 283 | "bech32": "^2.0.0", 284 | "bip174": "^2.1.1", 285 | "bs58check": "^3.0.1", 286 | "typeforce": "^1.11.3", 287 | "varuint-bitcoin": "^1.1.2" 288 | }, 289 | "engines": { 290 | "node": ">=8.0.0" 291 | } 292 | }, 293 | "node_modules/bitcoinjs-lib/node_modules/base-x": { 294 | "version": "4.0.0", 295 | "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", 296 | "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==", 297 | "license": "MIT" 298 | }, 299 | "node_modules/bitcoinjs-lib/node_modules/bs58": { 300 | "version": "5.0.0", 301 | "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", 302 | "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", 303 | "license": "MIT", 304 | "dependencies": { 305 | "base-x": "^4.0.0" 306 | } 307 | }, 308 | "node_modules/bitcoinjs-lib/node_modules/bs58check": { 309 | "version": "3.0.1", 310 | "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-3.0.1.tgz", 311 | "integrity": "sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ==", 312 | "license": "MIT", 313 | "dependencies": { 314 | "@noble/hashes": "^1.2.0", 315 | "bs58": "^5.0.0" 316 | } 317 | }, 318 | "node_modules/blakejs": { 319 | "version": "1.2.1", 320 | "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", 321 | "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" 322 | }, 323 | "node_modules/bn.js": { 324 | "version": "5.2.1", 325 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", 326 | "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" 327 | }, 328 | "node_modules/borsh": { 329 | "version": "0.7.0", 330 | "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", 331 | "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", 332 | "license": "Apache-2.0", 333 | "dependencies": { 334 | "bn.js": "^5.2.0", 335 | "bs58": "^4.0.0", 336 | "text-encoding-utf-8": "^1.0.2" 337 | } 338 | }, 339 | "node_modules/brorand": { 340 | "version": "1.1.0", 341 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 342 | "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" 343 | }, 344 | "node_modules/browserify-aes": { 345 | "version": "1.2.0", 346 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", 347 | "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", 348 | "dependencies": { 349 | "buffer-xor": "^1.0.3", 350 | "cipher-base": "^1.0.0", 351 | "create-hash": "^1.1.0", 352 | "evp_bytestokey": "^1.0.3", 353 | "inherits": "^2.0.1", 354 | "safe-buffer": "^5.0.1" 355 | } 356 | }, 357 | "node_modules/bs58": { 358 | "version": "4.0.1", 359 | "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", 360 | "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", 361 | "dependencies": { 362 | "base-x": "^3.0.2" 363 | } 364 | }, 365 | "node_modules/bs58check": { 366 | "version": "2.1.2", 367 | "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", 368 | "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", 369 | "dependencies": { 370 | "bs58": "^4.0.0", 371 | "create-hash": "^1.1.0", 372 | "safe-buffer": "^5.1.2" 373 | } 374 | }, 375 | "node_modules/buffer": { 376 | "version": "6.0.3", 377 | "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", 378 | "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", 379 | "funding": [ 380 | { 381 | "type": "github", 382 | "url": "https://github.com/sponsors/feross" 383 | }, 384 | { 385 | "type": "patreon", 386 | "url": "https://www.patreon.com/feross" 387 | }, 388 | { 389 | "type": "consulting", 390 | "url": "https://feross.org/support" 391 | } 392 | ], 393 | "license": "MIT", 394 | "dependencies": { 395 | "base64-js": "^1.3.1", 396 | "ieee754": "^1.2.1" 397 | } 398 | }, 399 | "node_modules/buffer-xor": { 400 | "version": "1.0.3", 401 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 402 | "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" 403 | }, 404 | "node_modules/bufferutil": { 405 | "version": "4.0.8", 406 | "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", 407 | "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", 408 | "hasInstallScript": true, 409 | "license": "MIT", 410 | "optional": true, 411 | "dependencies": { 412 | "node-gyp-build": "^4.3.0" 413 | }, 414 | "engines": { 415 | "node": ">=6.14.2" 416 | } 417 | }, 418 | "node_modules/cipher-base": { 419 | "version": "1.0.4", 420 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 421 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 422 | "dependencies": { 423 | "inherits": "^2.0.1", 424 | "safe-buffer": "^5.0.1" 425 | } 426 | }, 427 | "node_modules/commander": { 428 | "version": "2.20.3", 429 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 430 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 431 | "license": "MIT" 432 | }, 433 | "node_modules/create-hash": { 434 | "version": "1.2.0", 435 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", 436 | "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", 437 | "dependencies": { 438 | "cipher-base": "^1.0.1", 439 | "inherits": "^2.0.1", 440 | "md5.js": "^1.3.4", 441 | "ripemd160": "^2.0.1", 442 | "sha.js": "^2.4.0" 443 | } 444 | }, 445 | "node_modules/create-hmac": { 446 | "version": "1.1.7", 447 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", 448 | "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", 449 | "dependencies": { 450 | "cipher-base": "^1.0.3", 451 | "create-hash": "^1.1.0", 452 | "inherits": "^2.0.1", 453 | "ripemd160": "^2.0.0", 454 | "safe-buffer": "^5.0.1", 455 | "sha.js": "^2.4.8" 456 | } 457 | }, 458 | "node_modules/crypto": { 459 | "version": "1.0.1", 460 | "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", 461 | "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", 462 | "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in." 463 | }, 464 | "node_modules/csv-writer": { 465 | "version": "1.6.0", 466 | "resolved": "https://registry.npmjs.org/csv-writer/-/csv-writer-1.6.0.tgz", 467 | "integrity": "sha512-NOx7YDFWEsM/fTRAJjRpPp8t+MKRVvniAg9wQlUKx20MFrPs73WLJhFf5iteqrxNYnsy924K3Iroh3yNHeYd2g==" 468 | }, 469 | "node_modules/delay": { 470 | "version": "5.0.0", 471 | "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", 472 | "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", 473 | "license": "MIT", 474 | "engines": { 475 | "node": ">=10" 476 | }, 477 | "funding": { 478 | "url": "https://github.com/sponsors/sindresorhus" 479 | } 480 | }, 481 | "node_modules/ecpair": { 482 | "version": "2.1.0", 483 | "resolved": "https://registry.npmjs.org/ecpair/-/ecpair-2.1.0.tgz", 484 | "integrity": "sha512-cL/mh3MtJutFOvFc27GPZE2pWL3a3k4YvzUWEOvilnfZVlH3Jwgx/7d6tlD7/75tNk8TG2m+7Kgtz0SI1tWcqw==", 485 | "license": "MIT", 486 | "dependencies": { 487 | "randombytes": "^2.1.0", 488 | "typeforce": "^1.18.0", 489 | "wif": "^2.0.6" 490 | }, 491 | "engines": { 492 | "node": ">=8.0.0" 493 | } 494 | }, 495 | "node_modules/ed25519-hd-key": { 496 | "version": "1.3.0", 497 | "resolved": "https://registry.npmjs.org/ed25519-hd-key/-/ed25519-hd-key-1.3.0.tgz", 498 | "integrity": "sha512-IWwAyiiuJQhgu3L8NaHb68eJxTu2pgCwxIBdgpLJdKpYZM46+AXePSVTr7fkNKaUOfOL4IrjEUaQvyVRIDP7fg==", 499 | "license": "MIT", 500 | "dependencies": { 501 | "create-hmac": "1.1.7", 502 | "tweetnacl": "1.0.3" 503 | } 504 | }, 505 | "node_modules/elliptic": { 506 | "version": "6.5.5", 507 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.5.tgz", 508 | "integrity": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==", 509 | "dependencies": { 510 | "bn.js": "^4.11.9", 511 | "brorand": "^1.1.0", 512 | "hash.js": "^1.0.0", 513 | "hmac-drbg": "^1.0.1", 514 | "inherits": "^2.0.4", 515 | "minimalistic-assert": "^1.0.1", 516 | "minimalistic-crypto-utils": "^1.0.1" 517 | } 518 | }, 519 | "node_modules/elliptic/node_modules/bn.js": { 520 | "version": "4.12.0", 521 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", 522 | "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" 523 | }, 524 | "node_modules/es6-promise": { 525 | "version": "4.2.8", 526 | "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", 527 | "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", 528 | "license": "MIT" 529 | }, 530 | "node_modules/es6-promisify": { 531 | "version": "5.0.0", 532 | "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", 533 | "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", 534 | "license": "MIT", 535 | "dependencies": { 536 | "es6-promise": "^4.0.3" 537 | } 538 | }, 539 | "node_modules/ethereum-cryptography": { 540 | "version": "0.1.3", 541 | "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", 542 | "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", 543 | "dependencies": { 544 | "@types/pbkdf2": "^3.0.0", 545 | "@types/secp256k1": "^4.0.1", 546 | "blakejs": "^1.1.0", 547 | "browserify-aes": "^1.2.0", 548 | "bs58check": "^2.1.2", 549 | "create-hash": "^1.2.0", 550 | "create-hmac": "^1.1.7", 551 | "hash.js": "^1.1.7", 552 | "keccak": "^3.0.0", 553 | "pbkdf2": "^3.0.17", 554 | "randombytes": "^2.1.0", 555 | "safe-buffer": "^5.1.2", 556 | "scrypt-js": "^3.0.0", 557 | "secp256k1": "^4.0.1", 558 | "setimmediate": "^1.0.5" 559 | } 560 | }, 561 | "node_modules/ethereumjs-util": { 562 | "version": "7.1.5", 563 | "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", 564 | "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", 565 | "dependencies": { 566 | "@types/bn.js": "^5.1.0", 567 | "bn.js": "^5.1.2", 568 | "create-hash": "^1.1.2", 569 | "ethereum-cryptography": "^0.1.3", 570 | "rlp": "^2.2.4" 571 | }, 572 | "engines": { 573 | "node": ">=10.0.0" 574 | } 575 | }, 576 | "node_modules/ethereumjs-wallet": { 577 | "version": "1.0.2", 578 | "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz", 579 | "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==", 580 | "dependencies": { 581 | "aes-js": "^3.1.2", 582 | "bs58check": "^2.1.2", 583 | "ethereum-cryptography": "^0.1.3", 584 | "ethereumjs-util": "^7.1.2", 585 | "randombytes": "^2.1.0", 586 | "scrypt-js": "^3.0.1", 587 | "utf8": "^3.0.0", 588 | "uuid": "^8.3.2" 589 | } 590 | }, 591 | "node_modules/eventemitter3": { 592 | "version": "5.0.1", 593 | "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", 594 | "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", 595 | "license": "MIT" 596 | }, 597 | "node_modules/evp_bytestokey": { 598 | "version": "1.0.3", 599 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 600 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 601 | "dependencies": { 602 | "md5.js": "^1.3.4", 603 | "safe-buffer": "^5.1.1" 604 | } 605 | }, 606 | "node_modules/eyes": { 607 | "version": "0.1.8", 608 | "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", 609 | "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", 610 | "engines": { 611 | "node": "> 0.1.90" 612 | } 613 | }, 614 | "node_modules/fast-stable-stringify": { 615 | "version": "1.0.0", 616 | "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", 617 | "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==", 618 | "license": "MIT" 619 | }, 620 | "node_modules/file-uri-to-path": { 621 | "version": "1.0.0", 622 | "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", 623 | "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", 624 | "license": "MIT" 625 | }, 626 | "node_modules/fs": { 627 | "version": "0.0.1-security", 628 | "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz", 629 | "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==" 630 | }, 631 | "node_modules/hash-base": { 632 | "version": "3.1.0", 633 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", 634 | "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", 635 | "dependencies": { 636 | "inherits": "^2.0.4", 637 | "readable-stream": "^3.6.0", 638 | "safe-buffer": "^5.2.0" 639 | }, 640 | "engines": { 641 | "node": ">=4" 642 | } 643 | }, 644 | "node_modules/hash.js": { 645 | "version": "1.1.7", 646 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", 647 | "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", 648 | "dependencies": { 649 | "inherits": "^2.0.3", 650 | "minimalistic-assert": "^1.0.1" 651 | } 652 | }, 653 | "node_modules/hdkey": { 654 | "version": "2.1.0", 655 | "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.1.0.tgz", 656 | "integrity": "sha512-i9Wzi0Dy49bNS4tXXeGeu0vIcn86xXdPQUpEYg+SO1YiO8HtomjmmRMaRyqL0r59QfcD4PfVbSF3qmsWFwAemA==", 657 | "dependencies": { 658 | "bs58check": "^2.1.2", 659 | "ripemd160": "^2.0.2", 660 | "safe-buffer": "^5.1.1", 661 | "secp256k1": "^4.0.0" 662 | } 663 | }, 664 | "node_modules/hmac-drbg": { 665 | "version": "1.0.1", 666 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 667 | "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", 668 | "dependencies": { 669 | "hash.js": "^1.0.3", 670 | "minimalistic-assert": "^1.0.0", 671 | "minimalistic-crypto-utils": "^1.0.1" 672 | } 673 | }, 674 | "node_modules/humanize-ms": { 675 | "version": "1.2.1", 676 | "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", 677 | "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", 678 | "license": "MIT", 679 | "dependencies": { 680 | "ms": "^2.0.0" 681 | } 682 | }, 683 | "node_modules/ieee754": { 684 | "version": "1.2.1", 685 | "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", 686 | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", 687 | "funding": [ 688 | { 689 | "type": "github", 690 | "url": "https://github.com/sponsors/feross" 691 | }, 692 | { 693 | "type": "patreon", 694 | "url": "https://www.patreon.com/feross" 695 | }, 696 | { 697 | "type": "consulting", 698 | "url": "https://feross.org/support" 699 | } 700 | ], 701 | "license": "BSD-3-Clause" 702 | }, 703 | "node_modules/inherits": { 704 | "version": "2.0.4", 705 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 706 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" 707 | }, 708 | "node_modules/isomorphic-ws": { 709 | "version": "4.0.1", 710 | "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", 711 | "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", 712 | "license": "MIT", 713 | "peerDependencies": { 714 | "ws": "*" 715 | } 716 | }, 717 | "node_modules/jayson": { 718 | "version": "4.1.2", 719 | "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.2.tgz", 720 | "integrity": "sha512-5nzMWDHy6f+koZOuYsArh2AXs73NfWYVlFyJJuCedr93GpY+Ku8qq10ropSXVfHK+H0T6paA88ww+/dV+1fBNA==", 721 | "license": "MIT", 722 | "dependencies": { 723 | "@types/connect": "^3.4.33", 724 | "@types/node": "^12.12.54", 725 | "@types/ws": "^7.4.4", 726 | "commander": "^2.20.3", 727 | "delay": "^5.0.0", 728 | "es6-promisify": "^5.0.0", 729 | "eyes": "^0.1.8", 730 | "isomorphic-ws": "^4.0.1", 731 | "json-stringify-safe": "^5.0.1", 732 | "JSONStream": "^1.3.5", 733 | "uuid": "^8.3.2", 734 | "ws": "^7.5.10" 735 | }, 736 | "bin": { 737 | "jayson": "bin/jayson.js" 738 | }, 739 | "engines": { 740 | "node": ">=8" 741 | } 742 | }, 743 | "node_modules/jayson/node_modules/@types/node": { 744 | "version": "12.20.55", 745 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", 746 | "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", 747 | "license": "MIT" 748 | }, 749 | "node_modules/json-stringify-safe": { 750 | "version": "5.0.1", 751 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 752 | "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", 753 | "license": "ISC" 754 | }, 755 | "node_modules/jsonparse": { 756 | "version": "1.3.1", 757 | "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 758 | "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", 759 | "engines": [ 760 | "node >= 0.2.0" 761 | ], 762 | "license": "MIT" 763 | }, 764 | "node_modules/JSONStream": { 765 | "version": "1.3.5", 766 | "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", 767 | "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", 768 | "license": "(MIT OR Apache-2.0)", 769 | "dependencies": { 770 | "jsonparse": "^1.2.0", 771 | "through": ">=2.2.7 <3" 772 | }, 773 | "bin": { 774 | "JSONStream": "bin.js" 775 | }, 776 | "engines": { 777 | "node": "*" 778 | } 779 | }, 780 | "node_modules/keccak": { 781 | "version": "3.0.4", 782 | "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.4.tgz", 783 | "integrity": "sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q==", 784 | "hasInstallScript": true, 785 | "dependencies": { 786 | "node-addon-api": "^2.0.0", 787 | "node-gyp-build": "^4.2.0", 788 | "readable-stream": "^3.6.0" 789 | }, 790 | "engines": { 791 | "node": ">=10.0.0" 792 | } 793 | }, 794 | "node_modules/md5.js": { 795 | "version": "1.3.5", 796 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", 797 | "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", 798 | "dependencies": { 799 | "hash-base": "^3.0.0", 800 | "inherits": "^2.0.1", 801 | "safe-buffer": "^5.1.2" 802 | } 803 | }, 804 | "node_modules/minimalistic-assert": { 805 | "version": "1.0.1", 806 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", 807 | "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" 808 | }, 809 | "node_modules/minimalistic-crypto-utils": { 810 | "version": "1.0.1", 811 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 812 | "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" 813 | }, 814 | "node_modules/ms": { 815 | "version": "2.1.3", 816 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", 817 | "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", 818 | "license": "MIT" 819 | }, 820 | "node_modules/node-addon-api": { 821 | "version": "2.0.2", 822 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", 823 | "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" 824 | }, 825 | "node_modules/node-fetch": { 826 | "version": "2.7.0", 827 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", 828 | "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", 829 | "license": "MIT", 830 | "dependencies": { 831 | "whatwg-url": "^5.0.0" 832 | }, 833 | "engines": { 834 | "node": "4.x || >=6.0.0" 835 | }, 836 | "peerDependencies": { 837 | "encoding": "^0.1.0" 838 | }, 839 | "peerDependenciesMeta": { 840 | "encoding": { 841 | "optional": true 842 | } 843 | } 844 | }, 845 | "node_modules/node-gyp-build": { 846 | "version": "4.8.1", 847 | "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.1.tgz", 848 | "integrity": "sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==", 849 | "bin": { 850 | "node-gyp-build": "bin.js", 851 | "node-gyp-build-optional": "optional.js", 852 | "node-gyp-build-test": "build-test.js" 853 | } 854 | }, 855 | "node_modules/pbkdf2": { 856 | "version": "3.1.2", 857 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", 858 | "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", 859 | "dependencies": { 860 | "create-hash": "^1.1.2", 861 | "create-hmac": "^1.1.4", 862 | "ripemd160": "^2.0.1", 863 | "safe-buffer": "^5.0.1", 864 | "sha.js": "^2.4.8" 865 | }, 866 | "engines": { 867 | "node": ">=0.12" 868 | } 869 | }, 870 | "node_modules/randombytes": { 871 | "version": "2.1.0", 872 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 873 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 874 | "dependencies": { 875 | "safe-buffer": "^5.1.0" 876 | } 877 | }, 878 | "node_modules/readable-stream": { 879 | "version": "3.6.2", 880 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", 881 | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", 882 | "dependencies": { 883 | "inherits": "^2.0.3", 884 | "string_decoder": "^1.1.1", 885 | "util-deprecate": "^1.0.1" 886 | }, 887 | "engines": { 888 | "node": ">= 6" 889 | } 890 | }, 891 | "node_modules/regenerator-runtime": { 892 | "version": "0.14.1", 893 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", 894 | "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", 895 | "license": "MIT" 896 | }, 897 | "node_modules/ripemd160": { 898 | "version": "2.0.2", 899 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", 900 | "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", 901 | "dependencies": { 902 | "hash-base": "^3.0.0", 903 | "inherits": "^2.0.1" 904 | } 905 | }, 906 | "node_modules/rlp": { 907 | "version": "2.2.7", 908 | "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", 909 | "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", 910 | "dependencies": { 911 | "bn.js": "^5.2.0" 912 | }, 913 | "bin": { 914 | "rlp": "bin/rlp" 915 | } 916 | }, 917 | "node_modules/rpc-websockets": { 918 | "version": "9.0.2", 919 | "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-9.0.2.tgz", 920 | "integrity": "sha512-YzggvfItxMY3Lwuax5rC18inhbjJv9Py7JXRHxTIi94JOLrqBsSsUUc5bbl5W6c11tXhdfpDPK0KzBhoGe8jjw==", 921 | "license": "LGPL-3.0-only", 922 | "dependencies": { 923 | "@swc/helpers": "^0.5.11", 924 | "@types/uuid": "^8.3.4", 925 | "@types/ws": "^8.2.2", 926 | "buffer": "^6.0.3", 927 | "eventemitter3": "^5.0.1", 928 | "uuid": "^8.3.2", 929 | "ws": "^8.5.0" 930 | }, 931 | "funding": { 932 | "type": "paypal", 933 | "url": "https://paypal.me/kozjak" 934 | }, 935 | "optionalDependencies": { 936 | "bufferutil": "^4.0.1", 937 | "utf-8-validate": "^5.0.2" 938 | } 939 | }, 940 | "node_modules/rpc-websockets/node_modules/@types/ws": { 941 | "version": "8.5.12", 942 | "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.12.tgz", 943 | "integrity": "sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ==", 944 | "license": "MIT", 945 | "dependencies": { 946 | "@types/node": "*" 947 | } 948 | }, 949 | "node_modules/rpc-websockets/node_modules/ws": { 950 | "version": "8.18.0", 951 | "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", 952 | "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", 953 | "license": "MIT", 954 | "engines": { 955 | "node": ">=10.0.0" 956 | }, 957 | "peerDependencies": { 958 | "bufferutil": "^4.0.1", 959 | "utf-8-validate": ">=5.0.2" 960 | }, 961 | "peerDependenciesMeta": { 962 | "bufferutil": { 963 | "optional": true 964 | }, 965 | "utf-8-validate": { 966 | "optional": true 967 | } 968 | } 969 | }, 970 | "node_modules/safe-buffer": { 971 | "version": "5.2.1", 972 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 973 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 974 | "funding": [ 975 | { 976 | "type": "github", 977 | "url": "https://github.com/sponsors/feross" 978 | }, 979 | { 980 | "type": "patreon", 981 | "url": "https://www.patreon.com/feross" 982 | }, 983 | { 984 | "type": "consulting", 985 | "url": "https://feross.org/support" 986 | } 987 | ] 988 | }, 989 | "node_modules/scrypt-js": { 990 | "version": "3.0.1", 991 | "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", 992 | "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" 993 | }, 994 | "node_modules/secp256k1": { 995 | "version": "4.0.3", 996 | "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", 997 | "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", 998 | "hasInstallScript": true, 999 | "dependencies": { 1000 | "elliptic": "^6.5.4", 1001 | "node-addon-api": "^2.0.0", 1002 | "node-gyp-build": "^4.2.0" 1003 | }, 1004 | "engines": { 1005 | "node": ">=10.0.0" 1006 | } 1007 | }, 1008 | "node_modules/setimmediate": { 1009 | "version": "1.0.5", 1010 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", 1011 | "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" 1012 | }, 1013 | "node_modules/sha.js": { 1014 | "version": "2.4.11", 1015 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", 1016 | "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", 1017 | "dependencies": { 1018 | "inherits": "^2.0.1", 1019 | "safe-buffer": "^5.0.1" 1020 | }, 1021 | "bin": { 1022 | "sha.js": "bin.js" 1023 | } 1024 | }, 1025 | "node_modules/string_decoder": { 1026 | "version": "1.3.0", 1027 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", 1028 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", 1029 | "dependencies": { 1030 | "safe-buffer": "~5.2.0" 1031 | } 1032 | }, 1033 | "node_modules/superstruct": { 1034 | "version": "2.0.2", 1035 | "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-2.0.2.tgz", 1036 | "integrity": "sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A==", 1037 | "license": "MIT", 1038 | "engines": { 1039 | "node": ">=14.0.0" 1040 | } 1041 | }, 1042 | "node_modules/text-encoding-utf-8": { 1043 | "version": "1.0.2", 1044 | "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", 1045 | "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" 1046 | }, 1047 | "node_modules/through": { 1048 | "version": "2.3.8", 1049 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 1050 | "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", 1051 | "license": "MIT" 1052 | }, 1053 | "node_modules/tiny-secp256k1": { 1054 | "version": "2.2.3", 1055 | "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-2.2.3.tgz", 1056 | "integrity": "sha512-SGcL07SxcPN2nGKHTCvRMkQLYPSoeFcvArUSCYtjVARiFAWU44cCIqYS0mYAU6nY7XfvwURuTIGo2Omt3ZQr0Q==", 1057 | "license": "MIT", 1058 | "dependencies": { 1059 | "uint8array-tools": "0.0.7" 1060 | }, 1061 | "engines": { 1062 | "node": ">=14.0.0" 1063 | } 1064 | }, 1065 | "node_modules/tr46": { 1066 | "version": "0.0.3", 1067 | "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", 1068 | "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", 1069 | "license": "MIT" 1070 | }, 1071 | "node_modules/tslib": { 1072 | "version": "2.7.0", 1073 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", 1074 | "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", 1075 | "license": "0BSD" 1076 | }, 1077 | "node_modules/tweetnacl": { 1078 | "version": "1.0.3", 1079 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", 1080 | "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", 1081 | "license": "Unlicense" 1082 | }, 1083 | "node_modules/typeforce": { 1084 | "version": "1.18.0", 1085 | "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", 1086 | "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==", 1087 | "license": "MIT" 1088 | }, 1089 | "node_modules/uint8array-tools": { 1090 | "version": "0.0.7", 1091 | "resolved": "https://registry.npmjs.org/uint8array-tools/-/uint8array-tools-0.0.7.tgz", 1092 | "integrity": "sha512-vrrNZJiusLWoFWBqz5Y5KMCgP9W9hnjZHzZiZRT8oNAkq3d5Z5Oe76jAvVVSRh4U8GGR90N2X1dWtrhvx6L8UQ==", 1093 | "license": "MIT", 1094 | "engines": { 1095 | "node": ">=14.0.0" 1096 | } 1097 | }, 1098 | "node_modules/undici-types": { 1099 | "version": "5.26.5", 1100 | "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", 1101 | "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" 1102 | }, 1103 | "node_modules/utf-8-validate": { 1104 | "version": "5.0.10", 1105 | "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", 1106 | "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", 1107 | "hasInstallScript": true, 1108 | "license": "MIT", 1109 | "optional": true, 1110 | "dependencies": { 1111 | "node-gyp-build": "^4.3.0" 1112 | }, 1113 | "engines": { 1114 | "node": ">=6.14.2" 1115 | } 1116 | }, 1117 | "node_modules/utf8": { 1118 | "version": "3.0.0", 1119 | "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", 1120 | "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" 1121 | }, 1122 | "node_modules/util-deprecate": { 1123 | "version": "1.0.2", 1124 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 1125 | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" 1126 | }, 1127 | "node_modules/uuid": { 1128 | "version": "8.3.2", 1129 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", 1130 | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", 1131 | "bin": { 1132 | "uuid": "dist/bin/uuid" 1133 | } 1134 | }, 1135 | "node_modules/varuint-bitcoin": { 1136 | "version": "1.1.2", 1137 | "resolved": "https://registry.npmjs.org/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz", 1138 | "integrity": "sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw==", 1139 | "license": "MIT", 1140 | "dependencies": { 1141 | "safe-buffer": "^5.1.1" 1142 | } 1143 | }, 1144 | "node_modules/webidl-conversions": { 1145 | "version": "3.0.1", 1146 | "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", 1147 | "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", 1148 | "license": "BSD-2-Clause" 1149 | }, 1150 | "node_modules/whatwg-url": { 1151 | "version": "5.0.0", 1152 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", 1153 | "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", 1154 | "license": "MIT", 1155 | "dependencies": { 1156 | "tr46": "~0.0.3", 1157 | "webidl-conversions": "^3.0.0" 1158 | } 1159 | }, 1160 | "node_modules/wif": { 1161 | "version": "2.0.6", 1162 | "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", 1163 | "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", 1164 | "license": "MIT", 1165 | "dependencies": { 1166 | "bs58check": "<3.0.0" 1167 | } 1168 | }, 1169 | "node_modules/ws": { 1170 | "version": "7.5.10", 1171 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", 1172 | "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", 1173 | "license": "MIT", 1174 | "engines": { 1175 | "node": ">=8.3.0" 1176 | }, 1177 | "peerDependencies": { 1178 | "bufferutil": "^4.0.1", 1179 | "utf-8-validate": "^5.0.2" 1180 | }, 1181 | "peerDependenciesMeta": { 1182 | "bufferutil": { 1183 | "optional": true 1184 | }, 1185 | "utf-8-validate": { 1186 | "optional": true 1187 | } 1188 | } 1189 | } 1190 | } 1191 | } 1192 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "walletmanager", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "creatingMMC.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "@solana/web3.js": "^1.95.3", 13 | "bip32": "^4.0.0", 14 | "bip39": "^3.1.0", 15 | "bitcoinjs-lib": "^6.1.6", 16 | "crypto": "^1.0.1", 17 | "csv-writer": "^1.6.0", 18 | "ecpair": "^2.1.0", 19 | "ed25519-hd-key": "^1.3.0", 20 | "ethereumjs-wallet": "^1.0.2", 21 | "fs": "^0.0.1-security", 22 | "hdkey": "^2.1.0", 23 | "tiny-secp256k1": "^2.2.3" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /solanaToPk.js: -------------------------------------------------------------------------------- 1 | const { Keypair } = require('@solana/web3.js'); 2 | const bip39 = require('bip39'); 3 | const { derivePath } = require('ed25519-hd-key'); 4 | const fs = require('fs'); 5 | const createCsvWriter = require('csv-writer').createObjectCsvWriter; 6 | 7 | const mnemonic = " "; // 提供的助记词 8 | const walletCount = 10; // 自定义生成的钱包数量 9 | 10 | function generateSolanaWalletFromMnemonic(mnemonic, index) { 11 | const seed = bip39.mnemonicToSeedSync(mnemonic); 12 | const path = `m/44'/501'/${index}'/0'`; 13 | const derivedSeed = derivePath(path, seed.toString('hex')).key; 14 | const keypair = Keypair.fromSeed(derivedSeed); 15 | const address = keypair.publicKey.toBase58(); 16 | const privateKey = Buffer.from(keypair.secretKey).toString('hex'); 17 | return { address, privateKey }; 18 | } 19 | 20 | async function saveWalletsToCSV(wallets, filename) { 21 | const csvWriter = createCsvWriter({ 22 | path: filename, 23 | header: [ 24 | { id: 'index', title: 'Index' }, 25 | { id: 'address', title: 'Address' }, 26 | { id: 'privateKey', title: 'PrivateKey' }, 27 | ], 28 | }); 29 | await csvWriter.writeRecords(wallets); 30 | } 31 | 32 | function saveIncompleteWalletsToFile(incompleteWallets, filename) { 33 | const data = incompleteWallets.map(wallet => `钱包${wallet.index}:${wallet.incompletePrivateKey}`).join('\n'); 34 | fs.writeFileSync(filename, data, 'utf8'); 35 | } 36 | 37 | async function main() { 38 | const wallets = []; 39 | for (let i = 0; i < walletCount; i++) { 40 | const wallet = generateSolanaWalletFromMnemonic(mnemonic, i); 41 | wallets.push({ index: i + 1, address: wallet.address, privateKey: wallet.privateKey }); 42 | } 43 | 44 | await saveWalletsToCSV(wallets, 'solana_wallet.csv'); 45 | 46 | const incompleteWallets = wallets.map(wallet => ({ 47 | index: wallet.index, 48 | incompletePrivateKey: wallet.privateKey.slice(0, -6), 49 | })); 50 | 51 | saveIncompleteWalletsToFile(incompleteWallets, 'SolanaIncompleteWallet.txt'); 52 | 53 | console.log('Solana钱包已经全部生成并保存.'); 54 | } 55 | 56 | main().catch(console.error); --------------------------------------------------------------------------------