use of org.knowm.xchange.dto.meta.CurrencyMetaData in project XChange by knowm.
the class BitstampAdapters method adaptMetaData.
public static ExchangeMetaData adaptMetaData(List<BitstampPairInfo> rawSymbols, ExchangeMetaData metaData) {
Map<CurrencyPair, CurrencyPairMetaData> currencyPairs = adaptCurrencyPairs(rawSymbols);
Map<CurrencyPair, CurrencyPairMetaData> pairsMap = metaData.getCurrencyPairs();
Map<Currency, CurrencyMetaData> currenciesMap = metaData.getCurrencies();
for (Map.Entry<CurrencyPair, CurrencyPairMetaData> entry : currencyPairs.entrySet()) {
CurrencyPair c = entry.getKey();
CurrencyPairMetaData cmeta = entry.getValue();
if (!pairsMap.containsKey(c)) {
pairsMap.put(c, cmeta);
} else {
pairsMap.replace(c, cmeta);
}
if (!currenciesMap.containsKey(c.base)) {
currenciesMap.put(c.base, null);
}
if (!currenciesMap.containsKey(c.counter)) {
currenciesMap.put(c.counter, null);
}
}
return metaData;
}
use of org.knowm.xchange.dto.meta.CurrencyMetaData in project XChange by knowm.
the class LgoAdapters method adaptMetadata.
public static ExchangeMetaData adaptMetadata(ExchangeMetaData metaData, LgoProducts products, LgoCurrencies currencies) {
Map<CurrencyPair, CurrencyPairMetaData> currencyPairs = metaData.getCurrencyPairs();
Map<Currency, CurrencyMetaData> currency = metaData.getCurrencies();
for (LgoCurrency lgoCurrency : currencies.getCurrencies()) {
currency.put(Currency.getInstance(lgoCurrency.getCode()), new CurrencyMetaData(lgoCurrency.getDecimals(), null));
}
for (LgoProduct product : products.getProducts()) {
BigDecimal minAmount = product.getBase().getLimits().getMin();
BigDecimal maxAmount = product.getBase().getLimits().getMax();
Integer baseScale = currency.get(Currency.getInstance(product.getBase().getId())).getScale();
BigDecimal increment = product.getQuote().getIncrement().stripTrailingZeros();
currencyPairs.put(toPair(product), new CurrencyPairMetaData(null, minAmount, maxAmount, null, null, baseScale, increment.scale(), null, new FeeTier[0], increment, Currency.USD, true));
}
return metaData;
}
use of org.knowm.xchange.dto.meta.CurrencyMetaData in project XChange by knowm.
the class LatokenExchange method remoteInit.
@Override
public void remoteInit() {
try {
// Load the static meta-data and override with the dynamic one
Map<Currency, CurrencyMetaData> currenciesMetaData = exchangeMetaData.getCurrencies();
Map<CurrencyPair, CurrencyPairMetaData> pairsMetaData = exchangeMetaData.getCurrencyPairs();
List<LatokenPair> allPairs = latoken.getAllPairs();
List<LatokenCurrency> allCurrencies = latoken.getAllCurrencies();
// Save pairs map on the exchange
this.exchangeSpecification.setExchangeSpecificParametersItem("pairs", allPairs);
// Update Currency meta-data
for (LatokenCurrency latokenCurrency : allCurrencies) {
Currency currency = LatokenAdapters.adaptCurrency(latokenCurrency);
addCurrencyMetadata(currenciesMetaData, currency, PRECISION);
}
// Update CurrencyPair meta-data
for (LatokenPair latokenPair : allPairs) {
CurrencyPair pair = LatokenAdapters.adaptCurrencyPair(latokenPair);
CurrencyPairMetaData pairMetadata = LatokenAdapters.adaptPairMetaData(latokenPair);
addCurrencyPairMetadata(pairsMetaData, pair, pairMetadata);
}
} catch (Exception e) {
throw new ExchangeException("Failed to initialize: " + e.getMessage(), e);
}
}
use of org.knowm.xchange.dto.meta.CurrencyMetaData in project XChange by knowm.
the class LatokenExchange method addCurrencyMetadata.
/**
* Updates the meta-data entry of a given {@link Currency}. <br>
* Used for overriding the static meta-data with dynamic one received from the exchange.
*
* @param currencies
* @param currency
* @param precision
*/
private void addCurrencyMetadata(Map<Currency, CurrencyMetaData> currencies, Currency currency, int precision) {
CurrencyMetaData baseMetaData = currencies.get(currency);
// Preserve withdrawal-fee if exists
BigDecimal withdrawalFee = baseMetaData == null ? null : baseMetaData.getWithdrawalFee();
// Override static meta-data
currencies.put(currency, new CurrencyMetaData(precision, withdrawalFee));
}
use of org.knowm.xchange.dto.meta.CurrencyMetaData in project XChange by knowm.
the class AccountServiceIntegration method testMetaData.
@Test
public void testMetaData() throws Exception {
Map<CurrencyPair, CurrencyPairMetaData> currencyPairs = exchange.getExchangeMetaData().getCurrencyPairs();
Map<Currency, CurrencyMetaData> currencies = exchange.getExchangeMetaData().getCurrencies();
CurrencyPair currPair;
Currency curr;
currPair = currencyPairs.keySet().stream().filter(cp -> "ETH/BTC".equals(cp.toString())).collect(StreamUtils.singletonCollector());
Assert.assertNotNull(currPair);
curr = currencies.keySet().stream().filter(c -> Currency.BTC.equals(c)).collect(StreamUtils.singletonCollector());
Assert.assertNotNull(curr);
Assert.assertNotNull(curr);
}
Aggregations