Exemplo n.º 1
0
        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));
                }
            }
        }
Exemplo n.º 2
0
        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));
                }
            }
        }
Exemplo n.º 3
0
        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}");
                }
            }
        }
Exemplo n.º 4
0
        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));
            }
        }
Exemplo n.º 5
0
        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));
            }
        }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
        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}");
                }
            }
        }
Exemplo n.º 8
0
        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}");
                }
            }
        }