From 921bc2ff170a74bc3a273376be5ce6b43f0e2646 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Thu, 3 Apr 2014 22:06:57 -0300 Subject: [PATCH] add sorting of pubkeys for multisig addr generation --- Script.js | 23 ++++++++++++++++++++++- test/data/unspentSign.json | 2 +- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/Script.js b/Script.js index d104d98..fc93dbc 100644 --- a/Script.js +++ b/Script.js @@ -420,7 +420,28 @@ Script.createPubKeyHashOut = function(pubKeyHash) { return script; }; -Script.createMultisig = function(n_required, keys) { +Script._sortKeys = function(keys) { + return keys.sort(function(buf1, buf2) { + var len = buf1.length > buf1.length ? buf1.length : buf2.length; + for (var i = 0; i <= len; i++) { + if (buf1[i] === undefined) + return -1; //shorter strings come first + if (buf2[i] === undefined) + return 1; + if (buf1[i] < buf2[i]) + return -1; + if (buf1[i] > buf2[i]) + return 1; + else + continue; + } + return 0; + }); +}; + +Script.createMultisig = function(n_required, inKeys, opts) { + opts = opts || {}; + var keys = opts.noSorting ? i || inKeys : this._sortKeys(inKeys); var script = new Script(); script.writeN(n_required); keys.forEach(function(key) { diff --git a/test/data/unspentSign.json b/test/data/unspentSign.json index 19f9aac..e877c6c 100644 --- a/test/data/unspentSign.json +++ b/test/data/unspentSign.json @@ -68,7 +68,7 @@ ], "unspentP2sh": [ { - "address": "2Mwswt6Eih28xH8611fexpqKqJCLJMomveK", + "address": "2NDJbzwzsmRgD2o5HHXPhuq5g6tkKTjYkd6", "scriptPubKey": "a91432d272ce8a9b482b363408a0b1dd28123d59c63387", "txid": "2ac165fa7a3a2b535d106a0041c7568d03b531e58aeccdd3199d7289ab12cfc1", "vout": 1,