improve coin selection.

This commit is contained in:
Christopher Jeffrey 2016-04-16 20:04:38 -07:00
parent 0f6c19bcd5
commit 9fd3bbb827
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -1075,12 +1075,6 @@ MTX.prototype.selectCoins = function selectCoins(coins, options) {
// Null the inputs if there are any. // Null the inputs if there are any.
tx.inputs.length = 0; tx.inputs.length = 0;
if (options.confirmed) {
coins = coins.filter(function(coin) {
return coin.height !== -1;
});
}
if (!options.selection || options.selection === 'age') { if (!options.selection || options.selection === 'age') {
// Oldest unspents first // Oldest unspents first
coins = coins.slice().sort(function(a, b) { coins = coins.slice().sort(function(a, b) {
@ -1106,12 +1100,24 @@ MTX.prototype.selectCoins = function selectCoins(coins, options) {
} }
function addCoins() { function addCoins() {
var coin;
while (index < coins.length) { while (index < coins.length) {
coin = coins[index];
if (options.confirmed && coin.height === -1)
continue;
if (network.height !== -1 && coin.coinbase) {
if (network.height + 1 < coin.height + constants.tx.coinbaseMaturity)
continue;
}
// Add new inputs until TX will have enough // Add new inputs until TX will have enough
// funds to cover both minimum post cost // funds to cover both minimum post cost
// and fee. // and fee.
tx.addInput(coins[index]); tx.addInput(coin);
chosen.push(coins[index]); chosen.push(coin);
index++; index++;
if (options.selection === 'all') if (options.selection === 'all')