diff --git a/lib/bcoin/txdb.js b/lib/bcoin/txdb.js index 15b836fd..63dd2948 100644 --- a/lib/bcoin/txdb.js +++ b/lib/bcoin/txdb.js @@ -483,16 +483,15 @@ TXDB.prototype.getInfo = function getInfo(tx, callback) { * Add an orphan (tx hash + input index) * to orphan list. Stored by its required coin ID. * @private - * @param {String} key - Required coin hash + index. - * @param {Hash} hash - Orphan transaction hash. - * @param {Number} index - Orphan input index. + * @param {Outpoint} prevout - Required coin hash & index. + * @param {Buffer} spender - Spender input hash and index. * @param {Function} callback - Returns [Error, Buffer]. */ -TXDB.prototype._addOrphan = function _addOrphan(hash, index, outpoint, callback) { +TXDB.prototype._addOrphan = function _addOrphan(prevout, spender, callback) { var self = this; var p = new BufferWriter(); - var key = this.key.o(hash, index); + var key = this.key.o(prevout.hash, prevout.index); this.get(key, function(err, data) { if (err) @@ -501,7 +500,7 @@ TXDB.prototype._addOrphan = function _addOrphan(hash, index, outpoint, callback) if (data) p.writeBytes(data); - p.writeBytes(outpoint); + p.writeBytes(spender); self.put(key, p.render()); @@ -512,7 +511,8 @@ TXDB.prototype._addOrphan = function _addOrphan(hash, index, outpoint, callback) /** * Retrieve orphan list by coin ID. * @private - * @param {String} key + * @param {Hash} hash + * @param {Number} index * @param {Function} callback - Returns [Error, {@link Orphan}]. */ @@ -767,7 +767,7 @@ TXDB.prototype.add = function add(tx, info, callback) { // Consume unspent money or add orphans utils.forEachSerial(tx.inputs, function(input, next, i) { var prevout = input.prevout; - var key, address, outpoint; + var key, address, spender; if (tx.isCoinbase()) return next(); @@ -782,12 +782,12 @@ TXDB.prototype.add = function add(tx, info, callback) { key = prevout.hash + prevout.index; // s/[outpoint-key] -> [spender-hash]|[spender-input-index] - outpoint = bcoin.outpoint.fromTX(tx, i).toRaw(); - self.put(self.key.s(prevout.hash, prevout.index), outpoint); + spender = bcoin.outpoint.fromTX(tx, i).toRaw(); + self.put(self.key.s(prevout.hash, prevout.index), spender); // Add orphan, if no parent transaction is yet known if (!input.coin) - return self._addOrphan(prevout.hash, prevout.index, outpoint, next); + return self._addOrphan(prevout, spender, next); self.del(self.key.c(prevout.hash, prevout.index)); self.del(self.key.C(path.account, prevout.hash, prevout.index));