class TradeOgreBaseService extends BaseExchangeService<TradeOgreExchange>
    implements BaseService {

  protected final TradeOgreAuthenticated tradeOgre;
  protected final String base64UserPwd;

  protected TradeOgreBaseService(TradeOgreExchange exchange) {

    super(exchange);

    String apiKey = exchange.getExchangeSpecification().getApiKey();
    String secretKey = exchange.getExchangeSpecification().getSecretKey();

    base64UserPwd = calculateBase64UserPwd(exchange);

    ClientConfigCustomizer clientConfigCustomizer =
        config -> {
          ClientConfigUtil.addBasicAuthCredentials(config, apiKey, secretKey);
          config.setJacksonObjectMapperFactory(
              new DefaultJacksonObjectMapperFactory() {
                @Override
                public void configureObjectMapper(ObjectMapper objectMapper) {
                  super.configureObjectMapper(objectMapper);
                  objectMapper.configure(
                      DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true);
                }
              });
        };
    tradeOgre =
        ExchangeRestProxyBuilder.forInterface(
                TradeOgreAuthenticated.class, exchange.getExchangeSpecification())
            .clientConfigCustomizer(clientConfigCustomizer)
            .build();
  }

  private String calculateBase64UserPwd(TradeOgreExchange exchange) {<FILL_FUNCTION_BODY>}
}

    String userPwd =
        exchange.getExchangeSpecification().getApiKey()
            + ":"
            + exchange.getExchangeSpecification().getSecretKey();
    return "Basic " + new String(Base64.getEncoder().encode(userPwd.getBytes()));
  
<methods>public void verifyOrder(org.knowm.xchange.dto.trade.LimitOrder) ,public void verifyOrder(org.knowm.xchange.dto.trade.MarketOrder) <variables>protected final non-sealed org.knowm.xchange.tradeogre.TradeOgreExchange exchange