docs: @Override
    public UserTrades getTradeHistory(final TradeHistoryParams params) throws IOException {
      if (params instanceof RippleTradeHistoryCount) {
        final RippleTradeHistoryCount rippleParams = (RippleTradeHistoryCount) params;
        rippleParams.resetApiCallCount();
        rippleParams.resetTradeCount();
      }
  
      final String account;
      if (params instanceof RippleTradeHistoryAccount) {
        final RippleTradeHistoryAccount rippleAccount = (RippleTradeHistoryAccount) params;
        if (rippleAccount.getAccount() != null) {
          account = rippleAccount.getAccount();
        } else {
          account = exchange.getExchangeSpecification().getApiKey();
        }
      } else {
        account = defaultTradeHistoryParams.getAccount();
      }
  
      final List<IRippleTradeTransaction> trades = getTradesForAccount(params, account);
      return RippleAdapters.adaptTrades(
          trades,
          params,
          (RippleAccountService) exchange.getAccountService(),
          ripple.getRoundingScale());
    }