From c4cc6ba56da3d91aa931b78c55fd32e2d2459515 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Mon, 1 Dec 2014 12:59:56 -0300 Subject: [PATCH] fix tests with new script api --- lib/script.js | 10 ++++++++-- test/script.js | 5 ++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/lib/script.js b/lib/script.js index 8260ff6..94cb9c8 100644 --- a/lib/script.js +++ b/lib/script.js @@ -191,9 +191,15 @@ Script.prototype.isPublicKeyHashOut = function() { Script.prototype.isPublicKeyHashIn = function() { return !!(this.chunks.length === 2 && this.chunks[0].buf && - this.chunks[0].buf.length === 0x47 && + this.chunks[0].buf.length >= 0x47 && + this.chunks[0].buf.length <= 0x49 && this.chunks[1].buf && - this.chunks[1].buf.length === 0x21); + ( + // compressed public key + (this.chunks[1].buf[0] === 0x03 && this.chunks[1].buf.length === 0x21) || + // uncompressed public key + (this.chunks[1].buf[0] === 0x04 && this.chunks[1].buf.length === 0x41)) + ); }; /** diff --git a/test/script.js b/test/script.js index 5cec12a..0b04340 100644 --- a/test/script.js +++ b/test/script.js @@ -229,7 +229,7 @@ describe('Script', function() { describe('#isScripthashIn', function() { it('should identify this known scripthashin', function() { - Script('20 0000000000000000000000000000000000000000').isScriptHashIn().should.equal(true); + Script('OP_0 73 0x30460221008ca148504190c10eea7f5f9c283c719a37be58c3ad617928011a1bb9570901d2022100ced371a23e86af6f55ff4ce705c57d2721a09c4d192ca39d82c4239825f75a9801 72 0x30450220357011fd3b3ad2b8f2f2d01e05dc6108b51d2a245b4ef40c112d6004596f0475022100a8208c93a39e0c366b983f9a80bfaf89237fcd64ca543568badd2d18ee2e1d7501 OP_PUSHDATA1 105 0x5221024c02dff2f0b8263a562a69ec875b2c95ffad860f428acf2f9e8c6492bd067d362103546324a1351a6b601c623b463e33b6103ca444707d5b278ece1692f1aa7724a42103b1ad3b328429450069cc3f9fa80d537ee66ba1120e93f3f185a5bf686fb51e0a53ae').isScriptHashIn().should.equal(true); }); it('should identify this known non-scripthashin', function() { @@ -296,8 +296,7 @@ describe('Script', function() { Script('OP_HASH160 20 0x0000000000000000000000000000000000000000 OP_EQUAL').classify().should.equal(Script.types.SCRIPTHASH_OUT); }); it('should classify script hash in', function() { - var x = Script('OP_0 73 0x30460221008ca148504190c10eea7f5f9c283c719a37be58c3ad617928011a1bb9570901d2022100ced371a23e86af6f55ff4ce705c57d2721a09c4d192ca39d82c4239825f75a9801 72 0x30450220357011fd3b3ad2b8f2f2d01e05dc6108b51d2a245b4ef40c112d6004596f0475022100a8208c93a39e0c366b983f9a80bfaf89237fcd64ca543568badd2d18ee2e1d7501 OP_PUSHDATA1 105 0x5221024c02dff2f0b8263a562a69ec875b2c95ffad860f428acf2f9e8c6492bd067d362103546324a1351a6b601c623b463e33b6103ca444707d5b278ece1692f1aa7724a42103b1ad3b328429450069cc3f9fa80d537ee66ba1120e93f3f185a5bf686fb51e0a53ae'); - x.classify().should.equal(Script.types.SCRIPTHASH_IN); + Script('OP_0 73 0x30460221008ca148504190c10eea7f5f9c283c719a37be58c3ad617928011a1bb9570901d2022100ced371a23e86af6f55ff4ce705c57d2721a09c4d192ca39d82c4239825f75a9801 72 0x30450220357011fd3b3ad2b8f2f2d01e05dc6108b51d2a245b4ef40c112d6004596f0475022100a8208c93a39e0c366b983f9a80bfaf89237fcd64ca543568badd2d18ee2e1d7501 OP_PUSHDATA1 105 0x5221024c02dff2f0b8263a562a69ec875b2c95ffad860f428acf2f9e8c6492bd067d362103546324a1351a6b601c623b463e33b6103ca444707d5b278ece1692f1aa7724a42103b1ad3b328429450069cc3f9fa80d537ee66ba1120e93f3f185a5bf686fb51e0a53ae').classify().should.equal(Script.types.SCRIPTHASH_IN); }); it('should classify MULTISIG out', function() { Script('OP_2 21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 OP_2 OP_CHECKMULTISIG').classify().should.equal(Script.types.MULTISIG_OUT);