From 96a92ae29b456f3a0449789b1858d6244890bd83 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Mon, 28 Mar 2016 12:29:00 -0700 Subject: [PATCH] witness parsing. --- lib/bcoin/input.js | 4 +--- lib/bcoin/protocol/parser.js | 16 ++++++++-------- lib/bcoin/script.js | 2 +- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/bcoin/input.js b/lib/bcoin/input.js index ffc1a624..64304225 100644 --- a/lib/bcoin/input.js +++ b/lib/bcoin/input.js @@ -24,8 +24,6 @@ function Input(options, tx) { this.script = options.script || new bcoin.script([]); this.sequence = options.sequence == null ? 0xffffffff : options.sequence; this.witness = options.witness || new bcoin.script.witness([]); - this._witnessSize = options._witnessSize || 0; - this._witnessOffset = options._witnessOffset || 0; this._mutable = !tx || (tx instanceof bcoin.mtx); if (options.output) @@ -293,7 +291,7 @@ Input._fromExtended = function _fromExtended(data, enc) { p = new BufferReader(data); p.start(); input = bcoin.protocol.parser.parseInput(p); - input.witness = bcoin.protocol.parser.parseWitness(p).witness; + input.witness = bcoin.protocol.parser.parseWitness(p); p.end(); return input; diff --git a/lib/bcoin/protocol/parser.js b/lib/bcoin/protocol/parser.js index 692d244e..0a813114 100644 --- a/lib/bcoin/protocol/parser.js +++ b/lib/bcoin/protocol/parser.js @@ -589,7 +589,7 @@ Parser.parseWitnessTX = function parseWitnessTX(p) { for (i = 0; i < inCount; i++) { tx = Parser.parseWitness(p); - txIn[i].witness = tx.witness; + txIn[i].witness = tx; witnessSize += tx._size; } @@ -611,8 +611,8 @@ Parser.parseWitnessTX = function parseWitnessTX(p) { }; Parser.parseWitness = function parseWitness(p) { - var witness = []; - var chunkCount, i; + var items = []; + var witness, chunkCount, i; p = new BufferReader(p); p.start(); @@ -620,12 +620,12 @@ Parser.parseWitness = function parseWitness(p) { chunkCount = p.readVarint(); for (i = 0; i < chunkCount; i++) - witness.push(p.readVarBytes()); + items.push(p.readVarBytes()); - return { - witness: new bcoin.script.witness(witness), - _size: p.end() - }; + witness = new bcoin.script.witness(items); + witness._size = p.end(); + + return witness; }; Parser.parseReject = function parseReject(p) { diff --git a/lib/bcoin/script.js b/lib/bcoin/script.js index d8585ba6..2bee8eda 100644 --- a/lib/bcoin/script.js +++ b/lib/bcoin/script.js @@ -36,7 +36,7 @@ Witness.encode = function encode(witness) { }; Witness.decode = function decode(buf) { - return bcoin.protocol.parser.parseWitness(buf).witness.items; + return bcoin.protocol.parser.parseWitness(buf).items; }; Witness.prototype.clone = function clone() {