private int CountLegacySigOps(ImmutableArray<byte> script, bool accurate)
{
var sigOpCount = 0;
var index = 0;
while (index < script.Length)
{
ScriptOp op;
if (!GetOp(script, ref index, out op))
break;
switch (op)
{
case ScriptOp.OP_CHECKSIG:
case ScriptOp.OP_CHECKSIGVERIFY:
sigOpCount++;
break;
case ScriptOp.OP_CHECKMULTISIG:
case ScriptOp.OP_CHECKMULTISIGVERIFY:
//TODO
var prevOpCode = index >= 2 ? script[index - 2] : (byte)ScriptOp.OP_INVALIDOPCODE;
if (accurate && prevOpCode >= (byte)ScriptOp.OP_1 && prevOpCode <= (byte)ScriptOp.OP_16)
sigOpCount += prevOpCode - ((byte)ScriptOp.OP_1 - 1);
else
sigOpCount += MAX_PUBKEYS_PER_MULTISIG;
break;
}
}
return sigOpCount;
}