From d4f03f982e15073d0cb5aa3afafe9dd95f403e3c Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Fri, 20 May 2016 04:53:15 -0700 Subject: [PATCH] fix issue with mutable scripts. --- lib/bcoin/input.js | 2 +- lib/bcoin/output.js | 4 ++-- lib/bcoin/script.js | 4 ++-- test/chain-test.js | 1 + 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/bcoin/input.js b/lib/bcoin/input.js index 37557e9d..28952098 100644 --- a/lib/bcoin/input.js +++ b/lib/bcoin/input.js @@ -32,7 +32,7 @@ var BufferWriter = require('./writer'); function Input(options, mutable) { if (!(this instanceof Input)) - return new Input(options); + return new Input(options, mutable); assert(options, 'Input data is required.'); diff --git a/lib/bcoin/output.js b/lib/bcoin/output.js index 0e054ae2..798537a8 100644 --- a/lib/bcoin/output.js +++ b/lib/bcoin/output.js @@ -29,7 +29,7 @@ function Output(options, mutable) { var value; if (!(this instanceof Output)) - return new Output(options); + return new Output(options, mutable); assert(options, 'Output data is required.'); @@ -43,7 +43,7 @@ function Output(options, mutable) { this.script = bcoin.script(options.script, this.mutable); assert(typeof this.value === 'number'); - assert(!this.mutable || this.value > 0); + assert(!this.mutable || this.value >= 0); } /** diff --git a/lib/bcoin/script.js b/lib/bcoin/script.js index 689576a5..a7f56969 100644 --- a/lib/bcoin/script.js +++ b/lib/bcoin/script.js @@ -39,7 +39,7 @@ function Witness(items, mutable) { } if (!(this instanceof Witness)) - return new Witness(items); + return new Witness(items, mutable); this.mutable = !!mutable; @@ -818,7 +818,7 @@ function Script(code, mutable) { } if (!(this instanceof Script)) - return new Script(code); + return new Script(code, mutable); this.mutable = !!mutable; diff --git a/test/chain-test.js b/test/chain-test.js index efa2c371..3cb38dbd 100644 --- a/test/chain-test.js +++ b/test/chain-test.js @@ -40,6 +40,7 @@ describe('Chain', function() { value: utils.satoshi('25.0') }); redeemer.addInput(tx, 0); + redeemer.setLocktime(chain.height); wallet.sign(redeemer); attempt.addTX(redeemer); }