parse method
Implementation
@override
void parse(SVScript script) {
if (script != null) {
var chunkList = script.chunks;
if (!chunkList[0].isPushData() && chunkList[1].opcodenum != OpCodes.OP_DROP) {
throw ScriptException(ScriptError.SCRIPT_ERR_UNKNOWN_ERROR," - Script must start with PUSHDATA & DROP instruction.");
}
int chunkListOffset = 0;
if (chunkList.length == 8) {
chunkListOffset = 1;
}
if (chunkList[chunkListOffset + 4].opcodenum != 20) {
throw ScriptException(ScriptError.SCRIPT_ERR_UNKNOWN_ERROR," - Signature and Public Key values are malformed");
}
if (!(chunkList[chunkListOffset + 2].opcodenum == OpCodes.OP_DUP &&
chunkList[chunkListOffset + 3].opcodenum == OpCodes.OP_HASH160 &&
chunkList[chunkListOffset + 5].opcodenum == OpCodes.OP_EQUALVERIFY &&
chunkList[chunkListOffset + 6].opcodenum == OpCodes.OP_CHECKSIG)) {
throw ScriptException(ScriptError.SCRIPT_ERR_UNKNOWN_ERROR," - Malformed script. Mismatched OP_CODES.");
}
_dataBuffer = chunkList[chunkListOffset].buf;
_pubkeyHash = chunkList[chunkListOffset + 4].buf;
} else {
throw ScriptException(ScriptError.SCRIPT_ERR_UNKNOWN_ERROR,"- Invalid Script or Malformed Script.");
}
}