Interface Exchange

All Known Subinterfaces:
StreamingExchange
All Known Implementing Classes:
BankeraExchange, BankeraStreamingExchange, BaseExchange, BiboxExchange, BinanceExchange, BinanceStreamingExchange, BitbayExchange, BitbayExchange, BitcoinAverageExchange, BitcoinChartsExchange, BitcoinCoreWallet, BitcoindeExchange, BitcoindeExchange, BitcoiniumExchange, BitcointoyouExchange, BitfinexExchange, BitfinexStreamingExchange, BitflyerExchange, BitflyerStreamingExchange, BithumbExchange, BitmexExchange, BitmexStreamingExchange, BitsoExchange, BitstampExchange, BitstampStreamingExchange, BittrexExchange, BityExchange, BitZExchange, Bl3pExchange, BleutradeExchange, BlockchainExchange, BTCCExchange, BTCMarketsExchange, BTCMarketsStreamingExchange, BTCTradeExchange, BTCTurkExchange, CCEXExchange, CexIOExchange, CexioStreamingExchange, CmcExchange, CobinhoodExchange, CoinbaseExchange, CoinbaseExchange, CoinbaseProExchange, CoinbaseProStreamingExchange, CoinbeneExchange, CoindealExchange, CoindirectExchange, CoinEggExchange, CoinexExchange, CoinfloorExchange, CoingiExchange, CoinjarExchange, CoinjarStreamingExchange, CoinMarketCapExchange, CoinmateExchange, CoinmateStreamingExchange, CoinoneExchange, CoinsuperExchange, CryptoFacilitiesExchange, CryptopiaExchange, CryptowatchExchange, DeribitExchange, DragonexExchange, DsxExchange, DVChainExchange, dydxExchange, dydxStreamingExchange, EnigmaExchange, ExmoExchange, EXXExchange, FCoinExchange, FtxExchange, FtxStreamingExchange, GateioExchange, GateioStreamingExchange, GeminiExchange, GeminiStreamingExchange, GlobitexExchange, HitbtcExchange, HitbtcStreamingExchange, HuobiExchange, HuobiStreamingExchange, IdexExchange, IndependentReserveExchange, ItBitExchange, KoineksExchange, KoinimExchange, KrakenExchange, KrakenStreamingExchange, KucoinExchange, KunaExchange, LakeBTCExchange, LatokenExchange, LgoExchange, LgoStreamingExchange, LivecoinExchange, LunoExchange, LykkeExchange, MercadoBitcoinExchange, OERExchange, OkCoinExchange, OkCoinStreamingExchange, OkexExchange, OkexExchangeV3, OkExFuturesStreamingExchange, OkExStreamingExchange, ParibuExchange, PaymiumExchange, PoloniexExchange, PoloniexStreamingExchange, QuoineExchange, RippleExchange, SerumExchange, SerumStreamingExchange, SimulatedExchange, TheRockExchange, TradeOgreExchange, TrueFxExchange, UpbitExchange, VaultoroExchange, YoBitExchange, ZaifExchange

public interface Exchange
Interface to provide the following to applications:
  • Entry point to the XChange APIs

The consumer is given a choice of a default (no-args) or configured accessor

  • Method Details

    • getExchangeSpecification

      ExchangeSpecification getExchangeSpecification()
      Returns:
      The ExchangeSpecification in use for this exchange
    • getExchangeMetaData

      ExchangeMetaData getExchangeMetaData()
      The Meta Data defining some semi-static properties of an exchange such as currency pairs, trading fees, etc.
      Returns:
      The exchange's meta data
    • getExchangeSymbols

      List<CurrencyPair> getExchangeSymbols()
      Returns a list of CurrencyPair objects. This list can either come originally from a loaded json file or from a remote call if the implementation override's the `remoteInit` method.
      Returns:
      The exchange's symbols
    • getExchangeInstruments

      default List<Instrument> getExchangeInstruments()
      Returns a list of Instrument objects. This list can either come originally from a loaded json file or from a remote call if the implementation override's the `remoteInit` method.
      Returns:
      The exchange's instruments
    • getNonceFactory

      si.mazi.rescu.SynchronizedValueFactory<Long> getNonceFactory()
      The nonce factory used to create a nonce value. Allows services to accept a placeholder that is replaced with generated value just before message is serialized and sent. If a method of a rest accepts ValueFactory as a parameter, it's evaluated, the message is serialized and sent in a single synchronized block.
      Returns:
      Synchronized value factory
    • getResilienceRegistries

      default ResilienceRegistries getResilienceRegistries()
      resilience4j registries with retry strategies, rate limiters, etc. used for this exchange.
      Returns:
      resilience4j registries
      Throws:
      NotYetImplementedForExchangeException - if the exchange module does not support resilience features
    • getDefaultExchangeSpecification

      ExchangeSpecification getDefaultExchangeSpecification()
      Returns:
      A default ExchangeSpecification to use during the creation process if one is not supplied
    • applySpecification

      void applySpecification​(ExchangeSpecification exchangeSpecification)
      Applies any exchange specific parameters
      Parameters:
      exchangeSpecification - The ExchangeSpecification
    • getMarketDataService

      MarketDataService getMarketDataService()
      A market data service typically consists of a regularly updated list of the available prices for the various symbols

      This is the non-streaming (blocking) version of the service

      Returns:
      The exchange's market data service
    • getTradeService

      TradeService getTradeService()
      An trade service typically provides access to trading functionality

      Typically access is restricted by a secret API key and/or username password authentication which are usually provided in the ExchangeSpecification

      Returns:
      The exchange's trade service
    • getAccountService

      AccountService getAccountService()
      An account service typically provides access to the user's private exchange data

      Typically access is restricted by a secret API key and/or username password authentication which are usually provided in the ExchangeSpecification

      Returns:
      The exchange's account service
    • remoteInit

      void remoteInit() throws IOException, ExchangeException
      Initialize this instance with the remote meta data. Most exchanges require this method to be called before getExchangeMetaData(). Some exchanges require it before using some of their services.
      Throws:
      IOException
      ExchangeException