diff --git a/js/models/PublicKeyRing.js b/js/models/PublicKeyRing.js index 1a2da535a..3d47a523a 100644 --- a/js/models/PublicKeyRing.js +++ b/js/models/PublicKeyRing.js @@ -161,7 +161,7 @@ PublicKeyRing.prototype.addCopayer = function (newEpk) { }; -PublicKeyRing.prototype.getCopayersPubKeys = function () { +PublicKeyRing.prototype.getCopayersPubKeys = function (index, isChange) { this._checkKeys(); var pubKeys = []; @@ -186,7 +186,7 @@ PublicKeyRing.prototype._checkIndexRange = function (index, isChange) { PublicKeyRing.prototype.getRedeemScript = function (index, isChange) { this._checkIndexRange(index, isChange); - var pubKeys = this.getCopayersPubKeys(); + var pubKeys = this.getCopayersPubKeys(index, isChange); var script = Script.createMultisig(this.requiredCopayers, pubKeys); return script; }; @@ -207,9 +207,9 @@ PublicKeyRing.prototype.generateAddress = function(isChange) { var ret = this.getAddress(isChange ? this.changeAddressIndex : this.addressIndex, isChange); if (isChange) - this.addressIndex++; - else this.changeAddressIndex++; + else + this.addressIndex++; return ret; diff --git a/test/test.publickeyring.js b/test/test.publickeyring.js index 38c992905..9f2ec58fd 100644 --- a/test/test.publickeyring.js +++ b/test/test.publickeyring.js @@ -101,6 +101,11 @@ describe('PublicKeyRing model', function() { a.isValid().should.equal(true); a.isScript().should.equal(true); a.network().name.should.equal('livenet'); + + if (i>1) { + w.getAddress(i-1,isChange).should + .not.equal(w.getAddress(i-2,isChange)); + } } } });