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); const node = bip32.fromSeed(seed); // TODO: Get user key password const password = "vanished"; // TODO: Encrypt text securely... const encryptedPrivateKey = cryptoUtil.encrypt(node.toBase58(), password); // Check if a key exist... db.Key.create({ encryptedPrivateKey: encryptedPrivateKey.cipherText, iv: encryptedPrivateKey.iv, name: "FirstKey" }).then(key => { console.log("Successfully created: ", key.name) }) }) }