Adds limit to create addresses

This commit is contained in:
Gustavo Maximiliano Cortez 2015-11-04 16:17:04 -03:00
parent 8b1130d66b
commit 441bb94e4b
2 changed files with 13 additions and 2 deletions

View File

@ -1,7 +1,7 @@
'use strict';
'use strict';
angular.module('copayApp.services')
.factory('addressService', function(storageService, profileService, $log, $timeout, lodash, bwsError, gettext) {
.factory('addressService', function(storageService, profileService, $log, $timeout, lodash, bwsError, gettextCatalog) {
var root = {};
@ -28,13 +28,21 @@ angular.module('copayApp.services')
client.createAddress(function(err, addr) {
if (err) {
var prefix = gettextCatalog.getString('Could not create address');
if (err.error && err.error.match(/locked/gi)) {
$log.debug(err.error);
return $timeout(function() {
root._createAddress(walletId, cb);
}, 5000);
} else if (err.code && err.code == 'MAIN_ADDRESS_GAP_REACHED') {
prefix = gettextCatalog.getString('Limit of address generation reached');
$log.warn(err.message);
client.getMainAddresses({reverse: true, limit : 1}, function(err, addr) {
if (err) return cb(err);
return cb(null, addr[0].address);
});
}
return bwsError.cb(err, gettext('Could not create address'), cb);
return bwsError.cb(err, prefix, cb);
}
return cb(null, addr.address);
});

View File

@ -93,6 +93,9 @@ angular.module('copayApp.services')
case 'INVALID_BACKUP':
body = gettextCatalog.getString('Wallet seed is invalid');
break;
case 'MAIN_ADDRESS_GAP_REACHED':
body = gettextCatalog.getString('You cannot generate more until you register any activity');
break;
case 'ERROR':
body = (err.message || err.error);