diff --git a/lib/blockchain/chain.js b/lib/blockchain/chain.js index 85ab2259..1267b760 100644 --- a/lib/blockchain/chain.js +++ b/lib/blockchain/chain.js @@ -77,7 +77,7 @@ function Chain(options) { this.invalid = new LRU(100); this.state = new DeploymentState(); - this.tip = null; + this.tip = new ChainEntry(this); this.height = -1; this.synced = false; @@ -1827,7 +1827,7 @@ Chain.prototype.maybeSync = function maybeSync() { */ Chain.prototype.hasChainwork = function hasChainwork() { - return this.tip.chainwork.cmp(this.network.pow.chainwork) >= 0; + return this.tip.chainwork.gte(this.network.pow.chainwork); }; /** @@ -1838,7 +1838,7 @@ Chain.prototype.hasChainwork = function hasChainwork() { */ Chain.prototype.hasCheckpoints = function hasCheckpoints() { - return this.tip.chainwork.cmp(this.network.lastChainwork) >= 0; + return this.tip.chainwork.gte(this.network.lastChainwork); }; /** diff --git a/lib/blockchain/chainentry.js b/lib/blockchain/chainentry.js index 3425e866..c67b3bfc 100644 --- a/lib/blockchain/chainentry.js +++ b/lib/blockchain/chainentry.js @@ -17,6 +17,7 @@ const BufferReader = require('../utils/reader'); const StaticWriter = require('../utils/staticwriter'); const Headers = require('../primitives/headers'); const InvItem = require('../primitives/invitem'); +const ZERO = new BN(0); /** * Represents an entry in the chain. Unlike @@ -56,7 +57,7 @@ function ChainEntry(chain, options, prev) { this.bits = 0; this.nonce = 0; this.height = -1; - this.chainwork = null; + this.chainwork = ZERO; if (options) this.fromOptions(options, prev);