2015-11-05 19:46:32 -03:00
|
|
|
'use strict';
|
|
|
|
|
|
|
|
|
|
angular.module('copayApp.services').factory('derivationPathHelper', function(lodash) {
|
|
|
|
|
var root = {};
|
|
|
|
|
|
2016-06-15 10:24:46 -03:00
|
|
|
root.default = "m/44'/0'/0'";
|
|
|
|
|
root.defaultTestnet = "m/44'/1'/0'";
|
|
|
|
|
|
2015-11-05 19:46:32 -03:00
|
|
|
root.parse = function(str) {
|
|
|
|
|
var arr = str.split('/');
|
|
|
|
|
|
|
|
|
|
var ret = {};
|
|
|
|
|
|
|
|
|
|
if (arr[0] != 'm')
|
|
|
|
|
return false;
|
|
|
|
|
|
|
|
|
|
switch (arr[1]) {
|
|
|
|
|
case "44'":
|
|
|
|
|
ret.derivationStrategy = 'BIP44';
|
|
|
|
|
break;
|
2016-05-09 12:03:25 -03:00
|
|
|
case "45'":
|
|
|
|
|
return {
|
|
|
|
|
derivationStrategy: 'BIP45',
|
|
|
|
|
networkName: 'livenet',
|
|
|
|
|
account: 0,
|
|
|
|
|
}
|
|
|
|
|
break;
|
2015-11-05 19:46:32 -03:00
|
|
|
case "48'":
|
|
|
|
|
ret.derivationStrategy = 'BIP48';
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
switch (arr[2]) {
|
|
|
|
|
case "0'":
|
|
|
|
|
ret.networkName = 'livenet';
|
|
|
|
|
break;
|
|
|
|
|
case "1'":
|
|
|
|
|
ret.networkName = 'testnet';
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
return false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var match = arr[3].match(/(\d+)'/);
|
|
|
|
|
if (!match)
|
|
|
|
|
return false;
|
2016-05-09 12:03:25 -03:00
|
|
|
ret.account = +match[1]
|
2015-11-05 19:46:32 -03:00
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return root;
|
|
|
|
|
});
|