From c3129055851eb6dbbbaeb1d419c2cc0cab3b23f8 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Wed, 24 Feb 2016 03:50:16 -0800 Subject: [PATCH] do not copy scripts. --- lib/bcoin/input.js | 7 ++++--- lib/bcoin/output.js | 11 +++++++---- lib/bcoin/tx.js | 2 ++ 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/bcoin/input.js b/lib/bcoin/input.js index 1cdb4631..9cd5ae4b 100644 --- a/lib/bcoin/input.js +++ b/lib/bcoin/input.js @@ -35,13 +35,14 @@ function Input(options) { if (Buffer.isBuffer(this.prevout.hash)) this.prevout.hash = utils.toHex(this.prevout.hash); - this.script = options.script ? options.script.slice() : []; + // this.script = options.script ? options.script.slice() : []; + this.script = options.script || []; this.sequence = options.sequence == null ? 0xffffffff : options.sequence; this._size = options._size || 0; this._offset = options._offset || 0; - if (options.script && options.script._raw) - utils.hidden(this.script, '_raw', options.script._raw); + // if (options.script && options.script._raw) + // utils.hidden(this.script, '_raw', options.script._raw); } Input.prototype.__defineGetter__('data', function() { diff --git a/lib/bcoin/output.js b/lib/bcoin/output.js index 32ecc086..7d605e22 100644 --- a/lib/bcoin/output.js +++ b/lib/bcoin/output.js @@ -24,11 +24,14 @@ function Output(options) { value = options.value; - if (typeof value === 'number' && (value | 0) === value) + if (typeof value === 'number') { + assert(value % 1 === 0); value = new bn(value); + } this.value = utils.satoshi(value || new bn(0)); - this.script = options.script ? options.script.slice() : []; + // this.script = options.script ? options.script.slice() : []; + this.script = options.script || []; this._size = options._size || 0; this._offset = options._offset || 0; @@ -39,8 +42,8 @@ function Output(options) { assert(this.value.bitLength() <= 63); assert(!(this.value.toArray('be', 8)[0] & 0x80)); - if (options.script && options.script._raw) - utils.hidden(this.script, '_raw', options.script._raw); + // if (options.script && options.script._raw) + // utils.hidden(this.script, '_raw', options.script._raw); } Output.prototype.__defineGetter__('data', function() { diff --git a/lib/bcoin/tx.js b/lib/bcoin/tx.js index 0ae5d883..0e196245 100644 --- a/lib/bcoin/tx.js +++ b/lib/bcoin/tx.js @@ -972,6 +972,8 @@ TX.prototype.getInputs = function getInputs(unspent, options) { var i, size, newkb, change; var fee; + assert(tx.inputs.length === 0); + if (!options || typeof options !== 'object') { options = { changeAddress: arguments[1],