docs: @Override
    public UserTrades getTradeHistory(TradeHistoryParams params) throws IOException {
  
      Long limit = null;
      CurrencyPair currencyPair = null;
      Long offset = null;
      String sort = null;
  
      if (params instanceof TradeHistoryParamPaging) {
        limit = Long.valueOf(((TradeHistoryParamPaging) params).getPageLength());
      }
  
      if (params instanceof TradeHistoryParamOffset) {
        offset = ((TradeHistoryParamOffset) params).getOffset();
      }
  
      if (params instanceof TradeHistoryParamsSorted) {
        TradeHistoryParamsSorted.Order order = ((TradeHistoryParamsSorted) params).getOrder();
        if (order != null) {
          if (order.equals(TradeHistoryParamsSorted.Order.asc)) sort = "asc";
          else sort = "desc";
        }
      }
  
      if (params instanceof TradeHistoryParamCurrencyPair) {
        currencyPair = ((TradeHistoryParamCurrencyPair) params).getCurrencyPair();
      }
  
      QuadrigaCxUserTransaction[] txs =
          getQuadrigaCxUserTransactions(currencyPair, limit, offset, sort);
  
      return QuadrigaCxAdapters.adaptTradeHistory(txs, currencyPair);
    }