public async Task InvokeNep5Async(string chainHash, string WIF, string ContractHash) { UInt160 scriptHash = ZoroHelper.Parse(ContractHash); using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitAppCall(scriptHash, "name"); sb.EmitAppCall(scriptHash, "totalSupply"); sb.EmitAppCall(scriptHash, "symbol"); sb.EmitAppCall(scriptHash, "decimals"); var result = await ZoroHelper.InvokeScript(sb.ToArray(), chainHash); //Console.WriteLine(result); MyJson.JsonNode_Object json_result_array = MyJson.Parse(result) as MyJson.JsonNode_Object; MyJson.JsonNode_Object json_result_obj = json_result_array["result"] as MyJson.JsonNode_Object; MyJson.JsonNode_Array stack = json_result_obj["stack"].AsList(); if (stack.Count == 4) { Console.WriteLine("name:" + Helper.GetJsonString(stack[0] as MyJson.JsonNode_Object)); Console.WriteLine("totalSupply:" + Helper.GetJsonBigInteger(stack[1] as MyJson.JsonNode_Object)); Console.WriteLine("symbol:" + Helper.GetJsonString(stack[2] as MyJson.JsonNode_Object)); Console.WriteLine("decimals:" + Helper.GetJsonInteger(stack[3] as MyJson.JsonNode_Object)); } } }
public async Task InvokeNativeNep5Async(string chainHash, string nativeNEP5Hash) { UInt160 nativeNEP5AssetId = ZoroHelper.Parse(nativeNEP5Hash); using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitSysCall("Zoro.NativeNEP5.Call", "Name", nativeNEP5AssetId); sb.EmitSysCall("Zoro.NativeNEP5.Call", "Symbol", nativeNEP5AssetId); sb.EmitSysCall("Zoro.NativeNEP5.Call", "TotalSupply", nativeNEP5AssetId); sb.EmitSysCall("Zoro.NativeNEP5.Call", "Decimals", nativeNEP5AssetId); var result = await ZoroHelper.InvokeScript(sb.ToArray(), chainHash); //Console.WriteLine(result); MyJson.JsonNode_Object json_result_array = MyJson.Parse(result) as MyJson.JsonNode_Object; MyJson.JsonNode_Object json_result_obj = json_result_array["result"] as MyJson.JsonNode_Object; MyJson.JsonNode_Array stack = json_result_obj["stack"].AsList(); if (stack.Count == 4) { Console.WriteLine("name:" + Helper.GetJsonString(stack[0] as MyJson.JsonNode_Object)); Console.WriteLine("symbol:" + Helper.GetJsonString(stack[1] as MyJson.JsonNode_Object)); Console.WriteLine("totalSupply:" + Helper.GetJsonBigInteger(stack[2] as MyJson.JsonNode_Object)); Console.WriteLine("decimals:" + Helper.GetJsonInteger(stack[3] as MyJson.JsonNode_Object)); } } }
public async Task ContractInvokeTestAsync(string contractHash, UInt160 address, UInt160 nativeBcp) { string[] ChainHashList = Config.getStringArray("ChainHashList"); using (ScriptBuilder sb = new ScriptBuilder()) { //sb.EmitAppCall(ZoroHelper.Parse(contractHash), "balanceOf", nativeBcp, address); //sb.EmitAppCall(ZoroHelper.Parse(contractHash), "symbol", nativeBcp); //sb.EmitAppCall(ZoroHelper.Parse(contractHash), "decimals", nativeBcp); //sb.EmitAppCall(ZoroHelper.Parse(contractHash), "totalSupply", nativeBcp); //sb.EmitAppCall(ZoroHelper.Parse(contractHash), "test"); //sb.EmitAppCall(ZoroHelper.Parse(contractHash), "call"); //sb.EmitAppCall(ZoroHelper.Parse(contractHash), "getheight"); sb.EmitAppCall(ZoroHelper.Parse(contractHash), "getheader", 20); Console.WriteLine($"Contract: {contractHash}"); foreach (var chainHash in ChainHashList) { var info = await ZoroHelper.InvokeScript(sb.ToArray(), chainHash); string chainName = chainHash.Length > 0 ? chainHash : "Root"; Console.WriteLine($"{info}"); } } }
async Task <byte> GetNativeNEP5Decimals(string assetId, string chainHash) { using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitSysCall("Zoro.NativeNEP5.Call", "Decimals", UInt160.Parse(assetId)); var info = await ZoroHelper.InvokeScript(sb.ToArray(), chainHash); return(ParseDecimals(info)); } }
async Task <byte> GetNEP5Decimals(string contractHash, string chainHash) { using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitAppCall(UInt160.Parse(contractHash), "decimals"); var info = await ZoroHelper.InvokeScript(sb.ToArray(), chainHash); return(ParseDecimals(info)); } }
protected async Task InvokeNEP5Test(string chainHash) { using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitAppCall(nep5ContractHash, "name"); sb.EmitAppCall(nep5ContractHash, "totalSupply"); sb.EmitAppCall(nep5ContractHash, "symbol"); sb.EmitAppCall(nep5ContractHash, "decimals"); string result = await ZoroHelper.InvokeScript(sb.ToArray(), chainHash); ParseInvokeResult(result); } }
async Task BalanceOfNEP5Contract(string NEP5Contract, UInt160 address, string[] chainHashList) { using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitAppCall(ZoroHelper.Parse(NEP5Contract), "balanceOf", address); sb.EmitAppCall(ZoroHelper.Parse(NEP5Contract), "decimals"); foreach (var chainHash in chainHashList) { var info = await ZoroHelper.InvokeScript(sb.ToArray(), chainHash); var value = GetBalanceFromJson(info); string chainName = chainHash.Length > 0 ? chainHash : "Root"; Console.WriteLine($"BalanceOf NEP5:{value}, chain:{chainName}"); } } }
async Task BalanceOfNativeNEP5(UInt160 nativeNEP5AssetId, UInt160 address, string[] chainHashList) { using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitSysCall("Zoro.NativeNEP5.Call", "BalanceOf", nativeNEP5AssetId, address); sb.EmitSysCall("Zoro.NativeNEP5.Call", "Decimals", nativeNEP5AssetId); Console.WriteLine($"NativeNEP5: {nativeNEP5AssetId}"); foreach (var chainHash in chainHashList) { var info = await ZoroHelper.InvokeScript(sb.ToArray(), chainHash); var value = GetBalanceFromJson(info); string chainName = chainHash.Length > 0 ? chainHash : "Root"; Console.WriteLine($"balanceOf: {value}, chain:{chainName}"); } } }