From 7896925b9d29b830ac58cb4f5cfe9ad7e68b0aa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Oliveira?= Date: Mon, 9 Aug 2021 12:47:36 +0100 Subject: [PATCH] refactor: improve script ux --- ...u-eth-recovery.js => lamassu-eth-recovery} | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) rename bin/{lamassu-eth-recovery.js => lamassu-eth-recovery} (69%) diff --git a/bin/lamassu-eth-recovery.js b/bin/lamassu-eth-recovery similarity index 69% rename from bin/lamassu-eth-recovery.js rename to bin/lamassu-eth-recovery index 4431db2a..b6f84b5a 100644 --- a/bin/lamassu-eth-recovery.js +++ b/bin/lamassu-eth-recovery @@ -1,3 +1,5 @@ +#!/usr/bin/env node + const hdkey = require('ethereumjs-wallet/hdkey') const hkdf = require('futoin-hkdf') const db = require('../lib/db') @@ -8,19 +10,30 @@ const fs = pify(require('fs')) const options = require('../lib/options') -const paymentPrefixPath = "m/44'/60'/0'/0'" const defaultPrefixPath = "m/44'/60'/1'/0'" const address = process.argv[2] +if (!options || !options.mnemonicPath) { + console.error(`Unable to fetch mnemonic from your account!`) + process.exit(1) +} + +if (!address) { + console.log('Usage: lamassu-eth-recovery ') + process.exit(2) +} + function run (address) { Promise.all([fetchMnemonic(), searchForHdIndex(address)]) .then(([mnemonic, hdIndex]) => { - if (!mnemonic || !hdIndex) { - console.log(`Error while retrieving private key!`) - return + try { + console.log(`Private key: `, defaultHdNode(mnemonic).deriveChild(hdIndex).getWallet().getPrivateKeyString()) + process.exit(0) + } catch (err) { + console.error(`Error while retrieving private key!`) + process.exit(3) } - console.log(`Private key: `, paymentHdNode(mnemonic).deriveChild(hdIndex).getWallet().getPrivateKeyString()) }) } @@ -39,12 +52,6 @@ function computeSeed (seed) { return hkdf(masterSeed, 32, { salt: 'lamassu-server-salt', info: 'wallet-seed' }) } -function paymentHdNode (masterSeed) { - if (!masterSeed) throw new Error('No master seed!') - const key = hdkey.fromMasterSeed(masterSeed) - return key.derivePath(paymentPrefixPath) -} - function defaultHdNode (masterSeed) { if (!masterSeed) throw new Error('No master seed!') const key = hdkey.fromMasterSeed(masterSeed)