hd-auth-wallet/lib/commands/create-keys.js
2019-11-26 22:43:24 +02:00

38 lines
1.3 KiB
JavaScript

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)
})
})
}