File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change 10
10
#include < chainparams.h>
11
11
#include < core_io.h>
12
12
#include < kernel/mempool_entry.h>
13
+ #include < node/context.h>
13
14
#include < node/mempool_persist_args.h>
14
15
#include < node/types.h>
15
16
#include < policy/rbf.h>
20
21
#include < rpc/util.h>
21
22
#include < txmempool.h>
22
23
#include < univalue.h>
24
+ #include < util/any.h>
23
25
#include < util/fs.h>
24
26
#include < util/moneystr.h>
25
27
#include < util/strencodings.h>
26
28
#include < util/time.h>
29
+ #include < validation.h>
27
30
28
31
#include < utility>
29
32
@@ -392,13 +395,19 @@ static RPCHelpMan maxmempool()
392
395
int64_t nMempoolSizeMax = nSize * 1000000 ;
393
396
394
397
CTxMemPool& mempool = EnsureAnyMemPool (request.context );
395
- LOCK ( mempool.cs );
398
+ LOCK2 (cs_main, mempool.cs );
396
399
397
400
int64_t nMempoolSizeMin = maxmempoolMinimumBytes (mempool.m_opts .limits .descendant_size_vbytes );
398
401
if (nMempoolSizeMax < 0 || nMempoolSizeMax < nMempoolSizeMin)
399
402
throw JSONRPCError (RPC_INVALID_PARAMETER, strprintf (" MaxMempool size %d is too small" , nSize));
400
403
mempool.m_opts .max_size_bytes = nSize;
401
404
405
+ auto node_context = util::AnyPtr<NodeContext>(request.context );
406
+ if (node_context && node_context->chainman ) {
407
+ Chainstate& active_chainstate = node_context->chainman ->ActiveChainstate ();
408
+ LimitMempoolSize (mempool, active_chainstate.CoinsTip ());
409
+ }
410
+
402
411
return NullUniValue;
403
412
}
404
413
};
You can’t perform that action at this time.
0 commit comments