mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-15 12:51:00 +02:00
Merge 8cb6ab0b97 into merged_master (Bitcoin PR bitcoin/bitcoin#32025)
This commit is contained in:
commit
c1820ce4b9
7 changed files with 80 additions and 79 deletions
|
|
@ -716,7 +716,7 @@ private:
|
|||
// cache - should only be called after successful validation of all transactions in the package.
|
||||
// Does not call LimitMempoolSize(), so mempool max_size_bytes may be temporarily exceeded.
|
||||
bool SubmitPackage(const ATMPArgs& args, std::vector<Workspace>& workspaces, PackageValidationState& package_state,
|
||||
std::map<uint256, MempoolAcceptResult>& results)
|
||||
std::map<Wtxid, MempoolAcceptResult>& results)
|
||||
EXCLUSIVE_LOCKS_REQUIRED(cs_main, m_pool.cs);
|
||||
|
||||
// Compare a package's feerate against minimum allowed.
|
||||
|
|
@ -1573,7 +1573,7 @@ void MemPoolAccept::FinalizeSubpackage(const ATMPArgs& args)
|
|||
|
||||
bool MemPoolAccept::SubmitPackage(const ATMPArgs& args, std::vector<Workspace>& workspaces,
|
||||
PackageValidationState& package_state,
|
||||
std::map<uint256, MempoolAcceptResult>& results)
|
||||
std::map<Wtxid, MempoolAcceptResult>& results)
|
||||
{
|
||||
AssertLockHeld(cs_main);
|
||||
AssertLockHeld(m_pool.cs);
|
||||
|
|
@ -1673,8 +1673,8 @@ MempoolAcceptResult MemPoolAccept::AcceptSingleTransaction(const CTransactionRef
|
|||
}
|
||||
|
||||
if (m_pool.m_opts.require_standard) {
|
||||
Txid dummy_txid;
|
||||
if (!CheckEphemeralSpends(/*package=*/{ptx}, m_pool.m_opts.dust_relay_feerate, m_pool, ws.m_state, dummy_txid)) {
|
||||
Wtxid dummy_wtxid;
|
||||
if (!CheckEphemeralSpends(/*package=*/{ptx}, m_pool.m_opts.dust_relay_feerate, m_pool, ws.m_state, dummy_wtxid)) {
|
||||
return MempoolAcceptResult::Failure(ws.m_state);
|
||||
}
|
||||
}
|
||||
|
|
@ -1747,7 +1747,7 @@ PackageMempoolAcceptResult MemPoolAccept::AcceptMultipleTransactions(const std::
|
|||
workspaces.reserve(txns.size());
|
||||
std::transform(txns.cbegin(), txns.cend(), std::back_inserter(workspaces),
|
||||
[&](const auto& tx) { return Workspace(tx, args.m_chainparams.HashGenesisBlock()); });
|
||||
std::map<uint256, MempoolAcceptResult> results;
|
||||
std::map<Wtxid, MempoolAcceptResult> results;
|
||||
|
||||
LOCK(m_pool.cs);
|
||||
|
||||
|
|
@ -1827,10 +1827,10 @@ PackageMempoolAcceptResult MemPoolAccept::AcceptMultipleTransactions(const std::
|
|||
// Now that we've bounded the resulting possible ancestry count, check package for dust spends
|
||||
if (m_pool.m_opts.require_standard) {
|
||||
TxValidationState child_state;
|
||||
Txid child_txid;
|
||||
if (!CheckEphemeralSpends(txns, m_pool.m_opts.dust_relay_feerate, m_pool, child_state, child_txid)) {
|
||||
Wtxid child_wtxid;
|
||||
if (!CheckEphemeralSpends(txns, m_pool.m_opts.dust_relay_feerate, m_pool, child_state, child_wtxid)) {
|
||||
package_state.Invalid(PackageValidationResult::PCKG_TX, "unspent-dust");
|
||||
results.emplace(child_txid, MempoolAcceptResult::Failure(child_state));
|
||||
results.emplace(child_wtxid, MempoolAcceptResult::Failure(child_state));
|
||||
return PackageMempoolAcceptResult(package_state, std::move(results));
|
||||
}
|
||||
}
|
||||
|
|
@ -1986,11 +1986,11 @@ PackageMempoolAcceptResult MemPoolAccept::AcceptPackage(const Package& package,
|
|||
LOCK(m_pool.cs);
|
||||
// Stores results from which we will create the returned PackageMempoolAcceptResult.
|
||||
// A result may be changed if a mempool transaction is evicted later due to LimitMempoolSize().
|
||||
std::map<uint256, MempoolAcceptResult> results_final;
|
||||
std::map<Wtxid, MempoolAcceptResult> results_final;
|
||||
// Results from individual validation which will be returned if no other result is available for
|
||||
// this transaction. "Nonfinal" because if a transaction fails by itself but succeeds later
|
||||
// (i.e. when evaluated with a fee-bumping child), the result in this map may be discarded.
|
||||
std::map<uint256, MempoolAcceptResult> individual_results_nonfinal;
|
||||
std::map<Wtxid, MempoolAcceptResult> individual_results_nonfinal;
|
||||
// Tracks whether we think package submission could result in successful entry to the mempool
|
||||
bool quit_early{false};
|
||||
std::vector<CTransactionRef> txns_package_eval;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue