diff --git a/lib/block/merkleblock.js b/lib/block/merkleblock.js index 74d425c58..d2012664a 100644 --- a/lib/block/merkleblock.js +++ b/lib/block/merkleblock.js @@ -60,7 +60,6 @@ function MerkleBlock(arg) { throw new TypeError('Unrecognized argument for MerkleBlock'); } _.extend(this,info); - this._validMerkleTree = null; this._flagBitsUsed = 0; this._hashesUsed = 0; return this; @@ -144,18 +143,15 @@ MerkleBlock.prototype.toJSON = function toJSON() { MerkleBlock.prototype.validMerkleTree = function validMerkleTree() { $.checkState(_.isArray(this.flags), 'MerkleBlock flags is not an array'); $.checkState(_.isArray(this.hashes), 'MerkleBlock hashes is not an array'); - if(_.isBoolean(this._validMerkleTree)) { - return this._validMerkleTree; - } // Can't have more hashes than numTransactions if(this.hashes.length > this.numTransactions) { - return this._setValidMerkleTree(false); + return false; } // Can't have more flag bits than num hashes if(this.flags.length * 8 < this.hashes.length) { - return this._setValidMerkleTree(false); + return false; } var height = 0; @@ -167,9 +163,9 @@ MerkleBlock.prototype.validMerkleTree = function validMerkleTree() { this._hashesUsed = 0; var root = this._traverseMerkleTree(height, 0); if(this._hashesUsed !== this.hashes.length) { - return this._setValidMerkleTree(false); + false; } - return this._setValidMerkleTree(BufferUtil.equals(root, this.header.merkleRoot)); + return BufferUtil.equals(root, this.header.merkleRoot); } /** Traverse a the tree in this MerkleBlock, validating it along the way @@ -229,17 +225,6 @@ MerkleBlock.prototype.hasTransaction = function hasTransaction(tx) { || this.hashes.indexOf(revHash) !== -1); } -/** - * @param {Bool} - set the merkle tree validity - * @returns {Bool} - return true/false - * @private - */ -MerkleBlock.prototype._setValidMerkleTree = function(valid) { - this._validMerkleTree = valid; - return valid; -} - - /** * @param {Buffer} - MerkleBlock data * @returns {Object} - An Object representing merkleblock data diff --git a/test/merkleblock.js b/test/merkleblock.js index 61e52011e..236f863fa 100644 --- a/test/merkleblock.js +++ b/test/merkleblock.js @@ -129,19 +129,9 @@ describe('MerkleBlock', function() { data.JSON.forEach(function(json) { var b = MerkleBlock(JSON.stringify(json)); b.validMerkleTree().should.equal(true); - b._validMerkleTree.should.equal(true); }); }); - it('should respect _validMerkleTrees', function() { - var b = MerkleBlock(blockJSON); - b._validMerkleTree = false; - b.validMerkleTree().should.equal(false); - b._validMerkleTree = true; - b._validMerkleTree.should.equal(true); - b.validMerkleTree().should.equal(true); - }); - it('should not validate merkleblocks with too many hashes', function() { var b = MerkleBlock(JSON.stringify(data.JSON[0])); // Add too many hashes