diff --git a/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/BitcoinExtension.java b/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/BitcoinExtension.java index a7f1c08..b77d3d6 100644 --- a/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/BitcoinExtension.java +++ b/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/BitcoinExtension.java @@ -53,13 +53,13 @@ public class BitcoinExtension implements IExtension{ } else if ("itbit".equalsIgnoreCase(prefix)) { String preferredFiatCurrency = ICurrencies.USD; String userId = paramTokenizer.nextToken(); - String walletId = paramTokenizer.nextToken(); + String accountId = paramTokenizer.nextToken(); String clientKey = paramTokenizer.nextToken(); String clientSecret = paramTokenizer.nextToken(); if (paramTokenizer.hasMoreTokens()) { preferredFiatCurrency = paramTokenizer.nextToken().toUpperCase(); } - return new ItBitExchange(userId, walletId, clientKey, clientSecret, preferredFiatCurrency); + return new ItBitExchange(userId, accountId, clientKey, clientSecret, preferredFiatCurrency); } } return null; diff --git a/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/XChangeExchange.java b/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/XChangeExchange.java index d41a1fc..bfeab07 100644 --- a/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/XChangeExchange.java +++ b/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/XChangeExchange.java @@ -32,6 +32,8 @@ import org.knowm.xchange.ExchangeSpecification; import org.knowm.xchange.currency.Currency; import org.knowm.xchange.currency.CurrencyPair; import org.knowm.xchange.dto.Order; +import org.knowm.xchange.dto.account.AccountInfo; +import org.knowm.xchange.dto.account.Wallet; import org.knowm.xchange.dto.marketdata.OrderBook; import org.knowm.xchange.dto.marketdata.Ticker; import org.knowm.xchange.dto.trade.LimitOrder; @@ -74,7 +76,6 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA private final Logger log; private final RateLimiter rateLimiter; - public XChangeExchange(ExchangeSpecification specification, String preferredFiatCurrency) { exchange = ExchangeFactory.INSTANCE.createExchange(specification); name = exchange.getExchangeSpecification().getExchangeName(); @@ -159,10 +160,9 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA return BigDecimal.ZERO; } try { - BigDecimal balance = exchange.getAccountService() - .getAccountInfo() - .getWallet(translateCryptoCurrencySymbolToExchangeSpecificSymbol(cryptoCurrency)) - .getBalance(Currency.getInstance(cryptoCurrency)).getAvailable(); + AccountInfo accountInfo = exchange.getAccountService().getAccountInfo(); + Wallet wallet = getWallet(accountInfo, cryptoCurrency); + BigDecimal balance = wallet.getBalance(Currency.getInstance(cryptoCurrency)).getAvailable(); log.debug("{} exchange balance request: {} = {}", name, cryptoCurrency, balance); return balance; } catch (IOException e) { @@ -178,10 +178,9 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA return BigDecimal.ZERO; } try { - BigDecimal balance = exchange.getAccountService() - .getAccountInfo() - .getWallet(fiatCurrency) - .getBalance(Currency.getInstance(fiatCurrency)).getAvailable(); + AccountInfo accountInfo = exchange.getAccountService().getAccountInfo(); + Wallet wallet = getWallet(accountInfo, fiatCurrency); + BigDecimal balance = wallet.getBalance(Currency.getInstance(fiatCurrency)).getAvailable(); log.debug("{} exchange balance request: {} = {}", name, fiatCurrency, balance); return balance; } catch (IOException e) { @@ -191,6 +190,10 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA return null; } + public Wallet getWallet(AccountInfo accountInfo, String currency) { + return accountInfo.getWallet(translateCryptoCurrencySymbolToExchangeSpecificSymbol(currency)); + } + public final String sendCoins(String destinationAddress, BigDecimal amount, String cryptoCurrency, String description) { if (!isCryptoCurrencySupported(cryptoCurrency)){ return null; @@ -280,7 +283,7 @@ public abstract class XChangeExchange implements IExchangeAdvanced, IRateSourceA return orderId; } } catch (IOException e) { - log.error(String.format("{} exchange purchase coins failed", name), e); + log.error(String.format("%s exchange purchase coins failed", name), e); } return null; } diff --git a/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/itbit/ItBitExchange.java b/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/itbit/ItBitExchange.java index ad14e08..b46ded1 100644 --- a/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/itbit/ItBitExchange.java +++ b/server_extensions_extra/src/main/java/com/generalbytes/batm/server/extensions/extra/bitcoin/exchanges/itbit/ItBitExchange.java @@ -23,18 +23,23 @@ package com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.itbit; import com.generalbytes.batm.server.extensions.ICurrencies; import com.generalbytes.batm.server.extensions.extra.bitcoin.exchanges.XChangeExchange; import org.knowm.xchange.ExchangeSpecification; +import org.knowm.xchange.dto.account.AccountInfo; +import org.knowm.xchange.dto.account.Wallet; import java.util.HashSet; import java.util.Set; public class ItBitExchange extends XChangeExchange { + private String accountId; + public ItBitExchange(String preferredFiatCurrency) { super(getDefaultSpecification(), preferredFiatCurrency); } - public ItBitExchange(String userId, String walletId, String clientKey, String clientSecret, String preferredFiatCurrency) { - super(getSpecification(userId, walletId, clientKey, clientSecret), preferredFiatCurrency); + public ItBitExchange(String userId, String accountId, String clientKey, String clientSecret, String preferredFiatCurrency) { + super(getSpecification(userId, accountId, clientKey, clientSecret), preferredFiatCurrency); + this.accountId = accountId; } @@ -42,10 +47,10 @@ public class ItBitExchange extends XChangeExchange { return new org.knowm.xchange.itbit.v1.ItBitExchange().getDefaultExchangeSpecification(); } - private static ExchangeSpecification getSpecification(String userId, String walletId, String clientKey, String clientSecret) { + private static ExchangeSpecification getSpecification(String userId, String accountId, String clientKey, String clientSecret) { ExchangeSpecification spec = getDefaultSpecification(); spec.setExchangeSpecificParametersItem("userId", userId); - spec.setExchangeSpecificParametersItem("walletId", walletId); + spec.setExchangeSpecificParametersItem("walletId", accountId); spec.setApiKey(clientKey); spec.setSecretKey(clientSecret); return spec; @@ -53,14 +58,14 @@ public class ItBitExchange extends XChangeExchange { @Override public Set getCryptoCurrencies() { - Set cryptoCurrencies = new HashSet(); + Set cryptoCurrencies = new HashSet<>(); cryptoCurrencies.add(ICurrencies.BTC); return cryptoCurrencies; } @Override public Set getFiatCurrencies() { - Set fiatCurrencies = new HashSet(); + Set fiatCurrencies = new HashSet<>(); fiatCurrencies.add(ICurrencies.USD); fiatCurrencies.add(ICurrencies.EUR); fiatCurrencies.add(ICurrencies.SGD); @@ -77,6 +82,11 @@ public class ItBitExchange extends XChangeExchange { return 10; } + @Override + public Wallet getWallet(AccountInfo accountInfo, String fiatCurrency) { + return accountInfo.getWallet(accountId); + } + @Override protected String translateCryptoCurrencySymbolToExchangeSpecificSymbol(String from) { if (ICurrencies.BTC.equalsIgnoreCase(from)) { @@ -84,4 +94,4 @@ public class ItBitExchange extends XChangeExchange { } return from; } -} \ No newline at end of file +} diff --git a/server_extensions_extra/src/main/resources/batm-extensions.xml b/server_extensions_extra/src/main/resources/batm-extensions.xml index 2a17166..1422f90 100644 --- a/server_extensions_extra/src/main/resources/batm-extensions.xml +++ b/server_extensions_extra/src/main/resources/batm-extensions.xml @@ -59,7 +59,7 @@ - + @@ -289,23 +289,6 @@ - - - - - - POT - - - - POT - - - - POT - - -