diff --git a/lib/primitives/tx.js b/lib/primitives/tx.js index 95ef010c..6409a83f 100644 --- a/lib/primitives/tx.js +++ b/lib/primitives/tx.js @@ -1727,17 +1727,17 @@ TX.prototype.checkInputs = function checkInputs(view, height) { let total = 0; for (const {prevout} of this.inputs) { - let coin = view.getEntry(prevout); + const entry = view.getEntry(prevout); - if (!coin) + if (!entry) return [-1, 'bad-txns-inputs-missingorspent', 0]; - if (coin.coinbase) { - if (height - coin.height < consensus.COINBASE_MATURITY) + if (entry.coinbase) { + if (height - entry.height < consensus.COINBASE_MATURITY) return [-1, 'bad-txns-premature-spend-of-coinbase', 0]; } - coin = view.getOutput(prevout); + const coin = view.getOutput(prevout); assert(coin); if (coin.value < 0 || coin.value > consensus.MAX_MONEY) @@ -2261,7 +2261,7 @@ TX.prototype.fromRaw = function fromRaw(data) { */ TX.prototype.fromReader = function fromReader(br) { - if (TX.isWitness(br)) + if (hasWitnessBytes(br)) return this.fromWitnessReader(br); br.start(); @@ -2512,20 +2512,6 @@ TX.prototype.getWitnessSizes = function getWitnessSizes() { return new RawTX(base + witness, witness); }; -/** - * Test whether data is a witness transaction. - * @param {Buffer|BufferReader} data - * @returns {Boolean} - */ - -TX.isWitness = function isWitness(br) { - if (br.left() < 6) - return false; - - return br.data[br.offset + 4] === 0 - && br.data[br.offset + 5] !== 0; -}; - /** * Test whether an object is a TX. * @param {Object} obj @@ -2540,6 +2526,14 @@ TX.isTX = function isTX(obj) { * Helpers */ +function hasWitnessBytes(br) { + if (br.left() < 6) + return false; + + return br.data[br.offset + 4] === 0 + && br.data[br.offset + 5] !== 0; +} + function RawTX(size, witness) { this.data = null; this.size = size;