mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-04-29 23:09:44 -04:00
Convert all policy from uint256 to Txid
This commit is contained in:
parent
e78e3764f1
commit
339685e1ab
8 changed files with 22 additions and 22 deletions
|
@ -518,16 +518,16 @@ void TxConfirmStats::removeTx(unsigned int entryHeight, unsigned int nBestSeenHe
|
|||
}
|
||||
}
|
||||
|
||||
bool CBlockPolicyEstimator::removeTx(uint256 hash)
|
||||
bool CBlockPolicyEstimator::removeTx(Txid hash)
|
||||
{
|
||||
LOCK(m_cs_fee_estimator);
|
||||
return _removeTx(hash, /*inBlock=*/false);
|
||||
}
|
||||
|
||||
bool CBlockPolicyEstimator::_removeTx(const uint256& hash, bool inBlock)
|
||||
bool CBlockPolicyEstimator::_removeTx(const Txid& hash, bool inBlock)
|
||||
{
|
||||
AssertLockHeld(m_cs_fee_estimator);
|
||||
std::map<uint256, TxStatsInfo>::iterator pos = mapMemPoolTxs.find(hash);
|
||||
std::map<Txid, TxStatsInfo>::iterator pos = mapMemPoolTxs.find(hash);
|
||||
if (pos != mapMemPoolTxs.end()) {
|
||||
feeStats->removeTx(pos->second.blockHeight, nBestSeenHeight, pos->second.bucketIndex, inBlock);
|
||||
shortStats->removeTx(pos->second.blockHeight, nBestSeenHeight, pos->second.bucketIndex, inBlock);
|
||||
|
|
|
@ -212,7 +212,7 @@ public:
|
|||
EXCLUSIVE_LOCKS_REQUIRED(!m_cs_fee_estimator);
|
||||
|
||||
/** Remove a transaction from the mempool tracking stats for non BLOCK removal reasons*/
|
||||
bool removeTx(uint256 hash)
|
||||
bool removeTx(Txid hash)
|
||||
EXCLUSIVE_LOCKS_REQUIRED(!m_cs_fee_estimator);
|
||||
|
||||
/** DEPRECATED. Return a feerate estimate */
|
||||
|
@ -287,7 +287,7 @@ private:
|
|||
};
|
||||
|
||||
// map of txids to information about that transaction
|
||||
std::map<uint256, TxStatsInfo> mapMemPoolTxs GUARDED_BY(m_cs_fee_estimator);
|
||||
std::map<Txid, TxStatsInfo> mapMemPoolTxs GUARDED_BY(m_cs_fee_estimator);
|
||||
|
||||
/** Classes to track historical data on transaction confirmations */
|
||||
std::unique_ptr<TxConfirmStats> feeStats PT_GUARDED_BY(m_cs_fee_estimator);
|
||||
|
@ -315,7 +315,7 @@ private:
|
|||
unsigned int MaxUsableEstimate() const EXCLUSIVE_LOCKS_REQUIRED(m_cs_fee_estimator);
|
||||
|
||||
/** A non-thread-safe helper for the removeTx function */
|
||||
bool _removeTx(const uint256& hash, bool inBlock)
|
||||
bool _removeTx(const Txid& hash, bool inBlock)
|
||||
EXCLUSIVE_LOCKS_REQUIRED(m_cs_fee_estimator);
|
||||
};
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
/** IsTopoSortedPackage where a set of txids has been pre-populated. The set is assumed to be correct and
|
||||
* is mutated within this function (even if return value is false). */
|
||||
bool IsTopoSortedPackage(const Package& txns, std::unordered_set<uint256, SaltedTxidHasher>& later_txids)
|
||||
bool IsTopoSortedPackage(const Package& txns, std::unordered_set<Txid, SaltedTxidHasher>& later_txids)
|
||||
{
|
||||
// Avoid misusing this function: later_txids should contain the txids of txns.
|
||||
Assume(txns.size() == later_txids.size());
|
||||
|
@ -42,7 +42,7 @@ bool IsTopoSortedPackage(const Package& txns, std::unordered_set<uint256, Salted
|
|||
|
||||
bool IsTopoSortedPackage(const Package& txns)
|
||||
{
|
||||
std::unordered_set<uint256, SaltedTxidHasher> later_txids;
|
||||
std::unordered_set<Txid, SaltedTxidHasher> later_txids;
|
||||
std::transform(txns.cbegin(), txns.cend(), std::inserter(later_txids, later_txids.end()),
|
||||
[](const auto& tx) { return tx->GetHash(); });
|
||||
|
||||
|
@ -91,7 +91,7 @@ bool IsWellFormedPackage(const Package& txns, PackageValidationState& state, boo
|
|||
return state.Invalid(PackageValidationResult::PCKG_POLICY, "package-too-large");
|
||||
}
|
||||
|
||||
std::unordered_set<uint256, SaltedTxidHasher> later_txids;
|
||||
std::unordered_set<Txid, SaltedTxidHasher> later_txids;
|
||||
std::transform(txns.cbegin(), txns.cend(), std::inserter(later_txids, later_txids.end()),
|
||||
[](const auto& tx) { return tx->GetHash(); });
|
||||
|
||||
|
@ -123,7 +123,7 @@ bool IsChildWithParents(const Package& package)
|
|||
|
||||
// The package is expected to be sorted, so the last transaction is the child.
|
||||
const auto& child = package.back();
|
||||
std::unordered_set<uint256, SaltedTxidHasher> input_txids;
|
||||
std::unordered_set<Txid, SaltedTxidHasher> input_txids;
|
||||
std::transform(child->vin.cbegin(), child->vin.cend(),
|
||||
std::inserter(input_txids, input_txids.end()),
|
||||
[](const auto& input) { return input.prevout.hash; });
|
||||
|
@ -136,7 +136,7 @@ bool IsChildWithParents(const Package& package)
|
|||
bool IsChildWithParentsTree(const Package& package)
|
||||
{
|
||||
if (!IsChildWithParents(package)) return false;
|
||||
std::unordered_set<uint256, SaltedTxidHasher> parent_txids;
|
||||
std::unordered_set<Txid, SaltedTxidHasher> parent_txids;
|
||||
std::transform(package.cbegin(), package.cend() - 1, std::inserter(parent_txids, parent_txids.end()),
|
||||
[](const auto& ptx) { return ptx->GetHash(); });
|
||||
// Each parent must not have an input who is one of the other parents.
|
||||
|
|
|
@ -62,7 +62,7 @@ std::optional<std::string> GetEntriesForConflicts(const CTransaction& tx,
|
|||
CTxMemPool::setEntries& all_conflicts)
|
||||
{
|
||||
AssertLockHeld(pool.cs);
|
||||
const uint256 txid = tx.GetHash();
|
||||
const Txid txid = tx.GetHash();
|
||||
uint64_t nConflictingCount = 0;
|
||||
for (const auto& mi : iters_conflicting) {
|
||||
nConflictingCount += mi->GetCountWithDescendants();
|
||||
|
@ -89,7 +89,7 @@ std::optional<std::string> HasNoNewUnconfirmed(const CTransaction& tx,
|
|||
const CTxMemPool::setEntries& iters_conflicting)
|
||||
{
|
||||
AssertLockHeld(pool.cs);
|
||||
std::set<uint256> parents_of_conflicts;
|
||||
std::set<Txid> parents_of_conflicts;
|
||||
for (const auto& mi : iters_conflicting) {
|
||||
for (const CTxIn& txin : mi->GetTx().vin) {
|
||||
parents_of_conflicts.insert(txin.prevout.hash);
|
||||
|
@ -118,7 +118,7 @@ std::optional<std::string> HasNoNewUnconfirmed(const CTransaction& tx,
|
|||
|
||||
std::optional<std::string> EntriesAndTxidsDisjoint(const CTxMemPool::setEntries& ancestors,
|
||||
const std::set<Txid>& direct_conflicts,
|
||||
const uint256& txid)
|
||||
const Txid& txid)
|
||||
{
|
||||
for (CTxMemPool::txiter ancestorIt : ancestors) {
|
||||
const Txid& hashAncestor = ancestorIt->GetTx().GetHash();
|
||||
|
@ -133,7 +133,7 @@ std::optional<std::string> EntriesAndTxidsDisjoint(const CTxMemPool::setEntries&
|
|||
|
||||
std::optional<std::string> PaysMoreThanConflicts(const CTxMemPool::setEntries& iters_conflicting,
|
||||
CFeeRate replacement_feerate,
|
||||
const uint256& txid)
|
||||
const Txid& txid)
|
||||
{
|
||||
for (const auto& mi : iters_conflicting) {
|
||||
// Don't allow the replacement to reduce the feerate of the mempool.
|
||||
|
@ -161,7 +161,7 @@ std::optional<std::string> PaysForRBF(CAmount original_fees,
|
|||
CAmount replacement_fees,
|
||||
size_t replacement_vsize,
|
||||
CFeeRate relay_fee,
|
||||
const uint256& txid)
|
||||
const Txid& txid)
|
||||
{
|
||||
// Rule #3: The replacement fees must be greater than or equal to fees of the
|
||||
// transactions it replaces, otherwise the bandwidth used by those conflicting transactions
|
||||
|
|
|
@ -90,7 +90,7 @@ std::optional<std::string> HasNoNewUnconfirmed(const CTransaction& tx, const CTx
|
|||
*/
|
||||
std::optional<std::string> EntriesAndTxidsDisjoint(const CTxMemPool::setEntries& ancestors,
|
||||
const std::set<Txid>& direct_conflicts,
|
||||
const uint256& txid);
|
||||
const Txid& txid);
|
||||
|
||||
/** Check that the feerate of the replacement transaction(s) is higher than the feerate of each
|
||||
* of the transactions in iters_conflicting.
|
||||
|
@ -98,7 +98,7 @@ std::optional<std::string> EntriesAndTxidsDisjoint(const CTxMemPool::setEntries&
|
|||
* @returns error message if fees insufficient, otherwise std::nullopt.
|
||||
*/
|
||||
std::optional<std::string> PaysMoreThanConflicts(const CTxMemPool::setEntries& iters_conflicting,
|
||||
CFeeRate replacement_feerate, const uint256& txid);
|
||||
CFeeRate replacement_feerate, const Txid& txid);
|
||||
|
||||
/** The replacement transaction must pay more fees than the original transactions. The additional
|
||||
* fees must pay for the replacement's bandwidth at or above the incremental relay feerate.
|
||||
|
@ -113,7 +113,7 @@ std::optional<std::string> PaysForRBF(CAmount original_fees,
|
|||
CAmount replacement_fees,
|
||||
size_t replacement_vsize,
|
||||
CFeeRate relay_fee,
|
||||
const uint256& txid);
|
||||
const Txid& txid);
|
||||
|
||||
/**
|
||||
* The replacement transaction must improve the feerate diagram of the mempool.
|
||||
|
|
|
@ -78,7 +78,7 @@ FUZZ_TARGET(policy_estimator, .init = initialize_policy_estimator)
|
|||
block_policy_estimator.processBlock(txs, fuzzed_data_provider.ConsumeIntegral<unsigned int>());
|
||||
},
|
||||
[&] {
|
||||
(void)block_policy_estimator.removeTx(ConsumeUInt256(fuzzed_data_provider));
|
||||
(void)block_policy_estimator.removeTx(Txid::FromUint256(ConsumeUInt256(fuzzed_data_provider)));
|
||||
},
|
||||
[&] {
|
||||
block_policy_estimator.FlushUnconfirmed();
|
||||
|
|
|
@ -196,7 +196,7 @@ BOOST_FIXTURE_TEST_CASE(rbf_helper_functions, TestChain100Setup)
|
|||
entry5_low, entry6_low_prioritised, entry7_high, entry8_high};
|
||||
CTxMemPool::setEntries empty_set;
|
||||
|
||||
const auto unused_txid{GetRandHash()};
|
||||
const auto unused_txid = Txid::FromUint256(GetRandHash());
|
||||
|
||||
// Tests for PaysMoreThanConflicts
|
||||
// These tests use feerate, not absolute fee.
|
||||
|
|
|
@ -1069,7 +1069,7 @@ bool MemPoolAccept::ReplacementChecks(Workspace& ws)
|
|||
AssertLockHeld(m_pool.cs);
|
||||
|
||||
const CTransaction& tx = *ws.m_ptx;
|
||||
const uint256& hash = ws.m_hash;
|
||||
const Txid& hash = ws.m_hash;
|
||||
TxValidationState& state = ws.m_state;
|
||||
|
||||
CFeeRate newFeeRate(ws.m_modified_fees, ws.m_vsize);
|
||||
|
|
Loading…
Add table
Reference in a new issue