aboutsummaryrefslogtreecommitdiff
path: root/src/validation.h
diff options
context:
space:
mode:
authorglozow <gloriajzhao@gmail.com>2024-03-18 18:23:57 +0000
committerglozow <gloriajzhao@gmail.com>2024-03-18 18:24:06 +0000
commit5d045c31a537b417fe840271c6ed961f1d5cb130 (patch)
tree4fcc29dcd09236e52a7c8d6a09f4bf8af29dae6e /src/validation.h
parent9a459e3ab9f983aabc9942e0989f790c9a511b9f (diff)
parent38f70ba6ac86fb96c60571d2e1f316315c1c73cc (diff)
downloadbitcoin-5d045c31a537b417fe840271c6ed961f1d5cb130.tar.xz
Merge bitcoin/bitcoin#28950: RPC: Add maxfeerate and maxburnamount args to submitpackage
38f70ba6ac86fb96c60571d2e1f316315c1c73cc RPC: Add maxfeerate and maxburnamount args to submitpackage (Greg Sanders) Pull request description: Resolves https://github.com/bitcoin/bitcoin/issues/28949 I couldn't manage to do it very cleanly outside of (sub)package evaluation itself, since it would change the current interface very heavily. Instead I threaded through the max fee argument and used that directly via ATMPArgs. From that perspective, this is somewhat a reversion from https://github.com/bitcoin/bitcoin/pull/19339. In a post-cluster mempool world, these checks could be consolidated to right after the given (ancestor) package is linearized/chunked, by just checking the feerate of the top chunk and rejecting the submission entirely if the top chunk is too high. The implication here is that subpackages can be submitted to the mempool prior to hitting this new fee-based error condition. ACKs for top commit: ismaelsadeeq: Re-ACK https://github.com/bitcoin/bitcoin/commit/38f70ba6ac86fb96c60571d2e1f316315c1c73cc 👍🏾 glozow: ACK 38f70ba6ac with some non-blocking nits murchandamus: LGTM, code review ACK 38f70ba6ac86fb96c60571d2e1f316315c1c73cc Tree-SHA512: 38212aa9de25730944cee58b0806a3d37097e42719af8dd7de91ce86bb5d9770b6f7c37354bf418bd8ba571c52947da1dcdbb968bf429dd1dbdf8715315af18f
Diffstat (limited to 'src/validation.h')
-rw-r--r--src/validation.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/validation.h b/src/validation.h
index 71aac46f81..b64ba4dcbc 100644
--- a/src/validation.h
+++ b/src/validation.h
@@ -274,13 +274,15 @@ MempoolAcceptResult AcceptToMemoryPool(Chainstate& active_chainstate, const CTra
/**
* Validate (and maybe submit) a package to the mempool. See doc/policy/packages.md for full details
* on package validation rules.
-* @param[in] test_accept When true, run validation checks but don't submit to mempool.
+* @param[in] test_accept When true, run validation checks but don't submit to mempool.
+* @param[in] max_sane_feerate If exceeded by an individual transaction, rest of (sub)package evalution is aborted.
+* Only for sanity checks against local submission of transactions.
* @returns a PackageMempoolAcceptResult which includes a MempoolAcceptResult for each transaction.
* If a transaction fails, validation will exit early and some results may be missing. It is also
* possible for the package to be partially submitted.
*/
PackageMempoolAcceptResult ProcessNewPackage(Chainstate& active_chainstate, CTxMemPool& pool,
- const Package& txns, bool test_accept)
+ const Package& txns, bool test_accept, std::optional<CFeeRate> max_sane_feerate)
EXCLUSIVE_LOCKS_REQUIRED(cs_main);
/* Mempool validation helper functions */