package org.knowm.xchange.poloniex.service; import org.knowm.xchange.Exchange; import org.knowm.xchange.poloniex.Poloniex; import org.knowm.xchange.poloniex.PoloniexAuthenticated; import org.knowm.xchange.service.BaseExchangeService; import org.knowm.xchange.service.BaseService; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import si.mazi.rescu.ClientConfig; import si.mazi.rescu.ParamsDigest; import si.mazi.rescu.RestProxyFactory; import si.mazi.rescu.serialization.jackson.DefaultJacksonObjectMapperFactory; /** * @author Zach Holmes */ public class PoloniexBaseService extends BaseExchangeService implements BaseService { protected final String apiKey; protected final PoloniexAuthenticated poloniexAuthenticated; protected final ParamsDigest signatureCreator; protected final Poloniex poloniex; /** * Constructor * * @param exchange */ public PoloniexBaseService(Exchange exchange) { super(exchange); // Fix for empty string array mapping exception ClientConfig config = new ClientConfig(); config.setJacksonObjectMapperFactory(new DefaultJacksonObjectMapperFactory() { @Override public void configureObjectMapper(ObjectMapper objectMapper) { super.configureObjectMapper(objectMapper); objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_ARRAY_AS_NULL_OBJECT, true); } }); this.poloniexAuthenticated = RestProxyFactory.createProxy(PoloniexAuthenticated.class, exchange.getExchangeSpecification().getSslUri(), config); this.apiKey = exchange.getExchangeSpecification().getApiKey(); this.signatureCreator = PoloniexDigest.createInstance(exchange.getExchangeSpecification().getSecretKey()); this.poloniex = RestProxyFactory.createProxy(Poloniex.class, exchange.getExchangeSpecification().getSslUri(), config); } }