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

Method IsWitnessProgram

src/script/script.cpp:223–237  ·  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

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

Callers 6

IsWitnessStandardFunction · 0.80
operator()Method · 0.80
VerifyScriptFunction · 0.80
CountWitnessSigOpsFunction · 0.80
SolverFunction · 0.80
BOOST_FOREACHFunction · 0.80

Calls 3

sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected