Changeset View
Changeset View
Standalone View
Standalone View
src/script/standard.cpp
Show First 20 Lines • Show All 110 Lines • ▼ Show 20 Lines | for (const std::pair<txnouttype, CScript> &tplate : mTemplates) { | ||||
break; | break; | ||||
} | } | ||||
if (!script2.GetOp(pc2, opcode2, vch2)) { | if (!script2.GetOp(pc2, opcode2, vch2)) { | ||||
break; | break; | ||||
} | } | ||||
// Template matching opcodes: | // Template matching opcodes: | ||||
if (opcode2 == OP_PUBKEYS) { | if (opcode2 == OP_PUBKEYS) { | ||||
while (vch1.size() >= 33 && vch1.size() <= 65) { | while (CPubKey::ValidSize(vch1)) { | ||||
vSolutionsRet.push_back(vch1); | vSolutionsRet.push_back(vch1); | ||||
if (!script1.GetOp(pc1, opcode1, vch1)) { | if (!script1.GetOp(pc1, opcode1, vch1)) { | ||||
break; | break; | ||||
} | } | ||||
} | } | ||||
if (!script2.GetOp(pc2, opcode2, vch2)) { | if (!script2.GetOp(pc2, opcode2, vch2)) { | ||||
break; | break; | ||||
} | } | ||||
// Normal situation is to fall through to other if/else | // Normal situation is to fall through to other if/else | ||||
// statements | // statements | ||||
} | } | ||||
if (opcode2 == OP_PUBKEY) { | if (opcode2 == OP_PUBKEY) { | ||||
if (vch1.size() < 33 || vch1.size() > 65) { | if (!CPubKey::ValidSize(vch1)) { | ||||
break; | break; | ||||
} | } | ||||
vSolutionsRet.push_back(vch1); | vSolutionsRet.push_back(vch1); | ||||
} else if (opcode2 == OP_PUBKEYHASH) { | } else if (opcode2 == OP_PUBKEYHASH) { | ||||
if (vch1.size() != sizeof(uint160)) { | if (vch1.size() != sizeof(uint160)) { | ||||
break; | break; | ||||
} | } | ||||
vSolutionsRet.push_back(vch1); | vSolutionsRet.push_back(vch1); | ||||
▲ Show 20 Lines • Show All 144 Lines • Show Last 20 Lines |