make IsPayToCryptoCondition neat

This commit is contained in:
Scott Sadler
2018-02-18 19:35:48 -03:00
parent 5a7cc8287b
commit 28b946127b

View File

@@ -227,28 +227,15 @@ bool CScript::IsPayToCryptoCondition() const
{ {
const_iterator pc = this->begin(); const_iterator pc = this->begin();
vector<unsigned char> data; vector<unsigned char> data;
int i = 0;
while (pc < this->end())
{
opcodetype opcode; opcodetype opcode;
if (!this->GetOp(pc, opcode, data)) if (this->GetOp(pc, opcode, data))
return 0; // Sha256 conditions are <76 bytes
switch (i++) { if (opcode > OP_0 && opcode < OP_PUSHDATA1)
case 0: if (this->GetOp(pc, opcode, data))
// Binary condition should be less than 76 bytes if (opcode == OP_CHECKCRYPTOCONDITION)
if (!(opcode > OP_0 && opcode < OP_PUSHDATA1)) if (pc == this->end())
return 0;
break;
case 1:
if (opcode != OP_CHECKCRYPTOCONDITION)
return 0;
break;
default:
return 0;
break;
}
}
return 1; return 1;
return 0;
} }
bool CScript::IsPushOnly() const bool CScript::IsPushOnly() const