From f0640a42f769c7f69954a9ea9eb2f10f03d58bb1 Mon Sep 17 00:00:00 2001 From: adam Date: Thu, 17 Sep 2015 14:41:47 +0100 Subject: [PATCH 1/2] fixing incorrect check of signature validity --- lib/script/script.js | 4 ++-- test/script/script.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/script/script.js b/lib/script/script.js index f7b4165b9..07a274697 100644 --- a/lib/script/script.js +++ b/lib/script/script.js @@ -388,7 +388,7 @@ Script.prototype.isScriptHashOut = function() { buf[buf.length - 1] === Opcode.OP_EQUAL); }; -/** +/** * @returns {boolean} if this is a p2sh input script * Note that these are frequently indistinguishable from pubkeyhashin */ @@ -438,7 +438,7 @@ Script.prototype.isMultisigIn = function() { this.chunks.slice(1, this.chunks.length).every(function(obj) { return obj.buf && BufferUtil.isBuffer(obj.buf) && - obj.buf.length === 0x47; + Signature.isTxDER(obj.buf); }); }; diff --git a/test/script/script.js b/test/script/script.js index b436bbf15..a696e5086 100644 --- a/test/script/script.js +++ b/test/script/script.js @@ -347,7 +347,7 @@ describe('Script', function() { Script('OP_0 0x47 0x3044022002a27769ee33db258bdf7a3792e7da4143ec4001b551f73e6a190b8d1bde449d02206742c56ccd94a7a2e16ca52fc1ae4a0aa122b0014a867a80de104f9cb18e472c01').isMultisigIn().should.equal(true); }); it('should identify multisig in 2', function() { - Script('OP_0 0x47 0x3044022002a27769ee33db258bdf7a3792e7da4143ec4001b551f73e6a190b8d1bde449d02206742c56ccd94a7a2e16ca52fc1ae4a0aa122b0014a867a80de104f9cb18e472c01 0x47 30450220357011fd3b3ad2b8f2f2d01e05dc6108b51d2a245b4ef40c112d6004596f0475022100a8208c93a39e0c366b983f9a80bfaf89237fcd64ca543568badd2d18ee2e1d7501').isMultisigIn().should.equal(true); + Script('OP_0 0x47 0x3044022002a27769ee33db258bdf7a3792e7da4143ec4001b551f73e6a190b8d1bde449d02206742c56ccd94a7a2e16ca52fc1ae4a0aa122b0014a867a80de104f9cb18e472c01 0x49 0x30450220357011fd3b3ad2b8f2f2d01e05dc6108b51d2a245b4ef40c112d6004596f0475022100a8208c93a39e0c366b983f9a80bfaf89237fcd64ca543568badd2d18ee2e1d7501').isMultisigIn().should.equal(true); }); it('should identify non-multisig in 1', function() { Script('0x47 0x3044022002a27769ee33db258bdf7a3792e7da4143ec4001b551f73e6a190b8d1bde449d02206742c56ccd94a7a2e16ca52fc1ae4a0aa122b0014a867a80de104f9cb18e472c01').isMultisigIn().should.equal(false); From b582c2a4fcdb7a866b92767e4ddead828f954908 Mon Sep 17 00:00:00 2001 From: adam Date: Tue, 13 Oct 2015 12:41:05 +0100 Subject: [PATCH 2/2] correcting test opcode length error --- test/script/script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/script/script.js b/test/script/script.js index a696e5086..2434b7b63 100644 --- a/test/script/script.js +++ b/test/script/script.js @@ -347,7 +347,7 @@ describe('Script', function() { Script('OP_0 0x47 0x3044022002a27769ee33db258bdf7a3792e7da4143ec4001b551f73e6a190b8d1bde449d02206742c56ccd94a7a2e16ca52fc1ae4a0aa122b0014a867a80de104f9cb18e472c01').isMultisigIn().should.equal(true); }); it('should identify multisig in 2', function() { - Script('OP_0 0x47 0x3044022002a27769ee33db258bdf7a3792e7da4143ec4001b551f73e6a190b8d1bde449d02206742c56ccd94a7a2e16ca52fc1ae4a0aa122b0014a867a80de104f9cb18e472c01 0x49 0x30450220357011fd3b3ad2b8f2f2d01e05dc6108b51d2a245b4ef40c112d6004596f0475022100a8208c93a39e0c366b983f9a80bfaf89237fcd64ca543568badd2d18ee2e1d7501').isMultisigIn().should.equal(true); + Script('OP_0 0x47 0x3044022002a27769ee33db258bdf7a3792e7da4143ec4001b551f73e6a190b8d1bde449d02206742c56ccd94a7a2e16ca52fc1ae4a0aa122b0014a867a80de104f9cb18e472c01 0x48 0x30450220357011fd3b3ad2b8f2f2d01e05dc6108b51d2a245b4ef40c112d6004596f0475022100a8208c93a39e0c366b983f9a80bfaf89237fcd64ca543568badd2d18ee2e1d7501').isMultisigIn().should.equal(true); }); it('should identify non-multisig in 1', function() { Script('0x47 0x3044022002a27769ee33db258bdf7a3792e7da4143ec4001b551f73e6a190b8d1bde449d02206742c56ccd94a7a2e16ca52fc1ae4a0aa122b0014a867a80de104f9cb18e472c01').isMultisigIn().should.equal(false);