code: func (s *PublicTransactionPoolAPI) GetTransactionByHash(ctx context.Context, hash common.Hash) *RPCTransaction {
  	// Try to return an already finalized transaction
  	if tx, blockHash, blockNumber, index := rawdb.ReadTransaction(s.b.ChainDb(), hash); tx != nil {
  		return newRPCTransaction(tx, blockHash, blockNumber, index)
  	}
  	// No finalized transaction, try to retrieve it from the pool
  	if tx := s.b.GetPoolTransaction(hash); tx != nil {
  		return newRPCPendingTransaction(tx)
  	}
  	// Transaction unknown, return as such
  	return nil
  }
docs: // GetTransactionByHash returns the transaction for the given hash