Skip to content

Commit 1c10b73

Browse files
kristapskandrewtoththeStackajtowns
committed
RPC: Return permitbaremultisig and maxdatacarriersize in getmempoolinfo
Co-authored-by: Andrew Toth <[email protected]> Co-authored-by: Sebastian Falbesoner <[email protected]> Co-authored-by: Anthony Towns <[email protected]>
1 parent 75a5c82 commit 1c10b73

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

src/rpc/mempool.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -691,6 +691,8 @@ UniValue MempoolInfoToJSON(const CTxMemPool& pool)
691691
ret.pushKV("incrementalrelayfee", ValueFromAmount(pool.m_opts.incremental_relay_feerate.GetFeePerK()));
692692
ret.pushKV("unbroadcastcount", uint64_t{pool.GetUnbroadcastTxs().size()});
693693
ret.pushKV("fullrbf", true);
694+
ret.pushKV("permitbaremultisig", pool.m_opts.permit_bare_multisig);
695+
ret.pushKV("maxdatacarriersize", pool.m_opts.max_datacarrier_bytes.value_or(0));
694696
return ret;
695697
}
696698

@@ -713,6 +715,8 @@ static RPCHelpMan getmempoolinfo()
713715
{RPCResult::Type::NUM, "incrementalrelayfee", "minimum fee rate increment for mempool limiting or replacement in " + CURRENCY_UNIT + "/kvB"},
714716
{RPCResult::Type::NUM, "unbroadcastcount", "Current number of transactions that haven't passed initial broadcast yet"},
715717
{RPCResult::Type::BOOL, "fullrbf", "True if the mempool accepts RBF without replaceability signaling inspection (DEPRECATED)"},
718+
{RPCResult::Type::BOOL, "permitbaremultisig", "True if the mempool accepts transactions with bare multisig outputs"},
719+
{RPCResult::Type::NUM, "maxdatacarriersize", "Maximum number of bytes that can be used by OP_RETURN outputs in the mempool"},
716720
}},
717721
RPCExamples{
718722
HelpExampleCli("getmempoolinfo", "")

test/functional/mempool_accept.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ def run_test(self):
7878
node = self.nodes[0]
7979
self.wallet = MiniWallet(node)
8080

81+
assert_equal(node.getmempoolinfo()['permitbaremultisig'], False)
82+
8183
self.log.info('Start with empty mempool, and 200 blocks')
8284
self.mempool_size = 0
8385
assert_equal(node.getblockcount(), 200)

test/functional/mempool_datacarrier.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
)
1414
from test_framework.test_framework import BitcoinTestFramework
1515
from test_framework.test_node import TestNode
16-
from test_framework.util import assert_raises_rpc_error
16+
from test_framework.util import (
17+
assert_equal,
18+
assert_raises_rpc_error,
19+
)
1720
from test_framework.wallet import MiniWallet
1821

1922
from random import randbytes
@@ -48,6 +51,14 @@ def test_null_data_transaction(self, node: TestNode, data, success: bool) -> Non
4851
def run_test(self):
4952
self.wallet = MiniWallet(self.nodes[0])
5053

54+
# Test that bare multisig is allowed by default. Do it here rather than create a new test for it.
55+
assert_equal(self.nodes[0].getmempoolinfo()["permitbaremultisig"], True)
56+
57+
assert_equal(self.nodes[0].getmempoolinfo()["maxdatacarriersize"], MAX_OP_RETURN_RELAY)
58+
assert_equal(self.nodes[1].getmempoolinfo()["maxdatacarriersize"], 0)
59+
assert_equal(self.nodes[2].getmempoolinfo()["maxdatacarriersize"], CUSTOM_DATACARRIER_ARG)
60+
assert_equal(self.nodes[3].getmempoolinfo()["maxdatacarriersize"], 2)
61+
5162
# By default, any size is allowed.
5263

5364
# If it is custom set to 83, the historical value,

0 commit comments

Comments
 (0)