fill coins before signing.

This commit is contained in:
Christopher Jeffrey 2016-06-02 11:38:29 -07:00
parent 29d79e57ad
commit dd9fb535fa
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -703,30 +703,40 @@ Wallet.prototype.getInputPaths = function getInputPaths(tx, callback) {
var paths = []; var paths = [];
var hashes; var hashes;
function done() {
utils.forEachSerial(hashes, function(hash, next, i) {
self.getPath(hash, function(err, path) {
if (err)
return next(err);
if (path)
paths.push(path);
return next();
});
}, function(err) {
if (err)
return callback(err);
return callback(null, paths);
});
}
if (tx instanceof bcoin.input) { if (tx instanceof bcoin.input) {
if (!tx.coin) if (!tx.coin)
return callback(new Error('Not all coins available.')); return callback(new Error('Not all coins available.'));
hashes = [tx.coin.getHash()]; hashes = [tx.coin.getHash()];
} else { return done();
if (!tx.hasCoins())
return callback(new Error('Not all coins available.'));
hashes = tx.getInputHashes();
} }
utils.forEachSerial(hashes, function(hash, next, i) { this.fillCoins(tx, function(err) {
self.getPath(hash, function(err, path) {
if (err)
return next(err);
if (path)
paths.push(path);
return next();
});
}, function(err) {
if (err) if (err)
return callback(err); return callback(err);
return callback(null, paths);
if (!tx.hasCoins())
return callback(new Error('Not all coins available.'));
hashes = tx.getInputHashes();
done();
}); });
}; };
@ -1013,7 +1023,7 @@ Wallet.prototype.sign = function sign(tx, options, callback) {
*/ */
Wallet.prototype.fillCoins = function fillCoins(tx, callback) { Wallet.prototype.fillCoins = function fillCoins(tx, callback) {
return this.db.fillHistory(tx, callback); return this.db.fillCoins(tx, callback);
}; };
/** /**