示例#1
0
 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);
 }