using System.Threading; using System.Threading.Tasks; using Nethereum.Hex.HexTypes; using Nethereum.RPC.Eth.DTOs; namespace Nethereum.Contracts.CQS { public interface IContractDeploymentTransactionHandler where TContractDeploymentMessage : ContractDeploymentMessage, new() { Task CreateTransactionInputEstimatingGasAsync(TContractDeploymentMessage deploymentMessage = null); Task EstimateGasAsync(TContractDeploymentMessage contractDeploymentMessage); Task SendRequestAndWaitForReceiptAsync(TContractDeploymentMessage contractDeploymentMessage = null, CancellationTokenSource tokenSource = null); Task SendRequestAsync(TContractDeploymentMessage contractDeploymentMessage = null); Task SignTransactionAsync(TContractDeploymentMessage contractDeploymentMessage); } }