private void RecoverTxSenderIfNeeded(Transaction transaction) { if (transaction.SenderAddress == null) { _blockchainBridge.RecoverTxSender(transaction); } }
public ResultWrapper <TransactionForRpc> eth_getTransactionByHash(Keccak transactionHash) { (TxReceipt receipt, Transaction transaction) = _blockchainBridge.GetTransaction(transactionHash); if (transaction == null) { return(ResultWrapper <TransactionForRpc> .Success(null)); } _blockchainBridge.RecoverTxSender(transaction, receipt.BlockNumber); var transactionModel = new TransactionForRpc(receipt.BlockHash, receipt.BlockNumber, receipt.Index, transaction); if (_logger.IsTrace) { _logger.Trace($"eth_getTransactionByHash request {transactionHash}, result: {transactionModel.Hash}"); } return(ResultWrapper <TransactionForRpc> .Success(transactionModel)); }
public ResultWrapper <TransactionForRpc> eth_getTransactionByHash(Keccak transactionHash) { try { _readerWriterLockSlim.EnterReadLock(); (TxReceipt receipt, Transaction transaction) = _blockchainBridge.GetTransaction(transactionHash); if (transaction == null) { return(ResultWrapper <TransactionForRpc> .Success(null)); } _blockchainBridge.RecoverTxSender(transaction, receipt.BlockNumber); var transactionModel = new TransactionForRpc(receipt.BlockHash, receipt.BlockNumber, receipt.Index, transaction); if (Logger.IsTrace) { Logger.Trace($"eth_getTransactionByHash request {transactionHash}, result: {transactionModel.Hash}"); } return(ResultWrapper <TransactionForRpc> .Success(transactionModel)); } finally { _readerWriterLockSlim.ExitReadLock(); } }