public async Task <string> SendRequestAsync(string transactionHash)
        {
            var transaction = await _apiTransactionsService.GetTransactionByHash.SendRequestAsync(transactionHash);

            var transactionInput    = transaction.ConvertToTransactionInput();
            var functionCallDecoder = new FunctionCallDecoder();

            if (transactionInput.MaxFeePerGas != null)
            {
                transactionInput.GasPrice = null;
            }
            try
            {
                var errorHex = await _apiTransactionsService.Call.SendRequestAsync(transactionInput, new BlockParameter(transaction.BlockNumber));

                if (ErrorFunction.IsErrorData(errorHex))
                {
                    return(functionCallDecoder.DecodeFunctionErrorMessage(errorHex));
                }
                return(string.Empty);
            }
            catch (RpcResponseException rpcException)
            {
                ContractRevertExceptionHandler.HandleContractRevertException(rpcException);
                throw;
            }
        }
Esempio n. 2
0
        public async Task <string> SendRequestAsync(string transactionHash)
        {
            var transaction = await _apiTransactionsService.GetTransactionByHash.SendRequestAsync(transactionHash);

            var errorHex = await _apiTransactionsService.Call.SendRequestAsync(transaction.ConvertToTransactionInput(), new BlockParameter(transaction.BlockNumber));

            if (ErrorFunction.IsErrorData(errorHex))
            {
                return(new FunctionCallDecoder().DecodeFunctionErrorMessage(errorHex));
            }
            return(string.Empty);
        }