balances working
This commit is contained in:
parent
601fa94fde
commit
9f039d8c34
9 changed files with 656 additions and 271 deletions
|
|
@ -3,82 +3,5 @@
|
|||
angular.module('copayApp.services')
|
||||
.factory('addressService', function(storageService, profileService, $log, $timeout, lodash, bwcError, gettextCatalog) {
|
||||
var root = {};
|
||||
|
||||
root.expireAddress = function(walletId, cb) {
|
||||
$log.debug('Cleaning Address ' + walletId);
|
||||
storageService.clearLastAddress(walletId, function(err) {
|
||||
return cb(err);
|
||||
});
|
||||
};
|
||||
|
||||
root.isUsed = function(walletId, byAddress, cb) {
|
||||
storageService.getLastAddress(walletId, function(err, addr) {
|
||||
var used = lodash.find(byAddress, {
|
||||
address: addr
|
||||
});
|
||||
return cb(null, used);
|
||||
});
|
||||
};
|
||||
|
||||
root._createAddress = function(walletId, cb) {
|
||||
var client = profileService.getClient(walletId);
|
||||
|
||||
$log.debug('Creating address for wallet:', walletId);
|
||||
|
||||
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.message && err.message == 'MAIN_ADDRESS_GAP_REACHED') {
|
||||
$log.warn(err.message);
|
||||
prefix = null;
|
||||
client.getMainAddresses({
|
||||
reverse: true,
|
||||
limit: 1
|
||||
}, function(err, addr) {
|
||||
if (err) return cb(err);
|
||||
return cb(null, addr[0].address);
|
||||
});
|
||||
}
|
||||
return bwcError.cb(err, prefix, cb);
|
||||
}
|
||||
return cb(null, addr.address);
|
||||
});
|
||||
};
|
||||
|
||||
root.getAddress = function(walletId, forceNew, cb) {
|
||||
|
||||
var firstStep;
|
||||
if (forceNew) {
|
||||
firstStep = storageService.clearLastAddress;
|
||||
} else {
|
||||
firstStep = function(walletId, cb) {
|
||||
return cb();
|
||||
};
|
||||
}
|
||||
|
||||
firstStep(walletId, function(err) {
|
||||
if (err) return cb(err);
|
||||
|
||||
storageService.getLastAddress(walletId, function(err, addr) {
|
||||
if (err) return cb(err);
|
||||
|
||||
if (addr) return cb(null, addr);
|
||||
|
||||
root._createAddress(walletId, function(err, addr) {
|
||||
if (err) return cb(err);
|
||||
storageService.storeLastAddress(walletId, addr, function() {
|
||||
if (err) return cb(err);
|
||||
return cb(null, addr);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
return root;
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue