Пример #1
0
        // #region Send
        //
        // public async Task<string> Send(string network, string seed, int index, string receiver, decimal amount, ulong nonce)
        // {
        //     var key = new Key(seed.HexDecode(), index);
        //     var wallet = key.ToWallet();
        //
        //     var txAmount = (ulong) (amount * (decimal) MoneyUnit.BTC);
        //
        //     var tx = new TransactionRequest()
        //         .AddSender(wallet.Base58Address, key, txAmount + Constants.Commission, nonce)
        //         .AddTransfer(receiver, txAmount)
        //         .Sign();
        //
        //     await _httpService.Send(network, tx);
        //     return tx.Hash;
        // }
        //
        // public async Task<string> Send(string network, string seed, int index, string receiver, decimal amount, bool useUnconfirmed = false)
        // {
        //     var key = new Key(seed.HexDecode(), index);
        //     var wallet = key.ToWallet();
        //
        //     var nonceDto = await _httpService.GetNonce(network, wallet.Base58Address);
        //     var nonce = nonceDto.ConfirmedNonce;
        //     if (useUnconfirmed)
        //     {
        //         nonce = nonceDto.UnconfirmedNonce;
        //     }
        //     var txAmount = (ulong) (amount * (decimal) MoneyUnit.BTC);
        //
        //     var tx = new TransactionRequest()
        //         .AddSender(wallet.Base58Address, key, txAmount + Constants.Commission, nonce)
        //         .AddTransfer(receiver, txAmount)
        //         .Sign();
        //
        //     await _httpService.Send(network, tx);
        //     return tx.Hash;
        // }
        //
        // #endregion

        #region Contracts

        public async Task <T> StaticCall <T>(string network, string address, ContractFunctionCall call)
        {
            var payload = call.ArgsCall.Aggregate(call.Function.NameHex, (current, argCall) => current + argCall.ToPayloadHex());

            var req = new ContractStaticCallRequestDto
            {
                Address = address,
                Payload = payload
            };
            var res = await _httpService.ContractStaticCall(network, req);

            return(res.Result.ConvertTo <T>());
        }
Пример #2
0
        public async Task StaticCallTest2()
        {
            var call = new ContractFunctionCall(Erc20.Name);
            var res  = await _service.StaticCall <string>(Network, "SXY3xT8FnCfNTTZF3si777QyXAdwALP3QSu", call);

            var json = JsonSerializer.Serialize(res);

            _testOutputHelper.WriteLine(json);

            var call2 = new ContractFunctionCall(Erc20.Decimals);
            var res2  = await _service.StaticCall <byte>(Network, "SXY3xT8FnCfNTTZF3si777QyXAdwALP3QSu", call2);

            var json2 = JsonSerializer.Serialize(res2);

            _testOutputHelper.WriteLine(json2);
        }