5 #ifndef BITCOIN_WALLET_COINSELECTION_H 6 #define BITCOIN_WALLET_COINSELECTION_H 22 throw std::invalid_argument(
"tx should not be null");
23 if (i >= tx->vout.size())
24 throw std::out_of_range(
"The output index is out of range");
80 OutputGroup(std::vector<CInputCoin>&& outputs,
bool from_me,
CAmount value,
int depth,
size_t ancestors,
size_t descendants)
89 Insert(output, depth, from_me, ancestors, descendants);
91 void Insert(
const CInputCoin& output,
int depth,
bool from_me,
size_t ancestors,
size_t descendants);
99 bool KnapsackSolver(
const CAmount& nTargetValue, std::vector<OutputGroup>& groups, std::set<CInputCoin>& setCoinsRet,
CAmount& nValueRet);
101 #endif // BITCOIN_WALLET_COINSELECTION_H std::shared_ptr< const CTransaction > CTransactionRef
Definition: transaction.h:408
bool SelectCoinsBnB(std::vector< OutputGroup > &utxo_pool, const CAmount &target_value, const CAmount &cost_of_change, std::set< CInputCoin > &out_set, CAmount &value_ret, CAmount not_input_fees)
Definition: coinselection.cpp:65
const int conf_theirs
Definition: coinselection.h:59
CAmount fee
Definition: coinselection.h:76
std::vector< CInputCoin > m_outputs
Definition: coinselection.h:69
bool KnapsackSolver(const CAmount &nTargetValue, std::vector< OutputGroup > &groups, std::set< CInputCoin > &setCoinsRet, CAmount &nValueRet)
Definition: coinselection.cpp:216
static const CAmount COIN
Definition: amount.h:14
int m_depth
Definition: coinselection.h:72
CAmount nValue
Definition: transaction.h:136
static constexpr CAmount MIN_CHANGE
target minimum change amount
Definition: coinselection.h:13
OutputGroup()
Definition: coinselection.h:79
const uint64_t max_descendants
Definition: coinselection.h:61
int64_t CAmount
Definition: amount.h:12
void Insert(const CInputCoin &output, int depth, bool from_me, size_t ancestors, size_t descendants)
Definition: coinselection.cpp:300
size_t m_ancestors
Definition: coinselection.h:73
CAmount long_term_fee
Definition: coinselection.h:77
Definition: transaction.h:18
unsigned long long uint64_t
Definition: stdint.h:22
OutputGroup(const CInputCoin &output, int depth, bool from_me, size_t ancestors, size_t descendants)
Definition: coinselection.h:88
static const CAmount MIN_FINAL_CHANGE
final minimum change amount after paying for fees
Definition: coinselection.h:15
size_t m_descendants
Definition: coinselection.h:74
CoinEligibilityFilter(int conf_mine, int conf_theirs, uint64_t max_ancestors, uint64_t max_descendants)
Definition: coinselection.h:64
Definition: coinselection.h:67
std::vector< CInputCoin >::iterator Discard(const CInputCoin &output)
Definition: coinselection.cpp:315
const uint64_t max_ancestors
Definition: coinselection.h:60
CAmount m_value
Definition: coinselection.h:71
bool m_from_me
Definition: coinselection.h:70
CoinEligibilityFilter(int conf_mine, int conf_theirs, uint64_t max_ancestors)
Definition: coinselection.h:63
const int conf_mine
Definition: coinselection.h:58
bool EligibleForSpending(const CoinEligibilityFilter &eligibility_filter) const
Definition: coinselection.cpp:324
CAmount effective_value
Definition: coinselection.h:75
Definition: coinselection.h:56
OutputGroup(std::vector< CInputCoin > &&outputs, bool from_me, CAmount value, int depth, size_t ancestors, size_t descendants)
Definition: coinselection.h:80
Definition: transaction.h:133