Esempio n. 1
0
 /// <summary>
 /// Emits the opcodes for calling a contract dynamically.
 /// </summary>
 /// <param name="builder">The <see cref="ScriptBuilder"/> to be used.</param>
 /// <param name="scriptHash">The hash of the contract to be called.</param>
 /// <param name="method">The method to be called in the contract.</param>
 /// <param name="flags">The <see cref="CallFlags"/> for calling the contract.</param>
 /// <param name="args">The arguments for calling the contract.</param>
 /// <returns>The same instance as <paramref name="builder"/>.</returns>
 public static ScriptBuilder EmitDynamicCall(this ScriptBuilder builder, UInt160 scriptHash, string method, CallFlags flags, params object[] args)
 {
     builder.CreateArray(args);
     builder.EmitPush(flags);
     builder.EmitPush(method);
     builder.EmitPush(scriptHash);
     builder.EmitSysCall(ApplicationEngine.System_Contract_Call);
     return(builder);
 }
Esempio n. 2
0
 public static ScriptBuilder EmitDynamicCall(this ScriptBuilder sb, UInt160 scriptHash, string operation, CallFlags flags, params object[] args)
 {
     sb.CreateArray(args);
     sb.EmitPush(flags);
     sb.EmitPush(operation);
     sb.EmitPush(scriptHash);
     sb.EmitSysCall(ApplicationEngine.System_Contract_Call);
     return(sb);
 }