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

Function CheckMinimalPush

src/script/interpreter.cpp:256–279  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

254}
255
256bool static CheckMinimalPush(const valtype& data, opcodetype opcode) {
257 // Excludes OP_1NEGATE, OP_1-16 since they are by definition minimal
258 assert(0 <= opcode && opcode <= OP_PUSHDATA4);
259 if (data.size() == 0) {
260 // Should have used OP_0.
261 return opcode == OP_0;
262 } else if (data.size() == 1 && data[0] >= 1 && data[0] <= 16) {
263 // Should have used OP_1 .. OP_16.
264 return false;
265 } else if (data.size() == 1 && data[0] == 0x81) {
266 // Should have used OP_1NEGATE.
267 return false;
268 } else if (data.size() <= 75) {
269 // Must have used a direct push (opcode indicating number of bytes pushed + those bytes).
270 return opcode == data.size();
271 } else if (data.size() <= 255) {
272 // Must have used OP_PUSHDATA.
273 return opcode == OP_PUSHDATA1;
274 } else if (data.size() <= 65535) {
275 // Must have used OP_PUSHDATA2.
276 return opcode == OP_PUSHDATA2;
277 }
278 return true;
279}
280
281int FindAndDelete(CScript& script, const CScript& b)
282{

Callers 1

EvalScriptFunction · 0.85

Calls 1

sizeMethod · 0.45

Tested by

no test coverage detected