Bitcoin Core 31.99.0
P2P Digital Currency
Public Member Functions | Public Attributes | List of all members
wallet::OutputGroup Struct Reference

A group of UTXOs paid to the same output script. More...

#include <coinselection.h>

Collaboration diagram for wallet::OutputGroup:
[legend]

Public Member Functions

 OutputGroup ()=default
 
 OutputGroup (const CoinSelectionParams &params)
 
void Insert (const std::shared_ptr< COutput > &output, size_t ancestors, size_t cluster_count)
 
bool EligibleForSpending (const CoinEligibilityFilter &eligibility_filter) const
 
CAmount GetSelectionAmount () const
 

Public Attributes

std::vector< std::shared_ptr< COutput > > m_outputs
 The list of UTXOs contained in this output group. More...
 
bool m_from_me {true}
 Whether the UTXOs were sent by the wallet to itself. More...
 
CAmount m_value {0}
 The total value of the UTXOs in sum. More...
 
int m_depth {999}
 The minimum number of confirmations the UTXOs in the group have. More...
 
size_t m_ancestors {0}
 The aggregated count of unconfirmed ancestors of all UTXOs in this group. More...
 
size_t m_max_cluster_count {0}
 The maximum cluster count of a single UTXO in this output group. More...
 
CAmount effective_value {0}
 The value of the UTXOs after deducting the cost of spending them at the effective feerate. More...
 
CAmount fee {0}
 The fee to spend these UTXOs at the effective feerate. More...
 
CAmount long_term_fee {0}
 The fee to spend these UTXOs at the long term feerate. More...
 
CFeeRate m_long_term_feerate {0}
 The feerate for spending a created change output eventually (i.e. More...
 
bool m_subtract_fee_outputs {false}
 Indicate that we are subtracting the fee from outputs. More...
 
int m_weight {0}
 Total weight of the UTXOs in this group. More...
 

Detailed Description

A group of UTXOs paid to the same output script.

Definition at line 228 of file coinselection.h.

Constructor & Destructor Documentation

◆ OutputGroup() [1/2]

wallet::OutputGroup::OutputGroup ( )
default

◆ OutputGroup() [2/2]

wallet::OutputGroup::OutputGroup ( const CoinSelectionParams params)
inline

Definition at line 262 of file coinselection.h.

Member Function Documentation

◆ EligibleForSpending()

bool wallet::OutputGroup::EligibleForSpending ( const CoinEligibilityFilter eligibility_filter) const

Definition at line 782 of file coinselection.cpp.

◆ GetSelectionAmount()

CAmount wallet::OutputGroup::GetSelectionAmount ( ) const

Definition at line 789 of file coinselection.cpp.

Here is the caller graph for this function:

◆ Insert()

void wallet::OutputGroup::Insert ( const std::shared_ptr< COutput > &  output,
size_t  ancestors,
size_t  cluster_count 
)

Definition at line 755 of file coinselection.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ effective_value

CAmount wallet::OutputGroup::effective_value {0}

The value of the UTXOs after deducting the cost of spending them at the effective feerate.

Definition at line 246 of file coinselection.h.

◆ fee

CAmount wallet::OutputGroup::fee {0}

The fee to spend these UTXOs at the effective feerate.

Definition at line 248 of file coinselection.h.

◆ long_term_fee

CAmount wallet::OutputGroup::long_term_fee {0}

The fee to spend these UTXOs at the long term feerate.

Definition at line 250 of file coinselection.h.

◆ m_ancestors

size_t wallet::OutputGroup::m_ancestors {0}

The aggregated count of unconfirmed ancestors of all UTXOs in this group.

Not deduplicated and may overestimate when ancestors are shared.

Definition at line 242 of file coinselection.h.

◆ m_depth

int wallet::OutputGroup::m_depth {999}

The minimum number of confirmations the UTXOs in the group have.

Unconfirmed is 0.

Definition at line 239 of file coinselection.h.

◆ m_from_me

bool wallet::OutputGroup::m_from_me {true}

Whether the UTXOs were sent by the wallet to itself.

This is relevant because we may want at least a certain number of confirmations on UTXOs received from outside wallets while trusting our own UTXOs more.

Definition at line 235 of file coinselection.h.

◆ m_long_term_feerate

CFeeRate wallet::OutputGroup::m_long_term_feerate {0}

The feerate for spending a created change output eventually (i.e.

not urgently, and thus at a lower feerate). Calculated using long term fee estimate. This is used to decide whether it could be economical to create a change output.

Definition at line 254 of file coinselection.h.

◆ m_max_cluster_count

size_t wallet::OutputGroup::m_max_cluster_count {0}

The maximum cluster count of a single UTXO in this output group.

Definition at line 244 of file coinselection.h.

◆ m_outputs

std::vector<std::shared_ptr<COutput> > wallet::OutputGroup::m_outputs

The list of UTXOs contained in this output group.

Definition at line 231 of file coinselection.h.

◆ m_subtract_fee_outputs

bool wallet::OutputGroup::m_subtract_fee_outputs {false}

Indicate that we are subtracting the fee from outputs.

When true, the value that is used for coin selection is the UTXO's real value rather than effective value

Definition at line 257 of file coinselection.h.

◆ m_value

CAmount wallet::OutputGroup::m_value {0}

The total value of the UTXOs in sum.

Definition at line 237 of file coinselection.h.

◆ m_weight

int wallet::OutputGroup::m_weight {0}

Total weight of the UTXOs in this group.

Definition at line 259 of file coinselection.h.


The documentation for this struct was generated from the following files: