Merge pull request #569 from isocolsky/ref/addr-creation

Move address creation check outside of locked section
This commit is contained in:
Matias Alejo Garcia 2016-08-19 12:05:07 -03:00 committed by GitHub
commit f4c4f4a5d1
1 changed files with 18 additions and 18 deletions

View File

@ -775,20 +775,15 @@ WalletService.prototype.createAddress = function(opts, cb) {
opts = opts || {};
function createNewAddress(wallet, cb) {
self._canCreateAddress(opts.ignoreMaxGap, function(err, canCreate) {
var address = wallet.createAddress(false);
self.storage.storeAddressAndWallet(wallet, address, function(err) {
if (err) return cb(err);
if (!canCreate) return cb(Errors.MAIN_ADDRESS_GAP_REACHED);
var address = wallet.createAddress(false);
self.storage.storeAddressAndWallet(wallet, address, function(err) {
if (err) return cb(err);
self._notify('NewAddress', {
address: address.address,
}, function() {
return cb(null, address);
});
self._notify('NewAddress', {
address: address.address,
}, function() {
return cb(null, address);
});
});
};
@ -801,13 +796,18 @@ WalletService.prototype.createAddress = function(opts, cb) {
});
};
self._runLocked(cb, function(cb) {
self.getWallet({}, function(err, wallet) {
if (err) return cb(err);
if (!wallet.isComplete()) return cb(Errors.WALLET_NOT_COMPLETE);
self._canCreateAddress(opts.ignoreMaxGap, function(err, canCreate) {
if (err) return cb(err);
if (!canCreate) return cb(Errors.MAIN_ADDRESS_GAP_REACHED);
var createFn = wallet.singleAddress ? getFirstAddress : createNewAddress;
return createFn(wallet, cb);
self._runLocked(cb, function(cb) {
self.getWallet({}, function(err, wallet) {
if (err) return cb(err);
if (!wallet.isComplete()) return cb(Errors.WALLET_NOT_COMPLETE);
var createFn = wallet.singleAddress ? getFirstAddress : createNewAddress;
return createFn(wallet, cb);
});
});
});
};