/// <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); }
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); }