const persistence = require("../core/persistence/persistence"); const cryptoUtil = require("../core/cryptoUtil"); const bip39 = require('bip39'); const bip32 = require('bip32'); module.exports.description = "Create keys using a randomly generated seed"; module.exports.builder = (yargs) => { } module.exports.handler = (argv) => { console.log("Create keys using a randomly generated seed"); persistence().LoadDB() .then(db => { const mnemonic = bip39.generateMnemonic(); console.log("Backup generated Mnemonic: ", mnemonic); // TODO: validate user backed up mnemonic const seed = bip39.mnemonicToSeedSync(mnemonic); console.log("Seed: ", seed.toString('hex')) const node = bip32.fromSeed(seed); console.log("xpriv: ", node.toBase58()); // TODO: Get user key password const password = "vanished"; // TODO: Encrypt text securely... const encryptedPrivateKey = cryptoUtil.encrypt(node.toBase58(), password); console.log("Encrypted Private Key: ", encryptedPrivateKey); // Check if a key exist... db.Key.create({ encryptedPrivateKey: encryptedPrivateKey, name: "FirstKey" }).then(key => { console.log("Successfully created: ", key.name) }) }) }