BitSharp.Core.Rules.CoreRules.CountLegacySigOps C# (CSharp) Метод

CountLegacySigOps() приватный Метод

private CountLegacySigOps ( ImmutableArray script, bool accurate ) : int
script ImmutableArray
accurate bool
Результат int
        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;
        }