From 2b3c29a563dd41d430500a8e091a53987ce3be83 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Fri, 30 May 2014 11:07:34 -0300 Subject: [PATCH 1/2] format Structure.js --- js/models/core/Structure.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/js/models/core/Structure.js b/js/models/core/Structure.js index 591360815..57b342ba8 100644 --- a/js/models/core/Structure.js +++ b/js/models/core/Structure.js @@ -1,15 +1,13 @@ 'use strict'; +var imports = require('soop').imports(); -var imports = require('soop').imports(); - -function Structure() { -} +function Structure() {} /* * Based on https://github.com/maraoz/bips/blob/master/bip-NNNN.mediawiki - * m / purpose' / cosigner_index / change / address_index + * m / purpose' / cosigner_index / change / address_index */ var PURPOSE = 45; var MAX_NON_HARDENED = 0x80000000 - 1; @@ -17,13 +15,13 @@ var MAX_NON_HARDENED = 0x80000000 - 1; var SHARED_INDEX = MAX_NON_HARDENED - 0; var ID_INDEX = MAX_NON_HARDENED - 1; -var BIP45_PUBLIC_PREFIX = 'm/'+ PURPOSE+'\''; +var BIP45_PUBLIC_PREFIX = 'm/' + PURPOSE + '\''; Structure.BIP45_PUBLIC_PREFIX = BIP45_PUBLIC_PREFIX; Structure.Branch = function(address_index, isChange, cosigner_index) { - var ret = 'm/'+ - (typeof cosigner_index !== 'undefined'? cosigner_index: SHARED_INDEX)+'/'+ - (isChange?1:0)+'/'+ + var ret = 'm/' + + (typeof cosigner_index !== 'undefined' ? cosigner_index : SHARED_INDEX) + '/' + + (isChange ? 1 : 0) + '/' + address_index; return ret; }; From 6af9ee68e2a314d8741ae16f544ef5755722df0c Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Fri, 30 May 2014 15:07:52 -0300 Subject: [PATCH 2/2] include derivation path in tx proposal --- js/models/core/PrivateKey.js | 12 ++++++++++-- js/models/core/PublicKeyRing.js | 11 ++++++++++- js/models/core/TxProposals.js | 1 + js/models/core/Wallet.js | 16 ++++++++++++---- 4 files changed, 33 insertions(+), 7 deletions(-) diff --git a/js/models/core/PrivateKey.js b/js/models/core/PrivateKey.js index 086f2561b..cc2a4d715 100644 --- a/js/models/core/PrivateKey.js +++ b/js/models/core/PrivateKey.js @@ -61,8 +61,11 @@ PrivateKey.prototype._getHK = function(path) { return this.bip.derive(path); }; -PrivateKey.prototype.get = function(index,isChange) { - var path = Structure.FullBranch(index, isChange); +PrivateKey.prototype.getForPaths = function(paths) { + return paths.map(this.getForPath.bind(this)); +}; + +PrivateKey.prototype.getForPath = function(path) { var pk = this.privateKeyCache[path]; if (!pk) { var derivedHK = this._getHK(path); @@ -73,6 +76,11 @@ PrivateKey.prototype.get = function(index,isChange) { return wk; }; +PrivateKey.prototype.get = function(index,isChange) { + var path = Structure.FullBranch(index, isChange); + return this.getForPath(path); +}; + PrivateKey.prototype.getAll = function(addressIndex, changeAddressIndex) { var ret = []; for(var i=0;i