public Task <TransactionReceipt> TransferEtherAndWaitForReceiptAsync(string toAddress, decimal etherAmount, decimal?gasPriceGwei = null, HexBigInteger epochNumber = null, HexBigInteger nextNonce = null, BigInteger?gas = null, CancellationTokenSource tokenSource = null, BigInteger?nonce = null)
        {
            var fromAddress      = _transactionManager?.Account?.Address;
            var transactionInput = EtherTransferTransactionInputBuilder.CreateTransactionInput(fromAddress, toAddress, etherAmount, gasPriceGwei, gas, nonce, epochNumber, nextNonce);

            return(_transactionManager.SendTransactionAndWaitForReceiptAsync(transactionInput, tokenSource));
        }
        public Task <string> TransferEtherAsync(string toAddress, decimal etherAmount, decimal?gasPriceGwei = null, BigInteger?gas = null, BigInteger?nonce = null)
        {
            var fromAddress      = _transactionManager?.Account?.Address;
            var transactionInput = EtherTransferTransactionInputBuilder.CreateTransactionInput(fromAddress, toAddress, etherAmount, gasPriceGwei, gas, nonce);

            return(_transactionManager.SendTransactionAsync(transactionInput));
        }
        public async Task <BigInteger> EstimateGasAsync(string toAddress, decimal etherAmount)
        {
            var fromAddress = _transactionManager?.Account?.Address;
            var callInput   = (CallInput)EtherTransferTransactionInputBuilder.CreateTransactionInput(fromAddress, toAddress, etherAmount);
            var hexEstimate = await _transactionManager.EstimateGasAsync(callInput);

            return(hexEstimate.Value);
        }