MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / AllConsensusFlags

Function AllConsensusFlags

src/test/script_assets_tests.cpp:74–97  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72}
73
74static std::vector<script_verify_flags> AllConsensusFlags()
75{
76 std::vector<script_verify_flags> ret;
77
78 for (unsigned int i = 0; i < 128; ++i) {
79 script_verify_flags flag = 0;
80 if (i & 1) flag |= SCRIPT_VERIFY_P2SH;
81 if (i & 2) flag |= SCRIPT_VERIFY_DERSIG;
82 if (i & 4) flag |= SCRIPT_VERIFY_NULLDUMMY;
83 if (i & 8) flag |= SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY;
84 if (i & 16) flag |= SCRIPT_VERIFY_CHECKSEQUENCEVERIFY;
85 if (i & 32) flag |= SCRIPT_VERIFY_WITNESS;
86 if (i & 64) flag |= SCRIPT_VERIFY_TAPROOT;
87
88 // SCRIPT_VERIFY_WITNESS requires SCRIPT_VERIFY_P2SH
89 if (flag & SCRIPT_VERIFY_WITNESS && !(flag & SCRIPT_VERIFY_P2SH)) continue;
90 // SCRIPT_VERIFY_TAPROOT requires SCRIPT_VERIFY_WITNESS
91 if (flag & SCRIPT_VERIFY_TAPROOT && !(flag & SCRIPT_VERIFY_WITNESS)) continue;
92
93 ret.push_back(flag);
94 }
95
96 return ret;
97}
98
99/** Precomputed list of all valid combinations of consensus-relevant script validation flags. */
100static const std::vector<script_verify_flags> ALL_CONSENSUS_FLAGS = AllConsensusFlags();

Callers 1

Calls 1

push_backMethod · 0.45

Tested by

no test coverage detected