All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.knowm.xchange.kraken.KrakenUtils Maven / Gradle / Ivy

There is a newer version: 4.2.3
Show newest version
package org.knowm.xchange.kraken;

import java.util.HashSet;
import java.util.Set;

import org.knowm.xchange.currency.Currency;
import org.knowm.xchange.currency.CurrencyPair;
import org.knowm.xchange.exceptions.ExchangeException;

/**
 * @author timmolter
 */
public class KrakenUtils {

  private static final Set FIAT_CURRENCIES = new HashSet();
  private static final Set DIGITAL_CURRENCIES = new HashSet();

  static {

    FIAT_CURRENCIES.add(KrakenAdapters.adaptCurrency("USD"));
    FIAT_CURRENCIES.add(KrakenAdapters.adaptCurrency("EUR"));
    FIAT_CURRENCIES.add(KrakenAdapters.adaptCurrency("JPY"));
    FIAT_CURRENCIES.add(KrakenAdapters.adaptCurrency("KRW"));
    FIAT_CURRENCIES.add(KrakenAdapters.adaptCurrency("GBP"));
    FIAT_CURRENCIES.add(KrakenAdapters.adaptCurrency("CAD"));

    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("BTC"));
    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("DAO"));
    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("ETH"));
    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("LTC"));
    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("NMC"));
    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("XBT"));
    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("XDG"));
    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("XLM"));
    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("XRP"));
    DIGITAL_CURRENCIES.add(KrakenAdapters.adaptCurrency("XVN"));
  }

  /**
   * Private Constructor
   */
  private KrakenUtils() {

  }

  public static String createKrakenCurrencyPair(CurrencyPair currencyPair) {

    return createKrakenCurrencyPair(currencyPair.base, currencyPair.counter);
  }

  public static String createKrakenCurrencyPair(Currency tradableIdentifier, Currency currency) {

    return getKrakenCurrencyCode(tradableIdentifier) + getKrakenCurrencyCode(currency);
  }

  public static String getKrakenCurrencyCode(Currency currency) {

    if (FIAT_CURRENCIES.contains(currency)) {
      return "Z" + currency;

    } else if (DIGITAL_CURRENCIES.contains(currency)) {

      if (currency.getIso4217Currency() != null) {
        currency = currency.getIso4217Currency();
      }
      return "X" + currency;
    }

    throw new ExchangeException("Kraken does not support the currency code " + currency);
  }

  public static Currency addCurrencyAndGetCode(String krakenCurrencyString) {

    Currency currencyCode = KrakenAdapters.adaptCurrency(krakenCurrencyString);
    if (krakenCurrencyString.startsWith("X")) {
      DIGITAL_CURRENCIES.add(currencyCode);
    } else {
      FIAT_CURRENCIES.add(currencyCode);
    }

    return currencyCode;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy