using Nethereum.Contracts.CQS; using Nethereum.RPC.Eth.DTOs; namespace Nethereum.Contracts.MessageEncodingServices { public interface IFunctionMessageEncodingService: IDefaultAddressService where TContractFunction : ContractMessageBase { string ContractAddress { get; } CallInput CreateCallInput(TContractFunction contractMessage); TransactionInput CreateTransactionInput(TContractFunction contractMessage); TReturn DecodeDTOTypeOutput(string output) where TReturn : new(); TContractFunction DecodeInput(TContractFunction function, string data); TReturn DecodeSimpleTypeOutput(string output); byte[] GetCallData(TContractFunction contractMessage); void SetContractAddress(string address); } }