mirror of https://github.com/BTCPrivate/copay.git
Merge pull request #740 from maraoz/ref/preconditions/structure
mocha / karma / browser passed.
This commit is contained in:
commit
ee2b7fbdad
|
@ -190,7 +190,7 @@ PublicKeyRing.prototype.getScriptPubKeyHex = function(index, isChange) {
|
|||
|
||||
//generate a new address, update index.
|
||||
PublicKeyRing.prototype.generateAddress = function(isChange) {
|
||||
|
||||
isChange = !!isChange;
|
||||
var index = isChange ? this.indexes.getChangeIndex() : this.indexes.getReceiveIndex();
|
||||
var ret = this.getAddress(index, isChange);
|
||||
this.indexes.increment(isChange);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
'use strict';
|
||||
|
||||
var imports = require('soop').imports();
|
||||
var preconditions = require('preconditions').singleton();
|
||||
|
||||
function Structure() {}
|
||||
|
||||
|
@ -18,6 +19,8 @@ var BIP45_PUBLIC_PREFIX = 'm/' + PURPOSE + '\'';
|
|||
Structure.BIP45_PUBLIC_PREFIX = BIP45_PUBLIC_PREFIX;
|
||||
|
||||
Structure.Branch = function(address_index, isChange, cosigner_index) {
|
||||
preconditions.shouldBeNumber(address_index);
|
||||
preconditions.shouldBeBoolean(isChange);
|
||||
var ret = 'm/' +
|
||||
(typeof cosigner_index !== 'undefined' ? cosigner_index : SHARED_INDEX) + '/' +
|
||||
(isChange ? 1 : 0) + '/' +
|
||||
|
@ -32,6 +35,7 @@ Structure.FullBranch = function(address_index, isChange, cosigner_index) {
|
|||
};
|
||||
|
||||
Structure.indicesForPath = function(path) {
|
||||
preconditions.shouldBeString(path);
|
||||
var s = path.split('/');
|
||||
return {
|
||||
isChange: s[3] === '1',
|
||||
|
@ -39,8 +43,8 @@ Structure.indicesForPath = function(path) {
|
|||
};
|
||||
};
|
||||
|
||||
Structure.IdFullBranch = Structure.FullBranch(0, 0, ID_INDEX);
|
||||
Structure.IdBranch = Structure.Branch(0, 0, ID_INDEX);
|
||||
Structure.IdFullBranch = Structure.FullBranch(0, false, ID_INDEX);
|
||||
Structure.IdBranch = Structure.Branch(0, false, ID_INDEX);
|
||||
Structure.PURPOSE = PURPOSE;
|
||||
Structure.MAX_NON_HARDENED = MAX_NON_HARDENED;
|
||||
Structure.SHARED_INDEX = SHARED_INDEX;
|
||||
|
|
|
@ -5,7 +5,7 @@ var imports = require('soop').imports();
|
|||
var http = require('http');
|
||||
var EventEmitter = imports.EventEmitter || require('events').EventEmitter;
|
||||
var async = require('async');
|
||||
var preconditions = require('preconditions').instance();
|
||||
var preconditions = require('preconditions').singleton();
|
||||
|
||||
var bitcore = require('bitcore');
|
||||
var bignum = bitcore.Bignum;
|
||||
|
|
|
@ -33,7 +33,7 @@ describe('PrivateKey model', function() {
|
|||
|
||||
it('should derive priv keys', function() {
|
||||
var pk = new PrivateKey(config);
|
||||
for (var j = 0; j < 2; j++) {
|
||||
for (var j = false; !j; j=true) {
|
||||
for (var i = 0; i < 3; i++) {
|
||||
var wk = pk.get(i, j);
|
||||
should.exist(wk);
|
||||
|
@ -78,10 +78,10 @@ describe('PrivateKey model', function() {
|
|||
w2.toObj().extendedPrivateKeyString.should.equal(w1.toObj().extendedPrivateKeyString);
|
||||
w2.getId().should.equal(w1.getId());
|
||||
|
||||
JSON.stringify(w2.get(1, 1).storeObj()).should
|
||||
.equal(JSON.stringify(w1.get(1, 1).storeObj()));
|
||||
JSON.stringify(w2.get(1, 0).storeObj()).should
|
||||
.equal(JSON.stringify(w1.get(1, 0).storeObj()));
|
||||
JSON.stringify(w2.get(1, true).storeObj()).should
|
||||
.equal(JSON.stringify(w1.get(1, true).storeObj()));
|
||||
JSON.stringify(w2.get(1, false).storeObj()).should
|
||||
.equal(JSON.stringify(w1.get(1, false).storeObj()));
|
||||
});
|
||||
|
||||
describe('#getId', function() {
|
||||
|
|
|
@ -121,7 +121,7 @@ describe('PublicKeyRing model', function() {
|
|||
var k = createW();
|
||||
var w = k.w;
|
||||
|
||||
for (var isChange = 0; isChange < 2; isChange++) {
|
||||
[true, false].forEach(function(isChange){
|
||||
for (var i = 0; i < 2; i++) {
|
||||
var a = w.generateAddress(isChange);
|
||||
a.isValid().should.equal(true);
|
||||
|
@ -132,7 +132,7 @@ describe('PublicKeyRing model', function() {
|
|||
.not.equal(w.getAddress(i - 2, isChange).toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
it('should return PublicKeyRing addresses', function() {
|
||||
|
@ -143,9 +143,11 @@ describe('PublicKeyRing model', function() {
|
|||
var a = w.getAddresses();
|
||||
a.length.should.equal(0);
|
||||
|
||||
for (var isChange = 0; isChange < 2; isChange++)
|
||||
for (var i = 0; i < 2; i++)
|
||||
[true, false].forEach(function(isChange){
|
||||
for (var i = 0; i < 2; i++) {
|
||||
w.generateAddress(isChange);
|
||||
}
|
||||
});
|
||||
|
||||
var as = w.getAddressesInfo();
|
||||
as.length.should.equal(4);
|
||||
|
|
|
@ -69,14 +69,15 @@ var vopts = {
|
|||
|
||||
describe('TxProposals model', function() {
|
||||
|
||||
var isChange = false;
|
||||
var index = 0;
|
||||
|
||||
it('verify TXs', function(done) {
|
||||
|
||||
var priv = new PrivateKey(config);
|
||||
var priv2 = new PrivateKey(config);
|
||||
var priv3 = new PrivateKey(config);
|
||||
var ts = Date.now();
|
||||
var isChange = 0;
|
||||
var index = 0;
|
||||
var pkr = createPKR([priv, priv2, priv3]);
|
||||
var opts = {
|
||||
remainderOut: {
|
||||
|
@ -186,8 +187,6 @@ describe('TxProposals model', function() {
|
|||
var start = new Date().getTime();
|
||||
var pkr = createPKR([priv]);
|
||||
var ts = Date.now();
|
||||
var isChange = 0;
|
||||
var index = 0;
|
||||
unspentTest[0].address = pkr.getAddress(index, isChange).toString();
|
||||
unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange);
|
||||
w.add(createTx(
|
||||
|
@ -211,8 +210,6 @@ describe('TxProposals model', function() {
|
|||
var start = new Date().getTime();
|
||||
var pkr = createPKR([priv]);
|
||||
var ts = Date.now();
|
||||
var isChange = 0;
|
||||
var index = 0;
|
||||
|
||||
unspentTest[0].address = pkr.getAddress(index, isChange).toString();
|
||||
unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange);
|
||||
|
@ -250,8 +247,6 @@ describe('TxProposals model', function() {
|
|||
var priv2 = new PrivateKey(config);
|
||||
var priv = new PrivateKey(config);
|
||||
var ts = Date.now();
|
||||
var isChange = 0;
|
||||
var index = 0;
|
||||
var pkr = createPKR([priv]);
|
||||
var opts = {
|
||||
remainderOut: {
|
||||
|
@ -353,8 +348,6 @@ describe('TxProposals model', function() {
|
|||
var priv3 = PrivateKey.fromObj(o3);
|
||||
|
||||
var ts = Date.now();
|
||||
var isChange = 0;
|
||||
var index = 0;
|
||||
var pkr = createPKR([priv, priv2]);
|
||||
var opts = {
|
||||
remainderOut: {
|
||||
|
@ -467,8 +460,6 @@ describe('TxProposals model', function() {
|
|||
var priv2 = new PrivateKey(config);
|
||||
var priv3 = new PrivateKey(config);
|
||||
var ts = Date.now();
|
||||
var isChange = 0;
|
||||
var index = 0;
|
||||
var pkr = createPKR([priv, priv2, priv3]);
|
||||
var opts = {
|
||||
remainderOut: {
|
||||
|
@ -573,8 +564,6 @@ describe('TxProposals model', function() {
|
|||
networkName: config.networkName,
|
||||
});
|
||||
var ts = Date.now();
|
||||
var isChange = 0;
|
||||
var index = 0;
|
||||
|
||||
unspentTest[0].address = pkr.getAddress(index, isChange).toString();
|
||||
unspentTest[0].scriptPubKey = pkr.getScriptPubKeyHex(index, isChange);
|
||||
|
|
Loading…
Reference in New Issue