Skip to content

Commit

Permalink
adds trezor support to isDevel
Browse files Browse the repository at this point in the history
  • Loading branch information
matiu committed Nov 10, 2015
1 parent d805d34 commit 5abf35c
Show file tree
Hide file tree
Showing 5 changed files with 52 additions and 37 deletions.
16 changes: 8 additions & 8 deletions src/js/controllers/create.js
Original file line number Diff line number Diff line change
@@ -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();
Expand Down Expand Up @@ -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);
Expand Down
25 changes: 14 additions & 11 deletions src/js/controllers/import.js
Original file line number Diff line number Diff line change
@@ -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();
Expand All @@ -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];
}
};


Expand Down
24 changes: 14 additions & 10 deletions src/js/controllers/join.js
Original file line number Diff line number Diff line change
@@ -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();
Expand All @@ -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) {
Expand Down
5 changes: 5 additions & 0 deletions src/js/services/isDevel.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
'use strict';

angular.module('copayApp.services').factory('isDevel', function(nodeWebkit, isChromeApp, isMobile) {
return !isMobile.any() && !isChromeApp && !nodeWebkit.isDefined();
});
19 changes: 11 additions & 8 deletions src/js/services/profileService.js
Original file line number Diff line number Diff line change
Expand Up @@ -175,21 +175,23 @@ 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);
walletClient.seedFromMnemonic(opts.mnemonic, {
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'));
Expand All @@ -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);
Expand Down Expand Up @@ -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);
});
});
Expand Down

0 comments on commit 5abf35c

Please sign in to comment.