Package org.bitcoinj.wallet
Class DefaultCoinSelector
- java.lang.Object
-
- org.bitcoinj.wallet.DefaultCoinSelector
-
- All Implemented Interfaces:
CoinSelector
- Direct Known Subclasses:
AllowUnconfirmedCoinSelector
public class DefaultCoinSelector extends java.lang.Object implements CoinSelector
This class implements aCoinSelector
which attempts to get the highest priority possible. This means that the transaction is the most likely to get confirmed. Note that this means we may end up "spending" more priority than would be required to get the transaction we are creating confirmed.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
DefaultCoinSelector()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static int
compareByDepth(TransactionOutput a, TransactionOutput b)
Comparator for sortingTransactionOutput
by coin depth, value, and then hash.static CoinSelector
get(Network network)
static boolean
isSelectable(Transaction tx, Network network)
Helper to determine if this selector would select a given transaction.CoinSelection
select(Coin target, java.util.List<TransactionOutput> candidates)
Creates a CoinSelection that tries to meet the target amount of value.protected boolean
shouldSelect(Transaction tx)
Sub-classes can override this to just customize whether transactions are usable, but keep age sorting.
-
-
-
Method Detail
-
select
public CoinSelection select(Coin target, java.util.List<TransactionOutput> candidates)
Description copied from interface:CoinSelector
Creates a CoinSelection that tries to meet the target amount of value. The candidates list is given to this call and can be edited freely. See the docs for CoinSelection to learn more, or look a the implementation ofDefaultCoinSelector
.- Specified by:
select
in interfaceCoinSelector
-
compareByDepth
public static int compareByDepth(TransactionOutput a, TransactionOutput b)
Comparator for sortingTransactionOutput
by coin depth, value, and then hash.- Parameters:
a
- The first object to be comparedb
- The second object to be compared- Returns:
- a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the second.
-
shouldSelect
protected boolean shouldSelect(Transaction tx)
Sub-classes can override this to just customize whether transactions are usable, but keep age sorting.
-
isSelectable
public static boolean isSelectable(Transaction tx, Network network)
Helper to determine if this selector would select a given transaction. Note that in a regtest network outgoing payments will likely not see propagation, so there is a special exception.- Parameters:
tx
- transaction to determine if it would be selectednetwork
- network the transaction is on- Returns:
- true if it would be selected, false otherwise
-
get
public static CoinSelector get(Network network)
-
-