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 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.coin)
return callback(new Error('Not all coins available.'));
hashes = [tx.coin.getHash()];
} else {
if (!tx.hasCoins())
return callback(new Error('Not all coins available.'));
hashes = tx.getInputHashes();
return 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) {
this.fillCoins(tx, function(err) {
if (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) {
return this.db.fillHistory(tx, callback);
return this.db.fillCoins(tx, callback);
};
/**