public async Task <TokenInfo> GetTokenInfoAsync(string tokenContractAddress)
        {
            var erc20Service = new Contracts.EIP20.EIP20Service(this.web3, tokenContractAddress);

            return(new TokenInfo()
            {
                Name = await erc20Service.NameQueryAsync(),
                Symbol = await erc20Service.SymbolQueryAsync(),
                TotalSupplied = await erc20Service.TotalSupplyQueryAsync(),
                ContractAddress = tokenContractAddress
            });
        }
        public async Task <BigInteger> AllowanceAsync(string tokenContractAddress, string ownerAddress, string spenderAddress)
        {
            var erc20Service = new Contracts.EIP20.EIP20Service(this.web3, tokenContractAddress);

            return(await erc20Service.AllowanceQueryAsync(ownerAddress, spenderAddress));
        }
        public async Task <TransactionReceipt> TransferAsync(string tokenContractAddress, string recepientAddress, BigInteger amount)
        {
            var erc20Service = new Contracts.EIP20.EIP20Service(this.web3, tokenContractAddress);

            return(await erc20Service.TransferRequestAndWaitForReceiptAsync(recepientAddress, amount));
        }
        public async Task <TransactionReceipt> ApproveAsync(string tokenContractAddress, string spenderAddress, BigInteger amount)
        {
            var erc20Service = new Contracts.EIP20.EIP20Service(this.web3, tokenContractAddress);

            return(await erc20Service.ApproveRequestAndWaitForReceiptAsync(spenderAddress, amount));
        }
        public async Task <BigInteger> GetBalanceAsync(string tokenContractAddress, string address)
        {
            var erc20Service = new Contracts.EIP20.EIP20Service(this.web3, tokenContractAddress);

            return(await erc20Service.BalanceOfQueryAsync(address));
        }