private bool CheckDynamicInvoke(OpCode nextInstruction) { if (nextInstruction == OpCode.APPCALL || nextInstruction == OpCode.TAILCALL) { for (int i = CurrentContext.InstructionPointer + 1; i < CurrentContext.InstructionPointer + 21; i++) { if (CurrentContext.Script[i] != 0) { return(true); } } // if we get this far it is a dynamic call // now look at the current executing script // to determine if it can do dynamic calls ContractState contract = script_table.GetContractState(CurrentContext.ScriptHash); return(contract.HasDynamicInvoke); } return(true); }