MCPcopy Create free account
hub / github.com/BTCGPU/BTCGPU / IsWitnessProgram

Method IsWitnessProgram

src/script/script.cpp:216–230  ·  view source on GitHub ↗

A witness program is any valid CScript that consists of a 1-byte push opcode followed by a data push between 2 and 40 bytes.

Source from the content-addressed store, hash-verified

214// A witness program is any valid CScript that consists of a 1-byte push opcode
215// followed by a data push between 2 and 40 bytes.
216bool CScript::IsWitnessProgram(int& version, std::vector<unsigned char>& program) const
217{
218 if (this->size() < 4 || this->size() > 42) {
219 return false;
220 }
221 if ((*this)[0] != OP_0 && ((*this)[0] < OP_1 || (*this)[0] > OP_16)) {
222 return false;
223 }
224 if ((size_t)((*this)[1] + 2) == this->size()) {
225 version = DecodeOP_N((opcodetype)(*this)[0]);
226 program = std::vector<unsigned char>(this->begin() + 2, this->end());
227 return true;
228 }
229 return false;
230}
231
232bool CScript::IsPushOnly(const_iterator pc) const
233{

Callers 8

GetDustThresholdFunction · 0.80
IsWitnessStandardFunction · 0.80
operator()Method · 0.80
TransactionChangeTypeMethod · 0.80
VerifyScriptFunction · 0.80
CountWitnessSigOpsFunction · 0.80
SolverFunction · 0.80
updateLabelsMethod · 0.80

Calls 3

sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected