├── .coveralls.yml
├── .gitignore
├── .phpunit.result.cache
├── .travis.yml
├── README.md
├── composer.json
├── composer.lock
├── examples
├── README.md
├── arbitrage-pairs.php
├── bitfinex2-fetch-ohlcv.php
├── kraken-query-ledgers.php
├── order-book-level-depth-extra-param.php
├── symbols.php
└── tests
│ └── test.php
├── phpunit.xml.dist
├── src
├── Exchange.php
├── _1btcxe.php
├── acx.php
├── adara.php
├── allcoin.php
├── anxpro.php
├── bcex.php
├── bequant.php
├── bibox.php
├── bigone.php
├── binance.php
├── binanceje.php
├── binanceus.php
├── bit2c.php
├── bitbank.php
├── bitbay.php
├── bitfinex.php
├── bitfinex2.php
├── bitflyer.php
├── bitforex.php
├── bithumb.php
├── bitkk.php
├── bitlish.php
├── bitmart.php
├── bitmax.php
├── bitmex.php
├── bitso.php
├── bitstamp.php
├── bitstamp1.php
├── bittrex.php
├── bitz.php
├── bl3p.php
├── bleutrade.php
├── braziliex.php
├── btcalpha.php
├── btcbox.php
├── btcchina.php
├── btcmarkets.php
├── btctradeim.php
├── btctradeua.php
├── btcturk.php
├── buda.php
├── bytetrade.php
├── cex.php
├── chilebit.php
├── cobinhood.php
├── coinbase.php
├── coinbaseprime.php
├── coinbasepro.php
├── coincheck.php
├── coinegg.php
├── coinex.php
├── coinexchange.php
├── coinfalcon.php
├── coinfloor.php
├── coingi.php
├── coinmarketcap.php
├── coinmate.php
├── coinone.php
├── coinspot.php
├── cointiger.php
├── coolcoin.php
├── coss.php
├── crex24.php
├── deribit.php
├── digifinex.php
├── dsx.php
├── dx.php
├── errors.php
├── exmo.php
├── exx.php
├── fcoin.php
├── fcoinjp.php
├── flowbtc.php
├── foxbit.php
├── fybse.php
├── gateio.php
├── gemini.php
├── hitbtc.php
├── hitbtc2.php
├── huobipro.php
├── huobiru.php
├── ice3x.php
├── idex.php
├── independentreserve.php
├── indodax.php
├── itbit.php
├── kkex.php
├── kraken.php
├── kucoin.php
├── kucoin2.php
├── kuna.php
├── lakebtc.php
├── latoken.php
├── lbank.php
├── liquid.php
├── livecoin.php
├── luno.php
├── lykke.php
├── mandala.php
├── mercado.php
├── mixcoins.php
├── negociecoins.php
├── oceanex.php
├── okcoincny.php
├── okcoinusd.php
├── okex.php
├── okex3.php
├── paymium.php
├── poloniex.php
├── rightbtc.php
├── southxchange.php
├── stronghold.php
├── surbitcoin.php
├── theocean.php
├── therock.php
├── tidebit.php
├── tidex.php
├── upbit.php
├── vaultoro.php
├── vbtc.php
├── virwox.php
├── whitebit.php
├── xbtce.php
├── yobit.php
├── zaif.php
└── zb.php
└── tests
├── ExchangeTest.php
├── bootstrap.php
├── fixtures
├── testFetchBalance@_1broker.json
├── testFetchBalance@_1btcxe.json
├── testFetchBalance@anxpro.json
├── testFetchBalance@binance.json
├── testFetchBalance@bit2c.json
├── testFetchBalance@bitbay.json
├── testFetchBalance@bitcoincoid.json
├── testFetchBalance@bitfinex.json
├── testFetchBalance@bitfinex2.json
├── testFetchBalance@bitlish.json
├── testFetchBalance@bitmarket.json
├── testFetchBalance@bitso.json
├── testFetchBalance@bittrex.json
├── testFetchBalance@btcmarkets.json
├── testFetchBalance@btctradeua.json
├── testFetchBalance@btcx.json
├── testFetchBalance@bter.json
├── testFetchBalance@bxinth.json
├── testFetchBalance@cex.json
├── testFetchBalance@chbtc.json
├── testFetchBalance@coincheck.json
├── testFetchBalance@coingi.json
├── testFetchBalance@coinmate.json
├── testFetchBalance@coinsecure.json
├── testFetchBalance@coinspot.json
├── testFetchBalance@dsx.json
├── testFetchBalance@flowbtc.json
├── testFetchBalance@fybse.json
├── testFetchBalance@hitbtc.json
├── testFetchBalance@huobi.json
├── testFetchBalance@huobipro.json
├── testFetchBalance@jubi.json
├── testFetchBalance@liqui.json
├── testFetchBalance@livecoin.json
├── testFetchBalance@luno.json
├── testFetchBalance@okcoinusd.json
├── testFetchBalance@okex.json
├── testFetchBalance@quadrigacx.json
├── testFetchBalance@quoine.json
├── testFetchBalance@southxchange.json
├── testFetchBalance@therock.json
├── testFetchBalance@vaultoro.json
├── testFetchBalance@virwox.json
├── testFetchBalance@xbtce.json
├── testFetchBalance@yobit.json
├── testFetchBalance@zaif.json
├── testFetchOHLCV@_1broker.json
├── testFetchOHLCV@_1btcxe.json
├── testFetchOHLCV@acx.json
├── testFetchOHLCV@allcoin.json
├── testFetchOHLCV@bequant.json
├── testFetchOHLCV@binance.json
├── testFetchOHLCV@binanceje.json
├── testFetchOHLCV@bitbank.json
├── testFetchOHLCV@bitbay.json
├── testFetchOHLCV@bitfinex.json
├── testFetchOHLCV@bitfinex2.json
├── testFetchOHLCV@bitforex.json
├── testFetchOHLCV@bithumb.json
├── testFetchOHLCV@bitkk.json
├── testFetchOHLCV@bitlish.json
├── testFetchOHLCV@bitmarket.json
├── testFetchOHLCV@bitmex.json
├── testFetchOHLCV@bittrex.json
├── testFetchOHLCV@bitz.json
├── testFetchOHLCV@bl3p.json
├── testFetchOHLCV@braziliex.json
├── testFetchOHLCV@btcalpha.json
├── testFetchOHLCV@btcbox.json
├── testFetchOHLCV@btcexchange.json
├── testFetchOHLCV@btcmarkets.json
├── testFetchOHLCV@btctradeua.json
├── testFetchOHLCV@btcturk.json
├── testFetchOHLCV@buda.json
├── testFetchOHLCV@bxinth.json
├── testFetchOHLCV@cex.json
├── testFetchOHLCV@coinbaseprime.json
├── testFetchOHLCV@coinbasepro.json
├── testFetchOHLCV@coincheck.json
├── testFetchOHLCV@coinfalcon.json
├── testFetchOHLCV@coinfloor.json
├── testFetchOHLCV@coingi.json
├── testFetchOHLCV@coinmate.json
├── testFetchOHLCV@coinone.json
├── testFetchOHLCV@coss.json
├── testFetchOHLCV@crypton.json
├── testFetchOHLCV@deribit.json
├── testFetchOHLCV@dsx.json
├── testFetchOHLCV@dx.json
├── testFetchOHLCV@exmo.json
├── testFetchOHLCV@exx.json
├── testFetchOHLCV@fcoin.json
├── testFetchOHLCV@fcoinjp.json
├── testFetchOHLCV@fybse.json
├── testFetchOHLCV@gatecoin.json
├── testFetchOHLCV@gateio.json
├── testFetchOHLCV@gdax.json
├── testFetchOHLCV@getbtc.json
├── testFetchOHLCV@hadax.json
├── testFetchOHLCV@hitbtc.json
├── testFetchOHLCV@hitbtc2.json
├── testFetchOHLCV@huobi.json
├── testFetchOHLCV@huobicny.json
├── testFetchOHLCV@huobipro.json
├── testFetchOHLCV@huobiru.json
├── testFetchOHLCV@independentreserve.json
├── testFetchOHLCV@indodax.json
├── testFetchOHLCV@itbit.json
├── testFetchOHLCV@kkex.json
├── testFetchOHLCV@kucoin2.json
├── testFetchOHLCV@lakebtc.json
├── testFetchOHLCV@lbank.json
├── testFetchOHLCV@liquid.json
├── testFetchOHLCV@luno.json
├── testFetchOHLCV@mercado.json
├── testFetchOHLCV@mixcoins.json
├── testFetchOHLCV@negociecoins.json
├── testFetchOHLCV@oceanex.json
├── testFetchOHLCV@okcoincny.json
├── testFetchOHLCV@okcoinusd.json
├── testFetchOHLCV@okex.json
├── testFetchOHLCV@okex3.json
├── testFetchOHLCV@paymium.json
├── testFetchOHLCV@poloniex.json
├── testFetchOHLCV@rightbtc.json
├── testFetchOHLCV@therock.json
├── testFetchOHLCV@tidebit.json
├── testFetchOHLCV@tidex.json
├── testFetchOHLCV@upbit.json
├── testFetchOHLCV@vaultoro.json
├── testFetchOHLCV@yobit.json
├── testFetchOHLCV@zaif.json
├── testFetchOrderBook@_1broker.json
├── testFetchOrderBook@_1btcxe.json
├── testFetchOrderBook@acx.json
├── testFetchOrderBook@allcoin.json
├── testFetchOrderBook@bequant.json
├── testFetchOrderBook@bigone.json
├── testFetchOrderBook@binance.json
├── testFetchOrderBook@binanceje.json
├── testFetchOrderBook@bit2c.json
├── testFetchOrderBook@bitbank.json
├── testFetchOrderBook@bitbay.json
├── testFetchOrderBook@bitfinex.json
├── testFetchOrderBook@bitfinex2.json
├── testFetchOrderBook@bitflyer.json
├── testFetchOrderBook@bitforex.json
├── testFetchOrderBook@bithumb.json
├── testFetchOrderBook@bitkk.json
├── testFetchOrderBook@bitlish.json
├── testFetchOrderBook@bitmarket.json
├── testFetchOrderBook@bitmex.json
├── testFetchOrderBook@bitstamp.json
├── testFetchOrderBook@bitstamp1.json
├── testFetchOrderBook@bittrex.json
├── testFetchOrderBook@bitz.json
├── testFetchOrderBook@bl3p.json
├── testFetchOrderBook@bleutrade.json
├── testFetchOrderBook@braziliex.json
├── testFetchOrderBook@btcalpha.json
├── testFetchOrderBook@btcbox.json
├── testFetchOrderBook@btcchina.json
├── testFetchOrderBook@btcmarkets.json
├── testFetchOrderBook@btctradeua.json
├── testFetchOrderBook@btcturk.json
├── testFetchOrderBook@buda.json
├── testFetchOrderBook@bxinth.json
├── testFetchOrderBook@ccex.json
├── testFetchOrderBook@cex.json
├── testFetchOrderBook@chbtc.json
├── testFetchOrderBook@chilebit.json
├── testFetchOrderBook@cobinhood.json
├── testFetchOrderBook@coinbaseprime.json
├── testFetchOrderBook@coinbasepro.json
├── testFetchOrderBook@coincheck.json
├── testFetchOrderBook@coinfalcon.json
├── testFetchOrderBook@coinfloor.json
├── testFetchOrderBook@coinmate.json
├── testFetchOrderBook@coinone.json
├── testFetchOrderBook@coinsecure.json
├── testFetchOrderBook@coinspot.json
├── testFetchOrderBook@coss.json
├── testFetchOrderBook@crex24.json
├── testFetchOrderBook@crypton.json
├── testFetchOrderBook@cryptopia.json
├── testFetchOrderBook@deribit.json
├── testFetchOrderBook@dsx.json
├── testFetchOrderBook@dx.json
├── testFetchOrderBook@exmo.json
├── testFetchOrderBook@exx.json
├── testFetchOrderBook@fcoin.json
├── testFetchOrderBook@fcoinjp.json
├── testFetchOrderBook@foxbit.json
├── testFetchOrderBook@fybse.json
├── testFetchOrderBook@fybsg.json
├── testFetchOrderBook@gatecoin.json
├── testFetchOrderBook@gateio.json
├── testFetchOrderBook@gdax.json
├── testFetchOrderBook@gemini.json
├── testFetchOrderBook@getbtc.json
├── testFetchOrderBook@hadax.json
├── testFetchOrderBook@hitbtc.json
├── testFetchOrderBook@hitbtc2.json
├── testFetchOrderBook@huobipro.json
├── testFetchOrderBook@huobiru.json
├── testFetchOrderBook@independentreserve.json
├── testFetchOrderBook@indodax.json
├── testFetchOrderBook@itbit.json
├── testFetchOrderBook@kkex.json
├── testFetchOrderBook@kucoin.json
├── testFetchOrderBook@kucoin2.json
├── testFetchOrderBook@kuna.json
├── testFetchOrderBook@lakebtc.json
├── testFetchOrderBook@lbank.json
├── testFetchOrderBook@liqui.json
├── testFetchOrderBook@liquid.json
├── testFetchOrderBook@livecoin.json
├── testFetchOrderBook@luno.json
├── testFetchOrderBook@lykke.json
├── testFetchOrderBook@mercado.json
├── testFetchOrderBook@mixcoins.json
├── testFetchOrderBook@negociecoins.json
├── testFetchOrderBook@nova.json
├── testFetchOrderBook@oceanex.json
├── testFetchOrderBook@okcoinusd.json
├── testFetchOrderBook@okex.json
├── testFetchOrderBook@okex3.json
├── testFetchOrderBook@paymium.json
├── testFetchOrderBook@poloniex.json
├── testFetchOrderBook@qryptos.json
├── testFetchOrderBook@quadrigacx.json
├── testFetchOrderBook@quoine.json
├── testFetchOrderBook@rightbtc.json
├── testFetchOrderBook@southxchange.json
├── testFetchOrderBook@surbitcoin.json
├── testFetchOrderBook@theocean.json
├── testFetchOrderBook@therock.json
├── testFetchOrderBook@tidebit.json
├── testFetchOrderBook@tidex.json
├── testFetchOrderBook@upbit.json
├── testFetchOrderBook@urdubit.json
├── testFetchOrderBook@vaultoro.json
├── testFetchOrderBook@vbtc.json
├── testFetchOrderBook@wex.json
├── testFetchOrderBook@xbtce.json
├── testFetchOrderBook@yobit.json
├── testFetchOrderBook@zaif.json
├── testFetchOrderBook@zb.json
├── testFetchTicker@acx.json
├── testFetchTicker@allcoin.json
├── testFetchTicker@bequant.json
├── testFetchTicker@bigone.json
├── testFetchTicker@binance.json
├── testFetchTicker@binanceje.json
├── testFetchTicker@bitfinex.json
├── testFetchTicker@bitfinex2.json
├── testFetchTicker@bithumb.json
├── testFetchTicker@bitkk.json
├── testFetchTicker@bitlish.json
├── testFetchTicker@bittrex.json
├── testFetchTicker@bitz.json
├── testFetchTicker@braziliex.json
├── testFetchTicker@btcturk.json
├── testFetchTicker@bxinth.json
├── testFetchTicker@cex.json
├── testFetchTicker@chbtc.json
├── testFetchTicker@cobinhood.json
├── testFetchTicker@coinex.json
├── testFetchTicker@coinfalcon.json
├── testFetchTicker@coinmarketcap.json
├── testFetchTicker@coinone.json
├── testFetchTicker@cointiger.json
├── testFetchTicker@coss.json
├── testFetchTicker@crex24.json
├── testFetchTicker@crypton.json
├── testFetchTicker@cryptopia.json
├── testFetchTicker@exmo.json
├── testFetchTicker@gatecoin.json
├── testFetchTicker@gateio.json
├── testFetchTicker@hadax.json
├── testFetchTicker@hitbtc.json
├── testFetchTicker@hitbtc2.json
├── testFetchTicker@huobipro.json
├── testFetchTicker@huobiru.json
├── testFetchTicker@ice3x.json
├── testFetchTicker@kkex.json
├── testFetchTicker@kraken.json
├── testFetchTicker@kucoin.json
├── testFetchTicker@kucoin2.json
├── testFetchTicker@lakebtc.json
├── testFetchTicker@lbank.json
├── testFetchTicker@liqui.json
├── testFetchTicker@liquid.json
├── testFetchTicker@livecoin.json
├── testFetchTicker@luno.json
├── testFetchTicker@mandala.json
├── testFetchTicker@oceanex.json
├── testFetchTicker@okcoincny.json
├── testFetchTicker@okcoinusd.json
├── testFetchTicker@okex.json
├── testFetchTicker@okex3.json
├── testFetchTicker@poloniex.json
├── testFetchTicker@rightbtc.json
├── testFetchTicker@theocean.json
├── testFetchTicker@therock.json
├── testFetchTicker@tidebit.json
├── testFetchTicker@tidex.json
├── testFetchTicker@upbit.json
├── testFetchTicker@wex.json
├── testFetchTicker@zb.json
├── testFetchTrades@_1btcxe.json
├── testFetchTrades@acx.json
├── testFetchTrades@allcoin.json
├── testFetchTrades@bequant.json
├── testFetchTrades@bigone.json
├── testFetchTrades@binance.json
├── testFetchTrades@binanceje.json
├── testFetchTrades@bit2c.json
├── testFetchTrades@bitbank.json
├── testFetchTrades@bitbay.json
├── testFetchTrades@bitfinex.json
├── testFetchTrades@bitfinex2.json
├── testFetchTrades@bitflyer.json
├── testFetchTrades@bitforex.json
├── testFetchTrades@bithumb.json
├── testFetchTrades@bitkk.json
├── testFetchTrades@bitlish.json
├── testFetchTrades@bitmarket.json
├── testFetchTrades@bitmex.json
├── testFetchTrades@bitstamp.json
├── testFetchTrades@bitstamp1.json
├── testFetchTrades@bittrex.json
├── testFetchTrades@bitz.json
├── testFetchTrades@bl3p.json
├── testFetchTrades@bleutrade.json
├── testFetchTrades@braziliex.json
├── testFetchTrades@btcalpha.json
├── testFetchTrades@btcbox.json
├── testFetchTrades@btcmarkets.json
├── testFetchTrades@btctradeua.json
├── testFetchTrades@btcturk.json
├── testFetchTrades@buda.json
├── testFetchTrades@bxinth.json
├── testFetchTrades@ccex.json
├── testFetchTrades@cex.json
├── testFetchTrades@chbtc.json
├── testFetchTrades@chilebit.json
├── testFetchTrades@cobinhood.json
├── testFetchTrades@coinbaseprime.json
├── testFetchTrades@coinbasepro.json
├── testFetchTrades@coincheck.json
├── testFetchTrades@coinfalcon.json
├── testFetchTrades@coinfloor.json
├── testFetchTrades@coinmate.json
├── testFetchTrades@coinone.json
├── testFetchTrades@coinsecure.json
├── testFetchTrades@coinspot.json
├── testFetchTrades@coss.json
├── testFetchTrades@crex24.json
├── testFetchTrades@crypton.json
├── testFetchTrades@cryptopia.json
├── testFetchTrades@deribit.json
├── testFetchTrades@dsx.json
├── testFetchTrades@exmo.json
├── testFetchTrades@exx.json
├── testFetchTrades@fcoin.json
├── testFetchTrades@fcoinjp.json
├── testFetchTrades@foxbit.json
├── testFetchTrades@fybse.json
├── testFetchTrades@fybsg.json
├── testFetchTrades@gatecoin.json
├── testFetchTrades@gateio.json
├── testFetchTrades@gdax.json
├── testFetchTrades@gemini.json
├── testFetchTrades@getbtc.json
├── testFetchTrades@hadax.json
├── testFetchTrades@hitbtc.json
├── testFetchTrades@hitbtc2.json
├── testFetchTrades@huobipro.json
├── testFetchTrades@huobiru.json
├── testFetchTrades@independentreserve.json
├── testFetchTrades@indodax.json
├── testFetchTrades@itbit.json
├── testFetchTrades@kkex.json
├── testFetchTrades@kucoin.json
├── testFetchTrades@kucoin2.json
├── testFetchTrades@kuna.json
├── testFetchTrades@lakebtc.json
├── testFetchTrades@lbank.json
├── testFetchTrades@liqui.json
├── testFetchTrades@liquid.json
├── testFetchTrades@luno.json
├── testFetchTrades@mercado.json
├── testFetchTrades@mixcoins.json
├── testFetchTrades@negociecoins.json
├── testFetchTrades@nova.json
├── testFetchTrades@oceanex.json
├── testFetchTrades@okcoinusd.json
├── testFetchTrades@okex.json
├── testFetchTrades@okex3.json
├── testFetchTrades@poloniex.json
├── testFetchTrades@qryptos.json
├── testFetchTrades@quadrigacx.json
├── testFetchTrades@quoine.json
├── testFetchTrades@rightbtc.json
├── testFetchTrades@southxchange.json
├── testFetchTrades@surbitcoin.json
├── testFetchTrades@theocean.json
├── testFetchTrades@therock.json
├── testFetchTrades@tidebit.json
├── testFetchTrades@tidex.json
├── testFetchTrades@upbit.json
├── testFetchTrades@urdubit.json
├── testFetchTrades@vaultoro.json
├── testFetchTrades@vbtc.json
├── testFetchTrades@virwox.json
├── testFetchTrades@wex.json
├── testFetchTrades@xbtce.json
├── testFetchTrades@yobit.json
├── testFetchTrades@zaif.json
├── testFetchTrades@zb.json
├── testLoadMarkets@_1broker.json
├── testLoadMarkets@_1btcxe.json
├── testLoadMarkets@acx.json
├── testLoadMarkets@allcoin.json
├── testLoadMarkets@anxpro.json
├── testLoadMarkets@bcex.json
├── testLoadMarkets@bequant.json
├── testLoadMarkets@bigone.json
├── testLoadMarkets@binance.json
├── testLoadMarkets@binanceje.json
├── testLoadMarkets@bit2c.json
├── testLoadMarkets@bitbank.json
├── testLoadMarkets@bitbay.json
├── testLoadMarkets@bitcoincoid.json
├── testLoadMarkets@bitfinex.json
├── testLoadMarkets@bitfinex2.json
├── testLoadMarkets@bitflyer.json
├── testLoadMarkets@bitforex.json
├── testLoadMarkets@bithumb.json
├── testLoadMarkets@bitkk.json
├── testLoadMarkets@bitlish.json
├── testLoadMarkets@bitmarket.json
├── testLoadMarkets@bitmex.json
├── testLoadMarkets@bitstamp.json
├── testLoadMarkets@bitstamp1.json
├── testLoadMarkets@bittrex.json
├── testLoadMarkets@bitz.json
├── testLoadMarkets@bl3p.json
├── testLoadMarkets@bleutrade.json
├── testLoadMarkets@braziliex.json
├── testLoadMarkets@btcalpha.json
├── testLoadMarkets@btcbox.json
├── testLoadMarkets@btcchina.json
├── testLoadMarkets@btcexchange.json
├── testLoadMarkets@btcmarkets.json
├── testLoadMarkets@btctradeim.json
├── testLoadMarkets@btctradeua.json
├── testLoadMarkets@btcturk.json
├── testLoadMarkets@btcx.json
├── testLoadMarkets@bter.json
├── testLoadMarkets@buda.json
├── testLoadMarkets@bxinth.json
├── testLoadMarkets@ccex.json
├── testLoadMarkets@cex.json
├── testLoadMarkets@chbtc.json
├── testLoadMarkets@chilebit.json
├── testLoadMarkets@cobinhood.json
├── testLoadMarkets@coinbase.json
├── testLoadMarkets@coinbaseprime.json
├── testLoadMarkets@coinbasepro.json
├── testLoadMarkets@coincheck.json
├── testLoadMarkets@coinex.json
├── testLoadMarkets@coinfalcon.json
├── testLoadMarkets@coinfloor.json
├── testLoadMarkets@coingi.json
├── testLoadMarkets@coinmarketcap.json
├── testLoadMarkets@coinmate.json
├── testLoadMarkets@coinone.json
├── testLoadMarkets@coinsecure.json
├── testLoadMarkets@coinspot.json
├── testLoadMarkets@cointiger.json
├── testLoadMarkets@coss.json
├── testLoadMarkets@crex24.json
├── testLoadMarkets@crypton.json
├── testLoadMarkets@cryptopia.json
├── testLoadMarkets@deribit.json
├── testLoadMarkets@dsx.json
├── testLoadMarkets@dx.json
├── testLoadMarkets@exmo.json
├── testLoadMarkets@exx.json
├── testLoadMarkets@fcoin.json
├── testLoadMarkets@fcoinjp.json
├── testLoadMarkets@foxbit.json
├── testLoadMarkets@fybse.json
├── testLoadMarkets@fybsg.json
├── testLoadMarkets@gatecoin.json
├── testLoadMarkets@gateio.json
├── testLoadMarkets@gdax.json
├── testLoadMarkets@gemini.json
├── testLoadMarkets@getbtc.json
├── testLoadMarkets@hadax.json
├── testLoadMarkets@hitbtc.json
├── testLoadMarkets@hitbtc2.json
├── testLoadMarkets@huobi.json
├── testLoadMarkets@huobicny.json
├── testLoadMarkets@huobipro.json
├── testLoadMarkets@huobiru.json
├── testLoadMarkets@ice3x.json
├── testLoadMarkets@independentreserve.json
├── testLoadMarkets@indodax.json
├── testLoadMarkets@itbit.json
├── testLoadMarkets@jubi.json
├── testLoadMarkets@kkex.json
├── testLoadMarkets@kucoin.json
├── testLoadMarkets@kucoin2.json
├── testLoadMarkets@kuna.json
├── testLoadMarkets@lakebtc.json
├── testLoadMarkets@lbank.json
├── testLoadMarkets@liqui.json
├── testLoadMarkets@liquid.json
├── testLoadMarkets@livecoin.json
├── testLoadMarkets@luno.json
├── testLoadMarkets@lykke.json
├── testLoadMarkets@mandala.json
├── testLoadMarkets@mercado.json
├── testLoadMarkets@mixcoins.json
├── testLoadMarkets@negociecoins.json
├── testLoadMarkets@nova.json
├── testLoadMarkets@oceanex.json
├── testLoadMarkets@okcoincny.json
├── testLoadMarkets@okcoinusd.json
├── testLoadMarkets@okex.json
├── testLoadMarkets@okex3.json
├── testLoadMarkets@paymium.json
├── testLoadMarkets@poloniex.json
├── testLoadMarkets@qryptos.json
├── testLoadMarkets@quadrigacx.json
├── testLoadMarkets@quoine.json
├── testLoadMarkets@rightbtc.json
├── testLoadMarkets@southxchange.json
├── testLoadMarkets@stronghold.json
├── testLoadMarkets@surbitcoin.json
├── testLoadMarkets@theocean.json
├── testLoadMarkets@therock.json
├── testLoadMarkets@tidebit.json
├── testLoadMarkets@tidex.json
├── testLoadMarkets@upbit.json
├── testLoadMarkets@urdubit.json
├── testLoadMarkets@vaultoro.json
├── testLoadMarkets@vbtc.json
├── testLoadMarkets@virwox.json
├── testLoadMarkets@wex.json
├── testLoadMarkets@xbtce.json
├── testLoadMarkets@yobit.json
├── testLoadMarkets@zaif.json
└── testLoadMarkets@zb.json
└── keys.dist.json
/.coveralls.yml:
--------------------------------------------------------------------------------
1 | service_name: travis-ci
2 | coverage_clover: build/logs/clover.xml
3 | json_path: coveralls-upload.json
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | !.gitignore
2 | vendor/
3 | example/tests/keys.json
4 | tests/keys.json
5 | /nbproject/private/
6 | nbproject/
7 | build/
8 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: php
2 |
3 | php:
4 | - 7.2
5 | - 7.3
6 | - 7.4snapshot
7 | - nightly
8 |
9 | matrix:
10 | fast_finish: true
11 | allow_failures:
12 | - php: nightly
13 | - php: 7.4snapshot
14 |
15 | install:
16 | - if [[ "$TRAVIS_PHP_VERSION" != "nightly" ]]; then phpenv config-rm xdebug.ini; fi
17 | - travis_retry composer self-update
18 | - travis_retry composer install --prefer-dist --dev
19 |
20 | script:
21 | - mkdir -p build/logs
22 | - phpdbg -qrr vendor/bin/phpunit -c phpunit.xml.dist
23 |
24 | after_success:
25 | - composer require php-coveralls/php-coveralls
26 | - travis_retry vendor/bin/php-coveralls -v
27 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://travis-ci.org/kornrunner/ccxt) [](https://coveralls.io/github/kornrunner/ccxt?branch=master)
3 |
4 | [ 0x9c7b7a00972121fb843af7af74526d7eb585b171][Ethereum]
5 |
6 | [Ethereum]: https://etherscan.io/address/0x9c7b7a00972121fb843af7af74526d7eb585b171 "Donate with Ethereum"
7 |
--------------------------------------------------------------------------------
/examples/README.md:
--------------------------------------------------------------------------------
1 | # CCXT PHP Examples
2 |
3 | To run PHP examples from any folder type in console:
4 |
5 | ```shell
6 | php -f path/to/example.php # substitute for actual filename here
7 | ```
--------------------------------------------------------------------------------
/examples/bitfinex2-fetch-ohlcv.php:
--------------------------------------------------------------------------------
1 | true,
10 | 'rateLimit' => 12000,
11 | ));
12 |
13 | // bitfinex2 breaks occasionally
14 |
15 | for ($i = 0; $i < 1000; $i++) {
16 | $ohlcv = $exchange->fetch_ohlcv ('BTC/USD', '1m');
17 | print_r ($exchange->iso8601 ($ohlcv[0][0]) . "\t" . count($ohlcv) . "\n");
18 | }
19 |
--------------------------------------------------------------------------------
/examples/kraken-query-ledgers.php:
--------------------------------------------------------------------------------
1 | 'YOUR_API_KEY',
12 | 'secret' => 'YOUR_SECRET_KEY',
13 | ));
14 |
15 | // get ledgers
16 | $ledgers = $exchange->privatePostLedgers ();
17 |
18 | // get ledger ids
19 | $ids = array_keys ($ledgers['result']['ledger']);
20 |
21 | // get ledger entries for ledger id
22 | $ledger_entries = $exchange->privatePostQueryLedgers (array (
23 | 'id' => $ids[0],
24 | ));
25 |
26 | var_dump ($ledger_entries);
27 |
--------------------------------------------------------------------------------
/examples/order-book-level-depth-extra-param.php:
--------------------------------------------------------------------------------
1 | fetch_order_book ('BTC/USD', array (
11 | 'count' => 10, // up to ten order on each side for example
12 | )));
13 |
--------------------------------------------------------------------------------
/examples/symbols.php:
--------------------------------------------------------------------------------
1 | setHeaders ($headers);
28 | $tbl->addData ($rows);
29 | return $tbl->getTable ();
30 | }
31 |
32 | function market_table_helper ($market) {
33 | return array (
34 | $market['id'],
35 | $market['symbol'],
36 | $market['base'],
37 | $market['quote'],
38 | $market['taker'],
39 | $market['maker'],
40 | json_encode ($market['precision']),
41 | json_encode ($market['limits']),
42 |
43 | );
44 | }
45 |
46 | if (count ($argv) > 1) {
47 |
48 | $id = $argv[1];
49 |
50 | $exchange_found = in_array ($id, $exchanges);
51 |
52 | if ($exchange_found) {
53 |
54 | dump ('Instantiating', green ($id), 'exchange exchange');
55 |
56 | // instantiate the exchange by id
57 | $exchange = '\\ccxt\\' . $id;
58 | $exchange = new $exchange ();
59 |
60 | // load all markets from the exchange
61 | $markets = $exchange->load_markets ();
62 |
63 | // output a list of all market symbols
64 | dump (green ($id), 'has', count ($exchange->symbols), 'symbols:', yellow (implode (', ', $exchange->symbols)));
65 |
66 | // output a table of all markets
67 | @dump (tabulate (array ('id', 'symbol', 'base', 'quote', 'taker', 'maker', 'precision', 'limits'), array_map ('market_table_helper', $markets)));
68 |
69 | } else {
70 |
71 | dump ('Exchange', red ($id), 'not found');
72 | print_supported_exchanges ();
73 | }
74 |
75 | } else {
76 |
77 | dump ('Usage: php -f', __FILE__, green ('id'));
78 | print_supported_exchanges ();
79 |
80 | }
81 |
--------------------------------------------------------------------------------
/phpunit.xml.dist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
\nReference #18.4517655f.1562837126.5a906de\n<\/BODY>\n<\/HTML>\n" 60 | } 61 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bitlish.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/bitlish.com\/api\/v1\/pairs", 5 | "headers": { 6 | "Host": "bitlish.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Server": "nginx", 17 | "Date": "Thu, 14 Dec 2017 00:31:05 GMT", 18 | "Content-Type": "application\/json;charset=UTF-8", 19 | "Content-Length": "1739", 20 | "Connection": "keep-alive", 21 | "X-Frame-Options": "SAMEORIGIN", 22 | "X-XSS-Protection": "1; mode=block", 23 | "X-Content-Type-Options": "nosniff", 24 | "Strict-Transport-Security": "max-age=86400; includeSubDomains", 25 | "Content-Security-Policy-Report-Only": "default-src https: wss:; script-src https: 'unsafe-eval' 'unsafe-inline'; style-src https: 'unsafe-inline'; img-src https: data: blob:; font-src https: data:; report-uri \/csp-report" 26 | }, 27 | "body": "{\"btceur\":{\"currency_id\":\"eur\",\"id\":\"btceur\",\"item_id\":\"btc\",\"name\":\"BTC\\\/EUR\"},\"btcrub\":{\"currency_id\":\"rub\",\"id\":\"btcrub\",\"item_id\":\"btc\",\"name\":\"BTC\\\/RUB\"},\"btcusd\":{\"currency_id\":\"usd\",\"id\":\"btcusd\",\"item_id\":\"btc\",\"name\":\"BTC\\\/USD\"},\"btgbtc\":{\"currency_id\":\"btc\",\"id\":\"btgbtc\",\"item_id\":\"btg\",\"name\":\"BTG\\\/BTC\"},\"dshbtc\":{\"currency_id\":\"btc\",\"id\":\"dshbtc\",\"item_id\":\"dsh\",\"name\":\"DSH\\\/BTC\"},\"dsheur\":{\"currency_id\":\"eur\",\"id\":\"dsheur\",\"item_id\":\"dsh\",\"name\":\"DSH\\\/EUR\"},\"dshrub\":{\"currency_id\":\"rub\",\"id\":\"dshrub\",\"item_id\":\"dsh\",\"name\":\"DSH\\\/RUB\"},\"dshusd\":{\"currency_id\":\"usd\",\"id\":\"dshusd\",\"item_id\":\"dsh\",\"name\":\"DSH\\\/USD\"},\"ethbtc\":{\"currency_id\":\"btc\",\"id\":\"ethbtc\",\"item_id\":\"eth\",\"name\":\"ETH\\\/BTC\"},\"etheur\":{\"currency_id\":\"eur\",\"id\":\"etheur\",\"item_id\":\"eth\",\"name\":\"ETH\\\/EUR\"},\"ethrub\":{\"currency_id\":\"rub\",\"id\":\"ethrub\",\"item_id\":\"eth\",\"name\":\"ETH\\\/RUB\"},\"ethusd\":{\"currency_id\":\"usd\",\"id\":\"ethusd\",\"item_id\":\"eth\",\"name\":\"ETH\\\/USD\"},\"ltcbtc\":{\"currency_id\":\"btc\",\"id\":\"ltcbtc\",\"item_id\":\"ltc\",\"name\":\"LTC\\\/BTC\"},\"ltceur\":{\"currency_id\":\"eur\",\"id\":\"ltceur\",\"item_id\":\"ltc\",\"name\":\"LTC\\\/EUR\"},\"ltcrub\":{\"currency_id\":\"rub\",\"id\":\"ltcrub\",\"item_id\":\"ltc\",\"name\":\"LTC\\\/RUB\"},\"ltcusd\":{\"currency_id\":\"usd\",\"id\":\"ltcusd\",\"item_id\":\"ltc\",\"name\":\"LTC\\\/USD\"},\"xdgbtc\":{\"currency_id\":\"btc\",\"id\":\"xdgbtc\",\"item_id\":\"xdg\",\"name\":\"XDG\\\/BTC\"},\"xmrbtc\":{\"currency_id\":\"btc\",\"id\":\"xmrbtc\",\"item_id\":\"xmr\",\"name\":\"XMR\\\/BTC\"},\"zecbtc\":{\"currency_id\":\"btc\",\"id\":\"zecbtc\",\"item_id\":\"zec\",\"name\":\"ZEC\\\/BTC\"},\"zeceur\":{\"currency_id\":\"eur\",\"id\":\"zeceur\",\"item_id\":\"zec\",\"name\":\"ZEC\\\/EUR\"},\"zecrub\":{\"currency_id\":\"rub\",\"id\":\"zecrub\",\"item_id\":\"zec\",\"name\":\"ZEC\\\/RUB\"},\"zecusd\":{\"currency_id\":\"usd\",\"id\":\"zecusd\",\"item_id\":\"zec\",\"name\":\"ZEC\\\/USD\"}}" 28 | } 29 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bitmarket.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bitstamp1.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bl3p.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@btcbox.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@btcchina.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@btcexchange.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@btcmarkets.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.btcmarkets.net\/v2\/market\/active", 5 | "headers": { 6 | "Host": "api.btcmarkets.net" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "2", 12 | "code": "200", 13 | "message": "" 14 | }, 15 | "headers": { 16 | "date": "Thu, 11 Jul 2019 09:25:35 GMT", 17 | "content-type": "application\/json;charset=UTF-8", 18 | "set-cookie": "__cfduid=d0a1a77d4b8fbacccc97931df4ebcbd3d1562837133; expires=Fri, 10-Jul-20 09:25:33 GMT; path=\/; domain=.btcmarkets.net; HttpOnly", 19 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 20 | "server": "cloudflare", 21 | "cf-ray": "4f49bb145e1d7c4c-BEG", 22 | "content-encoding": "gzip" 23 | }, 24 | "body": "{\"success\":true,\"errorCode\":null,\"errorMessage\":null,\"markets\":[{\"instrument\":\"BTC\",\"currency\":\"AUD\"},{\"instrument\":\"LTC\",\"currency\":\"AUD\"},{\"instrument\":\"LTC\",\"currency\":\"BTC\"},{\"instrument\":\"ETH\",\"currency\":\"BTC\"},{\"instrument\":\"ETH\",\"currency\":\"AUD\"},{\"instrument\":\"ETC\",\"currency\":\"AUD\"},{\"instrument\":\"ETC\",\"currency\":\"BTC\"},{\"instrument\":\"XRP\",\"currency\":\"AUD\"},{\"instrument\":\"XRP\",\"currency\":\"BTC\"},{\"instrument\":\"POWR\",\"currency\":\"AUD\"},{\"instrument\":\"POWR\",\"currency\":\"BTC\"},{\"instrument\":\"OMG\",\"currency\":\"AUD\"},{\"instrument\":\"OMG\",\"currency\":\"BTC\"},{\"instrument\":\"BCHABC\",\"currency\":\"AUD\"},{\"instrument\":\"BCHABC\",\"currency\":\"BTC\"},{\"instrument\":\"BCHSV\",\"currency\":\"AUD\"},{\"instrument\":\"BCHSV\",\"currency\":\"BTC\"},{\"instrument\":\"GNT\",\"currency\":\"AUD\"},{\"instrument\":\"GNT\",\"currency\":\"BTC\"},{\"instrument\":\"BAT\",\"currency\":\"AUD\"},{\"instrument\":\"BAT\",\"currency\":\"BTC\"},{\"instrument\":\"XLM\",\"currency\":\"AUD\"},{\"instrument\":\"XLM\",\"currency\":\"BTC\"}]}" 25 | } 26 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@btctradeim.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.btctrade.im\/coin\/symbol\/ticker?right_coin=btc", 5 | "headers": { 6 | "Host": "api.btctrade.im" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "500", 13 | "message": "Internal Server Error" 14 | }, 15 | "headers": { 16 | "Server": "2.0.0.2.2.a70c311", 17 | "Date": "Thu, 11 Jul 2019 09:25:33 GMT", 18 | "Content-Type": "text\/html; charset=UTF-8", 19 | "Transfer-Encoding": "chunked", 20 | "Set-Cookie": "HWWAFSESID=bbadcd0e5b28032e4b; path=\/, HWWAFSESTIME=1562837131735; path=\/, lang=zh_CN; expires=Sun, 08-Jul-2029 09:25:36 GMT; Max-Age=315360000; path=\/" 21 | } 22 | } 23 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@btctradeua.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@btcx.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bter.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/data.bter.com\/api2\/1\/marketinfo", 5 | "headers": { 6 | "Host": "data.bter.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Date": "Thu, 21 Dec 2017 21:39:18 GMT", 17 | "Content-Type": "text\/html; charset=UTF-8", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=d71fca3d4e2354c004e01de99b4d40a6a1513892357; expires=Fri, 21-Dec-18 21:39:17 GMT; path=\/; domain=.bter.com; HttpOnly", 21 | "X-Frame-Options": "SAMEORIGIN", 22 | "X-Powered-By": "CF ()", 23 | "Pragma": "no-cache", 24 | "Cache-Control": "no-cache, must-revalidate", 25 | "Server": "cloudflare-nginx", 26 | "CF-RAY": "3d0dfe439c2d7c54-BEG", 27 | "Content-Encoding": "gzip" 28 | }, 29 | "body": "..." 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bxinth.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/bx.in.th\/api\/pairing\/", 5 | "headers": { 6 | "Host": "bx.in.th" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Date": "Thu, 14 Dec 2017 00:31:09 GMT", 17 | "Content-Type": "text\/javascript", 18 | "Content-Length": "333", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=d7f3fbbe34d7b2fdb2d8fe8e75a3d083b1513211469; expires=Fri, 14-Dec-18 00:31:09 GMT; path=\/; domain=.bx.in.th; HttpOnly; Secure", 21 | "Cache-Control": "max-age=86400", 22 | "Content-Encoding": "gzip", 23 | "Expires": "Fri, 15 Dec 2017 00:31:09 GMT", 24 | "Vary": "Accept-Encoding", 25 | "Strict-Transport-Security": "max-age=0", 26 | "X-Content-Type-Options": "nosniff", 27 | "Server": "cloudflare-nginx", 28 | "CF-RAY": "3ccd0f01bea67c6c-BEG" 29 | }, 30 | "body": "{\"1\":{\"pairing_id\":1,\"primary_currency\":\"THB\",\"secondary_currency\":\"BTC\"},\"21\":{\"pairing_id\":21,\"primary_currency\":\"THB\",\"secondary_currency\":\"ETH\"},\"22\":{\"pairing_id\":22,\"primary_currency\":\"THB\",\"secondary_currency\":\"DAS\"},\"23\":{\"pairing_id\":23,\"primary_currency\":\"THB\",\"secondary_currency\":\"REP\"},\"20\":{\"pairing_id\":20,\"primary_currency\":\"BTC\",\"secondary_currency\":\"ETH\"},\"27\":{\"pairing_id\":27,\"primary_currency\":\"THB\",\"secondary_currency\":\"BCH\"},\"4\":{\"pairing_id\":4,\"primary_currency\":\"BTC\",\"secondary_currency\":\"DOG\"},\"28\":{\"pairing_id\":28,\"primary_currency\":\"THB\",\"secondary_currency\":\"EVX\"},\"6\":{\"pairing_id\":6,\"primary_currency\":\"BTC\",\"secondary_currency\":\"FTC\"},\"24\":{\"pairing_id\":24,\"primary_currency\":\"THB\",\"secondary_currency\":\"GNO\"},\"13\":{\"pairing_id\":13,\"primary_currency\":\"BTC\",\"secondary_currency\":\"HYP\"},\"30\":{\"pairing_id\":30,\"primary_currency\":\"THB\",\"secondary_currency\":\"LTC\"},\"2\":{\"pairing_id\":2,\"primary_currency\":\"BTC\",\"secondary_currency\":\"LTC\"},\"3\":{\"pairing_id\":3,\"primary_currency\":\"BTC\",\"secondary_currency\":\"NMC\"},\"26\":{\"pairing_id\":26,\"primary_currency\":\"THB\",\"secondary_currency\":\"OMG\"},\"14\":{\"pairing_id\":14,\"primary_currency\":\"BTC\",\"secondary_currency\":\"PND\"},\"5\":{\"pairing_id\":5,\"primary_currency\":\"BTC\",\"secondary_currency\":\"PPC\"},\"19\":{\"pairing_id\":19,\"primary_currency\":\"BTC\",\"secondary_currency\":\"QRK\"},\"15\":{\"pairing_id\":15,\"primary_currency\":\"BTC\",\"secondary_currency\":\"XCN\"},\"7\":{\"pairing_id\":7,\"primary_currency\":\"BTC\",\"secondary_currency\":\"XPM\"},\"17\":{\"pairing_id\":17,\"primary_currency\":\"BTC\",\"secondary_currency\":\"XPY\"},\"25\":{\"pairing_id\":25,\"primary_currency\":\"THB\",\"secondary_currency\":\"XRP\"},\"29\":{\"pairing_id\":29,\"primary_currency\":\"THB\",\"secondary_currency\":\"XZC\"},\"8\":{\"pairing_id\":8,\"primary_currency\":\"BTC\",\"secondary_currency\":\"ZEC\"}}" 31 | } 32 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@chbtc.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@chilebit.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@coinbase.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@coincheck.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@coinfloor.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@coinone.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@coinsecure.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@coinspot.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@cointiger.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@fcoinjp.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.fcoinjp.com\/v2\/public\/symbols", 5 | "headers": { 6 | "Host": "api.fcoinjp.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "2", 12 | "code": "200", 13 | "message": "" 14 | }, 15 | "headers": { 16 | "date": "Thu, 11 Jul 2019 09:25:56 GMT", 17 | "content-type": "application\/json", 18 | "content-length": "266", 19 | "content-encoding": "gzip" 20 | }, 21 | "body": "{\"status\":0,\"data\":[{\"name\":\"etcusdt\",\"base_currency\":\"etc\",\"quote_currency\":\"usdt\",\"price_decimal\":3,\"amount_decimal\":4,\"tradable\":true},{\"name\":\"lskusdt\",\"base_currency\":\"lsk\",\"quote_currency\":\"usdt\",\"price_decimal\":4,\"amount_decimal\":2,\"tradable\":true},{\"name\":\"ethbtc\",\"base_currency\":\"eth\",\"quote_currency\":\"btc\",\"price_decimal\":5,\"amount_decimal\":4,\"tradable\":false},{\"name\":\"fjusdt\",\"base_currency\":\"fj\",\"quote_currency\":\"usdt\",\"price_decimal\":6,\"amount_decimal\":2,\"tradable\":true},{\"name\":\"xrpusdt\",\"base_currency\":\"xrp\",\"quote_currency\":\"usdt\",\"price_decimal\":4,\"amount_decimal\":2,\"tradable\":true},{\"name\":\"monausdt\",\"base_currency\":\"mona\",\"quote_currency\":\"usdt\",\"price_decimal\":4,\"amount_decimal\":2,\"tradable\":true},{\"name\":\"bsvusdt\",\"base_currency\":\"bsv\",\"quote_currency\":\"usdt\",\"price_decimal\":2,\"amount_decimal\":4,\"tradable\":true},{\"name\":\"xemusdt\",\"base_currency\":\"xem\",\"quote_currency\":\"usdt\",\"price_decimal\":4,\"amount_decimal\":2,\"tradable\":true},{\"name\":\"bchusdt\",\"base_currency\":\"bch\",\"quote_currency\":\"usdt\",\"price_decimal\":1,\"amount_decimal\":4,\"tradable\":true},{\"name\":\"eosusdt\",\"base_currency\":\"eos\",\"quote_currency\":\"usdt\",\"price_decimal\":3,\"amount_decimal\":4,\"tradable\":true},{\"name\":\"ltcusdt\",\"base_currency\":\"ltc\",\"quote_currency\":\"usdt\",\"price_decimal\":2,\"amount_decimal\":4,\"tradable\":true},{\"name\":\"ethusdt\",\"base_currency\":\"eth\",\"quote_currency\":\"usdt\",\"price_decimal\":2,\"amount_decimal\":4,\"tradable\":true},{\"name\":\"btcusdt\",\"base_currency\":\"btc\",\"quote_currency\":\"usdt\",\"price_decimal\":1,\"amount_decimal\":4,\"tradable\":true}]}" 22 | } 23 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@foxbit.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@fybse.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@fybsg.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@gdax.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api-public.sandbox.gdax.com\/products", 5 | "headers": { 6 | "Host": "api-public.sandbox.gdax.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "access-control-allow-methods": "GET,POST,DELETE,PUT", 17 | "access-control-allow-origin": "*", 18 | "access-control-allow-headers": "Content-Type, Accept, cb-session, cb-fp", 19 | "access-control-expose-headers": "cb-before, cb-after", 20 | "access-control-max-age": "7200", 21 | "cache-control": "public, max-age=5", 22 | "content-type": "application\/json; charset=utf-8", 23 | "content-length": "2015", 24 | "etag": "W\/\"7df-aEuGAcZLPB7+sWavNpJ9C4+IQds\"", 25 | "date": "Thu, 14 Dec 2017 11:37:55 GMT", 26 | "connection": "close" 27 | }, 28 | "body": "[{\"id\":\"BTC-USD\",\"base_currency\":\"BTC\",\"quote_currency\":\"USD\",\"base_min_size\":\"0.01\",\"base_max_size\":\"10000\",\"quote_increment\":\"0.01\",\"display_name\":\"BTC\/USD\",\"status\":\"online\",\"margin_enabled\":true,\"status_message\":null},{\"id\":\"BTC-GBP\",\"base_currency\":\"BTC\",\"quote_currency\":\"GBP\",\"base_min_size\":\"0.01\",\"base_max_size\":\"10000\",\"quote_increment\":\"0.01\",\"display_name\":\"BTC\/GBP\",\"status\":\"online\",\"margin_enabled\":false,\"status_message\":null},{\"id\":\"BTC-EUR\",\"base_currency\":\"BTC\",\"quote_currency\":\"EUR\",\"base_min_size\":\"0.01\",\"base_max_size\":\"10000\",\"quote_increment\":\"0.01\",\"display_name\":\"BTC\/EUR\",\"status\":\"online\",\"margin_enabled\":false,\"status_message\":null},{\"id\":\"ETH-BTC\",\"base_currency\":\"ETH\",\"quote_currency\":\"BTC\",\"base_min_size\":\"0.01\",\"base_max_size\":\"1000000\",\"quote_increment\":\"0.00001\",\"display_name\":\"ETH\/BTC\",\"status\":\"online\",\"margin_enabled\":false,\"status_message\":null},{\"id\":\"ETH-USD\",\"base_currency\":\"ETH\",\"quote_currency\":\"USD\",\"base_min_size\":\"0.01\",\"base_max_size\":\"1000000\",\"quote_increment\":\"0.01\",\"display_name\":\"ETH\/USD\",\"status\":\"online\",\"margin_enabled\":true,\"status_message\":null},{\"id\":\"LTC-BTC\",\"base_currency\":\"LTC\",\"quote_currency\":\"BTC\",\"base_min_size\":\"0.01\",\"base_max_size\":\"1000000\",\"quote_increment\":\"0.00001\",\"display_name\":\"LTC\/BTC\",\"status\":\"online\",\"margin_enabled\":false,\"status_message\":null},{\"id\":\"LTC-USD\",\"base_currency\":\"LTC\",\"quote_currency\":\"USD\",\"base_min_size\":\"0.01\",\"base_max_size\":\"1000000\",\"quote_increment\":\"0.01\",\"display_name\":\"LTC\/USD\",\"status\":\"online\",\"margin_enabled\":false,\"status_message\":null},{\"id\":\"LTC-EUR\",\"base_currency\":\"LTC\",\"quote_currency\":\"EUR\",\"base_min_size\":\"0.01\",\"base_max_size\":\"1000000\",\"quote_increment\":\"0.01\",\"display_name\":\"LTC\/EUR\",\"status\":\"online\",\"margin_enabled\":false,\"status_message\":null},{\"id\":\"ETH-EUR\",\"base_currency\":\"ETH\",\"quote_currency\":\"EUR\",\"base_min_size\":\"0.01\",\"base_max_size\":\"1000000\",\"quote_increment\":\"0.01\",\"display_name\":\"ETH\/EUR\",\"status\":\"online\",\"margin_enabled\":false,\"status_message\":null}]" 29 | } 30 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@getbtc.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@huobi.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@huobicny.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/be.huobi.com\/v1\/common\/symbols", 5 | "headers": { 6 | "Host": "be.huobi.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Date": "Thu, 14 Dec 2017 00:31:28 GMT", 17 | "Content-Type": "application\/json;charset=utf-8", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Vary": "Accept-Encoding", 21 | "X-Application-Context": "dawn-broker-bitex:prd:8080", 22 | "Content-Encoding": "gzip", 23 | "Set-Cookie": "__jsluid=8424be1885c37e7d2427841514b96d9b; max-age=31536000; path=\/; HttpOnly", 24 | "X-Cache": "bypass" 25 | }, 26 | "body": "{\"status\":\"ok\",\"data\":[{\"base-currency\":\"bcc\",\"quote-currency\":\"cny\",\"price-precision\":2,\"amount-precision\":4},{\"base-currency\":\"eth\",\"quote-currency\":\"cny\",\"price-precision\":2,\"amount-precision\":4},{\"base-currency\":\"etc\",\"quote-currency\":\"cny\",\"price-precision\":2,\"amount-precision\":4}]}" 27 | } 28 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@independentreserve.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.independentreserve.com\/Public\/GetValidPrimaryCurrencyCodes", 5 | "headers": { 6 | "Host": "api.independentreserve.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Cache-Control": "private", 17 | "Content-Type": "application\/json", 18 | "Date": "Thu, 14 Dec 2017 00:31:31 GMT", 19 | "Strict-Transport-Security": "max-age=31536000", 20 | "Content-Length": "19", 21 | "Connection": "keep-alive" 22 | }, 23 | "body": "[\"Xbt\",\"Eth\",\"Bch\"]" 24 | } 25 | },{ 26 | "request": { 27 | "method": "GET", 28 | "url": "https:\/\/api.independentreserve.com\/Public\/GetValidSecondaryCurrencyCodes", 29 | "headers": { 30 | "Host": "api.independentreserve.com" 31 | } 32 | }, 33 | "response": { 34 | "status": { 35 | "http_version": "1.1", 36 | "code": "200", 37 | "message": "OK" 38 | }, 39 | "headers": { 40 | "Cache-Control": "private", 41 | "Content-Type": "application\/json", 42 | "Date": "Thu, 14 Dec 2017 00:31:33 GMT", 43 | "Strict-Transport-Security": "max-age=31536000", 44 | "Content-Length": "19", 45 | "Connection": "keep-alive" 46 | }, 47 | "body": "[\"Usd\",\"Aud\",\"Nzd\"]" 48 | } 49 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@indodax.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@itbit.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@jubi.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@kuna.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@luno.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.mybitx.com\/api\/1\/tickers", 5 | "headers": { 6 | "Host": "api.mybitx.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Cache-Control": "public, max-age=0", 17 | "Content-Encoding": "gzip", 18 | "Content-Type": "application\/json", 19 | "Date": "Thu, 14 Dec 2017 00:31:37 GMT", 20 | "Last-Modified": "Thu, 14 Dec 2017 00:31:37 GMT", 21 | "Server": "nginx", 22 | "Set-Cookie": "device=ZHQxeIbfD9Wt\/dJYQhQkOjIT6w==:soalBtRptd1jl+DIGBN6G8pZC+Y=; Path=\/; Max-Age=31536000; HttpOnly; Secure", 23 | "Content-Length": "262", 24 | "Connection": "keep-alive" 25 | }, 26 | "body": "{\"tickers\":[{\"timestamp\":1513211497446,\"bid\":\"240001000.00\",\"ask\":\"243300000.00\",\"last_trade\":\"240000000.00\",\"rolling_24_hour_volume\":\"10.409595\",\"pair\":\"XBTIDR\"},{\"timestamp\":1513211497448,\"bid\":\"256254.00\",\"ask\":\"256255.00\",\"last_trade\":\"256254.00\",\"rolling_24_hour_volume\":\"1489.137565\",\"pair\":\"XBTZAR\"},{\"timestamp\":1513211497449,\"bid\":\"6130109.00\",\"ask\":\"6138900.00\",\"last_trade\":\"6138946.00\",\"rolling_24_hour_volume\":\"41.67143\",\"pair\":\"XBTNGN\"},{\"timestamp\":1513211497451,\"bid\":\"71095.00\",\"ask\":\"71096.00\",\"last_trade\":\"71096.00\",\"rolling_24_hour_volume\":\"332.812988\",\"pair\":\"XBTMYR\"}]}\n" 27 | } 28 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@mercado.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@mixcoins.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@negociecoins.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@okcoincny.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@paymium.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@quadrigacx.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@southxchange.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.southxchange.com\/api\/markets", 5 | "headers": { 6 | "Host": "www.southxchange.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Date": "Thu, 14 Dec 2017 00:31:54 GMT", 17 | "Content-Type": "application\/json; charset=utf-8", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=d78ed5b9842594c97cbc4177c3e2374641513211514; expires=Fri, 14-Dec-18 00:31:54 GMT; path=\/; domain=.southxchange.com; HttpOnly, _culture=en-US; path=\/, ARRAffinity=04f20859064b4e50d0a9c30436f9cc8a3e3b7902fe49a523458c4aef59bd6de7;Path=\/;HttpOnly;Domain=www.southxchange.com", 21 | "Cache-Control": "no-cache, no-store, must-revalidate", 22 | "Pragma": "no-cache", 23 | "Expires": "-1", 24 | "Vary": "Accept-Encoding", 25 | "X-AspNetMvc-Version": "5.2", 26 | "Access-Control-Allow-Origin": "*", 27 | "X-AspNet-Version": "4.0.30319", 28 | "X-Powered-By": "ASP.NET", 29 | "X-Frame-Options": "DENY", 30 | "Server": "cloudflare-nginx", 31 | "CF-RAY": "3ccd101baa4d7c78-BEG", 32 | "Content-Encoding": "gzip" 33 | }, 34 | "body": "[[\"BCH\",\"BTC\"],[\"BSD\",\"BTC\"],[\"BTA\",\"BTC\"],[\"BTG\",\"BTC\"],[\"CHA\",\"BTC\"],[\"CYR\",\"BTC\"],[\"DASH\",\"BTC\"],[\"DOGE\",\"BTC\"],[\"EGOLD\",\"BTC\"],[\"ETH\",\"BTC\"],[\"FLB\",\"BTC\"],[\"GRT\",\"BTC\"],[\"ICE\",\"BTC\"],[\"INXT\",\"BTC\"],[\"LTC\",\"BTC\"],[\"LUX\",\"BTC\"],[\"MBCH\",\"BTC\"],[\"MINT\",\"BTC\"],[\"MRN\",\"BTC\"],[\"MSR\",\"BTC\"],[\"NMC\",\"BTC\"],[\"NSR\",\"BTC\"],[\"NXT\",\"BTC\"],[\"PPC\",\"BTC\"],[\"PTC\",\"BTC\"],[\"RESTORE\",\"BTC\"],[\"RGC\",\"BTC\"],[\"SMS\",\"BTC\"],[\"STAR\",\"BTC\"],[\"STRAT\",\"BTC\"],[\"SUP\",\"BTC\"],[\"VTC\",\"BTC\"],[\"XGOX\",\"BTC\"],[\"XMR\",\"BTC\"],[\"XVG\",\"BTC\"],[\"ZEIT\",\"BTC\"],[\"CHRC\",\"LTC\"],[\"RESTORE\",\"LTC\"],[\"XGOX\",\"LTC\"],[\"ZEIT\",\"LTC\"],[\"BCH\",\"USD\"],[\"BTC\",\"USD\"],[\"BTG\",\"USD\"],[\"DASH\",\"USD\"],[\"ETH\",\"USD\"],[\"GRT\",\"USD\"],[\"ICE\",\"USD\"],[\"INXT\",\"USD\"],[\"LTC\",\"USD\"],[\"MRN\",\"USD\"],[\"MSR\",\"USD\"],[\"RESTORE\",\"USD\"],[\"SMS\",\"USD\"],[\"STRAT\",\"USD\"],[\"SUP\",\"USD\"],[\"USNBT\",\"USD\"],[\"XGOX\",\"USD\"],[\"XMR\",\"USD\"],[\"BTC\",\"USNBT\"],[\"ETH\",\"USNBT\"],[\"NSR\",\"USNBT\"]]" 35 | } 36 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@surbitcoin.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@urdubit.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@vaultoro.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.vaultoro.com\/markets", 5 | "headers": { 6 | "Host": "api.vaultoro.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Server": "nginx", 17 | "Date": "Thu, 14 Dec 2017 00:31:56 GMT", 18 | "Content-Type": "application\/json", 19 | "Transfer-Encoding": "chunked", 20 | "Connection": "keep-alive", 21 | "Vary": "Accept-Encoding", 22 | "access-control-allow-origin": "*", 23 | "access-control-allow-headers": "Origin, X-Requested-With, Content-Type, Accept", 24 | "Strict-Transport-Security": "max-age=31536000" 25 | }, 26 | "body": "{\n \"status\": \"success\",\n \"data\": {\n \"MarketCurrency\": \"GLD\",\n \"BaseCurrency\": \"BTC\",\n \"MarketCurrencyLong\": \"Gold\",\n \"BaseCurrencyLong\": \"Bitcoin\",\n \"MinTradeSize\": 1e-8,\n \"MarketName\": \"BTC-GLD\",\n \"IsActive\": true,\n \"MinUnitQty\": 0.0002,\n \"MinPrice\": 0.000002,\n \"LastPrice\": \"0.00269400\",\n \"24hLow\": \"0.00257000\",\n \"24hHigh\": \"0.00271000\",\n \"24hVolume\": \"12241.659\"\n }\n}" 27 | } 28 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@vbtc.json: -------------------------------------------------------------------------------- 1 | [] --------------------------------------------------------------------------------