using System.Threading; using System.Threading.Tasks; using Nethereum.Hex.HexTypes; using Nethereum.RPC.Eth.DTOs; namespace Nethereum.Contracts.ContractHandlers { public interface IContractTransactionHandler where TContractMessage : FunctionMessage, new() { Task CreateTransactionInputEstimatingGasAsync(string contractAddress, TContractMessage functionMessage = null); Task EstimateGasAsync(string contractAddress, TContractMessage functionMessage = null); Task SendRequestAndWaitForReceiptAsync(string contractAddress, TContractMessage functionMessage = null, CancellationTokenSource tokenSource = null); Task SendRequestAsync(string contractAddress, TContractMessage functionMessage = null); Task SignTransactionAsync(string contractAddress, TContractMessage functionMessage = null); } }