From c96a12bf2eb7a4eb3c6827c70f1dd2c52f85dbd5 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Sat, 5 Dec 2015 04:59:18 -0800 Subject: [PATCH] fix validateAddress. cleanup. --- lib/bcoin/chain.js | 56 +-------------------------------------------- lib/bcoin/peer.js | 7 ++++-- lib/bcoin/wallet.js | 2 ++ 3 files changed, 8 insertions(+), 57 deletions(-) diff --git a/lib/bcoin/chain.js b/lib/bcoin/chain.js index ad38b748..df87cfe2 100644 --- a/lib/bcoin/chain.js +++ b/lib/bcoin/chain.js @@ -461,42 +461,6 @@ Chain.prototype.locatorHashes = function(index) { return hashes; }; -Chain.prototype.locatorHashes = function(index) { - var chain = this.index.hashes; - var hashes = []; - var top = chain.length - 1; - var step = 1, start = 0; - - if (typeof index === 'string') { - for (i = top; i >= 0; i--) { - if (chain[i] === index) { - top = i; - break; - } - } - } else if (typeof index === 'number') { - top = index; - } - - for (var i = top; i > 0; i -= step, ++start) { - if (start >= 10) step *= 2; - hashes.push(chain[i]); - } - - hashes.push(chain[0]); - - return hashes; -}; - -Chain.prototype.__defineGetter__('orphan_bmap', function() { - var self = this; - return Object.keys(this.orphan.map).reduce(function(out, prev) { - var orphan = self.orphan.map[prev]; - out[orphan.hash('hex')] = orphan; - return out; - }, {}); -}); - Chain.prototype.getOrphanRoot = function getOrphanRoot(hash) { var self = this; @@ -504,31 +468,13 @@ Chain.prototype.getOrphanRoot = function getOrphanRoot(hash) { hash = hash.hash('hex'); } - var orphans = this.orphan_bmap; + var orphans = this.orphan.bmap; - /* - var orphanRoot = hash; - var last = orphanRoot; - while (orphans[last]) { - orphanRoot = last; - last = orphans[last].prevBlock; - } - */ - - // accurate: var orphanRoot = hash; while (orphans[orphanRoot.prevBlock]) { orphanRoot = orphans[orphanRoot.prevBlock]; } - /* - if hash stop gets last desired block, it should be: - var orphanRoot = hash; - while (orphans[orphanRoot]) { - orphanRoot = orphans[orphanRoot].prevBlock; - } - */ - return orphanRoot; }; diff --git a/lib/bcoin/peer.js b/lib/bcoin/peer.js index 8bb9d431..215ca533 100644 --- a/lib/bcoin/peer.js +++ b/lib/bcoin/peer.js @@ -92,7 +92,10 @@ Peer.prototype._init = function init() { if (this.pool.options.fullNode) { this.once('version', function() { var ip = self.socket && self.socket.remoteAddress || '0.0.0.0'; - self.pool.emit('debug', 'version (%s): loading locator hashes for getblocks', ip); + self.pool.emit('debug', + 'Sent version (%s): height=%s', + ip, this.pool.chain.getStartHeight()); + self.pool.emit('debug', 'version (%s): sending locator hashes', ip); self.chain.on('load', function() { self.loadHeaders(self.chain.locatorHashes(), 0); }); @@ -460,7 +463,7 @@ Peer.prototype._handleHeaders = function handleHeaders(headers) { for (var i = 0; i < headers.length; i++) { var header = headers[i]; var hash = header.hash; - // if (this.chain.orphan_bmap[hash]) { + // if (this.chain.orphan.bmap[hash]) { if (this.chain.orphan.map[header.prevBlock]) { this.loadHeaders(this.chain.locatorHashes(), this.chain.getOrphanRoot(hash)); continue; diff --git a/lib/bcoin/wallet.js b/lib/bcoin/wallet.js index 4936126d..df4579d1 100644 --- a/lib/bcoin/wallet.js +++ b/lib/bcoin/wallet.js @@ -200,6 +200,8 @@ Wallet.addr2hash = function addr2hash(addr, version) { }; Wallet.prototype.validateAddress = function validateAddress(addr, version) { + if (!addr) + return false; var p = Wallet.addr2hash(addr, version); return p.length !== 0; };