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';
'use strict'; 'use strict';
angular.module('copayApp.services') 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 = {}; var root = {};
@ -28,13 +28,21 @@ angular.module('copayApp.services')
client.createAddress(function(err, addr) { client.createAddress(function(err, addr) {
if (err) { if (err) {
var prefix = gettextCatalog.getString('Could not create address');
if (err.error && err.error.match(/locked/gi)) { if (err.error && err.error.match(/locked/gi)) {
$log.debug(err.error); $log.debug(err.error);
return $timeout(function() { return $timeout(function() {
root._createAddress(walletId, cb); root._createAddress(walletId, cb);
}, 5000); }, 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); return cb(null, addr.address);
}); });

View File

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