Skip to content

Commit 6666438

Browse files
author
MacroFake
committed
Remove ::g_max_datacarrier_bytes global
1 parent fad0b4f commit 6666438

File tree

13 files changed

+27
-27
lines changed

13 files changed

+27
-27
lines changed

src/init.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -975,12 +975,6 @@ bool AppInitParameterInteraction(const ArgsManager& args, bool use_syscall_sandb
975975

976976
if (!g_wallet_init_interface.ParameterInteraction()) return false;
977977

978-
if (args.GetBoolArg("-datacarrier", DEFAULT_ACCEPT_DATACARRIER)) {
979-
g_max_datacarrier_bytes = args.GetIntArg("-datacarriersize", MAX_OP_RETURN_RELAY);
980-
} else {
981-
g_max_datacarrier_bytes = std::nullopt;
982-
}
983-
984978
// Option to startup with mocktime set (used for regression testing):
985979
SetMockTime(args.GetIntArg("-mocktime", 0)); // SetMockTime(0) is a no-op
986980

src/kernel/mempool_options.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@
88

99
#include <policy/feerate.h>
1010
#include <policy/policy.h>
11+
#include <script/standard.h>
1112

1213
#include <chrono>
1314
#include <cstdint>
15+
#include <optional>
1416

1517
class CBlockPolicyEstimator;
1618

@@ -40,6 +42,14 @@ struct MemPoolOptions {
4042
/** A fee rate smaller than this is considered zero fee (for relaying, mining and transaction creation) */
4143
CFeeRate min_relay_feerate{DEFAULT_MIN_RELAY_TX_FEE};
4244
CFeeRate dust_relay_feerate{DUST_RELAY_TX_FEE};
45+
/**
46+
* A data carrying output is an unspendable output containing data. The script
47+
* type is designated as TxoutType::NULL_DATA.
48+
*
49+
* Maximum size of TxoutType::NULL_DATA scripts that this node considers standard.
50+
* If nullopt, any size is nonstandard.
51+
*/
52+
std::optional<unsigned> max_datacarrier_bytes{DEFAULT_ACCEPT_DATACARRIER ? std::optional{MAX_OP_RETURN_RELAY} : std::nullopt};
4353
bool permit_bare_multisig{DEFAULT_PERMIT_BAREMULTISIG};
4454
bool require_standard{true};
4555
bool full_rbf{DEFAULT_MEMPOOL_FULL_RBF};

src/mempool_args.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,12 @@ std::optional<bilingual_str> ApplyArgsManOptions(const ArgsManager& argsman, con
8080

8181
mempool_opts.permit_bare_multisig = argsman.GetBoolArg("-permitbaremultisig", DEFAULT_PERMIT_BAREMULTISIG);
8282

83+
if (argsman.GetBoolArg("-datacarrier", DEFAULT_ACCEPT_DATACARRIER)) {
84+
mempool_opts.max_datacarrier_bytes = argsman.GetIntArg("-datacarriersize", MAX_OP_RETURN_RELAY);
85+
} else {
86+
mempool_opts.max_datacarrier_bytes = std::nullopt;
87+
}
88+
8389
mempool_opts.require_standard = !argsman.GetBoolArg("-acceptnonstdtxn", !chainparams.RequireStandard());
8490
if (!chainparams.IsTestChain() && !mempool_opts.require_standard) {
8591
return strprintf(Untranslated("acceptnonstdtxn is not currently supported for %s chain"), chainparams.NetworkIDString());

src/policy/policy.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ bool IsStandard(const CScript& scriptPubKey, const std::optional<unsigned>& max_
9191
return true;
9292
}
9393

94-
bool IsStandardTx(const CTransaction& tx, bool permit_bare_multisig, const CFeeRate& dust_relay_fee, std::string& reason)
94+
bool IsStandardTx(const CTransaction& tx, const std::optional<unsigned>& max_datacarrier_bytes, bool permit_bare_multisig, const CFeeRate& dust_relay_fee, std::string& reason)
9595
{
9696
if (tx.nVersion > TX_MAX_STANDARD_VERSION || tx.nVersion < 1) {
9797
reason = "version";
@@ -131,7 +131,7 @@ bool IsStandardTx(const CTransaction& tx, bool permit_bare_multisig, const CFeeR
131131
unsigned int nDataOut = 0;
132132
TxoutType whichType;
133133
for (const CTxOut& txout : tx.vout) {
134-
if (!::IsStandard(txout.scriptPubKey, g_max_datacarrier_bytes, whichType)) {
134+
if (!::IsStandard(txout.scriptPubKey, max_datacarrier_bytes, whichType)) {
135135
reason = "scriptpubkey";
136136
return false;
137137
}

src/policy/policy.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ static constexpr decltype(CTransaction::nVersion) TX_MAX_STANDARD_VERSION{2};
117117
* Check for standard transaction types
118118
* @return True if all outputs (scriptPubKeys) use only standard transaction forms
119119
*/
120-
bool IsStandardTx(const CTransaction& tx, bool permit_bare_multisig, const CFeeRate& dust_relay_fee, std::string& reason);
120+
bool IsStandardTx(const CTransaction& tx, const std::optional<unsigned>& max_datacarrier_bytes, bool permit_bare_multisig, const CFeeRate& dust_relay_fee, std::string& reason);
121121
/**
122122
* Check for standard transaction types
123123
* @param[in] mapInputs Map of previous transactions that have outputs we're spending

src/script/standard.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
typedef std::vector<unsigned char> valtype;
1818

19-
std::optional<unsigned> g_max_datacarrier_bytes{DEFAULT_ACCEPT_DATACARRIER ? std::optional{MAX_OP_RETURN_RELAY} : std::nullopt};
20-
2119
CScriptID::CScriptID(const CScript& in) : BaseHash(Hash160(in)) {}
2220
CScriptID::CScriptID(const ScriptHash& in) : BaseHash(static_cast<uint160>(in)) {}
2321

src/script/standard.h

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include <util/hash_type.h>
1414

1515
#include <map>
16-
#include <optional>
1716
#include <string>
1817
#include <variant>
1918

@@ -39,15 +38,6 @@ class CScriptID : public BaseHash<uint160>
3938
*/
4039
static const unsigned int MAX_OP_RETURN_RELAY = 83;
4140

42-
/**
43-
* A data carrying output is an unspendable output containing data. The script
44-
* type is designated as TxoutType::NULL_DATA.
45-
*
46-
* Maximum size of TxoutType::NULL_DATA scripts that this node considers standard.
47-
* If nullopt, any size is nonstandard.
48-
*/
49-
extern std::optional<unsigned> g_max_datacarrier_bytes;
50-
5141
/**
5242
* Mandatory script verification flags that all new blocks must comply with for
5343
* them to be valid. (but old blocks may not comply with) Currently just P2SH,

src/test/fuzz/transaction.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ FUZZ_TARGET_INIT(transaction, initialize_transaction)
6969

7070
const CFeeRate dust_relay_fee{DUST_RELAY_TX_FEE};
7171
std::string reason;
72-
const bool is_standard_with_permit_bare_multisig = IsStandardTx(tx, /* permit_bare_multisig= */ true, dust_relay_fee, reason);
73-
const bool is_standard_without_permit_bare_multisig = IsStandardTx(tx, /* permit_bare_multisig= */ false, dust_relay_fee, reason);
72+
const bool is_standard_with_permit_bare_multisig = IsStandardTx(tx, std::nullopt, /* permit_bare_multisig= */ true, dust_relay_fee, reason);
73+
const bool is_standard_without_permit_bare_multisig = IsStandardTx(tx, std::nullopt, /* permit_bare_multisig= */ false, dust_relay_fee, reason);
7474
if (is_standard_without_permit_bare_multisig) {
7575
assert(is_standard_with_permit_bare_multisig);
7676
}

src/test/script_p2sh_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
// Helpers:
2121
bool IsStandardTx(const CTransaction& tx, std::string& reason)
2222
{
23-
return IsStandardTx(tx, DEFAULT_PERMIT_BAREMULTISIG, CFeeRate{DUST_RELAY_TX_FEE}, reason);
23+
return IsStandardTx(tx, std::nullopt, DEFAULT_PERMIT_BAREMULTISIG, CFeeRate{DUST_RELAY_TX_FEE}, reason);
2424
}
2525

2626
static std::vector<unsigned char>

src/test/transaction_tests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -767,12 +767,12 @@ BOOST_AUTO_TEST_CASE(test_IsStandard)
767767

768768
constexpr auto CheckIsStandard = [](const auto& t) {
769769
std::string reason;
770-
BOOST_CHECK(IsStandardTx(CTransaction{t}, g_bare_multi, g_dust, reason));
770+
BOOST_CHECK(IsStandardTx(CTransaction{t}, MAX_OP_RETURN_RELAY, g_bare_multi, g_dust, reason));
771771
BOOST_CHECK(reason.empty());
772772
};
773773
constexpr auto CheckIsNotStandard = [](const auto& t, const std::string& reason_in) {
774774
std::string reason;
775-
BOOST_CHECK(!IsStandardTx(CTransaction{t}, g_bare_multi, g_dust, reason));
775+
BOOST_CHECK(!IsStandardTx(CTransaction{t}, MAX_OP_RETURN_RELAY, g_bare_multi, g_dust, reason));
776776
BOOST_CHECK_EQUAL(reason_in, reason);
777777
};
778778

0 commit comments

Comments
 (0)