protected RuntimeException handleHttpError(HttpStatusIOException exception) throws IOException { if (exception.getHttpStatusCode() == 304) { return new NonceException(exception.getHttpBody()); } else { throw exception; } }
public static ExchangeException adapt(BitfinexException e) { String message = e.getMessage(); if (StringUtils.isEmpty(message)) { return new ExchangeException(e); } if (message.toLowerCase().contains("unknown symbol")) { return new CurrencyPairNotValidException(message, e); } else if (message.toLowerCase().contains("not enough exchange balance")) { return new FundsExceededException(message, e); } else if (message.toUpperCase().contains("ERR_RATE_LIMIT")) { return new RateLimitExceededException(e); } else if (message.toLowerCase().contains("nonce")) { return new NonceException(e); } return new ExchangeException(message, e); } }
protected ExchangeException handleError(CryptonitException exception) { if (exception.getMessage().contains("You can only buy")) { return new FundsExceededException(exception); } else if (exception.getMessage().contains("Invalid limit exceeded")) { return new RateLimitExceededException(exception); } else if (exception.getMessage().contains("Invalid nonce")) { return new NonceException(exception.getMessage()); } else if (exception.getMessage().contains("Internal server error")) { return new InternalServerException(exception); } else { return new ExchangeException(exception); } } }
protected ExchangeException handleError(BitstampException exception) { if (exception.getMessage().contains("You can only buy")) { return new FundsExceededException(exception); } else if (exception.getMessage().contains("Invalid limit exceeded")) { return new RateLimitExceededException(exception); } else if (exception.getMessage().contains("Invalid nonce")) { return new NonceException(exception.getMessage()); } else if (exception.getMessage().contains("Internal server error")) { return new InternalServerException(exception); } else { return new ExchangeException(exception); } } }
protected <R> R checkResult(KrakenResult<R> krakenResult) { if (!krakenResult.isSuccess()) { String[] errors = krakenResult.getError(); if (errors.length == 0) { throw new ExchangeException("Missing error message"); } String error = errors[0]; if ("EAPI:Invalid nonce".equals(error)) { throw new NonceException(error); } else if ("EGeneral:Temporary lockout".equals(error)) { throw new FrequencyLimitExceededException(error); } else if ("EOrder:Insufficient funds".equals(error)) { throw new FundsExceededException(error); } if ("EAPI:Rate limit exceeded".equals(error)) { throw new RateLimitExceededException(error); } throw new ExchangeException(Arrays.toString(errors)); } return krakenResult.getResult(); }
protected void checkResult(WexReturn<?> result) { String error = result.getError(); if (!result.isSuccess()) { if (error != null) { if (error.startsWith(ERR_MSG_NONCE)) { throw new NonceException(error); } else if (error.startsWith(ERR_MSG_FUNDS)) { throw new FundsExceededException(error); } else if (error.equals("no transactions")) { return; // this isn't an error - just an indicator that there's no data } } throw new ExchangeException(error); } else if (result.getReturnValue() == null) { throw new ExchangeException("Didn't receive any return value. Message: " + error); } else if (error != null) { throw new ExchangeException(error); } } }
protected void checkResult(DSXReturn<?> result) { String error = result.getError(); if (!result.isSuccess()) { if (error != null) { if (error.startsWith(ERR_MSG_NONCE)) { throw new NonceException(error); } } throw new ExchangeException(error); } else if (result.getReturnValue() == null) { throw new ExchangeException("Didn't receive any return value. Message: " + error); } else if (error != null) { throw new ExchangeException(error); } } }
public static ExchangeException adapt(BitfinexException e) { String message = e.getMessage(); if (StringUtils.isEmpty(message)) { return new ExchangeException(e); } if (message.toLowerCase().contains("unknown symbol")) { return new CurrencyPairNotValidException(message, e); } else if (message.toLowerCase().contains("not enough exchange balance")) { return new FundsExceededException(message, e); } else if (message.toUpperCase().contains("ERR_RATE_LIMIT")) { return new RateLimitExceededException(e); } else if (message.toLowerCase().contains("nonce")) { return new NonceException(e); } return new ExchangeException(message, e); } }
protected <R> R checkResult(KrakenResult<R> krakenResult) { if (!krakenResult.isSuccess()) { String[] errors = krakenResult.getError(); if (errors.length == 0) { throw new ExchangeException("Missing error message"); } String error = errors[0]; if ("EAPI:Invalid nonce".equals(error)) { throw new NonceException(error); } else if ("EGeneral:Temporary lockout".equals(error)) { throw new FrequencyLimitExceededException(error); } else if ("EOrder:Insufficient funds".equals(error)) { throw new FundsExceededException(error); } if ("EAPI:Rate limit exceeded".equals(error)) { throw new RateLimitExceededException(error); } throw new ExchangeException(Arrays.toString(errors)); } return krakenResult.getResult(); }
protected ExchangeException handleError(BitstampException exception) { if (exception.getMessage().contains("You can only buy")) { return new FundsExceededException(exception); } else if (exception.getMessage().contains("Invalid limit exceeded")) { return new RateLimitExceededException(exception); } else if (exception.getMessage().contains("Invalid nonce")) { return new NonceException(exception.getMessage()); } else if (exception.getMessage().contains("Internal server error")) { return new InternalServerException(exception); } else { return new ExchangeException(exception); } } }
protected void checkResult(BTCEReturn<?> result) { String error = result.getError(); if (!result.isSuccess()) { if (error != null) { if (error.startsWith(ERR_MSG_NONCE)) { throw new NonceException(error); } else if (error.startsWith(ERR_MSG_FUNDS)) { throw new FundsExceededException(error); } else if (error.equals("no transactions")) { return;//this isn't an error - just an indicator that there's no data } } throw new ExchangeException(error); } else if (result.getReturnValue() == null) { throw new ExchangeException("Didn't receive any return value. Message: " + error); } else if (error != null) { throw new ExchangeException(error); } }
protected void checkResult(WexReturn<?> result) { String error = result.getError(); if (!result.isSuccess()) { if (error != null) { if (error.startsWith(ERR_MSG_NONCE)) { throw new NonceException(error); } else if (error.startsWith(ERR_MSG_FUNDS)) { throw new FundsExceededException(error); } else if (error.equals("no transactions")) { return; // this isn't an error - just an indicator that there's no data } } throw new ExchangeException(error); } else if (result.getReturnValue() == null) { throw new ExchangeException("Didn't receive any return value. Message: " + error); } else if (error != null) { throw new ExchangeException(error); } } }