From 335cad57c583a9ab12a5b3085118a3616cdca43f Mon Sep 17 00:00:00 2001 From: pbca26 Date: Thu, 11 Jan 2018 21:57:35 +0300 Subject: [PATCH] spv keys export fix --- routes/shepherd/electrum/keys.js | 56 +++++++++++++++++--------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/routes/shepherd/electrum/keys.js b/routes/shepherd/electrum/keys.js index 52188fd..435a6ac 100644 --- a/routes/shepherd/electrum/keys.js +++ b/routes/shepherd/electrum/keys.js @@ -105,37 +105,39 @@ module.exports = (shepherd) => { let _seed = req.body.seed; let _wifError = false; - for (let key in shepherd.electrumServers) { - const _abbr = shepherd.electrumServers[key].abbr; - let isWif = false; - let priv; - let pub; - - try { - bs58check.decode(_seed); - isWif = true; - } catch (e) {} - - if (isWif) { + for (let key in shepherd.electrumCoins) { + if (key !== 'auth') { + const _abbr = key; + let isWif = false; + let priv; + let pub; + try { - let key = shepherd.isZcash(_abbr.toLowerCase()) ? bitcoinZcash.ECPair.fromWIF(_seed, shepherd.getNetworkData(_abbr.toLowerCase()), true) : bitcoin.ECPair.fromWIF(_seed, shepherd.getNetworkData(_abbr.toLowerCase()), true); - priv = key.toWIF(); - pub = key.getAddress(); - } catch (e) { - _wifError = true; - break; + bs58check.decode(_seed); + isWif = true; + } catch (e) {} + + if (isWif) { + try { + let key = shepherd.isZcash(_abbr.toLowerCase()) ? bitcoinZcash.ECPair.fromWIF(_seed, shepherd.getNetworkData(_abbr.toLowerCase()), true) : bitcoin.ECPair.fromWIF(_seed, shepherd.getNetworkData(_abbr.toLowerCase()), true); + priv = key.toWIF(); + pub = key.getAddress(); + } catch (e) { + _wifError = true; + break; + } + } else { + let _keys = shepherd.seedToWif(_seed, shepherd.findNetworkObj(_abbr), req.body.iguana); + priv = _keys.priv; + pub = _keys.pub; } - } else { - let _keys = shepherd.seedToWif(_seed, shepherd.findNetworkObj(_abbr), req.body.iguana); - priv = _keys.priv; - pub = _keys.pub; - } - if (shepherd.electrumKeys[_abbr].pub === pub && - shepherd.electrumKeys[_abbr].priv === priv) { - _matchingKeyPairs++; + if (shepherd.electrumKeys[_abbr].pub === pub && + shepherd.electrumKeys[_abbr].priv === priv) { + _matchingKeyPairs++; + } + _totalKeys++; } - _totalKeys++; } if (req.body.active) {