Fix Bitfinex compatibility with XChange 4.2.1

This commit is contained in:
b00lean 2017-07-31 23:50:57 +02:00
parent e8907bf50d
commit 947e2629bd
2 changed files with 43 additions and 42 deletions

View File

@ -40,9 +40,10 @@ import org.knowm.xchange.dto.trade.OpenOrders;
import org.knowm.xchange.exceptions.ExchangeException;
import org.knowm.xchange.exceptions.NotAvailableFromExchangeException;
import org.knowm.xchange.exceptions.NotYetImplementedForExchangeException;
import org.knowm.xchange.service.polling.account.PollingAccountService;
import org.knowm.xchange.service.polling.marketdata.PollingMarketDataService;
import org.knowm.xchange.service.polling.trade.PollingTradeService;
import org.knowm.xchange.service.account.AccountService;
import org.knowm.xchange.service.marketdata.MarketDataService;
import org.knowm.xchange.service.trade.TradeService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -115,7 +116,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
String fiatCurrency = keyParts[1];
try {
return exchange.getPollingMarketDataService()
return exchange.getMarketDataService()
.getTicker(new CurrencyPair(translateCryptoCurrencySymbolToExchangeSpecificSymbol(cryptoCurrency), fiatCurrency))
.getLast();
} catch (ExchangeException e) {
@ -158,7 +159,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
return BigDecimal.ZERO;
}
try {
BigDecimal balance = exchange.getPollingAccountService()
BigDecimal balance = exchange.getAccountService()
.getAccountInfo()
.getWallet(translateCryptoCurrencySymbolToExchangeSpecificSymbol(cryptoCurrency))
.getBalance(Currency.getInstance(cryptoCurrency)).getAvailable();
@ -177,7 +178,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
return BigDecimal.ZERO;
}
try {
BigDecimal balance = exchange.getPollingAccountService()
BigDecimal balance = exchange.getAccountService()
.getAccountInfo()
.getWallet(fiatCurrency)
.getBalance(Currency.getInstance(fiatCurrency)).getAvailable();
@ -197,7 +198,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
log.info("{} exchange withdrawing {} {} to {}", name, amount, cryptoCurrency, destinationAddress);
PollingAccountService accountService = exchange.getPollingAccountService();
AccountService accountService = exchange.getAccountService();
try {
String result = accountService.withdrawFunds(Currency.getInstance(translateCryptoCurrencySymbolToExchangeSpecificSymbol(cryptoCurrency)), amount, destinationAddress);
if (isWithdrawSuccessful(result)) {
@ -223,9 +224,9 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
return null;
}
PollingAccountService accountService = exchange.getPollingAccountService();
PollingMarketDataService marketService = exchange.getPollingMarketDataService();
PollingTradeService tradeService = exchange.getPollingTradeService();
AccountService accountService = exchange.getAccountService();
MarketDataService marketService = exchange.getMarketDataService();
TradeService tradeService = exchange.getTradeService();
try {
log.debug("AccountInfo as String: {}", accountService.getAccountInfo());
@ -307,7 +308,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
return null;
}
PollingAccountService accountService = exchange.getPollingAccountService();
AccountService accountService = exchange.getAccountService();
try {
return accountService.requestDepositAddress(Currency.getInstance(translateCryptoCurrencySymbolToExchangeSpecificSymbol(cryptoCurrency)));
} catch (IOException e) {
@ -331,8 +332,8 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
}
log.info("Calling {} exchange (sell {} {})", name, cryptoAmount, cryptoCurrency);
PollingAccountService accountService = exchange.getPollingAccountService();
PollingTradeService tradeService = exchange.getPollingTradeService();
AccountService accountService = exchange.getAccountService();
TradeService tradeService = exchange.getTradeService();
try {
log.debug("AccountInfo as String: {}", accountService.getAccountInfo());
@ -431,7 +432,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
}
rateLimiter.acquire();
PollingMarketDataService marketDataService = exchange.getPollingMarketDataService();
MarketDataService marketDataService = exchange.getMarketDataService();
try {
CurrencyPair currencyPair = new CurrencyPair(translateCryptoCurrencySymbolToExchangeSpecificSymbol(cryptoCurrency), fiatCurrency);
OrderBook orderBook = marketDataService.getOrderBook(currencyPair);
@ -479,7 +480,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
}
rateLimiter.acquire();
PollingMarketDataService marketDataService = exchange.getPollingMarketDataService();
MarketDataService marketDataService = exchange.getMarketDataService();
try {
CurrencyPair currencyPair = new CurrencyPair(translateCryptoCurrencySymbolToExchangeSpecificSymbol(cryptoCurrency), fiatCurrency);
@ -538,9 +539,9 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
@Override
public boolean onCreate() {
log.debug("{} exchange purchase {} {}", name, amount, cryptoCurrency);
PollingAccountService accountService = exchange.getPollingAccountService();
PollingMarketDataService marketService = exchange.getPollingMarketDataService();
PollingTradeService tradeService = exchange.getPollingTradeService();
AccountService accountService = exchange.getAccountService();
MarketDataService marketService = exchange.getMarketDataService();
TradeService tradeService = exchange.getTradeService();
try {
log.debug("AccountInfo as String: {}", accountService.getAccountInfo());
@ -578,7 +579,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
result = "Skipped";
return false;
}
PollingTradeService tradeService = exchange.getPollingTradeService();
TradeService tradeService = exchange.getTradeService();
// get open orders
boolean orderProcessed = false;
long checkTillTime = System.currentTimeMillis() + MAXIMUM_TIME_TO_WAIT_FOR_ORDER_TO_FINISH;
@ -665,8 +666,8 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
@Override
public boolean onCreate() {
log.info("Calling {} exchange (sell {} {})", name, cryptoAmount, cryptoCurrency);
PollingAccountService accountService = exchange.getPollingAccountService();
PollingTradeService tradeService = exchange.getPollingTradeService();
AccountService accountService = exchange.getAccountService();
TradeService tradeService = exchange.getTradeService();
try {
log.debug("AccountInfo as String: {}", accountService.getAccountInfo());
@ -701,7 +702,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA
result = "Skipped";
return false;
}
PollingTradeService tradeService = exchange.getPollingTradeService();
TradeService tradeService = exchange.getTradeService();
// get open orders
boolean orderProcessed = false;
long checkTillTime = System.currentTimeMillis() + MAXIMUM_TIME_TO_WAIT_FOR_ORDER_TO_FINISH;

View File

@ -37,9 +37,9 @@ import org.knowm.xchange.dto.trade.LimitOrder;
import org.knowm.xchange.dto.trade.MarketOrder;
import org.knowm.xchange.dto.trade.OpenOrders;
import org.knowm.xchange.exceptions.ExchangeException;
import org.knowm.xchange.service.polling.account.PollingAccountService;
import org.knowm.xchange.service.polling.marketdata.PollingMarketDataService;
import org.knowm.xchange.service.polling.trade.PollingTradeService;
import org.knowm.xchange.service.account.AccountService;
import org.knowm.xchange.service.marketdata.MarketDataService;
import org.knowm.xchange.service.trade.TradeService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -121,7 +121,7 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
}
private BigDecimal getExchangeRateLastSync(String cryptoCurrency, String cashCurrency) {
PollingMarketDataService marketDataService = getExchange().getPollingMarketDataService();
MarketDataService marketDataService = getExchange().getMarketDataService();
try {
Ticker ticker = marketDataService.getTicker(new CurrencyPair(cryptoCurrency,cashCurrency));
return ticker.getLast();
@ -139,7 +139,7 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
log.debug("Calling Bitfinex exchange (getBalance)");
try {
return getExchange().getPollingAccountService().getAccountInfo().getWallet().getBalance(Currency.getInstance(cryptoCurrency)).getAvailable();
return getExchange().getAccountService().getAccountInfo().getWallet().getBalance(Currency.getInstance(cryptoCurrency)).getAvailable();
} catch (IOException e) {
e.printStackTrace();
log.error("Bitfinex exchange (getBalance) failed with message: " + e.getMessage());
@ -154,7 +154,7 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
log.debug("Calling Bitfinex exchange (getBalance)");
try {
return getExchange().getPollingAccountService().getAccountInfo().getWallet().getBalance(Currency.getInstance(fiatCurrency)).getAvailable();
return getExchange().getAccountService().getAccountInfo().getWallet().getBalance(Currency.getInstance(fiatCurrency)).getAvailable();
} catch (IOException e) {
e.printStackTrace();
log.error("Bitfinex exchange (getBalance) failed with message: " + e.getMessage());
@ -170,7 +170,7 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
log.info("Calling bitfinex exchange (withdrawal destination: " + destinationAddress + " amount: " + amount + " " + cryptoCurrency + ")");
PollingAccountService accountService = getExchange().getPollingAccountService();
AccountService accountService = getExchange().getAccountService();
try {
String result = accountService.withdrawFunds(Currency.getInstance(cryptoCurrency), amount, destinationAddress);
if (result == null) {
@ -201,8 +201,8 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
}
log.info("Calling Bitfinex exchange (purchase " + amount + " " + cryptoCurrency + ")");
PollingAccountService accountService = getExchange().getPollingAccountService();
PollingTradeService tradeService = getExchange().getPollingTradeService();
AccountService accountService = getExchange().getAccountService();
TradeService tradeService = getExchange().getTradeService();
try {
log.debug("AccountInfo as String: " + accountService.getAccountInfo().toString());
@ -276,7 +276,7 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
log.error("Bitfinex implementation supports only " + Arrays.toString(getCryptoCurrencies().toArray()));
return null;
}
PollingAccountService accountService = getExchange().getPollingAccountService();
AccountService accountService = getExchange().getAccountService();
try {
return accountService.requestDepositAddress(Currency.getInstance(cryptoCurrency));
} catch (IOException e) {
@ -297,8 +297,8 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
}
log.info("Calling Bitfinex exchange (sell " + cryptoAmount + " " + cryptoCurrency + ")");
PollingAccountService accountService = getExchange().getPollingAccountService();
PollingTradeService tradeService = getExchange().getPollingTradeService();
AccountService accountService = getExchange().getAccountService();
TradeService tradeService = getExchange().getTradeService();
try {
log.debug("AccountInfo as String: " + accountService.getAccountInfo().toString());
@ -388,8 +388,8 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
@Override
public boolean onCreate() {
log.info("Calling Bitfinex exchange (purchase " + amount + " " + cryptoCurrency + ")");
PollingAccountService accountService = getExchange().getPollingAccountService();
PollingTradeService tradeService = getExchange().getPollingTradeService();
AccountService accountService = getExchange().getAccountService();
TradeService tradeService = getExchange().getTradeService();
try {
log.debug("AccountInfo as String: " + accountService.getAccountInfo().toString());
@ -424,7 +424,7 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
result = "Skipped";
return false;
}
PollingTradeService tradeService = getExchange().getPollingTradeService();
TradeService tradeService = getExchange().getTradeService();
// get open orders
boolean orderProcessed = false;
long checkTillTime = System.currentTimeMillis() + MAXIMUM_TIME_TO_WAIT_FOR_ORDER_TO_FINISH;
@ -511,8 +511,8 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
@Override
public boolean onCreate() {
log.info("Calling Bitfinex exchange (sell " + cryptoAmount + " " + cryptoCurrency + ")");
PollingAccountService accountService = getExchange().getPollingAccountService();
PollingTradeService tradeService = getExchange().getPollingTradeService();
AccountService accountService = getExchange().getAccountService();
TradeService tradeService = getExchange().getTradeService();
try {
log.debug("AccountInfo as String: " + accountService.getAccountInfo().toString());
@ -547,7 +547,7 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
result = "Skipped";
return false;
}
PollingTradeService tradeService = getExchange().getPollingTradeService();
TradeService tradeService = getExchange().getTradeService();
// get open orders
boolean orderProcessed = false;
long checkTillTime = System.currentTimeMillis() + MAXIMUM_TIME_TO_WAIT_FOR_ORDER_TO_FINISH;
@ -638,7 +638,7 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
@Override
public BigDecimal calculateBuyPrice(String cryptoCurrency, String fiatCurrency, BigDecimal cryptoAmount) {
waitForPossibleCall();
PollingMarketDataService marketDataService = getExchange().getPollingMarketDataService();
MarketDataService marketDataService = getExchange().getMarketDataService();
try {
CurrencyPair currencyPair = new CurrencyPair(cryptoCurrency, fiatCurrency);
OrderBook orderBook = marketDataService.getOrderBook(currencyPair);
@ -697,7 +697,7 @@ public class BitfinexExchange implements IExchangeAdvanced, IRateSourceAdvanced
@Override
public BigDecimal calculateSellPrice(String cryptoCurrency, String fiatCurrency, BigDecimal cryptoAmount) {
waitForPossibleCall();
PollingMarketDataService marketDataService = getExchange().getPollingMarketDataService();
MarketDataService marketDataService = getExchange().getMarketDataService();
try {
CurrencyPair currencyPair = new CurrencyPair(cryptoCurrency, fiatCurrency);