adds trezor support to isDevel

This commit is contained in:
Matias Alejo Garcia 2015-11-05 16:00:38 -03:00
parent d805d3484b
commit 5abf35c68c
5 changed files with 52 additions and 37 deletions

View File

@ -1,7 +1,7 @@
'use strict';
angular.module('copayApp.controllers').controller('createController',
function($scope, $rootScope, $location, $timeout, $log, lodash, go, profileService, configService, isCordova, gettext, ledger, trezor, isMobile, isChromeApp) {
function($scope, $rootScope, $location, $timeout, $log, lodash, go, profileService, configService, isCordova, gettext, ledger, trezor, isMobile, isChromeApp, isDevel) {
var self = this;
var defaults = configService.getDefaults();
@ -50,19 +50,19 @@ angular.module('copayApp.controllers').controller('createController',
label: gettext('Specify Seed...'),
}];
$scope.seedSource = self.seedOptions[0];
if (!isChromeApp) return;
if (n > 1)
if (n > 1 && isChromeApp)
self.seedOptions.push({
id: 'ledger',
label: gettext('Ledger Hardware Wallet'),
});
self.seedOptions.push({
id: 'trezor',
label: gettext('Trezor Hardware Wallet'),
});
if (isChromeApp || isDevel) {
self.seedOptions.push({
id: 'trezor',
label: gettext('Trezor Hardware Wallet'),
});
}
};
this.TCValues = lodash.range(2, defaults.limits.totalCopayers + 1);

View File

@ -1,7 +1,7 @@
'use strict';
angular.module('copayApp.controllers').controller('importController',
function($scope, $rootScope, $location, $timeout, $log, profileService, configService, notification, go, sjcl, gettext, lodash, ledger, trezor, isChromeApp) {
function($scope, $rootScope, $location, $timeout, $log, profileService, configService, notification, go, sjcl, gettext, lodash, ledger, trezor, isChromeApp, isDevel) {
var self = this;
var reader = new FileReader();
@ -19,18 +19,21 @@ angular.module('copayApp.controllers').controller('importController',
var updateSeedSourceSelect = function() {
self.seedOptions = [];
if (!isChromeApp) return;
self.seedOptions.push({
id: 'ledger',
label: gettext('Ledger Hardware Wallet'),
});
if (isChromeApp) {
self.seedOptions.push({
id: 'ledger',
label: gettext('Ledger Hardware Wallet'),
});
}
self.seedOptions.push({
id: 'trezor',
label: gettext('Trezor Hardware Wallet'),
});
$scope.seedSource = self.seedOptions[0];
if (isChromeApp || isDevel) {
self.seedOptions.push({
id: 'trezor',
label: gettext('Trezor Hardware Wallet'),
});
$scope.seedSource = self.seedOptions[0];
}
};

View File

@ -1,7 +1,7 @@
'use strict';
angular.module('copayApp.controllers').controller('joinController',
function($scope, $rootScope, $timeout, go, notification, profileService, configService, isCordova, storageService, applicationService, $modal, gettext, lodash, ledger, trezor, isChromeApp) {
function($scope, $rootScope, $timeout, go, notification, profileService, configService, isCordova, storageService, applicationService, $modal, gettext, lodash, ledger, trezor, isChromeApp, isDevel) {
var self = this;
var defaults = configService.getDefaults();
@ -25,17 +25,21 @@ angular.module('copayApp.controllers').controller('joinController',
label: gettext('Specify Seed...'),
}];
$scope.seedSource = self.seedOptions[0];
if (!isChromeApp) return;
self.seedOptions.push({
id: 'ledger',
label: gettext('Ledger Hardware Wallet'),
});
self.seedOptions.push({
id: 'trezor',
label: gettext('Trezor Hardware Wallet'),
});
if (isChromeApp) {
self.seedOptions.push({
id: 'ledger',
label: gettext('Ledger Hardware Wallet'),
});
}
if (isChromeApp || isDevel) {
self.seedOptions.push({
id: 'trezor',
label: gettext('Trezor Hardware Wallet'),
});
}
};
this.setSeedSource = function(src) {

View File

@ -0,0 +1,5 @@
'use strict';
angular.module('copayApp.services').factory('isDevel', function(nodeWebkit, isChromeApp, isMobile) {
return !isMobile.any() && !isChromeApp && !nodeWebkit.isDefined();
});

View File

@ -175,6 +175,13 @@ angular.module('copayApp.services')
var walletClient = bwcService.getClient();
var network = opts.networkName || 'livenet';
// TODO refactor this and use bwc contants?
var derivationStrategy = 'BIP44';
if (opts.fromHardware && opts.n > 1) {
derivationStrategy = 'BIP48';
}
if (opts.mnemonic) {
try {
opts.mnemonic = root._normalizeMnemonic(opts.mnemonic);
@ -182,14 +189,9 @@ angular.module('copayApp.services')
network: network,
passphrase: opts.passphrase,
account: opts.account || 0,
derivationStrategy: derivationStrategy,
});
// </ Nasty
if (opts.fromHardware && opts.n>1) {
//walletClient.credentials.derivationStrategy ==
}
// Nasty>
} catch (ex) {
$log.info(ex);
return cb(gettext('Could not create: Invalid wallet seed'));
@ -204,7 +206,8 @@ angular.module('copayApp.services')
} else if (opts.extendedPublicKey) {
try {
walletClient.seedFromExtendedPublicKey(opts.extendedPublicKey, opts.externalSource, opts.entropySource, {
account: opts.account || 0,
account: opts.account || 0,
derivationStrategy: derivationStrategy,
});
} catch (ex) {
$log.warn("Creating wallet from Extended Public Key Arg:", ex, opts);
@ -368,7 +371,7 @@ angular.module('copayApp.services')
root.setWalletClients();
root.setAndStoreFocus(walletId, function() {
storageService.storeProfile(root.profile, function(err){
storageService.storeProfile(root.profile, function(err) {
return cb(err, walletId);
});
});