using System.Threading.Tasks; using Nethereum.ABI.FunctionEncoding.Attributes; using Nethereum.RPC.Eth.DTOs; namespace Nethereum.Contracts.ContractHandlers { public interface IContractQueryHandler where TFunctionMessage : FunctionMessage, new() { Task QueryAsync(string contractAddress, TFunctionMessage functionMessage = null, BlockParameter block = null); Task QueryDeserializingToObjectAsync(TFunctionMessage functionMessage, string contractAddress, BlockParameter block = null) where TFunctionOutput : IFunctionOutputDTO, new(); Task QueryRawAsBytesAsync(string contractAddress, TFunctionMessage functionMessage = null, BlockParameter block = null); Task QueryRawAsync(string contractAddress, TFunctionMessage functionMessage = null, BlockParameter block = null); } }