using System.Collections; using System.Collections.Generic; using System.Numerics; using Nethereum.Contracts; using Nethereum.Contracts.CQS; using Nethereum.Contracts.Extensions; using Nethereum.Hex.HexTypes; using Nethereum.RPC.TransactionManagers; namespace Nethereum.JsonRpc.UnityClient { public class EstimateContractTransactionUnityRequest : UnityRequest { private string _url; private readonly EthEstimateGasUnityRequest _ethEstimateGasUnityRequest; public EstimateContractTransactionUnityRequest(string url, string privateKey, string account, Dictionary requestHeaders = null) { _url = url; _ethEstimateGasUnityRequest = new EthEstimateGasUnityRequest(url) { RequestHeaders = requestHeaders }; } public IEnumerator EstimateContractFunction(TContractFunction function, string contractAdress) where TContractFunction : FunctionMessage { var callInput = function.CreateCallInput(contractAdress); yield return _ethEstimateGasUnityRequest.SendRequest(callInput); } public IEnumerator EstimateContractDeployment(TDeploymentMessage deploymentMessage) where TDeploymentMessage : ContractDeploymentMessage { var callInput = deploymentMessage.CreateCallInput(); yield return _ethEstimateGasUnityRequest.SendRequest(callInput); } } }