Merge pull request #740 from maraoz/ref/preconditions/structure

mocha / karma / browser passed.
This commit is contained in:
Matias Alejo Garcia 2014-06-25 11:29:25 -03:00
commit ee2b7fbdad
6 changed files with 22 additions and 27 deletions

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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() {

View File

@ -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);

View File

@ -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);