|
| TRACEPOINT_SEMAPHORE (coin_selection, selected_coins) |
|
| TRACEPOINT_SEMAPHORE (coin_selection, normal_create_tx_internal) |
|
| TRACEPOINT_SEMAPHORE (coin_selection, attempting_aps_create_tx) |
|
| TRACEPOINT_SEMAPHORE (coin_selection, aps_create_tx_internal) |
|
static bool | wallet::IsSegwit (const Descriptor &desc) |
| Whether the descriptor represents, directly or not, a witness program. More...
|
|
static bool | wallet::UseMaxSig (const std::optional< CTxIn > &txin, const CCoinControl *coin_control) |
| Whether to assume ECDSA signatures' will be high-r. More...
|
|
static std::optional< int64_t > | wallet::MaxInputWeight (const Descriptor &desc, const std::optional< CTxIn > &txin, const CCoinControl *coin_control, const bool tx_is_segwit, const bool can_grind_r) |
| Get the size of an input (in witness units) once it's signed. More...
|
|
int | wallet::CalculateMaximumSignedInputSize (const CTxOut &txout, const COutPoint outpoint, const SigningProvider *provider, bool can_grind_r, const CCoinControl *coin_control) |
|
int | wallet::CalculateMaximumSignedInputSize (const CTxOut &txout, const CWallet *pwallet, const CCoinControl *coin_control) |
| Get the marginal bytes if spending the specified output from this transaction. More...
|
|
static std::unique_ptr< Descriptor > | wallet::GetDescriptor (const CWallet *wallet, const CCoinControl *coin_control, const CScript script_pubkey) |
| Infer a descriptor for the given output script. More...
|
|
static std::optional< int64_t > | wallet::GetSignedTxinWeight (const CWallet *wallet, const CCoinControl *coin_control, const CTxIn &txin, const CTxOut &txo, const bool tx_is_segwit, const bool can_grind_r) |
| Infer the maximum size of this input after it will be signed. More...
|
|
TxSize | wallet::CalculateMaximumSignedTxSize (const CTransaction &tx, const CWallet *wallet, const std::vector< CTxOut > &txouts, const CCoinControl *coin_control=nullptr) |
| Calculate the size of the transaction using CoinControl to determine whether to expect signature grinding when calculating the size of the input spend. More...
|
|
TxSize | wallet::CalculateMaximumSignedTxSize (const CTransaction &tx, const CWallet *wallet, const CCoinControl *coin_control) |
|
static OutputType | wallet::GetOutputType (TxoutType type, bool is_from_p2sh) |
|
util::Result< PreSelectedInputs > | wallet::FetchSelectedInputs (const CWallet &wallet, const CCoinControl &coin_control, const CoinSelectionParams &coin_selection_params) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
| Fetch and validate coin control selected inputs. More...
|
|
CoinsResult | wallet::AvailableCoins (const CWallet &wallet, const CCoinControl *coinControl=nullptr, std::optional< CFeeRate > feerate=std::nullopt, const CoinFilterParams ¶ms={}) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
| Populate the CoinsResult struct with vectors of available COutputs, organized by OutputType. More...
|
|
CoinsResult | wallet::AvailableCoinsListUnspent (const CWallet &wallet, const CCoinControl *coinControl=nullptr, CoinFilterParams params={}) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
| Wrapper function for AvailableCoins which skips the feerate and CoinFilterParams::only_spendable parameters. More...
|
|
const CTxOut & | wallet::FindNonChangeParentOutput (const CWallet &wallet, const COutPoint &outpoint) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
| Find non-change parent output. More...
|
|
std::map< CTxDestination, std::vector< COutput > > | wallet::ListCoins (const CWallet &wallet) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
| Return list of available coins and locked coins grouped by non-change output address. More...
|
|
FilteredOutputGroups | wallet::GroupOutputs (const CWallet &wallet, const CoinsResult &coins, const CoinSelectionParams &coin_sel_params, const std::vector< SelectionFilter > &filters, std::vector< OutputGroup > &ret_discarded_groups) |
|
FilteredOutputGroups | wallet::GroupOutputs (const CWallet &wallet, const CoinsResult &coins, const CoinSelectionParams &coin_sel_params, const std::vector< SelectionFilter > &filters) |
| Group coins by the provided filters. More...
|
|
static bool | wallet::HasErrorMsg (const util::Result< SelectionResult > &res) |
|
util::Result< SelectionResult > | wallet::AttemptSelection (interfaces::Chain &chain, const CAmount &nTargetValue, OutputGroupTypeMap &groups, const CoinSelectionParams &coin_selection_params, bool allow_mixed_output_types) |
| Attempt to find a valid input set that preserves privacy by not mixing OutputTypes. More...
|
|
util::Result< SelectionResult > | wallet::ChooseSelectionResult (interfaces::Chain &chain, const CAmount &nTargetValue, Groups &groups, const CoinSelectionParams &coin_selection_params) |
| Attempt to find a valid input set that meets the provided eligibility filter and target. More...
|
|
util::Result< SelectionResult > | wallet::SelectCoins (const CWallet &wallet, CoinsResult &available_coins, const PreSelectedInputs &pre_set_inputs, const CAmount &nTargetValue, const CCoinControl &coin_control, const CoinSelectionParams &coin_selection_params) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
| Select all coins from coin_control, and if coin_control 'm_allow_other_inputs=true', call 'AutomaticCoinSelection' to select a set of coins such that nTargetValue - pre_set_inputs.total_amount is met. More...
|
|
util::Result< SelectionResult > | wallet::AutomaticCoinSelection (const CWallet &wallet, CoinsResult &available_coins, const CAmount &nTargetValue, const CoinSelectionParams &coin_selection_params) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
| Select a set of coins such that nTargetValue is met; never select unconfirmed coins if they are not ours param@[in] wallet The wallet which provides data necessary to spend the selected coins param@[in] available_coins The struct of coins, organized by OutputType, available for selection prior to filtering param@[in] nTargetValue The target value param@[in] coin_selection_params Parameters for this coin selection such as feerates, whether to avoid partial spends, and whether to subtract the fee from the outputs. More...
|
|
static bool | wallet::IsCurrentForAntiFeeSniping (interfaces::Chain &chain, const uint256 &block_hash) |
|
static void | wallet::DiscourageFeeSniping (CMutableTransaction &tx, FastRandomContext &rng_fast, interfaces::Chain &chain, const uint256 &block_hash, int block_height) |
| Set a height-based locktime for new transactions (uses the height of the current chain tip unless we are not synced with the current chain. More...
|
|
size_t | wallet::GetSerializeSizeForRecipient (const CRecipient &recipient) |
|
bool | wallet::IsDust (const CRecipient &recipient, const CFeeRate &dustRelayFee) |
|
static util::Result< CreatedTransactionResult > | wallet::CreateTransactionInternal (CWallet &wallet, const std::vector< CRecipient > &vecSend, std::optional< unsigned int > change_pos, const CCoinControl &coin_control, bool sign) EXCLUSIVE_LOCKS_REQUIRED(wallet.cs_wallet) |
|
util::Result< CreatedTransactionResult > | wallet::CreateTransaction (CWallet &wallet, const std::vector< CRecipient > &vecSend, std::optional< unsigned int > change_pos, const CCoinControl &coin_control, bool sign=true) |
| Create a new transaction paying the recipients with a set of coins selected by SelectCoins(); Also create the change output, when needed. More...
|
|
util::Result< CreatedTransactionResult > | wallet::FundTransaction (CWallet &wallet, const CMutableTransaction &tx, const std::vector< CRecipient > &recipients, std::optional< unsigned int > change_pos, bool lockUnspents, CCoinControl) |
| Insert additional inputs into the transaction by calling CreateTransaction();. More...
|
|