-
Notifications
You must be signed in to change notification settings - Fork 0
/
generateWallet.js
59 lines (47 loc) · 2.08 KB
/
generateWallet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
const bip39 = require('bip39');
const { ethers } = require('ethers');
const { HDNode } = require('@ethersproject/hdnode');
const generateWallet = () => {
console.log("generateWallet running");
// Generate a mnemonic
const mnemonic = bip39.generateMnemonic();
// Derive the master seed from the mnemonic
const masterSeed = bip39.mnemonicToSeedSync(mnemonic);
// Derive Bitcoin private key
const bitcoinMasterNode = HDNode.fromSeed(masterSeed);
const bitcoinNode = bitcoinMasterNode.derivePath("m/44'/0'/0'/0");
const bitcoinPrivateKey = bitcoinNode.privateKey.toString('hex');
// Derive Ethereum private key
const ethereumMasterNode = HDNode.fromSeed(masterSeed);
const ethereumNode = ethereumMasterNode.derivePath("m/44'/60'/0'/0");
const ethereumPrivateKey = ethereumNode.privateKey.toString('hex');
// Example for USDT (or other ERC-20 tokens) using Ethereum derivation path
// const usdtNode = ethereumMasterNode.derivePath("m/44'/60'/0'/0/0");
// const usdtPrivateKey = usdtNode.privateKey.toString('hex');
// Return the generated wallet data or perform any other necessary actions
return {
mnemonic,
masterSeed: masterSeed.toString('hex'),
bitcoinPrivateKey,
ethereumPrivateKey,
// usdtPrivateKey,
};
};
// if (require.main === module) {
// // This code will only run when the module is executed directly as a script
// const wallet = generateWallet();
// console.log('Mnemonic:', wallet.mnemonic);
// console.log('Ethereum Private Key:', wallet.ethereumPrivateKey);
// console.log('USDT Private Key:', wallet.usdtPrivateKey);
// console.log('Bitcoin Private Key', wallet.bitcoinPrivateKey);
// console.log('Master Seed:', wallet.masterSeed.toString('hex'));
// }
const wallet = generateWallet();
console.log('Mnemonic:', wallet.mnemonic);
console.log('Ethereum Private Key:', wallet.ethereumPrivateKey);
console.log('USDT Private Key:', wallet.usdtPrivateKey);
console.log('Bitcoin Private Key', wallet.bitcoinPrivateKey);
console.log('Master Seed:', wallet.masterSeed.toString('hex'));
module.exports = {
generateWallet, wallet,
};