diff options
author | glozow <gloriajzhao@gmail.com> | 2024-05-20 10:30:18 +0100 |
---|---|---|
committer | glozow <gloriajzhao@gmail.com> | 2024-05-21 15:06:58 +0100 |
commit | 154b2b2296edccb5ed24e829798dacb6195edc11 (patch) | |
tree | 4a14eb1b61e5cd8d015a577588384fdd53a167e1 /src/test | |
parent | a29f1df289cf27c6cbd565448548b3dc1392a9b0 (diff) |
[fuzz] V3_MAX_VSIZE and effective ancestor/descendant size limits
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/util/txmempool.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/test/util/txmempool.cpp b/src/test/util/txmempool.cpp index 71cf8aca60..585fc39bf2 100644 --- a/src/test/util/txmempool.cpp +++ b/src/test/util/txmempool.cpp @@ -125,9 +125,15 @@ void CheckMempoolV3Invariants(const CTxMemPool& tx_pool) for (const auto& tx_info : tx_pool.infoAll()) { const auto& entry = *Assert(tx_pool.GetEntry(tx_info.tx->GetHash())); if (tx_info.tx->nVersion == 3) { + // Check that special maximum virtual size is respected + Assert(entry.GetTxSize() <= V3_MAX_VSIZE); + // Check that special v3 ancestor/descendant limits and rules are always respected Assert(entry.GetCountWithDescendants() <= V3_DESCENDANT_LIMIT); Assert(entry.GetCountWithAncestors() <= V3_ANCESTOR_LIMIT); + Assert(entry.GetSizeWithDescendants() <= V3_MAX_VSIZE + V3_CHILD_MAX_VSIZE); + Assert(entry.GetSizeWithAncestors() <= V3_MAX_VSIZE + V3_CHILD_MAX_VSIZE); + // If this transaction has at least 1 ancestor, it's a "child" and has restricted weight. if (entry.GetCountWithAncestors() > 1) { Assert(entry.GetTxSize() <= V3_CHILD_MAX_VSIZE); |