├── .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 | [![Build Status](https://travis-ci.org/kornrunner/ccxt.svg?branch=1.0.9)](https://travis-ci.org/kornrunner/ccxt) [![Coverage 2 | Status](https://coveralls.io/repos/github/kornrunner/ccxt/badge.svg?branch=master)](https://coveralls.io/github/kornrunner/ccxt?branch=master) 3 | 4 | [![Ethereum](https://user-images.githubusercontent.com/725986/61891022-0d0c7f00-af09-11e9-829f-096c039bbbfa.png) 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 | 13 | 14 | 15 | 16 | tests 17 | 18 | 19 | 20 | 21 | 22 | src 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/bequant.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'bequant', 12 | 'name' => 'Bequant', 13 | 'countries' => array( 'MT' ), // Malta 14 | 'pro' => true, 15 | 'urls' => array( 16 | 'logo' => 'https://user-images.githubusercontent.com/1294454/55248342-a75dfe00-525a-11e9-8aa2-05e9dca943c6.jpg', 17 | 'api' => array( 18 | 'public' => 'https://api.bequant.io', 19 | 'private' => 'https://api.bequant.io', 20 | ), 21 | 'www' => 'https://bequant.io', 22 | 'doc' => array( 23 | 'https://api.bequant.io/', 24 | ), 25 | 'fees' => array( 26 | 'https://bequant.io/fees-and-limits', 27 | ), 28 | 'referral' => 'https://bequant.io', 29 | ), 30 | )); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/binanceje.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'binanceje', 12 | 'name' => 'Binance Jersey', 13 | 'countries' => array( 'JE' ), // Jersey 14 | 'certified' => false, 15 | 'pro' => true, 16 | 'urls' => array( 17 | 'logo' => 'https://user-images.githubusercontent.com/1294454/54874009-d526eb00-4df3-11e9-928c-ce6a2b914cd1.jpg', 18 | 'api' => array( 19 | 'web' => 'https://www.binance.je', 20 | 'wapi' => 'https://api.binance.je/wapi/v3', 21 | 'public' => 'https://api.binance.je/api/v1', 22 | 'private' => 'https://api.binance.je/api/v3', 23 | 'v3' => 'https://api.binance.je/api/v3', 24 | 'v1' => 'https://api.binance.je/api/v1', 25 | ), 26 | 'www' => 'https://www.binance.je', 27 | 'referral' => 'https://www.binance.je/?ref=35047921', 28 | 'doc' => 'https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md', 29 | 'fees' => 'https://www.binance.je/fees.html', 30 | ), 31 | 'fees' => array( 32 | 'trading' => array( 33 | 'tierBased' => false, 34 | 'percentage' => true, 35 | 'taker' => 0.0005, 36 | 'maker' => 0.0005, 37 | ), 38 | // should be deleted, these are outdated and inaccurate 39 | 'funding' => array( 40 | 'tierBased' => false, 41 | 'percentage' => false, 42 | 'withdraw' => array( 43 | 'BTC' => 0.0005, 44 | 'ETH' => 0.01, 45 | ), 46 | 'deposit' => array(), 47 | ), 48 | ), 49 | 'options' => array( 50 | 'quoteOrderQty' => false, // whether market orders support amounts in quote currency 51 | ), 52 | )); 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/binanceus.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'binanceus', 12 | 'name' => 'Binance US', 13 | 'countries' => array( 'US' ), // US 14 | 'certified' => false, 15 | 'pro' => true, 16 | 'urls' => array( 17 | 'logo' => 'https://user-images.githubusercontent.com/1294454/65177307-217b7c80-da5f-11e9-876e-0b748ba0a358.jpg', 18 | 'api' => array( 19 | 'web' => 'https://www.binance.us', 20 | 'wapi' => 'https://api.binance.us/wapi/v3', 21 | 'public' => 'https://api.binance.us/api/v1', 22 | 'private' => 'https://api.binance.us/api/v3', 23 | 'v3' => 'https://api.binance.us/api/v3', 24 | 'v1' => 'https://api.binance.us/api/v1', 25 | ), 26 | 'www' => 'https://www.binance.us', 27 | 'referral' => 'https://www.binance.us/?ref=35005074', 28 | 'doc' => 'https://github.com/binance-us/binance-official-api-docs', 29 | 'fees' => 'https://www.binance.us/en/fee/schedule', 30 | ), 31 | 'fees' => array( 32 | 'trading' => array( 33 | 'tierBased' => true, 34 | 'percentage' => true, 35 | 'taker' => 0.001, // 0.1% trading fee, zero fees for all trading pairs before November 1 36 | 'maker' => 0.001, // 0.1% trading fee, zero fees for all trading pairs before November 1 37 | ), 38 | ), 39 | 'options' => array( 40 | 'quoteOrderQty' => false, 41 | ), 42 | )); 43 | } 44 | 45 | public function fetch_currencies($params = array ()) { 46 | return null; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/bitkk.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'bitkk', 12 | 'name' => 'bitkk', 13 | 'comment' => 'a Chinese ZB clone', 14 | 'urls' => array( 15 | 'api' => array( 16 | 'public' => 'http://api.bitkk.com/data', // no https for public API 17 | 'private' => 'https://trade.bitkk.com/api', 18 | ), 19 | 'www' => 'https://www.bitkk.com', 20 | 'doc' => 'https://www.bitkk.com/i/developer', 21 | 'fees' => 'https://www.bitkk.com/i/rate', 22 | ), 23 | 'commonCurrencies' => array( 24 | 'BCH' => 'BCHOLD', 25 | ), 26 | )); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/bitmax.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'bitmax', 12 | 'name' => 'BitMax', 13 | 'urls' => array( 14 | 'logo' => 'https://user-images.githubusercontent.com/1294454/66820319-19710880-ef49-11e9-8fbe-16be62a11992.jpg', 15 | 'api' => 'https://bitmax.io', 16 | 'test' => 'https://bitmax-test.io', 17 | 'www' => 'https://bitmax.io', 18 | 'doc' => array( 19 | 'https://bitmax-exchange.github.io/bitmax-pro-api/#bitmax-pro-api-documentation', 20 | ), 21 | 'fees' => 'https://bitmax.io/#/feeRate/tradeRate', 22 | 'referral' => 'https://bitmax.io/#/register?inviteCode=EL6BXBQM', 23 | ), 24 | )); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/btctradeim.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 12 | 'id' => 'btctradeim', 13 | 'name' => 'BtcTrade.im', 14 | 'countries' => array( 'HK' ), 15 | 'urls' => array( 16 | 'referral' => 'https://m.baobi.com/invite?inv=1765b2', 17 | 'logo' => 'https://user-images.githubusercontent.com/1294454/36770531-c2142444-1c5b-11e8-91e2-a4d90dc85fe8.jpg', 18 | 'api' => array( 19 | 'web' => 'https://api.btctrade.im/coin', 20 | 'rest' => 'https://api.btctrade.im/api/v1', 21 | ), 22 | 'www' => 'https://www.btctrade.im', 23 | 'doc' => 'https://www.btctrade.im/help.api.html', 24 | 'fees' => 'https://www.btctrade.im/spend.price.html', 25 | ), 26 | 'status' => array( 27 | 'status' => 'error', 28 | 'updated' => null, 29 | 'eta' => null, 30 | 'url' => null, 31 | ), 32 | 'fees' => array( 33 | 'trading' => array( 34 | 'maker' => 0.2 / 100, 35 | 'taker' => 0.2 / 100, 36 | ), 37 | 'funding' => array( 38 | 'withdraw' => array( 39 | 'BTC' => 0.001, 40 | ), 41 | ), 42 | ), 43 | // see the fix below 44 | // 'options' => array( 45 | // 'quoteIds' => array( 'btc', 'eth', 'usc' ), 46 | // ), 47 | )); 48 | // a fix for PHP array_merge not overwriting "lists" (integer-indexed arrays) 49 | // https://github.com/ccxt/ccxt/issues/3343 50 | $result['options']['quoteIds'] = array( 'btc', 'eth', 'usc' ); 51 | return $result; 52 | } 53 | 54 | public function request($path, $api = 'public', $method = 'GET', $params = array (), $headers = null, $body = null) { 55 | $response = $this->fetch2($path, $api, $method, $params, $headers, $body); 56 | if ($api === 'web') { 57 | return $response; 58 | } 59 | $data = $this->safe_value($response, 'data'); 60 | if ($data) { 61 | $code = $this->safe_string($response, 'code'); 62 | if ($code !== '0') { 63 | $message = $this->safe_string($response, 'msg', 'Error'); 64 | throw new ExchangeError($message); 65 | } 66 | return $data; 67 | } 68 | return $response; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src/chilebit.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'chilebit', 12 | 'name' => 'ChileBit', 13 | 'countries' => array( 'CL' ), 14 | 'has' => array( 15 | 'CORS' => false, 16 | ), 17 | 'urls' => array( 18 | 'logo' => 'https://user-images.githubusercontent.com/1294454/27991414-1298f0d8-647f-11e7-9c40-d56409266336.jpg', 19 | 'api' => array( 20 | 'public' => 'https://api.blinktrade.com/api', 21 | 'private' => 'https://api.blinktrade.com/tapi', 22 | ), 23 | 'www' => 'https://chilebit.net', 24 | 'doc' => 'https://blinktrade.com/docs', 25 | ), 26 | 'options' => array( 27 | 'brokerId' => '9', // https://blinktrade.com/docs/#brokers 28 | ), 29 | )); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/coinbaseprime.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'coinbaseprime', 12 | 'name' => 'Coinbase Prime', 13 | 'pro' => true, 14 | 'urls' => array( 15 | 'test' => array( 16 | 'public' => 'https://api-public.sandbox.prime.coinbase.com', 17 | 'private' => 'https://api-public.sandbox.prime.coinbase.com', 18 | ), 19 | 'logo' => 'https://user-images.githubusercontent.com/1294454/44539184-29f26e00-a70c-11e8-868f-e907fc236a7c.jpg', 20 | 'api' => array( 21 | 'public' => 'https://api.prime.coinbase.com', 22 | 'private' => 'https://api.prime.coinbase.com', 23 | ), 24 | 'www' => 'https://prime.coinbase.com', 25 | 'doc' => 'https://docs.prime.coinbase.com', 26 | 'fees' => 'https://support.prime.coinbase.com/customer/en/portal/articles/2945629-fees?b_id=17475', 27 | ), 28 | )); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/coolcoin.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'coolcoin', 12 | 'name' => 'CoolCoin', 13 | 'countries' => array( 'HK' ), 14 | 'urls' => array( 15 | 'logo' => 'https://user-images.githubusercontent.com/1294454/36770529-be7b1a04-1c5b-11e8-9600-d11f1996b539.jpg', 16 | 'api' => array( 17 | 'web' => 'https://www.coolcoin.com/coin', 18 | 'rest' => 'https://www.coolcoin.com/api/v1', 19 | ), 20 | 'www' => 'https://www.coolcoin.com', 21 | 'doc' => 'https://www.coolcoin.com/help.api.html', 22 | 'fees' => 'https://www.coolcoin.com/spend.price.html', 23 | 'referral' => 'https://www.coolcoin.com/user/register?invite_code=bhaega', 24 | ), 25 | 'fees' => array( 26 | 'trading' => array( 27 | 'maker' => 0.1 / 100, 28 | 'taker' => 0.1 / 100, 29 | ), 30 | 'funding' => array( 31 | 'withdraw' => array( 32 | 'BTC' => 0.001, 33 | 'BCH' => 0.002, 34 | 'ETH' => 0.01, 35 | 'ETC' => 0.01, 36 | 'LTC' => 0.001, 37 | 'TBC' => '1%', 38 | 'HSR' => '1%', 39 | 'NEO' => '1%', 40 | 'SDC' => '1%', 41 | 'EOS' => '1%', 42 | 'BTM' => '1%', 43 | 'XAS' => '1%', 44 | 'ACT' => '1%', 45 | 'SAK' => '1%', 46 | 'GCS' => '1%', 47 | 'HCC' => '1%', 48 | 'QTUM' => '1%', 49 | 'GEC' => '1%', 50 | 'TRX' => '1%', 51 | 'IFC' => '1%', 52 | 'PAY' => '1%', 53 | 'PGC' => '1%', 54 | 'KTC' => '1%', 55 | 'INT' => '1%', 56 | 'LSK' => '0.5%', 57 | 'SKT' => '1%', 58 | 'SSS' => '1%', 59 | 'BT1' => '1%', 60 | 'BT2' => '1%', 61 | ), 62 | ), 63 | ), 64 | 'options' => array( 65 | 'quoteIds' => ['btc', 'usdt'], 66 | ), 67 | )); 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /src/errors.php: -------------------------------------------------------------------------------- 1 | array ( 9 | 'ExchangeError' => array ( 10 | 'AuthenticationError' => array ( 11 | 'PermissionDenied' => array(), 12 | 'AccountSuspended' => array(), 13 | ), 14 | 'ArgumentsRequired' => array(), 15 | 'BadRequest' => array ( 16 | 'BadSymbol' => array(), 17 | ), 18 | 'BadResponse' => array ( 19 | 'NullResponse' => array(), 20 | ), 21 | 'InsufficientFunds' => array(), 22 | 'InvalidAddress' => array ( 23 | 'AddressPending' => array(), 24 | ), 25 | 'InvalidOrder' => array ( 26 | 'OrderNotFound' => array(), 27 | 'OrderNotCached' => array(), 28 | 'CancelPending' => array(), 29 | 'OrderImmediatelyFillable' => array(), 30 | 'OrderNotFillable' => array(), 31 | 'DuplicateOrderId' => array(), 32 | ), 33 | 'NotSupported' => array(), 34 | ), 35 | 'NetworkError' => array ( 36 | 'DDoSProtection' => array(), 37 | 'ExchangeNotAvailable' => array ( 38 | 'OnMaintenance' => array(), 39 | ), 40 | 'InvalidNonce' => array(), 41 | 'RequestTimeout' => array(), 42 | ), 43 | ), 44 | ); 45 | 46 | /* ------------------------------------------------------------------------ */ 47 | 48 | if (!function_exists('ccxt\error_factory')) { 49 | function error_factory($array, $parent) { 50 | foreach ($array as $error => $subclasses) { 51 | if (!class_exists('ccxt\\'.$error, false)) { 52 | eval("namespace ccxt; class $error extends $parent {};"); 53 | error_factory($subclasses, $error); 54 | } 55 | } 56 | } 57 | } 58 | 59 | if (!class_exists('ccxt\BaseError', false)) { 60 | class BaseError extends Exception {}; 61 | } 62 | 63 | error_factory($error_hierarchy['BaseError'], 'BaseError'); 64 | -------------------------------------------------------------------------------- /src/fcoinjp.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'fcoinjp', 12 | 'name' => 'FCoinJP', 13 | 'countries' => array( 'JP' ), 14 | 'hostname' => 'fcoinjp.com', 15 | 'urls' => array( 16 | 'logo' => 'https://user-images.githubusercontent.com/1294454/54219174-08b66b00-4500-11e9-862d-f522d0fe08c6.jpg', 17 | 'fees' => 'https://fcoinjp.zendesk.com/hc/en-us/articles/360018727371', 18 | 'www' => 'https://www.fcoinjp.com', 19 | 'referral' => null, 20 | ), 21 | )); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/hitbtc2.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 13 | 'id' => 'hitbtc2', 14 | )); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/huobiru.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'huobiru', 12 | 'name' => 'Huobi Russia', 13 | 'countries' => array( 'RU' ), 14 | 'hostname' => 'www.huobi.com.ru', 15 | 'pro' => true, 16 | 'urls' => array( 17 | 'logo' => 'https://user-images.githubusercontent.com/1294454/52978816-e8552e00-33e3-11e9-98ed-845acfece834.jpg', 18 | 'api' => array( 19 | 'market' => 'https://{hostname}/api', 20 | 'public' => 'https://{hostname}/api', 21 | 'private' => 'https://{hostname}/api', 22 | ), 23 | 'www' => 'https://www.huobi.com.ru/ru-ru', 24 | 'referral' => 'https://www.huobi.com.ru/invite?invite_code=esc74', 25 | 'doc' => 'https://github.com/cloudapidoc/API_Docs_en', 26 | 'fees' => 'https://www.huobi.com.ru/ru-ru/about/fee/', 27 | ), 28 | )); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/kucoin2.php: -------------------------------------------------------------------------------- 1 | 'kucoin2', 13 | )); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/okcoincny.php: -------------------------------------------------------------------------------- 1 | 'okcoincny', 12 | 'name' => 'OKCoin CNY', 13 | 'countries' => array( 'CN' ), 14 | 'has' => array( 15 | 'CORS' => false, 16 | ), 17 | 'urls' => array( 18 | 'logo' => 'https://user-images.githubusercontent.com/1294454/27766792-8be9157a-5ee5-11e7-926c-6d69b8d3378d.jpg', 19 | 'api' => array( 20 | 'web' => 'https://www.okcoin.cn', 21 | 'public' => 'https://www.okcoin.cn/api', 22 | 'private' => 'https://www.okcoin.cn/api', 23 | ), 24 | 'www' => 'https://www.okcoin.cn', 25 | 'doc' => 'https://www.okcoin.cn/rest_getStarted.html', 26 | 'referral' => 'https://www.okcoin.cn', 27 | ), 28 | 'markets' => array( 29 | 'BTC/CNY' => array( 'id' => 'btc_cny', 'symbol' => 'BTC/CNY', 'base' => 'BTC', 'quote' => 'CNY', 'type' => 'spot', 'spot' => true, 'future' => false ), 30 | 'LTC/CNY' => array( 'id' => 'ltc_cny', 'symbol' => 'LTC/CNY', 'base' => 'LTC', 'quote' => 'CNY', 'type' => 'spot', 'spot' => true, 'future' => false ), 31 | 'ETH/CNY' => array( 'id' => 'eth_cny', 'symbol' => 'ETH/CNY', 'base' => 'ETH', 'quote' => 'CNY', 'type' => 'spot', 'spot' => true, 'future' => false ), 32 | 'ETC/CNY' => array( 'id' => 'etc_cny', 'symbol' => 'ETC/CNY', 'base' => 'ETC', 'quote' => 'CNY', 'type' => 'spot', 'spot' => true, 'future' => false ), 33 | 'BCH/CNY' => array( 'id' => 'bcc_cny', 'symbol' => 'BCH/CNY', 'base' => 'BCH', 'quote' => 'CNY', 'type' => 'spot', 'spot' => true, 'future' => false ), 34 | ), 35 | )); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/okcoinusd.php: -------------------------------------------------------------------------------- 1 | 'okcoinusd', 14 | )); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/okex3.php: -------------------------------------------------------------------------------- 1 | 'okex3', 14 | )); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/surbitcoin.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'surbitcoin', 12 | 'name' => 'SurBitcoin', 13 | 'countries' => array( 'VE' ), 14 | 'has' => array( 15 | 'CORS' => false, 16 | ), 17 | 'urls' => array( 18 | 'logo' => 'https://user-images.githubusercontent.com/1294454/27991511-f0a50194-6481-11e7-99b5-8f02932424cc.jpg', 19 | 'api' => array( 20 | 'public' => 'https://api.blinktrade.com/api', 21 | 'private' => 'https://api.blinktrade.com/tapi', 22 | ), 23 | 'www' => 'https://surbitcoin.com', 24 | 'doc' => 'https://blinktrade.com/docs', 25 | ), 26 | 'options' => array( 27 | 'brokerId' => '1', // https://blinktrade.com/docs/#brokers 28 | ), 29 | )); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/vbtc.php: -------------------------------------------------------------------------------- 1 | deep_extend(parent::describe (), array( 11 | 'id' => 'vbtc', 12 | 'name' => 'VBTC', 13 | 'countries' => array( 'VN' ), 14 | 'has' => array( 15 | 'CORS' => false, 16 | ), 17 | 'urls' => array( 18 | 'logo' => 'https://user-images.githubusercontent.com/1294454/27991481-1f53d1d8-6481-11e7-884e-21d17e7939db.jpg', 19 | 'api' => array( 20 | 'public' => 'https://api.blinktrade.com/api', 21 | 'private' => 'https://api.blinktrade.com/tapi', 22 | ), 23 | 'www' => 'https://vbtc.exchange', 24 | 'doc' => 'https://blinktrade.com/docs', 25 | ), 26 | 'options' => array( 27 | 'brokerId' => '3', // https://blinktrade.com/docs/#brokers 28 | ), 29 | )); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /tests/bootstrap.php: -------------------------------------------------------------------------------- 1 | setMode('new_episodes')->setStorage('json'); 8 | VCR::turnOn(); 9 | -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@bitcoincoid.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "POST", 4 | "url": "https:\/\/vip.bitcoin.co.id\/tapi", 5 | "headers": { 6 | "Host": "vip.bitcoin.co.id", 7 | "Content-Type": "application\/x-www-form-urlencoded", 8 | "Key": "OEJGH4SX-5AKKDJUL-FXS0WTM8-NLLGG0FK-S52DHUJJ", 9 | "Sign": "50660f60368fc15c93eb802236b03a2b5cdb2b3ec6431d8d8655318af29223436dd66189eb39949b718d8e985dadeda52e82362c7924204019f46934f5d65ce6" 10 | }, 11 | "body": "method=getInfo&nonce=1513255135" 12 | }, 13 | "response": { 14 | "status": { 15 | "http_version": "1.1", 16 | "code": "200", 17 | "message": "OK" 18 | }, 19 | "headers": { 20 | "Date": "Thu, 14 Dec 2017 12:38:58 GMT", 21 | "Content-Type": "application\/json", 22 | "Transfer-Encoding": "chunked", 23 | "Connection": "keep-alive", 24 | "Set-Cookie": "__cfduid=d414ec7ae0313d25dd1cc085fc1fa24d41513255137; expires=Fri, 14-Dec-18 12:38:57 GMT; path=\/; domain=.bitcoin.co.id; HttpOnly, btcid=52b9d3dc4eeea64f19f978f1aa743411; expires=Fri, 15-Dec-2017 00:38:58 GMT; Max-Age=43200; path=\/; domain=vip.bitcoin.co.id; secure", 25 | "X-Powered-By": "Bitcoin Indonesia", 26 | "v": "2", 27 | "X-Served-By": "C1", 28 | "Strict-Transport-Security": "max-age=15552000; includeSubDomains", 29 | "X-Content-Type-Options": "nosniff", 30 | "Server": "cloudflare-nginx", 31 | "CF-RAY": "3cd139207fa67c54-BEG", 32 | "Content-Encoding": "gzip" 33 | }, 34 | "body": "{\"success\":0,\"error\":\"Nonce must be greater than 1511175621790786. You provided 1513255135.\",\"error_code\":\"invalid_nonce\"}" 35 | } 36 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@bitfinex2.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "POST", 4 | "url": "https:\/\/api.bitfinex.com\/v2\/auth\/r\/wallets", 5 | "headers": { 6 | "Host": "api.bitfinex.com", 7 | "bfx-nonce": "1513255139741", 8 | "bfx-apikey": "VM9UCkrumj7VRMeRwRdTDxNudfaVLcknvbSVCsbSNTH", 9 | "bfx-signature": "5221044372001650dd991e445dc249963dd459a9f624483b85f5cd32373165cba1347b340e066b029de7b2d800aa2568", 10 | "Content-Type": "application\/json" 11 | }, 12 | "body": "{}" 13 | }, 14 | "response": { 15 | "status": { 16 | "http_version": "1.1", 17 | "code": "500", 18 | "message": "Internal Server Error" 19 | }, 20 | "headers": { 21 | "Date": "Thu, 14 Dec 2017 12:39:00 GMT", 22 | "Content-Type": "application\/json; charset=utf-8", 23 | "Transfer-Encoding": "chunked", 24 | "Connection": "keep-alive", 25 | "Set-Cookie": "__cfduid=d0246b20f7b5bb9290fbc281a0d5ae22f1513255139; expires=Fri, 14-Dec-18 12:38:59 GMT; path=\/; domain=.bitfinex.com; HttpOnly", 26 | "Server": "cloudflare-nginx", 27 | "CF-RAY": "3cd1392fbf557c96-BEG" 28 | }, 29 | "body": "[\"error\",10114,\"nonce: small\"]" 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@btcx.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@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": "301", 13 | "message": "Moved Permanently" 14 | }, 15 | "headers": { 16 | "Date": "Thu, 14 Dec 2017 12:39:16 GMT", 17 | "Content-Type": "text\/html", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=d11319d53bb5727b8075839e3d00637d11513255156; expires=Fri, 14-Dec-18 12:39:16 GMT; path=\/; domain=.bter.com; HttpOnly", 21 | "Location": "http:\/\/bter.cn\/api2\/1\/marketinfo", 22 | "Server": "cloudflare-nginx", 23 | "CF-RAY": "3cd13995eb217c54-BEG" 24 | }, 25 | "body": "\n301 Moved Permanently<\/title><\/head>\n<body bgcolor=\"white\">\n<center><h1>301 Moved Permanently<\/h1><\/center>\n<hr><center>nginx\/1.10.0 (Ubuntu)<\/center>\n<\/body>\n<\/html>\n" 26 | } 27 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@chbtc.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@coinsecure.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.coinsecure.in\/v1\/user\/exchange\/bank\/summary", 5 | "headers": { 6 | "Host": "api.coinsecure.in", 7 | "Authorization": "gzrm0fP6BGMilMzmsoJFPMpWjDvCLThyrVanX0yu" 8 | } 9 | }, 10 | "response": { 11 | "status": { 12 | "http_version": "1.1", 13 | "code": "200", 14 | "message": "OK" 15 | }, 16 | "headers": { 17 | "Server": "nginx", 18 | "Date": "Thu, 14 Dec 2017 12:39:42 GMT", 19 | "Content-Type": "application\/json", 20 | "Content-Length": "254", 21 | "Connection": "keep-alive", 22 | "Vary": "Accept-Encoding", 23 | "Set-Cookie": "PLAY_SESSION=c1720139d591357a966e56e6d5dca258c2bf9a02-csrfToken=67e933d68b7f0c30c70fdb13f17858ba66e1f489-1513255182359-6918c07bbd4ffa6f9051aa6c; Path=\/; Domain=.coinsecure.in; HTTPOnly, visid_incap_1033907=StfnHPtNSAiPirE\/KlAnfg1xMloAAAAAQUIPAAAAAADT1j3UwhB9TN3DSp9sUvx0; expires=Fri, 14 Dec 2018 10:28:26 GMT; path=\/; Domain=.coinsecure.in, incap_ses_535_1033907=xAnHZGRMaVgAZtGAB7RsBw5xMloAAAAAJkh1dtoGqPqccRkmg1g\/ig==; path=\/; Domain=.coinsecure.in", 24 | "Request-Time": "71", 25 | "Content-Encoding": "gzip", 26 | "Access-Control-Max-Age": "0", 27 | "Access-Control-Allow-Origin": "*", 28 | "Access-Control-Allow-Headers": "Origin, Content-Type, Accept, Referer, User-Agent, Authorization, accept", 29 | "X-Iinfo": "8-43491543-43491565 NNNN CT(179 361 0) RT(1513255181551 104) q(0 0 5 0) r(8 8) U9", 30 | "X-CDN": "Incapsula" 31 | }, 32 | "body": "{\"success\":true,\"count\":12,\"message\":{\"pendingCoinBalance\":0,\"pendingFiatBalance\":0,\"availableCoinBalance\":0,\"availableFiatBalance\":0,\"totalCoinBalance\":0,\"totalFiatBalance\":0,\"coinFeePercentage\":0.6,\"fiatFeePercentage\":0.6,\"bankLinkStatus\":\"Incomplete\",\"hasTradeNetki\":false,\"tradeNetkiName\":\"none\",\"tradeNetkiAddress\":\"none\"},\"time\":1513255182428,\"method\":\"Exchange Bank Summary\",\"title\":\"\/v1\/user\/exchange\/bank\/summary\"}" 33 | } 34 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@flowbtc.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@huobi.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "POST", 4 | "url": "http:\/\/api.huobi.com\/apiv3", 5 | "headers": { 6 | "Host": "api.huobi.com", 7 | "Content-Type": "application\/x-www-form-urlencoded" 8 | }, 9 | "body": "access_key=5d8afad0-05eb1e1d-8399a6ee-7761d&created=1513255205&method=get_account_info&sign=fa376ef718e1466143af806cb1356451" 10 | }, 11 | "response": { 12 | "status": { 13 | "http_version": "1.1", 14 | "code": "200", 15 | "message": "OK" 16 | }, 17 | "headers": { 18 | "Date": "Thu, 14 Dec 2017 12:40:12 GMT", 19 | "Content-Type": "application\/json;charset=utf-8", 20 | "Transfer-Encoding": "chunked", 21 | "Connection": "keep-alive", 22 | "Vary": "Accept-Encoding", 23 | "Content-Encoding": "gzip", 24 | "Set-Cookie": "__jsluid=b66f63286e854c1ca67bfed1fbcd58eb; max-age=31536000; path=\/; HttpOnly", 25 | "X-Cache": "bypass" 26 | }, 27 | "body": "{\"code\":66,\"message\":\"\u60a8\u7684api key\u5df2\u88ab\u7981\u7528 \",\"msg\":\"\u60a8\u7684api key\u5df2\u88ab\u7981\u7528 \"}" 28 | } 29 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@jubi.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "POST", 4 | "url": "https:\/\/www.jubi.com\/api\/v1\/balance", 5 | "headers": { 6 | "Host": "www.jubi.com", 7 | "Content-Type": "application\/x-www-form-urlencoded" 8 | }, 9 | "body": "key=icbh6-v163t-6ravj-7ezbg-1yab2-pun37-qmj25&nonce=1513255216&signature=ccaa1c0a3c300a213208898f7a9675c19c249edb6f758d1326c0cc93485c842a" 10 | }, 11 | "response": { 12 | "status": { 13 | "http_version": "1.1", 14 | "code": "200", 15 | "message": "OK" 16 | }, 17 | "headers": { 18 | "Server": "nginx", 19 | "Date": "Thu, 14 Dec 2017 12:40:25 GMT", 20 | "Content-Type": "text\/html; charset=UTF-8", 21 | "Transfer-Encoding": "chunked", 22 | "Connection": "keep-alive", 23 | "Vary": "Accept-Encoding", 24 | "X-Powered-By": "PHP\/5.6.9", 25 | "Content-Encoding": "gzip", 26 | "X-Powered-By-Defense": " from pon-wdxm-bgp-qs-qssec-kd23" 27 | }, 28 | "body": "{\"result\":false,\"code\":\"405\"}" 29 | } 30 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchBalance@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 12:40:47 GMT", 20 | "Last-Modified": "Thu, 14 Dec 2017 12:40:47 GMT", 21 | "Server": "nginx", 22 | "Set-Cookie": "device=ZHQxxIHXyXgpN6DbbArksqYHRw==:1RRKlbJLLNHw4KdJSk\/Wk0CJ9dY=; Path=\/; Max-Age=31536000; HttpOnly; Secure", 23 | "Content-Length": "260", 24 | "Connection": "keep-alive" 25 | }, 26 | "body": "{\"tickers\":[{\"timestamp\":1513255247534,\"bid\":\"264128.00\",\"ask\":\"264129.00\",\"last_trade\":\"264129.00\",\"rolling_24_hour_volume\":\"1409.724599\",\"pair\":\"XBTZAR\"},{\"timestamp\":1513255247537,\"bid\":\"6126701.00\",\"ask\":\"6150000.00\",\"last_trade\":\"6150000.00\",\"rolling_24_hour_volume\":\"44.965105\",\"pair\":\"XBTNGN\"},{\"timestamp\":1513255247538,\"bid\":\"71652.00\",\"ask\":\"71682.00\",\"last_trade\":\"71652.00\",\"rolling_24_hour_volume\":\"323.043298\",\"pair\":\"XBTMYR\"},{\"timestamp\":1513255247539,\"bid\":\"236353000.00\",\"ask\":\"238400000.00\",\"last_trade\":\"236354000.00\",\"rolling_24_hour_volume\":\"9.26953\",\"pair\":\"XBTIDR\"}]}\n" 27 | } 28 | },{ 29 | "request": { 30 | "method": "GET", 31 | "url": "https:\/\/api.mybitx.com\/api\/1\/balance", 32 | "headers": { 33 | "Host": "api.mybitx.com", 34 | "Authorization": "Basic bnJwemc3cmtkOHBuZjpQczBEWHcwVHBUemRKMlllazhWNVR6RkRmVFd6eVU1dmZMZENpQlA2dnNJ" 35 | } 36 | }, 37 | "response": { 38 | "status": { 39 | "http_version": "1.1", 40 | "code": "200", 41 | "message": "OK" 42 | }, 43 | "headers": { 44 | "Content-Encoding": "gzip", 45 | "Content-Type": "application\/json", 46 | "Date": "Thu, 14 Dec 2017 12:40:47 GMT", 47 | "Server": "nginx", 48 | "Content-Length": "115", 49 | "Connection": "keep-alive" 50 | }, 51 | "body": "{\"balance\":[{\"account_id\":\"3707914449784523712\",\"asset\":\"XBT\",\"balance\":\"0.00\",\"reserved\":\"0.00\",\"unconfirmed\":\"0.00\"}]}\n" 52 | } 53 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@bitforex.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.bitforex.com\/api\/v1\/market\/trades?symbol=coin-usdt-btc", 5 | "headers": { 6 | "Host": "api.bitforex.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "2", 12 | "code": "200", 13 | "message": "" 14 | }, 15 | "headers": { 16 | "server": "nginx", 17 | "date": "Thu, 11 Jul 2019 09:28:54 GMT", 18 | "content-type": "text\/html;charset=UTF-8", 19 | "vary": "Accept-Encoding", 20 | "x-application-context": "api-bitforex-gateway:7979", 21 | "accept-charset": "big5, big5-hkscs, cesu-8, euc-jp, euc-kr, gb18030, gb2312, gbk, ibm-thai, ibm00858, ibm01140, ibm01141, ibm01142, ibm01143, ibm01144, ibm01145, ibm01146, ibm01147, ibm01148, ibm01149, ibm037, ibm1026, ibm1047, ibm273, ibm277, ibm278, ibm280, ibm284, ibm285, ibm290, ibm297, ibm420, ibm424, ibm437, ibm500, ibm775, ibm850, ibm852, ibm855, ibm857, ibm860, ibm861, ibm862, ibm863, ibm864, ibm865, ibm866, ibm868, ibm869, ibm870, ibm871, ibm918, iso-2022-cn, iso-2022-jp, iso-2022-jp-2, iso-2022-kr, iso-8859-1, iso-8859-13, iso-8859-15, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, jis_x0201, jis_x0212-1990, koi8-r, koi8-u, shift_jis, tis-620, us-ascii, utf-16, utf-16be, utf-16le, utf-32, utf-32be, utf-32le, utf-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-big5-hkscs-2001, x-big5-solaris, x-compound_text, x-euc-jp-linux, x-euc-tw, x-eucjp-open, x-ibm1006, x-ibm1025, x-ibm1046, x-ibm1097, x-ibm1098, x-ibm1112, x-ibm1122, x-ibm1123, x-ibm1124, x-ibm1166, x-ibm1364, x-ibm1381, x-ibm1383, x-ibm300, x-ibm33722, x-ibm737, x-ibm833, x-ibm834, x-ibm856, x-ibm874, x-ibm875, x-ibm921, x-ibm922, x-ibm930, x-ibm933, x-ibm935, x-ibm937, x-ibm939, x-ibm942, x-ibm942c, x-ibm943, x-ibm943c, x-ibm948, x-ibm949, x-ibm949c, x-ibm950, x-ibm964, x-ibm970, x-iscii91, x-iso-2022-cn-cns, x-iso-2022-cn-gb, x-iso-8859-11, x-jis0208, x-jisautodetect, x-johab, x-macarabic, x-maccentraleurope, x-maccroatian, x-maccyrillic, x-macdingbat, x-macgreek, x-machebrew, x-maciceland, x-macroman, x-macromania, x-macsymbol, x-macthai, x-macturkish, x-macukraine, x-ms932_0213, x-ms950-hkscs, x-ms950-hkscs-xp, x-mswin-936, x-pck, x-sjis_0213, x-utf-16le-bom, x-utf-32be-bom, x-utf-32le-bom, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp", 22 | "strict-transport-security": "max-age=63072000; includeSubdomains; preload, max-age=15768000", 23 | "set-cookie": "secure=true, HttpOnly=true", 24 | "content-encoding": "gzip" 25 | }, 26 | "body": "{\"data\":[{\"amount\":0.08,\"direction\":1,\"price\":11447.2,\"tid\":\"0\",\"time\":1562837334401}],\"success\":true,\"time\":1562837334836}" 27 | } 28 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@btcexchange.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@coincheck.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/coincheck.com\/api\/trades?pair=btc_jpy", 5 | "headers": { 6 | "Host": "coincheck.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "2", 12 | "code": "200", 13 | "message": "" 14 | }, 15 | "headers": { 16 | "content-type": "application\/json; charset=utf-8", 17 | "server": "nginx", 18 | "x-frame-options": "SAMEORIGIN", 19 | "x-xss-protection": "1; mode=block", 20 | "x-content-type-options": "nosniff", 21 | "x-request-id": "3d370051-598b-459f-b13e-7856764dd334", 22 | "x-runtime": "0.012416", 23 | "content-encoding": "gzip", 24 | "date": "Thu, 11 Jul 2019 09:29:15 GMT", 25 | "etag": "W\/\"64a38d4dc5dc2950bfb717535972ab30\"", 26 | "cache-control": "max-age=0, private, must-revalidate", 27 | "x-cache": "RefreshHit from cloudfront", 28 | "via": "1.1 c485b2484179f34bcbf59c066cc32b54.cloudfront.net (CloudFront)", 29 | "x-amz-cf-pop": "FRA56", 30 | "x-amz-cf-id": "HH5k3wAiAFCQzEwMc2yLarEJA_pS0JukJ9k5mbNomButKdbtqWKd0g==" 31 | }, 32 | "body": "{\"success\":true,\"pagination\":{\"limit\":10,\"order\":\"desc\",\"starting_after\":null,\"ending_before\":null},\"data\":[{\"id\":125438955,\"amount\":\"0.035326\",\"rate\":1244915,\"pair\":\"btc_jpy\",\"order_type\":\"buy\",\"created_at\":\"2019-07-11T09:28:54.000Z\"},{\"id\":125438954,\"amount\":\"0.00311191\",\"rate\":1243964,\"pair\":\"btc_jpy\",\"order_type\":\"sell\",\"created_at\":\"2019-07-11T09:28:48.000Z\"},{\"id\":125438953,\"amount\":\"0.01\",\"rate\":1243986,\"pair\":\"btc_jpy\",\"order_type\":\"sell\",\"created_at\":\"2019-07-11T09:28:48.000Z\"},{\"id\":125438952,\"amount\":\"0.01\",\"rate\":1243990,\"pair\":\"btc_jpy\",\"order_type\":\"sell\",\"created_at\":\"2019-07-11T09:28:48.000Z\"},{\"id\":125438951,\"amount\":\"0.01\",\"rate\":1243994,\"pair\":\"btc_jpy\",\"order_type\":\"sell\",\"created_at\":\"2019-07-11T09:28:48.000Z\"},{\"id\":125438950,\"amount\":\"0.005\",\"rate\":1244359,\"pair\":\"btc_jpy\",\"order_type\":\"sell\",\"created_at\":\"2019-07-11T09:28:48.000Z\"},{\"id\":125438949,\"amount\":\"0.19\",\"rate\":1244399,\"pair\":\"btc_jpy\",\"order_type\":\"sell\",\"created_at\":\"2019-07-11T09:28:47.000Z\"},{\"id\":125438948,\"amount\":\"0.01\",\"rate\":1245103,\"pair\":\"btc_jpy\",\"order_type\":\"sell\",\"created_at\":\"2019-07-11T09:28:47.000Z\"},{\"id\":125438947,\"amount\":\"0.005\",\"rate\":1243969,\"pair\":\"btc_jpy\",\"order_type\":\"sell\",\"created_at\":\"2019-07-11T09:28:47.000Z\"},{\"id\":125438946,\"amount\":\"0.005\",\"rate\":1244001,\"pair\":\"btc_jpy\",\"order_type\":\"sell\",\"created_at\":\"2019-07-11T09:28:47.000Z\"}]}" 33 | } 34 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@coinmate.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/coinmate.io\/api\/transactions?currencyPair=BTC_EUR&minutesIntoHistory=10", 5 | "headers": { 6 | "Host": "coinmate.io" 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:29:17 GMT", 17 | "content-type": "application\/json;charset=UTF-8", 18 | "set-cookie": "__cfduid=df1d9be06a1bd3aeffc7a30f4420300881562837357; expires=Fri, 10-Jul-20 09:29:17 GMT; path=\/; domain=.coinmate.io; HttpOnly", 19 | "x-frame-options": "SAMEORIGIN", 20 | "x-content-type-options": "nosniff", 21 | "x-xss-protection": "1; mode=block", 22 | "access-control-allow-origin": "*", 23 | "strict-transport-security": "max-age=15552000; includeSubDomains", 24 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 25 | "server": "cloudflare", 26 | "cf-ray": "4f49c08cde807ca6-BEG", 27 | "content-encoding": "gzip" 28 | }, 29 | "body": "{\"error\":false,\"errorMessage\":null,\"data\":[{\"timestamp\":1562836916155,\"transactionId\":\"4288006\",\"price\":10205.76,\"amount\":0.00292511,\"currencyPair\":\"BTC_EUR\",\"tradeType\":\"BUY\"},{\"timestamp\":1562836916141,\"transactionId\":\"4288005\",\"price\":10205.7,\"amount\":0.0008,\"currencyPair\":\"BTC_EUR\",\"tradeType\":\"BUY\"},{\"timestamp\":1562836911213,\"transactionId\":\"4288004\",\"price\":10182,\"amount\":0.00613742,\"currencyPair\":\"BTC_EUR\",\"tradeType\":\"SELL\"},{\"timestamp\":1562836911203,\"transactionId\":\"4288003\",\"price\":10182.01,\"amount\":0.00741,\"currencyPair\":\"BTC_EUR\",\"tradeType\":\"SELL\"},{\"timestamp\":1562836911190,\"transactionId\":\"4288002\",\"price\":10184,\"amount\":0.0021406,\"currencyPair\":\"BTC_EUR\",\"tradeType\":\"SELL\"},{\"timestamp\":1562836911181,\"transactionId\":\"4288001\",\"price\":10186,\"amount\":0.0021401,\"currencyPair\":\"BTC_EUR\",\"tradeType\":\"SELL\"},{\"timestamp\":1562836911167,\"transactionId\":\"4288000\",\"price\":10187.13,\"amount\":0.00646588,\"currencyPair\":\"BTC_EUR\",\"tradeType\":\"SELL\"}]}" 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@crypton.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.cryptonbtc.com\/markets\/BCH-BTC\/trades", 5 | "headers": { 6 | "Host": "api.cryptonbtc.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:29:22 GMT", 17 | "content-type": "application\/json", 18 | "set-cookie": "__cfduid=d005bb33ed49ee1fa3808060953db48321562837361; expires=Fri, 10-Jul-20 09:29:21 GMT; path=\/; domain=.cryptonbtc.com; HttpOnly; Secure", 19 | "cache-control": "public, no-cache, must-revalidate", 20 | "strict-transport-security": "max-age=15552000; includeSubDomains; preload", 21 | "x-content-type-options": "nosniff", 22 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 23 | "server": "cloudflare", 24 | "cf-ray": "4f49c0a48ede7c70-BEG", 25 | "content-encoding": "gzip" 26 | }, 27 | "body": "{\"result\":[{\"id\":4256389,\"price\":0.048085,\"side\":\"buy\",\"size\":10.63801053,\"time\":\"2019-05-14T16:16:20.831141+00:00\"},{\"id\":4256387,\"price\":0.047995,\"side\":\"buy\",\"size\":9.10773667,\"time\":\"2019-05-14T16:16:18.823142+00:00\"},{\"id\":4256386,\"price\":0.047995,\"side\":\"buy\",\"size\":23.28050418,\"time\":\"2019-05-14T16:16:18.509495+00:00\"},{\"id\":4256385,\"price\":0.047995,\"side\":\"buy\",\"size\":12.5302478,\"time\":\"2019-05-14T16:16:18.165541+00:00\"},{\"id\":4256384,\"price\":0.047995,\"side\":\"buy\",\"size\":1.7848757,\"time\":\"2019-05-14T16:16:17.598918+00:00\"},{\"id\":4256288,\"price\":0.046955,\"side\":\"sell\",\"size\":44.96087838,\"time\":\"2019-05-14T16:06:27.147189+00:00\"},{\"id\":4256287,\"price\":0.046955,\"side\":\"sell\",\"size\":8.51362929,\"time\":\"2019-05-14T16:06:26.593163+00:00\"},{\"id\":4256282,\"price\":0.04696,\"side\":\"sell\",\"size\":46.83152519,\"time\":\"2019-05-14T16:05:42.496135+00:00\"},{\"id\":4256278,\"price\":0.047217,\"side\":\"sell\",\"size\":57.22177206,\"time\":\"2019-05-14T16:05:17.937331+00:00\"},{\"id\":4256239,\"price\":0.047324,\"side\":\"sell\",\"size\":57.14128948,\"time\":\"2019-05-14T16:03:31.954536+00:00\"},{\"id\":4256238,\"price\":0.047405,\"side\":\"sell\",\"size\":25.97360642,\"time\":\"2019-05-14T16:03:29.902452+00:00\"},{\"id\":4256236,\"price\":0.04742,\"side\":\"sell\",\"size\":21.38409757,\"time\":\"2019-05-14T16:03:17.821918+00:00\"},{\"id\":4256231,\"price\":0.047586,\"side\":\"sell\",\"size\":10.54943493,\"time\":\"2019-05-14T16:03:04.656272+00:00\"},{\"id\":4256138,\"price\":0.047712,\"side\":\"buy\",\"size\":5.4402833,\"time\":\"2019-05-14T15:58:34.377581+00:00\"},{\"id\":4256133,\"price\":0.047651,\"side\":\"buy\",\"size\":20.21235524,\"time\":\"2019-05-14T15:57:13.151717+00:00\"},{\"id\":4256132,\"price\":0.047651,\"side\":\"buy\",\"size\":20.20962005,\"time\":\"2019-05-14T15:57:12.725372+00:00\"},{\"id\":4256130,\"price\":0.047645,\"side\":\"sell\",\"size\":15.90533898,\"time\":\"2019-05-14T15:56:49.304639+00:00\"},{\"id\":4256057,\"price\":0.048189,\"side\":\"sell\",\"size\":27.59512569,\"time\":\"2019-05-14T15:49:10.697894+00:00\"},{\"id\":4256056,\"price\":0.048189,\"side\":\"sell\",\"size\":12.68484188,\"time\":\"2019-05-14T15:49:10.271311+00:00\"},{\"id\":4254764,\"price\":0.048594,\"side\":\"buy\",\"size\":34.16491459,\"time\":\"2019-05-14T13:10:06.168416+00:00\"}],\"success\":true}\n" 28 | } 29 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@deribit.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.deribit.com\/api\/v1\/public\/getlasttrades?instrument=BTC-12JUL19-8000-C&limit=10000", 5 | "headers": { 6 | "Host": "www.deribit.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, 11 Jul 2019 09:29:22 GMT", 18 | "Content-Type": "application\/json", 19 | "Content-Length": "249", 20 | "Connection": "keep-alive", 21 | "content-encoding": "gzip", 22 | "Strict-Transport-Security": "max-age=15768000", 23 | "X-Frame-Options": "SAMEORIGIN" 24 | }, 25 | "body": "{\"usOut\":1562837362373561,\"usIn\":1562837362373498,\"usDiff\":63,\"testnet\":false,\"success\":true,\"result\":[{\"tradeId\":30344032,\"instrument\":\"BTC-12JUL19-8000-C\",\"tradeSeq\":1,\"timeStamp\":1562629254307,\"quantity\":1.0,\"amount\":1.0,\"price\":0.352,\"direction\":\"buy\",\"tickDirection\":1,\"indexPrice\":12329.92,\"iv\":136.3}],\"message\":\"\"}" 26 | } 27 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@fybse.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.fybse.se\/api\/SEK\/trades.json", 5 | "headers": { 6 | "Host": "www.fybse.se" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "404", 13 | "message": "Not Found" 14 | }, 15 | "headers": { 16 | "Content-Type": "text\/html", 17 | "Content-Length": "345", 18 | "Date": "Thu, 11 Jul 2019 09:29:35 GMT", 19 | "Server": "lighttpd\/1.4.45" 20 | }, 21 | "body": "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN\"\n \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd\">\n<html xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\" xml:lang=\"en\" lang=\"en\">\n <head>\n <title>404 - Not Found<\/title>\n <\/head>\n <body>\n <h1>404 - Not Found<\/h1>\n <\/body>\n<\/html>\n" 22 | } 23 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@gdax.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api-public.sandbox.gdax.com\/products\/BTC-USD\/candles?granularity=60", 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": "1107", 24 | "etag": "W\/\"453-5pxI7Q27bLtfmS4is2yKq3+z7eM\"", 25 | "date": "Fri, 15 Dec 2017 15:23:10 GMT", 26 | "connection": "close" 27 | }, 28 | "body": "[[1513351260,17533.47,17533.47,17533.47,17533.47,0.06],[1513351200,17626.66,17626.66,17626.66,17626.66,0.00565907],[1513351140,17565.87,17565.87,17565.87,17565.87,0.04],[1513351020,17538.76,17659.01,17538.76,17659.01,0.2],[1513350960,17555.73,17668.81,17555.73,17668.81,0.15000000000000002],[1513350900,17555.73,17555.73,17555.73,17555.73,0.05],[1513350840,17622.81,17622.81,17622.81,17622.81,0.07],[1513350720,17653.72,17653.72,17653.72,17653.72,0.01],[1513350600,17653.72,17653.72,17653.72,17653.72,0.02],[1513350060,17609.78,17609.78,17609.78,17609.78,0.05],[1513350000,17611.94,17611.94,17611.94,17611.94,0.05],[1513349940,17623.02,17623.02,17623.02,17623.02,0.05],[1513349880,17650.3,17650.3,17650.3,17650.3,0.05],[1513349760,17701.6,17701.6,17701.6,17701.6,0.05],[1513349700,17701.6,17735,17735,17701.6,0.15000000000000002],[1513349640,100,17666.2,17666.2,100,0.09999999999999999],[1513349580,17652.76,17652.76,17652.76,17652.76,0.05],[1513349520,17706.66,17706.66,17706.66,17706.66,0.05],[1513349400,17629.53,17663.66,17663.66,17629.53,0.1],[1513347780,100,17790.97,17790.97,100,0.12000000000000001]]" 29 | } 30 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@huobi.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "http:\/\/api.huobi.com\/staticmarket\/btc_kline_001_json.js", 5 | "headers": { 6 | "Host": "api.huobi.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "403", 13 | "message": "Forbidden" 14 | }, 15 | "headers": { 16 | "Date": "Fri, 15 Dec 2017 15:23:18 GMT", 17 | "Content-Type": "text\/html", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Vary": "Accept-Encoding", 21 | "Set-Cookie": "__jsluid=dcf839dff6e06543af4ab57386d6c845; max-age=31536000; path=\/; HttpOnly", 22 | "X-Cache": "bypass", 23 | "Content-Encoding": "gzip" 24 | }, 25 | "body": "<html>\r\n<head><title>403 Forbidden<\/title><\/head>\r\n<body bgcolor=\"white\">\r\n<center><h1>403 Forbidden<\/h1><\/center>\r\n<hr><center>nginx<\/center>\r\n<\/body>\r\n<\/html>\r\n" 26 | } 27 | },{ 28 | "request": { 29 | "method": "GET", 30 | "url": "https:\/\/cors-anywhere.herokuapp.com\/http:\/\/api.huobi.com\/staticmarket\/btc_kline_001_json.js", 31 | "headers": { 32 | "Host": "cors-anywhere.herokuapp.com", 33 | "Origin": "*" 34 | } 35 | }, 36 | "response": { 37 | "status": { 38 | "http_version": "1.1", 39 | "code": "403", 40 | "message": "Forbidden" 41 | }, 42 | "headers": { 43 | "Server": "Cowboy", 44 | "Connection": "keep-alive", 45 | "X-Request-Url": "http:\/\/api.huobi.com\/staticmarket\/btc_kline_001_json.js", 46 | "Date": "Fri, 15 Dec 2017 15:26:57 GMT", 47 | "Content-Type": "text\/html", 48 | "Transfer-Encoding": "chunked", 49 | "Vary": "Accept-Encoding", 50 | "X-Cache": "bypass", 51 | "Content-Encoding": "gzip", 52 | "X-Final-Url": "http:\/\/api.huobi.com\/staticmarket\/btc_kline_001_json.js", 53 | "Access-Control-Allow-Origin": "*", 54 | "Access-Control-Expose-Headers": "date,content-type,transfer-encoding,connection,vary,x-cache,content-encoding,x-final-url,access-control-allow-origin", 55 | "Via": "1.1 vegur" 56 | }, 57 | "body": "<html>\r\n<head><title>403 Forbidden<\/title><\/head>\r\n<body bgcolor=\"white\">\r\n<center><h1>403 Forbidden<\/h1><\/center>\r\n<hr><center>nginx<\/center>\r\n<\/body>\r\n<\/html>\r\n" 58 | } 59 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@huobicny.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/be.huobi.com\/market\/history\/kline?symbol=bcccny&period=1min&size=2000", 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": "Fri, 15 Dec 2017 15:23:27 GMT", 17 | "Content-Length": "76", 18 | "Connection": "keep-alive", 19 | "Set-Cookie": "__jsluid=e2d8292233d83fb81d98049365916895; max-age=31536000; path=\/; HttpOnly", 20 | "X-Cache": "bypass" 21 | }, 22 | "body": "{\"status\":\"ok\",\"ch\":\"market.bcccny.kline.1min\",\"ts\":1513351407112,\"data\":[]}" 23 | } 24 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@kkex.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/kkex.com\/api\/v1\/kline?symbol=ENUBTC&type=1min", 5 | "headers": { 6 | "Host": "kkex.com", 7 | "Content-Type": "application\/json" 8 | } 9 | }, 10 | "response": { 11 | "status": { 12 | "http_version": "1.1", 13 | "code": "200", 14 | "message": "OK" 15 | }, 16 | "headers": { 17 | "Server": "nginx", 18 | "Date": "Thu, 11 Jul 2019 09:29:46 GMT", 19 | "Content-Type": "application\/json", 20 | "Content-Length": "2", 21 | "Connection": "keep-alive", 22 | "Vary": "Accept-Language, Cookie", 23 | "X-Frame-Options": "SAMEORIGIN", 24 | "Content-Language": "en", 25 | "Set-Cookie": "sessionid=0u80h0yju27xpr7r1nnpquf4qlbkrs1p; httponly; Path=\/, django_language=en; Path=\/", 26 | "Strict-Transport-Security": "max-age=63072000; includeSubdomains; preload, max-age=63072000; includeSubdomains; preload" 27 | }, 28 | "body": "[]" 29 | } 30 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@lakebtc.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.lakebtc.com\/api_v2\/bctrades?symbol=btcusd", 5 | "headers": { 6 | "Host": "api.lakebtc.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, 11 Jul 2019 09:29:50 GMT", 18 | "Content-Type": "application\/json", 19 | "Content-Length": "1031", 20 | "Connection": "keep-alive", 21 | "Status": "200 OK", 22 | "Access-Control-Allow-Origin": "*", 23 | "X-Request-Id": "0b38e2b8-3bf9-4aee-b52e-1c0fbfeda43b", 24 | "ETag": "\"b047c487fb86318b4760814b4d9a3d0f\"", 25 | "X-Runtime": "21.565855", 26 | "Strict-Transport-Security": "max-age=31536000", 27 | "Cache-Control": "public" 28 | }, 29 | "body": "[{\"date\":1562836728,\"price\":\"11806.98\",\"amount\":\"2.0122\",\"tid\":1562836728},{\"date\":1562836808,\"price\":\"11805.27\",\"amount\":\"4.1605\",\"tid\":1562836808},{\"date\":1562836820,\"price\":\"11806.46\",\"amount\":\"0.011765\",\"tid\":1562836820},{\"date\":1562836823,\"price\":\"11804.86\",\"amount\":\"0.015815\",\"tid\":1562836823},{\"date\":1562836826,\"price\":\"11803.94\",\"amount\":\"0.019485\",\"tid\":1562836826},{\"date\":1562836827,\"price\":\"11802.12\",\"amount\":\"0.007311\",\"tid\":1562836827},{\"date\":1562836935,\"price\":\"11794.62\",\"amount\":\"0.185\",\"tid\":1562836935},{\"date\":1562836952,\"price\":\"11794.99\",\"amount\":\"0.71\",\"tid\":1562836952},{\"date\":1562837061,\"price\":\"11790.44\",\"amount\":\"1.11\",\"tid\":1562837061},{\"date\":1562837186,\"price\":\"11790.98\",\"amount\":\"0.2\",\"tid\":1562837186},{\"date\":1562837265,\"price\":\"11789.14\",\"amount\":\"0.475\",\"tid\":1562837265},{\"date\":1562837277,\"price\":\"11798.54\",\"amount\":\"0.5\",\"tid\":1562837277},{\"date\":1562837297,\"price\":\"11802.82\",\"amount\":\"0.71\",\"tid\":1562837297},{\"date\":1562837313,\"price\":\"11803.37\",\"amount\":\"1.2614\",\"tid\":1562837313}]" 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@lbank.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@liquid.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.liquid.com\/executions?product_id=35", 5 | "headers": { 6 | "Host": "api.liquid.com", 7 | "X-Quoine-API-Version": "2", 8 | "Content-Type": "application\/json" 9 | } 10 | }, 11 | "response": { 12 | "status": { 13 | "http_version": "2", 14 | "code": "200", 15 | "message": "" 16 | }, 17 | "headers": { 18 | "date": "Thu, 11 Jul 2019 09:29:52 GMT", 19 | "content-type": "application\/json; charset=utf-8", 20 | "content-length": "64", 21 | "set-cookie": "__cfduid=d5b0d46df7332665fe4dc78c7724c92ae1562837390; expires=Fri, 10-Jul-20 09:29:50 GMT; path=\/; domain=.liquid.com; HttpOnly; Secure, _vax_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWE3M2I4M2NiMTdkNmJmZmUzZGVkYjUyNWQ2MWE1MTU0BjsAVEkiCWxhbmcGOwBGOgdlbg%3D%3D--938adffef7fbbd74773b6e36701caa544881e1dd; path=\/; secure; HttpOnly", 22 | "content-encoding": "gzip", 23 | "cache-control": "max-age=0, private, must-revalidate", 24 | "cf-ray": "4f49c15be8d57c82-BEG", 25 | "etag": "\"d863824adcd2bd156b577d7c02990c56\"", 26 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 27 | "status": "200 OK", 28 | "strict-transport-security": "max-age=631152000; includeSubdomains", 29 | "vary": "Accept-Encoding", 30 | "via": "1.1 spaces-router (c7665a42a791)", 31 | "x-content-type-options": "nosniff", 32 | "x-frame-options": "SAMEORIGIN", 33 | "x-request-id": "ad1db4fa-9731-e103-5e9f-b6c8eb91fe01", 34 | "x-ua-compatible": "IE=Edge,chrome=1", 35 | "x-xss-protection": "1; mode=block", 36 | "server": "cloudflare" 37 | }, 38 | "body": "{\"current_page\":1,\"total_pages\":1,\"models\":[]}" 39 | } 40 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@mercado.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@negociecoins.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/broker.negociecoins.com.br\/api\/v3\/b2xbrl\/trades\/0", 5 | "headers": { 6 | "Host": "broker.negociecoins.com.br" 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:30:10 GMT", 17 | "content-type": "application\/json; charset=utf-8", 18 | "content-length": "2", 19 | "set-cookie": "__cfduid=df321e44e7098de461b3f6ae12d01fb9b1562837409; expires=Fri, 10-Jul-20 09:30:09 GMT; path=\/; domain=.negociecoins.com.br; HttpOnly, ASP.NET_SessionId=zqqbe3zfwlcgcqwmbwco233z; domain=broker.negociecoins.com.br; path=\/; secure; HttpOnly", 20 | "cache-control": "public, max-age=10", 21 | "expires": "Thu, 11 Jul 2019 09:30:20 GMT", 22 | "last-modified": "Thu, 11 Jul 2019 09:30:10 GMT", 23 | "vary": "*", 24 | "x-powered-by": "ASP.NET", 25 | "access-control-allow-origin": "*", 26 | "access-control-allow-headers": "Content-Type", 27 | "access-control-allow-methods": "GET, POST, PUT, DELETE, OPTIONS", 28 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 29 | "server": "cloudflare", 30 | "cf-ray": "4f49c1d28a367c40-BEG" 31 | }, 32 | "body": "[]" 33 | } 34 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOHLCV@tidebit.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.tidebit.com\/api\/v2\/k.json?market=btchkd&period=1&limit=30×tamp=1800000", 5 | "headers": { 6 | "Host": "www.tidebit.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:30:21 GMT", 17 | "content-type": "application\/json", 18 | "set-cookie": "__cfduid=d33d0141016937fd11ec3daacfaaa9e041562837419; expires=Fri, 10-Jul-20 09:30:19 GMT; path=\/; domain=.tidebit.com; HttpOnly; Secure", 19 | "access-control-allow-origin": "*", 20 | "cache-control": "max-age=0, private, must-revalidate", 21 | "cf-railgun": "direct (starting new WAN connection)", 22 | "etag": "W\/\"77f730f7d78526b7a13a72a7cd3785e0\"", 23 | "status": "200 OK", 24 | "strict-transport-security": "max-age=31536000, max-age=63072000; includeSubDomains", 25 | "x-content-type-options": "nosniff", 26 | "x-frame-options": "SAMEORIGIN", 27 | "x-powered-by": "Phusion Passenger 6.0.2", 28 | "x-request-id": "05486cc6-246f-4e86-b009-e145a2db57f2", 29 | "x-runtime": "0.004438", 30 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 31 | "server": "cloudflare", 32 | "cf-ray": "4f49c20fadd97c76-BEG", 33 | "content-encoding": "gzip" 34 | }, 35 | "body": "[[1498559100,20530.0,20530.0,20530.0,20530.0,4.0],[1498559160,20530.0,20530.0,20530.0,20530.0,0],[1498559220,20530.0,20530.0,20530.0,20530.0,0],[1498559280,20530.0,20530.0,20530.0,20530.0,0],[1498559340,20530.0,20530.0,20530.0,20530.0,0],[1498559400,20530.0,20530.0,20530.0,20530.0,0.003],[1498559460,20530.0,20530.0,20530.0,20530.0,0],[1498559520,20530.0,20530.0,20530.0,20530.0,0],[1498559580,20530.0,20530.0,20530.0,20530.0,0],[1498559640,20530.0,20530.0,20530.0,20530.0,0],[1498559700,20530.0,20530.0,20530.0,20530.0,0],[1498559760,20530.0,20530.0,20530.0,20530.0,0],[1498559820,20530.0,20530.0,20530.0,20530.0,0],[1498559880,20530.0,20530.0,20530.0,20530.0,0],[1498559940,20530.0,20530.0,20530.0,20530.0,0],[1498560000,20530.0,20530.0,20530.0,20530.0,0],[1498560060,20530.0,20530.0,20530.0,20530.0,0],[1498560120,20530.0,20530.0,20530.0,20530.0,0],[1498560180,20530.0,20530.0,20530.0,20530.0,0],[1498560240,20530.0,20530.0,20530.0,20530.0,0],[1498560300,20530.0,20530.0,20530.0,20530.0,0],[1498560360,20530.0,20530.0,20530.0,20530.0,0],[1498560420,20530.0,20530.0,20530.0,20530.0,0],[1498560480,20530.0,20530.0,20530.0,20530.0,0],[1498560540,20530.0,20530.0,20530.0,20530.0,0],[1498560600,20530.0,20530.0,20530.0,20530.0,0],[1498560660,20530.0,20530.0,20530.0,20530.0,0],[1498560720,20530.0,20530.0,20530.0,20530.0,0],[1498560780,20530.0,20530.0,20530.0,20530.0,0],[1498560840,20530.0,20530.0,20530.0,20530.0,0]]" 36 | } 37 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@_1broker.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/1broker.com\/api\/v2\/market\/quotes.php?token=A0f79063a5e91e6d62fbcbbbbdd63258&symbols=AU200", 5 | "headers": { 6 | "Host": "1broker.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:33:32 GMT", 17 | "Content-Type": "application\/json", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=db8e37e4afe66fbbd0d5487dda18e26261513211612; expires=Fri, 14-Dec-18 00:33:32 GMT; path=\/; domain=.1broker.com; HttpOnly", 21 | "Access-Control-Allow-Origin": "*", 22 | "Cache-Control": "no-cache, must-revalidate", 23 | "Strict-Transport-Security": "max-age=2592000", 24 | "X-Frame-Options": "SAMEORIGIN", 25 | "Server": "cloudflare-nginx", 26 | "CF-RAY": "3ccd128459997ca8-BEG", 27 | "Content-Encoding": "gzip" 28 | }, 29 | "body": "{\"server_time\":\"2017-12-14T00:33:32.959Z\",\"error\":false,\"warning\":false,\"response\":[{\"symbol\":\"AU200\",\"bid\":\"6036.34\",\"ask\":\"6037.34\",\"updated\":\"2017-12-14T00:33:21Z\"}]}" 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@bitforex.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.bitforex.com\/api\/v1\/market\/depth?symbol=coin-usdt-btc", 5 | "headers": { 6 | "Host": "api.bitforex.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "2", 12 | "code": "200", 13 | "message": "" 14 | }, 15 | "headers": { 16 | "server": "nginx", 17 | "date": "Thu, 11 Jul 2019 09:28:07 GMT", 18 | "content-type": "text\/html;charset=UTF-8", 19 | "vary": "Accept-Encoding", 20 | "x-application-context": "api-bitforex-gateway:7979", 21 | "accept-charset": "big5, big5-hkscs, cesu-8, euc-jp, euc-kr, gb18030, gb2312, gbk, ibm-thai, ibm00858, ibm01140, ibm01141, ibm01142, ibm01143, ibm01144, ibm01145, ibm01146, ibm01147, ibm01148, ibm01149, ibm037, ibm1026, ibm1047, ibm273, ibm277, ibm278, ibm280, ibm284, ibm285, ibm290, ibm297, ibm420, ibm424, ibm437, ibm500, ibm775, ibm850, ibm852, ibm855, ibm857, ibm860, ibm861, ibm862, ibm863, ibm864, ibm865, ibm866, ibm868, ibm869, ibm870, ibm871, ibm918, iso-2022-cn, iso-2022-jp, iso-2022-jp-2, iso-2022-kr, iso-8859-1, iso-8859-13, iso-8859-15, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, jis_x0201, jis_x0212-1990, koi8-r, koi8-u, shift_jis, tis-620, us-ascii, utf-16, utf-16be, utf-16le, utf-32, utf-32be, utf-32le, utf-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-big5-hkscs-2001, x-big5-solaris, x-compound_text, x-euc-jp-linux, x-euc-tw, x-eucjp-open, x-ibm1006, x-ibm1025, x-ibm1046, x-ibm1097, x-ibm1098, x-ibm1112, x-ibm1122, x-ibm1123, x-ibm1124, x-ibm1166, x-ibm1364, x-ibm1381, x-ibm1383, x-ibm300, x-ibm33722, x-ibm737, x-ibm833, x-ibm834, x-ibm856, x-ibm874, x-ibm875, x-ibm921, x-ibm922, x-ibm930, x-ibm933, x-ibm935, x-ibm937, x-ibm939, x-ibm942, x-ibm942c, x-ibm943, x-ibm943c, x-ibm948, x-ibm949, x-ibm949c, x-ibm950, x-ibm964, x-ibm970, x-iscii91, x-iso-2022-cn-cns, x-iso-2022-cn-gb, x-iso-8859-11, x-jis0208, x-jisautodetect, x-johab, x-macarabic, x-maccentraleurope, x-maccroatian, x-maccyrillic, x-macdingbat, x-macgreek, x-machebrew, x-maciceland, x-macroman, x-macromania, x-macsymbol, x-macthai, x-macturkish, x-macukraine, x-ms932_0213, x-ms950-hkscs, x-ms950-hkscs-xp, x-mswin-936, x-pck, x-sjis_0213, x-utf-16le-bom, x-utf-32be-bom, x-utf-32le-bom, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp", 22 | "strict-transport-security": "max-age=63072000; includeSubdomains; preload, max-age=15768000", 23 | "set-cookie": "secure=true, HttpOnly=true", 24 | "content-encoding": "gzip" 25 | }, 26 | "body": "{\"data\":{\"asks\":[{\"amount\":0.02,\"price\":11461.38},{\"amount\":0.391,\"price\":11461.16},{\"amount\":1.26,\"price\":11458.38},{\"amount\":0.4347,\"price\":11455.6},{\"amount\":0.2719,\"price\":11452.82}],\"bids\":[{\"amount\":1.2772,\"price\":11449.56},{\"amount\":0.002,\"price\":11449.3},{\"amount\":0.3073,\"price\":11449.16},{\"amount\":1.9545,\"price\":11446.78},{\"amount\":0.3702,\"price\":11446.38}]},\"success\":true,\"time\":1562837287435}" 27 | } 28 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@bitkk.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "http:\/\/api.bitkk.com\/data\/v1\/depth?market=zb_qc", 5 | "headers": { 6 | "Host": "api.bitkk.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, 11 Jul 2019 09:28:09 GMT", 18 | "Content-Type": "application\/json;charset=utf-8", 19 | "Transfer-Encoding": "chunked", 20 | "Connection": "keep-alive", 21 | "Vary": "Accept-Encoding", 22 | "CNDServer": "cache_server_1", 23 | "Content-Encoding": "gzip" 24 | }, 25 | "body": "{\"asks\":[[2.4148,100.36],[2.4144,850.62],[2.411,50.00],[2.4055,150.00],[2.402,6.02],[2.4,31794.50],[2.3998,218.26],[2.3995,1045.22],[2.3994,4.32],[2.3989,893.03],[2.395,10380.00],[2.3948,92.12],[2.391,100.00],[2.39,7095.00],[2.3898,66.54],[2.3871,50.43],[2.3868,30694.80],[2.385,1641.90],[2.3829,315.67],[2.38,3.22],[2.3768,1.87],[2.3727,100.00],[2.37,6.11],[2.3695,29565.00],[2.369,4.39],[2.3689,69.50],[2.3679,572.40],[2.3641,5862.60],[2.36,99.90],[2.356,4710.71],[2.3558,1.43],[2.3556,991.70],[2.3554,4.52],[2.352,694.18],[2.35,76.84],[2.3476,50.16],[2.3469,717.21],[2.3436,849.28],[2.343,4.96],[2.34,100.00],[2.3399,50.00],[2.339,46.65],[2.3389,822.05],[2.3378,752.00],[2.3367,4448.04],[2.3366,2.35],[2.3341,230.00],[2.334,454.05],[2.3339,687.39],[2.33,7313.34]],\"bids\":[[2.3253,3156.54],[2.3252,17479.27],[2.3251,4086.48],[2.325,14049.93],[2.3239,46799.62],[2.323,50.00],[2.3223,912.99],[2.3222,36.16],[2.322,1534.23],[2.3201,80.00],[2.32,153.95],[2.3197,0.42],[2.3152,208.56],[2.315,1368.46],[2.3137,75.00],[2.312,1000.00],[2.3107,5.85],[2.3101,100.00],[2.31,2377.49],[2.3093,50.01],[2.3085,225.00],[2.3052,110.13],[2.3051,1094.92],[2.305,4318.54],[2.3044,100.00],[2.301,100.00],[2.3002,208.49],[2.3001,5000.00],[2.3,35194.72],[2.2994,898.00],[2.2987,6.91],[2.2984,1.00],[2.2981,89.45],[2.298,100.10],[2.2978,0.10],[2.2974,0.10],[2.2972,76.73],[2.297,3.00],[2.2968,200.00],[2.2957,23.58],[2.2953,0.10],[2.295,873.25],[2.2948,82.90],[2.2939,43.15],[2.2934,1.20],[2.2933,0.10],[2.2932,436.21],[2.292,1.00],[2.2918,107.23],[2.2907,1.00]],\"timestamp\":1562837288}" 26 | } 27 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@bitlish.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/bitlish.com\/api\/v1\/trades_depth?pair_id=btceur", 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:33:43 GMT", 18 | "Content-Type": "application\/json;charset=UTF-8", 19 | "Content-Length": "809", 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": "{\"ask\":[{\"price\":\"14188.29\",\"volume\":\"0.9605\"},{\"price\":\"14188.3\",\"volume\":\"233.76\"},{\"price\":\"19999\",\"volume\":\"0.2177\"},{\"price\":\"50000\",\"volume\":\"0.2\"}],\"ask_end\":\"1\",\"bid\":[{\"price\":\"13595.81\",\"volume\":\"0.056\"},{\"price\":\"13595.8\",\"volume\":\"6.21\"},{\"price\":\"13578.8\",\"volume\":\"30.1\"},{\"price\":\"13569.8\",\"volume\":\"1.61\"},{\"price\":\"13562.8\",\"volume\":\"1.26\"},{\"price\":\"13559.8\",\"volume\":\"2.53\"},{\"price\":\"13555.8\",\"volume\":\"3.01\"},{\"price\":\"13552.8\",\"volume\":\"6\"},{\"price\":\"13550.8\",\"volume\":\"2.36\"},{\"price\":\"13549.8\",\"volume\":\"5\"},{\"price\":\"13544.9\",\"volume\":\"5.15\"},{\"price\":\"13540.9\",\"volume\":\"14.67\"},{\"price\":\"12500\",\"volume\":\"0.0049\"},{\"price\":\"11501.3\",\"volume\":\"0.6955\"},{\"price\":\"10000\",\"volume\":\"0.0033\"},{\"price\":\"9101\",\"volume\":\"0.433\"}],\"bid_end\":\"1\",\"last\":\"1513211622511914\",\"pair_id\":\"btceur\"}" 28 | } 29 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@bitmex.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.bitmex.com\/api\/v1\/orderBook\/L2?symbol=.XMRXBT", 5 | "headers": { 6 | "Host": "www.bitmex.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Content-Security-Policy": "script-src 'self'; frame-src 'self'; object-src 'self'; report-uri \/cspReport;", 17 | "X-Frame-Options": "SAMEORIGIN", 18 | "X-RateLimit-Limit": "150", 19 | "X-RateLimit-Remaining": "149", 20 | "X-RateLimit-Reset": "1513211625", 21 | "X-Powered-By": "Profit", 22 | "Content-Type": "application\/json; charset=utf-8", 23 | "ETag": "W\/\"2-l9Fw4VUO7kr8CvBlt4zaMCqXZ0w\"", 24 | "Date": "Thu, 14 Dec 2017 00:33:44 GMT", 25 | "Strict-Transport-Security": "max-age=31536000; includeSubDomains", 26 | "Transfer-Encoding": "chunked", 27 | "Content-Encoding": "gzip" 28 | }, 29 | "body": "[]" 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@btcchina.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/data.btcchina.com\/data\/orderbook?market=btccny", 5 | "headers": { 6 | "Host": "data.btcchina.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", 17 | "Access-Control-Allow-Origin": "*", 18 | "Cache-Control": "no-store, no-cache, must-revalidate, post-check=0, pre-check=0", 19 | "Content-Encoding": "gzip", 20 | "Content-Type": "application\/json", 21 | "Date": "Thu, 14 Dec 2017 00:33:54 GMT", 22 | "Expires": "Thu, 19 Nov 1981 08:52:00 GMT", 23 | "Front-End-Https": "on", 24 | "Pragma": "no-cache", 25 | "Server": "nginx", 26 | "Set-Cookie": "PHPSESSID=hc9r0fovo8ua27bq20grrc69e5; path=\/; domain=.btcc.com, btcchina_lang=en; expires=Fri, 14-Dec-2018 00:33:54 GMT; path=\/; domain=.btcc.com", 27 | "Vary": "Accept-Encoding, Accept-Encoding", 28 | "X-Cache-CFC": "- 1513211634.119", 29 | "X-Powered-By": "PHP\/5.4.45", 30 | "Content-Length": "39", 31 | "Connection": "keep-alive" 32 | }, 33 | "body": "{\"date\":1508143041}" 34 | } 35 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@chbtc.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "http:\/\/api.chbtc.com\/data\/v1\/depth?currency=btc_cny", 5 | "headers": { 6 | "Host": "api.chbtc.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Server": "Tengine\/2.1.2", 17 | "Date": "Thu, 14 Dec 2017 00:34:00 GMT", 18 | "Content-Type": "text\/javascript;charset=utf-8", 19 | "Content-Length": "44", 20 | "Connection": "keep-alive", 21 | "CNDServer": "cache_server_1" 22 | }, 23 | "body": "{\"result\":false,\"message\":\"\u670d\u52a1\u7aef\u5fd9\u788c\"}" 24 | } 25 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@cobinhood.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.cobinhood.com\/v1\/market\/orderbooks\/BCHSV-USDT", 5 | "headers": { 6 | "Host": "api.cobinhood.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:28:14 GMT", 17 | "content-type": "application\/json; charset=utf-8", 18 | "set-cookie": "__cfduid=de1054214e5350ea9490f1ec9a1843e111562837294; expires=Fri, 10-Jul-20 09:28:14 GMT; path=\/; domain=.cobinhood.com; HttpOnly; Secure", 19 | "access-control-allow-origin": "*", 20 | "via": "1.1 google", 21 | "alt-svc": "clear", 22 | "strict-transport-security": "max-age=15552000; includeSubDomains; preload", 23 | "x-content-type-options": "nosniff", 24 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 25 | "server": "cloudflare", 26 | "cf-ray": "4f49bf03db4b7c4c-BEG", 27 | "content-encoding": "gzip" 28 | }, 29 | "body": "{\"success\":true,\"result\":{\"orderbook\":{\"sequence\":0,\"bids\":[[\"111.31\",\"1\",\"1\"],[\"111.3\",\"1\",\"0.12366955\"],[\"66.12\",\"1\",\"1.061\"],[\"66.11\",\"1\",\"1.34734709\"],[\"65\",\"1\",\"0.35\"],[\"63\",\"1\",\"2\"],[\"52\",\"1\",\"2.54557693\"],[\"24\",\"1\",\"3\"],[\"16.09\",\"1\",\"0.47855764\"],[\"16.08\",\"1\",\"3\"],[\"16\",\"1\",\"3.07194187\"],[\"15.02\",\"1\",\"0.75063561\"],[\"12\",\"2\",\"3.5\"],[\"9.27\",\"1\",\"3\"],[\"9.26\",\"1\",\"0.74126374\"],[\"8\",\"1\",\"8\"],[\"6.06\",\"1\",\"10\"],[\"1.83\",\"1\",\"4\"],[\"1.24\",\"1\",\"3.72580279\"],[\"1.23\",\"1\",\"50\"],[\"0.12\",\"1\",\"10\"],[\"0.1\",\"1\",\"13\"],[\"0.05\",\"1\",\"61.59993952\"],[\"0.04\",\"1\",\"50\"],[\"0.03\",\"1\",\"100\"],[\"0.02\",\"1\",\"1000\"],[\"0.01\",\"3\",\"5000.00000002\"]],\"asks\":[[\"318.99\",\"1\",\"1\"],[\"319\",\"2\",\"1.53844465\"],[\"475\",\"1\",\"0.14\"],[\"900\",\"1\",\"0.18043086\"],[\"998\",\"1\",\"0.25\"],[\"999\",\"2\",\"0.20491647\"],[\"3332.32\",\"1\",\"0.2\"],[\"3349.99\",\"1\",\"1.96660712\"],[\"4491.99\",\"1\",\"1\"],[\"5000\",\"2\",\"1.1797245\"],[\"9999\",\"2\",\"1.125\"],[\"99998.99\",\"1\",\"0.35\"],[\"99999\",\"1\",\"0.125\"],[\"123456\",\"2\",\"0.32931328\"]]}}}" 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@coss.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/engine.coss.io\/api\/v1\/dp?symbol=ARK_BTC", 5 | "headers": { 6 | "Host": "engine.coss.io" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Server": "nginx\/1.14.0", 17 | "Date": "Thu, 11 Jul 2019 09:28:20 GMT", 18 | "Content-Type": "application\/json;charset=utf-8", 19 | "Content-Length": "1592", 20 | "Connection": "keep-alive", 21 | "Strict-Transport-Security": "max-age=63072000; includeSubdomains", 22 | "Access-Control-Allow-Origin": "*", 23 | "Access-Control-Allow-Credentials": "true", 24 | "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS", 25 | "Access-Control-Allow-Headers": "Accept,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With", 26 | "Access-Control-Expose-Headers": "Accept-Ranges, Content-Encoding, Content-Length, Content-Range", 27 | "Accept-Ranges": "bytes" 28 | }, 29 | "body": "{\"symbol\":\"ARK_BTC\",\"asks\":[[\"0.00003990\",\"457.50000000\"],[\"0.00004300\",\"36.40000000\"],[\"0.00004390\",\"36.00000000\"],[\"0.00004500\",\"20.00000000\"],[\"0.00004750\",\"20.00000000\"],[\"0.00005000\",\"20.00000000\"],[\"0.00006000\",\"47.90000000\"],[\"0.00008400\",\"16.40000000\"],[\"0.00008490\",\"14.70000000\"],[\"0.00008990\",\"5.60000000\"],[\"0.00012000\",\"24.00000000\"],[\"0.00014400\",\"24.00000000\"],[\"0.00014870\",\"50.00000000\"],[\"0.00014900\",\"16.80000000\"],[\"0.00018970\",\"30.00000000\"],[\"0.00018990\",\"16.80000000\"],[\"0.00020210\",\"30.00000000\"],[\"0.00021000\",\"5.70000000\"],[\"0.00047270\",\"150.00000000\"],[\"0.00047280\",\"96.80000000\"],[\"0.00047470\",\"48.00000000\"],[\"0.00059980\",\"89.00000000\"],[\"0.00060000\",\"60.00000000\"],[\"0.00077900\",\"7.40000000\"],[\"0.00119000\",\"50.40000000\"],[\"0.00120000\",\"12.00000000\"],[\"0.00598980\",\"62.10000000\"],[\"0.00599000\",\"98.20000000\"],[\"0.00599960\",\"52.90000000\"],[\"0.00600000\",\"60.00000000\"],[\"0.01200000\",\"12.00000000\"],[\"0.11800000\",\"40.00000000\"],[\"0.11900000\",\"8.00000000\"],[\"0.12000000\",\"12.00000000\"]],\"limit\":100,\"bids\":[[\"0.00003500\",\"50.00000000\"],[\"0.00003400\",\"50.00000000\"],[\"0.00003300\",\"50.00000000\"],[\"0.00003200\",\"50.00000000\"],[\"0.00003100\",\"50.00000000\"],[\"0.00003000\",\"50.00000000\"],[\"0.00001650\",\"30.40000000\"],[\"0.00001510\",\"150.00000000\"],[\"0.00001080\",\"139.40000000\"],[\"0.00000520\",\"1923.00000000\"],[\"0.00000510\",\"400.00000000\"],[\"0.00000300\",\"450.10000000\"],[\"0.00000270\",\"350.00000000\"],[\"0.00000250\",\"805.40000000\"],[\"0.00000160\",\"800.00000000\"],[\"0.00000050\",\"2000.00000000\"],[\"0.00000040\",\"3000.00000000\"],[\"0.00000010\",\"5000.10000000\"]],\"time\":1562837300427}" 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@crypton.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.cryptonbtc.com\/markets\/BCH-BTC\/orderbook", 5 | "headers": { 6 | "Host": "api.cryptonbtc.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:28:21 GMT", 17 | "content-type": "application\/json", 18 | "set-cookie": "__cfduid=d326bf3ae3f6afbef495c2a57f83a8ae31562837301; expires=Fri, 10-Jul-20 09:28:21 GMT; path=\/; domain=.cryptonbtc.com; HttpOnly; Secure", 19 | "cache-control": "public, no-cache, must-revalidate", 20 | "strict-transport-security": "max-age=15552000; includeSubDomains; preload", 21 | "x-content-type-options": "nosniff", 22 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 23 | "server": "cloudflare", 24 | "cf-ray": "4f49bf2c9e137c94-BEG", 25 | "content-encoding": "gzip" 26 | }, 27 | "body": "{\"result\":{\"asks\":[],\"bids\":[]},\"success\":true}\n" 28 | } 29 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@deribit.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.deribit.com\/api\/v1\/public\/getorderbook?instrument=BTC-12JUL19-8000-C", 5 | "headers": { 6 | "Host": "www.deribit.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, 11 Jul 2019 09:28:22 GMT", 18 | "Content-Type": "application\/json", 19 | "Content-Length": "382", 20 | "Connection": "keep-alive", 21 | "content-encoding": "gzip", 22 | "Strict-Transport-Security": "max-age=15768000", 23 | "X-Frame-Options": "SAMEORIGIN" 24 | }, 25 | "body": "{\"usOut\":1562837302202064,\"usIn\":1562837302201995,\"usDiff\":69,\"testnet\":false,\"success\":true,\"result\":{\"state\":\"open\",\"settlementPrice\":0.31108152109884074,\"instrument\":\"BTC-12JUL19-8000-C\",\"bids\":[{\"quantity\":4.0,\"amount\":4.0,\"price\":0.022,\"cm\":4.0,\"cm_amount\":4.0}],\"asks\":[],\"tstamp\":1562837301437,\"last\":0.352,\"low\":\"\",\"high\":\"\",\"mark\":0.3024646498893623,\"contractMultiplier\":1.0,\"uPx\":11468.933840091531,\"uIx\":\"SYN.BTC-12JUL19\",\"iR\":0.0,\"markIv\":185.22,\"askIv\":0.0,\"bidIv\":0.0,\"delta\":0.99995,\"gamma\":0.0,\"vega\":0.00124,\"theta\":-0.11509,\"min\":0.2625,\"max\":0.342},\"message\":\"\"}" 26 | } 27 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@dx.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "POST", 4 | "url": "https:\/\/acl.dx.exchange", 5 | "headers": { 6 | "Host": "acl.dx.exchange", 7 | "Content-Type": "application\/json-rpc" 8 | }, 9 | "body": "{\"jsonrpc\":\"2.0\",\"id\":\"1562837303368\",\"method\":\"OrderManagement.GetOrderBook\",\"params\":[{\"instrumentId\":1007}]}" 10 | }, 11 | "response": { 12 | "status": { 13 | "http_version": "1.1", 14 | "code": "200", 15 | "message": "OK" 16 | }, 17 | "headers": { 18 | "Date": "Thu, 11 Jul 2019 09:28:23 GMT", 19 | "Content-Type": "application\/json-rpc", 20 | "Content-Length": "1561", 21 | "Access-Control-Allow-Origin": "*", 22 | "Access-Control-Allow-Methods": "GET, POST, OPTIONS", 23 | "Access-Control-Allow-Headers": "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range,Authorization,Test-Token", 24 | "Set-Cookie": "f5avrbbbbbbbbbbbbbbbb=ALCGHFHHMCDDGCOBNJEDBAIMEMIDCGLBPLICDHNOEOBAFEDOOBIENKMPBLPKIFNKILNLEECACGEDIBOHMNADGJALGIOAOKINLANNMFJOGADLEGEKNADMOOKIKIHCNEAB; HttpOnly; secure, TS0147caf9=01be2e3b0050b2d3f73171f878c6038ff3a5663e901556f5f5d13b1c9514a1b0e8ac87d2cbcb6f3a4449783c07c5413ac0db571e8fd9205fb005b336efaa9aa7b7aeca134a; Path=\/; Domain=.acl.dx.exchange, visid_incap_1926871=FhmeY89mRG+QqAWpE3EPrDgBJ10AAAAAQUIPAAAAAADN4z2R8E9Jbs4uJI53W2aA; expires=Thu, 09 Jul 2020 15:54:47 GMT; path=\/; Domain=.dx.exchange, incap_ses_728_1926871=J6mPf6hIehiOeDAZEmEaCjgBJ10AAAAA9kI6rMI3iCCep1dao8lANg==; path=\/; Domain=.dx.exchange", 25 | "X-Iinfo": "7-25196709-25196718 NNNN CT(6 8 0) RT(1562837303395 127) q(0 0 0 -1) r(6 6) U6", 26 | "X-CDN": "Incapsula" 27 | }, 28 | "body": "{\"id\":\"1562837303368\",\"result\":{\"sell\":[{\"price\":{\"value\":1138079,\"decimals\":2},\"qty\":{\"value\":323667,\"decimals\":6}},{\"price\":{\"value\":1142254,\"decimals\":2},\"qty\":{\"value\":95017,\"decimals\":6}},{\"price\":{\"value\":8005,\"decimals\":0},\"qty\":{\"value\":5348,\"decimals\":6}},{\"price\":{\"value\":9500,\"decimals\":0},\"qty\":{\"value\":75381,\"decimals\":6}},{\"price\":{\"value\":10005,\"decimals\":0},\"qty\":{\"value\":2139,\"decimals\":6}},{\"price\":{\"value\":113319,\"decimals\":1},\"qty\":{\"value\":77911,\"decimals\":6}},{\"price\":{\"value\":11407,\"decimals\":0},\"qty\":{\"value\":313235,\"decimals\":6}},{\"price\":{\"value\":1000116,\"decimals\":2},\"qty\":{\"value\":4,\"decimals\":2}},{\"price\":{\"value\":113092,\"decimals\":1},\"qty\":{\"value\":22905,\"decimals\":6}},{\"price\":{\"value\":1134193,\"decimals\":2},\"qty\":{\"value\":36502,\"decimals\":6}},{\"price\":{\"value\":1137675,\"decimals\":2},\"qty\":{\"value\":112702,\"decimals\":6}}],\"buy\":[{\"price\":{\"value\":1159191,\"decimals\":2},\"qty\":{\"value\":24978,\"decimals\":6}},{\"price\":{\"value\":1161371,\"decimals\":2},\"qty\":{\"value\":64035,\"decimals\":6}},{\"price\":{\"value\":13650,\"decimals\":0},\"qty\":{\"value\":1,\"decimals\":2}},{\"price\":{\"value\":1150697,\"decimals\":2},\"qty\":{\"value\":244153,\"decimals\":6}},{\"price\":{\"value\":1153445,\"decimals\":2},\"qty\":{\"value\":388882,\"decimals\":6}},{\"price\":{\"value\":1155237,\"decimals\":2},\"qty\":{\"value\":3009,\"decimals\":4}},{\"price\":{\"value\":1156434,\"decimals\":2},\"qty\":{\"value\":168244,\"decimals\":6}},{\"price\":{\"value\":1162965,\"decimals\":2},\"qty\":{\"value\":60011,\"decimals\":6}},{\"price\":{\"value\":13100,\"decimals\":0},\"qty\":{\"value\":125,\"decimals\":5}}]},\"error\":null}\n" 29 | } 30 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@exx.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.exx.com\/data\/v1\/depth?currency=qbt_usdt", 5 | "headers": { 6 | "Host": "api.exx.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:28:25 GMT", 17 | "content-type": "text\/javascript;charset=utf-8", 18 | "set-cookie": "__cfduid=d5fcf90c6a7215291f46925fd8c18f53e1562837304; expires=Fri, 10-Jul-20 09:28:24 GMT; path=\/; domain=.exx.com; HttpOnly", 19 | "vary": "Accept-Encoding", 20 | "cndserver": "cache_server_1", 21 | "content-encoding": "gzip", 22 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 23 | "server": "cloudflare", 24 | "cf-ray": "4f49bf428c427c7c-BEG" 25 | }, 26 | "body": "{\"asks\":[[\"146.00\",\"6.00\"],[\"50.00\",\"45.59\"],[\"3.88\",\"129.87\"],[\"3.00\",\"2.67\"],[\"2.71\",\"212.00\"],[\"1.79\",\"400.00\"],[\"1.78\",\"70.10\"],[\"1.75\",\"87.61\"],[\"0.90\",\"1593.90\"],[\"0.60\",\"398.57\"],[\"0.55\",\"35.48\"],[\"0.54\",\"0.99\"],[\"0.44\",\"1000.78\"],[\"0.43\",\"1080.32\"],[\"0.19\",\"43.95\"],[\"0.05\",\"253.11\"],[\"0.03\",\"9768.04\"]],\"bids\":[[\"0.01\",\"1192.45\"]],\"timestamp\":1562837304}" 27 | } 28 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@fcoin.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.fcoin.com\/v2\/market\/depth\/L20\/dapusdt", 5 | "headers": { 6 | "Host": "api.fcoin.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:28:26 GMT", 17 | "server": "Aleph\/0.4.4", 18 | "content-encoding": "gzip" 19 | }, 20 | "body": "{\"status\":0,\"data\":{\"bids\":[0.004000000,920.790000000,0.001500000,100000.000000000,0.000012000,575865.360000000,0.000003000,508223.580000000],\"asks\":[0.004500000,6663.280000000,0.005000000,800.000000000,0.007000000,63658.000000000,0.008000000,66366.000000000,0.009000000,66555.000000000,0.100000000,33985.700000000],\"ts\":1562665788001,\"seq\":1012,\"type\":\"depth.L20.dapusdt\"}}" 21 | } 22 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@fcoinjp.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.fcoinjp.com\/v2\/market\/depth\/L20\/etcusdt", 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:28:27 GMT", 17 | "server": "Aleph\/0.4.4", 18 | "content-encoding": "gzip" 19 | }, 20 | "body": "{\"status\":0,\"data\":{\"bids\":[6.555000000,125.679700000,6.554000000,125.990000000,6.553000000,326.382100000,6.552000000,121.506500000,6.551000000,9.003500000,6.550000000,0.709100000,6.549000000,7.536900000,6.548000000,0.166200000,6.547000000,4.860800000,6.546000000,21.737800000,6.545000000,263.356100000,6.544000000,0.170000000,6.543000000,7.942000000,6.542000000,0.020000000,6.541000000,305.783300000,6.540000000,1.810100000,6.537000000,0.014800000,6.534000000,1.100000000,6.531000000,0.200000000,6.530000000,1327.951200000],\"asks\":[6.556000000,3.785000000,6.557000000,4.440800000,6.558000000,0.110000000,6.559000000,24.679400000,6.560000000,166.602200000,6.561000000,116.604500000,6.562000000,0.130000000,6.563000000,304.854500000,6.564000000,22.151600000,6.565000000,5.724200000,6.566000000,1.594900000,6.567000000,2.768300000,6.568000000,227.746200000,6.569000000,248.012000000,6.570000000,2286.177200000,6.571000000,0.110100000,6.572000000,2.119100000,6.573000000,1.109900000,6.574000000,237.834700000,6.575000000,0.150000000],\"ts\":1562837307025,\"seq\":203386740,\"type\":\"depth.L20.etcusdt\"}}" 21 | } 22 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@gatecoin.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.gatecoin.com\/Public\/MarketDepth\/BTCEUR", 5 | "headers": { 6 | "Host": "api.gatecoin.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:34:22 GMT", 17 | "Content-Type": "application\/json", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=d177877aabebaa2c7f44c4026076623431513211661; expires=Fri, 14-Dec-18 00:34:21 GMT; path=\/; domain=.gatecoin.com; HttpOnly", 21 | "Cache-Control": "private", 22 | "Content-Encoding": "gzip", 23 | "Strict-Transport-Security": "max-age=15552000; includeSubDomains; preload", 24 | "X-Content-Type-Options": "nosniff", 25 | "Server": "cloudflare-nginx", 26 | "CF-RAY": "3ccd13b47c8c7c96-BEG" 27 | }, 28 | "body": "{\"asks\":[{\"price\":14349.9,\"volume\":0.03},{\"price\":14380,\"volume\":0.05},{\"price\":14571,\"volume\":0.25724},{\"price\":14999.9,\"volume\":0.02},{\"price\":15076,\"volume\":0.01},{\"price\":15087,\"volume\":0.086},{\"price\":15098,\"volume\":0.096},{\"price\":15109,\"volume\":0.1},{\"price\":15120,\"volume\":0.01},{\"price\":15131,\"volume\":0.076},{\"price\":15142,\"volume\":0.08},{\"price\":15153,\"volume\":0.09},{\"price\":15164,\"volume\":0.022},{\"price\":15175,\"volume\":0.1},{\"price\":15200,\"volume\":0.05},{\"price\":15218,\"volume\":0.1},{\"price\":15300,\"volume\":0.08131},{\"price\":15300,\"volume\":0.36027},{\"price\":15500,\"volume\":0.14674675},{\"price\":15580,\"volume\":0.1},{\"price\":15888,\"volume\":0.1},{\"price\":16000,\"volume\":0.05},{\"price\":16900,\"volume\":0.10},{\"price\":16916.6,\"volume\":9.05815235},{\"price\":20000,\"volume\":0.03557},{\"price\":25890,\"volume\":0.16},{\"price\":610101,\"volume\":0.1}],\"bids\":[{\"price\":14000,\"volume\":0.00605238},{\"price\":13701.4,\"volume\":2},{\"price\":13701,\"volume\":0.10615135},{\"price\":13700,\"volume\":0.01405},{\"price\":13601,\"volume\":0.00732675},{\"price\":13600.1,\"volume\":1.30611376},{\"price\":13600,\"volume\":1.31668132},{\"price\":13500,\"volume\":0.01},{\"price\":13352,\"volume\":0.071},{\"price\":13342,\"volume\":0.03},{\"price\":13332,\"volume\":0.08},{\"price\":13322,\"volume\":0.04},{\"price\":13312,\"volume\":0.094},{\"price\":13302,\"volume\":0.028},{\"price\":13292,\"volume\":0.036},{\"price\":13282,\"volume\":0.075},{\"price\":13272,\"volume\":0.04},{\"price\":13262,\"volume\":0.1},{\"price\":13002,\"volume\":0.03835905},{\"price\":13001,\"volume\":0.2},{\"price\":12501,\"volume\":0.4},{\"price\":12500,\"volume\":0.03188839},{\"price\":11888,\"volume\":0.37},{\"price\":11500,\"volume\":0.91},{\"price\":11500,\"volume\":0.22},{\"price\":10800,\"volume\":0.08304268},{\"price\":10200,\"volume\":0.12},{\"price\":10000,\"volume\":5},{\"price\":10000,\"volume\":0.00065301},{\"price\":10000,\"volume\":0.15},{\"price\":9900,\"volume\":0.00201315},{\"price\":9900,\"volume\":0.17011167},{\"price\":7500,\"volume\":0.03390798},{\"price\":7089,\"volume\":0.14083729},{\"price\":6850,\"volume\":0.34348102},{\"price\":6501,\"volume\":0.29845405},{\"price\":6200,\"volume\":0.38216082},{\"price\":5700,\"volume\":40},{\"price\":5000,\"volume\":0.59790732},{\"price\":3000,\"volume\":0.9965122},{\"price\":2000,\"volume\":0.00459392},{\"price\":10,\"volume\":0.0006773},{\"price\":10,\"volume\":0.00065194},{\"price\":0.1,\"volume\":2.8898854}],\"responseStatus\":{\"message\":\"OK\"}}" 29 | } 30 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@gdax.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api-public.sandbox.gdax.com\/products\/BTC-USD\/book?level=2", 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=1", 22 | "content-type": "application\/json; charset=utf-8", 23 | "content-length": "294", 24 | "etag": "W\/\"126-QeDg8PXybwiIXdz720qSgfmRTpA\"", 25 | "date": "Thu, 14 Dec 2017 11:38:37 GMT", 26 | "connection": "close" 27 | }, 28 | "body": "{\"sequence\":5123,\"bids\":[[\"16624\",\"0.06015399\",1],[\"16472.03\",\"0.02\",1],[\"16443.31\",\"0.02\",1],[\"16435.26\",\"0.02\",1],[\"16411.05\",\"0.02\",1],[\"25\",\"968.04481949\",1],[\"24.99\",\"100\",1],[\"22\",\"22\",1],[\"2\",\"1\",1],[\"1\",\"1\",1]],\"asks\":[[\"16651\",\"0.05047139\",1],[\"16831.52\",\"0.06\",3],[\"16888\",\"0.02\",1]]}" 29 | } 30 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@getbtc.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/getbtc.org\/api\/order-book?currency=USD", 5 | "headers": { 6 | "Host": "getbtc.org" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Server": "nginx\/1.4.6 (Ubuntu)", 17 | "Date": "Thu, 14 Dec 2017 00:34:15 GMT", 18 | "Content-Type": "text\/html", 19 | "Transfer-Encoding": "chunked", 20 | "Connection": "keep-alive", 21 | "Set-Cookie": "PHPSESSID=paevlba17cs7se960cg3api0l5; path=\/; secure; HttpOnly", 22 | "Expires": "Thu, 19 Nov 1981 08:52:00 GMT", 23 | "Cache-Control": "no-store, no-cache, must-revalidate, post-check=0, pre-check=0", 24 | "Pragma": "no-cache", 25 | "X-Frame-Options": "SAMEORIGIN", 26 | "X-XSS-Protection": "1; mode=block", 27 | "X-Powered-By": "WLOX", 28 | "Content-Encoding": "gzip" 29 | }, 30 | "body": "{\"order-book\":{\"request_currency\":\"USD\",\"bid\":[],\"ask\":[]}}" 31 | } 32 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@kkex.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/kkex.com\/api\/v1\/depth?symbol=ENUBTC", 5 | "headers": { 6 | "Host": "kkex.com", 7 | "Content-Type": "application\/json" 8 | } 9 | }, 10 | "response": { 11 | "status": { 12 | "http_version": "1.1", 13 | "code": "200", 14 | "message": "OK" 15 | }, 16 | "headers": { 17 | "Server": "nginx", 18 | "Date": "Thu, 11 Jul 2019 09:28:32 GMT", 19 | "Content-Type": "application\/json", 20 | "Transfer-Encoding": "chunked", 21 | "Connection": "keep-alive", 22 | "Vary": "Accept-Encoding, Accept-Language, Cookie", 23 | "X-Frame-Options": "SAMEORIGIN", 24 | "Content-Language": "en", 25 | "Set-Cookie": "sessionid=8xd9jj6wfsjmdckig8186a7hzoco2qij; httponly; Path=\/, django_language=en; Path=\/", 26 | "Strict-Transport-Security": "max-age=63072000; includeSubdomains; preload, max-age=63072000; includeSubdomains; preload", 27 | "Content-Encoding": "gzip" 28 | }, 29 | "body": "{\"bids\": [[\"0.00000029\", \"38604.394142\"], [\"0.00000028\", \"495198.407652\"], [\"0.00000026\", \"126953.161770\"], [\"0.00000025\", \"798.400000\"], [\"0.00000024\", \"3068.850000\"]], \"result\": true, \"asks\": [[\"0.00000036\", \"6000.000000\"], [\"0.00000037\", \"340460.968173\"], [\"0.00000039\", \"101300.000000\"], [\"0.00000040\", \"111611.539937\"], [\"0.00000041\", \"1000.000000\"]]}" 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@lakebtc.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.lakebtc.com\/api_v2\/bcorderbook?symbol=btcusd", 5 | "headers": { 6 | "Host": "api.lakebtc.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:34:30 GMT", 18 | "Content-Type": "application\/json", 19 | "Content-Length": "870", 20 | "Connection": "keep-alive", 21 | "Status": "200 OK", 22 | "Access-Control-Allow-Origin": "*", 23 | "X-Request-Id": "02c45537-3793-46f1-b938-9dd89fdad3df", 24 | "ETag": "\"dc48bb344fbc14ca0232bdf92cfaf46e\"", 25 | "X-Runtime": "0.012967", 26 | "Strict-Transport-Security": "max-age=31536000", 27 | "Cache-Control": "public" 28 | }, 29 | "body": "{\"asks\":[[\"16231.59\",\"18.3862\"],[\"16236.55\",\"0.0005\"],[\"16237.28\",\"10.1055\"],[\"16237.56\",\"6.0\"],[\"16237.81\",\"3.0\"],[\"16238.43\",\"19.8276\"],[\"16238.68\",\"6.5608\"],[\"16239.3\",\"9.121\"],[\"16239.39\",\"13.7948\"],[\"16239.49\",\"6.0808\"],[\"16239.57\",\"0.0004\"],[\"16239.67\",\"5.7\"],[\"16239.7\",\"2.2472\"],[\"16239.72\",\"16.373\"],[\"16239.77\",\"4.73\"],[\"16239.81\",\"5.73\"],[\"16239.85\",\"0.0009\"],[\"16239.92\",\"4.6\"],[\"16239.96\",\"6.782\"],[\"16240.03\",\"4.0\"]],\"bids\":[[\"16225.6\",\"0.0002\"],[\"16225.47\",\"0.59\"],[\"16224.93\",\"9.2076\"],[\"16224.9\",\"0.0006\"],[\"16224.81\",\"0.0007\"],[\"16224.76\",\"0.0001\"],[\"16224.69\",\"12.2158\"],[\"16224.61\",\"0.001\"],[\"16224.57\",\"5.7179\"],[\"16224.49\",\"0.0003\"],[\"16224.46\",\"0.644\"],[\"16224.39\",\"0.85\"],[\"16224.34\",\"28.168\"],[\"16224.25\",\"0.0005\"],[\"16224.2\",\"0.05\"],[\"16224.16\",\"0.0008\"],[\"16224.08\",\"0.001\"],[\"16224.01\",\"0.0001\"],[\"16223.94\",\"0.0005\"],[\"16223.88\",\"28.1831\"]]}" 30 | } 31 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@liquid.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.liquid.com\/products\/35\/price_levels", 5 | "headers": { 6 | "Host": "api.liquid.com", 7 | "X-Quoine-API-Version": "2", 8 | "Content-Type": "application\/json" 9 | } 10 | }, 11 | "response": { 12 | "status": { 13 | "http_version": "2", 14 | "code": "200", 15 | "message": "" 16 | }, 17 | "headers": { 18 | "date": "Thu, 11 Jul 2019 09:28:36 GMT", 19 | "content-type": "application\/json; charset=utf-8", 20 | "content-length": "58", 21 | "set-cookie": "__cfduid=d9b58e1166b62ca0263a08410bfd8b30e1562837315; expires=Fri, 10-Jul-20 09:28:35 GMT; path=\/; domain=.liquid.com; HttpOnly; Secure", 22 | "content-encoding": "gzip", 23 | "cf-cache-status": "MISS", 24 | "cache-control": "public, max-age=30", 25 | "cf-ray": "4f49bf88cd9e7c5e-BEG", 26 | "accept-ranges": "bytes", 27 | "etag": "\"7390a62b48570cca8d5c8b01c814ff6d\"", 28 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 29 | "expires": "Thu, 11 Jul 2019 09:29:06 GMT", 30 | "status": "200 OK", 31 | "strict-transport-security": "max-age=631152000; includeSubdomains", 32 | "vary": "Accept-Encoding", 33 | "via": "1.1 spaces-router (c7665a42a791)", 34 | "x-content-type-options": "nosniff", 35 | "x-frame-options": "SAMEORIGIN", 36 | "x-request-id": "462c311f-bfa2-25ec-0093-aecb110b733c", 37 | "x-ua-compatible": "IE=Edge,chrome=1", 38 | "x-xss-protection": "1; mode=block", 39 | "server": "cloudflare" 40 | }, 41 | "body": "{\"buy_price_levels\":[], \"sell_price_levels\":[]}" 42 | } 43 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@lykke.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/hft-api.lykke.com\/api\/OrderBooks\/AUDUSD", 5 | "headers": { 6 | "Host": "hft-api.lykke.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Server": "nginx\/1.13.6", 17 | "Date": "Wed, 03 Jan 2018 01:55:47 GMT", 18 | "Content-Type": "application\/json; charset=utf-8", 19 | "Transfer-Encoding": "chunked", 20 | "Connection": "keep-alive", 21 | "Request-Context": "appId=cid-v1:43e62950-e4b6-473f-a795-908b111fa2ad", 22 | "X-Rate-Limit-Limit": "1m", 23 | "X-Rate-Limit-Remaining": "299", 24 | "X-Rate-Limit-Reset": "2018-01-03T01:56:47.6083979Z" 25 | }, 26 | "body": "[{\"AssetPair\":\"AUDUSD\",\"IsBuy\":false,\"Timestamp\":\"2018-01-03T01:55:44.805\",\"Prices\":[{\"Volume\":-50000.0,\"Price\":0.78243}]},{\"AssetPair\":\"AUDUSD\",\"IsBuy\":true,\"Timestamp\":\"2018-01-03T01:55:44.805\",\"Prices\":[{\"Volume\":50000.0,\"Price\":0.7824}]}]" 27 | } 28 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@nova.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/novaexchange.com\/remote\/v2\/market\/openorders\/BTC_SNGLS\/both\/", 5 | "headers": { 6 | "Host": "novaexchange.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:34:34 GMT", 18 | "Content-Type": "application\/json", 19 | "Content-Length": "298", 20 | "Connection": "keep-alive", 21 | "Set-Cookie": "session=ca908697-04d5-4aa6-9a5a-db65d4d45242; Expires=Thu, 14-Dec-2017 10:34:34 GMT; HttpOnly; Path=\/; secure; HttpOnly", 22 | "X-Frame-Options": "SAMEORIGIN", 23 | "Strict-Transport-Security": "max-age=31536000", 24 | "X-XSS-Protection": "1; mode=block" 25 | }, 26 | "body": "{\"status\": \"success\", \"buyorders\": [{\"currency\": \"SNGLS\", \"amount\": \"1000.00000000\", \"price\": \"0.00000028\", \"basecurrency\": \"BTC\", \"baseamount\": \"0.00028000\"}], \"sellorders\": [{\"currency\": \"SNGLS\", \"amount\": \"11.99201822\", \"price\": \"0.00100000\", \"basecurrency\": \"BTC\", \"baseamount\": \"0.01199202\"}]}" 27 | } 28 | },{ 29 | "request": { 30 | "method": "GET", 31 | "url": "https:\/\/novaexchange.com\/remote\/v2\/market\/openorders\/BTC_INGT\/both\/", 32 | "headers": { 33 | "Host": "novaexchange.com" 34 | } 35 | }, 36 | "response": { 37 | "status": { 38 | "http_version": "2", 39 | "code": "301", 40 | "message": "" 41 | }, 42 | "headers": { 43 | "date": "Thu, 11 Jul 2019 09:28:39 GMT", 44 | "content-type": "text\/html", 45 | "set-cookie": "__cfduid=dd8f363946c93ceb602d1b12a4d753b5c1562837319; expires=Fri, 10-Jul-20 09:28:39 GMT; path=\/; domain=.novaexchange.com; HttpOnly; Secure", 46 | "location": "https:\/\/novaexchange.com\/remote\/v2\/market\/openorders\/BTC_INGT\/BOTH\/", 47 | "cf-ray": "4f49bfa14e4c7c7c-BEG", 48 | "allow": "GET", 49 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 50 | "strict-transport-security": "max-age=15552000; preload", 51 | "vary": "Accept-Encoding", 52 | "server": "cloudflare" 53 | }, 54 | "body": "HTTP\/2 200 \r\ndate: Thu, 11 Jul 2019 09:28:40 GMT\r\ncontent-type: application\/json\r\nset-cookie: __cfduid=dd8f363946c93ceb602d1b12a4d753b5c1562837319; expires=Fri, 10-Jul-20 09:28:39 GMT; path=\/; domain=.novaexchange.com; HttpOnly; Secure\r\ncf-ray: 4f49bfa1ae997c7c-BEG\r\nallow: GET\r\nexpect-ct: max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"\r\nstrict-transport-security: max-age=15552000; preload\r\nvary: Accept-Encoding\r\nserver: cloudflare\r\ncontent-encoding: gzip\r\n\r\n{\"message\":\"No such market listed\",\"status\":\"error\"}\n" 55 | } 56 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@paymium.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/paymium.com\/api\/v1\/data\/eur\/depth", 5 | "headers": { 6 | "Host": "paymium.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Server": "nginx\/1.9.15", 17 | "Date": "Thu, 14 Dec 2017 00:34:45 GMT", 18 | "Content-Type": "application\/json; charset=utf-8", 19 | "Transfer-Encoding": "chunked", 20 | "Connection": "keep-alive", 21 | "Status": "200 OK", 22 | "ETag": "W\/\"0036d08cbce146de126d93d51f91c968\"", 23 | "Cache-Control": "max-age=0, private, must-revalidate", 24 | "X-Request-Id": "6c72d77f-06d4-479a-95e7-fff442f6d6db", 25 | "X-RateLimit-Limit": "86400", 26 | "X-RateLimit-Remaining": "86397", 27 | "X-Runtime": "0.009407", 28 | "X-Powered-By": "Phusion Passenger 4.0.55", 29 | "Access-Control-Allow-Origin": "*", 30 | "Access-Control-Allow-Credentials": "false", 31 | "Access-Control-Allow-Methods": "GET, DELETE, POST, OPTIONS, PUT", 32 | "Access-Control-Allow-Headers": "Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,Api-Key,Api-Token,Api-Signature,Api-Nonce" 33 | }, 34 | "body": "{\"bids\":[],\"asks\":[]}" 35 | } 36 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@poloniex.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/poloniex.com\/public?command=returnOrderBook¤cyPair=BTC_BCN", 5 | "headers": { 6 | "Host": "poloniex.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:34:46 GMT", 17 | "Content-Type": "application\/json", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=d1c0b1872e768ebbdc1fcd50e82a263811513211685; expires=Fri, 14-Dec-18 00:34:45 GMT; path=\/; domain=.poloniex.com; HttpOnly", 21 | "Access-Control-Allow-Origin": "*", 22 | "Access-Control-Allow-Methods": "GET", 23 | "Content-Encoding": "gzip", 24 | "Server": "cloudflare-nginx", 25 | "CF-RAY": "3ccd144a2d877c42-BEG" 26 | }, 27 | "body": "{\"asks\":[[\"0.00000016\",27585086.360566],[\"0.00000017\",114810074.40498],[\"0.00000018\",57929055.843276],[\"0.00000019\",55191800.470164],[\"0.00000020\",77177968.486095],[\"0.00000021\",73093756.477564],[\"0.00000022\",34647317.524952],[\"0.00000023\",31566293.601032],[\"0.00000024\",44064676.472349],[\"0.00000025\",48056708.367952],[\"0.00000026\",5591718.4094387],[\"0.00000027\",7644767.3845055],[\"0.00000028\",15086979.543933],[\"0.00000029\",7922078.3814848],[\"0.00000030\",21517201.507764],[\"0.00000031\",15587663.218901],[\"0.00000032\",7360780.0884054],[\"0.00000033\",6821733.9063396],[\"0.00000034\",31911813.341723],[\"0.00000035\",17840767.286615],[\"0.00000036\",7726270.5603311],[\"0.00000037\",12582925.262993],[\"0.00000038\",8866679.5522477],[\"0.00000039\",15340867.750687],[\"0.00000040\",14411802.405994],[\"0.00000041\",1502185.569801],[\"0.00000042\",18055774.926983],[\"0.00000043\",3207031.4309337],[\"0.00000044\",8693692.0047121],[\"0.00000045\",18126664.484744],[\"0.00000046\",2932553.7867689],[\"0.00000047\",19437519.445379],[\"0.00000048\",5205963.2788931],[\"0.00000049\",3227426.7633105],[\"0.00000050\",54630578.268163],[\"0.00000051\",2518811.1220513],[\"0.00000052\",11287647.208125],[\"0.00000053\",5290831.9199968],[\"0.00000054\",7888714.7850639],[\"0.00000055\",36123863.949083],[\"0.00000056\",24475276.937162],[\"0.00000057\",13345845.387458],[\"0.00000058\",35488997.279809],[\"0.00000059\",12998777.154103],[\"0.00000060\",51747081.110664],[\"0.00000061\",10512279.866559],[\"0.00000062\",18927425.963257],[\"0.00000063\",517986.79776135],[\"0.00000064\",5649304.8850304],[\"0.00000065\",3071352.3566774]],\"bids\":[[\"0.00000015\",115908186.69097],[\"0.00000014\",51574739.987176],[\"0.00000013\",30151795.401121],[\"0.00000012\",6047077.0813388],[\"0.00000011\",4675420.0389471],[\"0.00000010\",33863667.381227],[\"0.00000009\",2943080.6969697],[\"0.00000008\",688130.29896545],[\"0.00000007\",10353586.244013],[\"0.00000006\",10174224.833333],[\"0.00000005\",32462030.7488],[\"0.00000004\",4457614.75],[\"0.00000003\",104001414.89267],[\"0.00000002\",100096986.5],[\"0.00000001\",268198680.4]],\"isFrozen\":\"0\",\"seq\":6497407}" 28 | } 29 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@qryptos.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.qryptos.com\/products\/1\/price_levels", 5 | "headers": { 6 | "Host": "api.qryptos.com", 7 | "X-Quoine-API-Version": "2", 8 | "Content-Type": "application\/json" 9 | } 10 | }, 11 | "response": { 12 | "status": { 13 | "http_version": "1.1", 14 | "code": "200", 15 | "message": "OK" 16 | }, 17 | "headers": { 18 | "Date": "Thu, 14 Dec 2017 00:34:47 GMT", 19 | "Content-Type": "application\/json; charset=utf-8", 20 | "Content-Length": "358", 21 | "Connection": "keep-alive", 22 | "Set-Cookie": "__cfduid=d2d9051400dd5ea88e8882ac7abc8e04d1513211686; expires=Fri, 14-Dec-18 00:34:46 GMT; path=\/; domain=.qryptos.com; HttpOnly, _vax_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJTY1ZGJkMmIwNmRmODhkNDU1YzkwZGE1MjEzYTRmOWYxBjsAVEkiCWxhbmcGOwBGOgdlbg%3D%3D--fa226e5c161073b9445d765cba417f2668c96e6d; path=\/; secure; HttpOnly", 23 | "Cache-Control": "max-age=0, private, must-revalidate", 24 | "Content-Encoding": "gzip", 25 | "Etag": "\"029daae83f403f5422d949678b52482e\"", 26 | "Status": "200 OK", 27 | "Strict-Transport-Security": "max-age=631152000; includeSubdomains", 28 | "Vary": "Accept-Encoding", 29 | "Via": "1.1 spaces-router (95e7969569d5)", 30 | "X-Content-Type-Options": "nosniff", 31 | "X-Frame-Options": "SAMEORIGIN", 32 | "X-Powered-By": "Phusion Passenger 5.1.2", 33 | "X-Rack-Cache": "miss", 34 | "X-Request-Id": "a4baf973-493c-bf6f-ecfa-a8155eb0e66a", 35 | "X-Runtime": "0.019428", 36 | "X-Ua-Compatible": "IE=Edge,chrome=1", 37 | "X-Xss-Protection": "1; mode=block", 38 | "Server": "cloudflare-nginx", 39 | "CF-RAY": "3ccd144f79157c4e-BEG" 40 | }, 41 | "body": "{\"buy_price_levels\":[[\"0.01158000\",\"2.00000000\"],[\"0.01157011\",\"1.00000000\"],[\"0.01157010\",\"3.00000000\"],[\"0.01155706\",\"1.04760000\"],[\"0.01130000\",\"2.00000000\"],[\"0.01129000\",\"2.00000000\"],[\"0.01000000\",\"1.00000000\"],[\"0.00370002\",\"2.00000000\"],[\"0.00370001\",\"100.00000000\"],[\"0.00370000\",\"11.00000000\"],[\"0.00300000\",\"2.00000000\"],[\"0.00151000\",\"5.00000000\"],[\"0.00150004\",\"30.00000000\"],[\"0.00150003\",\"30.00000000\"],[\"0.00150002\",\"30.00000000\"],[\"0.00150001\",\"30.00000000\"],[\"0.00114326\",\"1.08800000\"],[\"0.00041000\",\"18.35200000\"],[\"0.00032875\",\"0.95830000\"],[\"0.00008400\",\"26.00000000\"],[\"0.00007002\",\"77.00000000\"]], \"sell_price_levels\":[[\"0.02639000\",\"2.00000000\"],[\"0.02704000\",\"2.00000000\"],[\"0.02737000\",\"1.51135000\"],[\"0.02990000\",\"1.00000000\"],[\"0.03199000\",\"1.13646652\"],[\"0.04999000\",\"1.13646652\"],[\"0.05987000\",\"0.69624550\"],[\"0.05999628\",\"0.58225502\"],[\"0.06007817\",\"0.30013363\"],[\"0.06021907\",\"0.20951416\"],[\"0.06028890\",\"0.36235773\"],[\"0.06035872\",\"0.76113615\"],[\"0.06044850\",\"0.90542806\"],[\"0.06052830\",\"0.37844978\"],[\"0.06075000\",\"0.03628547\"],[\"0.06077000\",\"0.18186000\"],[\"0.06080000\",\"0.18194000\"],[\"0.06083000\",\"0.18196000\"],[\"0.06085000\",\"0.18215000\"],[\"0.06088000\",\"0.18274000\"],[\"0.06092000\",\"0.18323000\"]]}" 42 | } 43 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@quoine.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.quoine.com\/products\/1\/price_levels", 5 | "headers": { 6 | "Host": "api.quoine.com", 7 | "X-Quoine-API-Version": "2", 8 | "Content-Type": "application\/json" 9 | } 10 | }, 11 | "response": { 12 | "status": { 13 | "http_version": "1.1", 14 | "code": "200", 15 | "message": "OK" 16 | }, 17 | "headers": { 18 | "Date": "Thu, 14 Dec 2017 00:34:49 GMT", 19 | "Content-Type": "application\/json; charset=utf-8", 20 | "Content-Length": "425", 21 | "Connection": "keep-alive", 22 | "Set-Cookie": "__cfduid=d34a44db6307486a35049947512ca0e661513211688; expires=Fri, 14-Dec-18 00:34:48 GMT; path=\/; domain=.quoine.com; HttpOnly, _vax_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJTllNjJiZTEyYTBjNWRlNjgwYWU3NjIyODdmY2E3NjcxBjsAVEkiCWxhbmcGOwBGOgdlbg%3D%3D--0b57460af438e5925954bffafafacdb363439c7d; path=\/; secure; HttpOnly", 23 | "Cache-Control": "max-age=0, private, must-revalidate", 24 | "Content-Encoding": "gzip", 25 | "Etag": "\"41149718cbfb352e9f743ded90215a74\"", 26 | "Status": "200 OK", 27 | "Strict-Transport-Security": "max-age=631152000; includeSubdomains", 28 | "Vary": "Accept-Encoding", 29 | "Via": "1.1 spaces-router (95e7969569d5)", 30 | "X-Content-Type-Options": "nosniff", 31 | "X-Frame-Options": "SAMEORIGIN", 32 | "X-Powered-By": "Phusion Passenger 5.1.2", 33 | "X-Rack-Cache": "miss", 34 | "X-Request-Id": "f2e87c96-b606-0483-9696-3b9851536b7b", 35 | "X-Runtime": "0.020626", 36 | "X-Ua-Compatible": "IE=Edge,chrome=1", 37 | "X-Xss-Protection": "1; mode=block", 38 | "Server": "cloudflare-nginx", 39 | "CF-RAY": "3ccd145caf947c9c-BEG" 40 | }, 41 | "body": "{\"buy_price_levels\":[[\"16803.51449\",\"2.06242000\"],[\"16797.41120\",\"1.01069000\"],[\"16791.18571\",\"2.79529000\"],[\"16779.46934\",\"1.92993000\"],[\"16772.32384\",\"5.34483000\"],[\"16751.86083\",\"32.54122000\"],[\"16742.67203\",\"62.99045000\"],[\"16727.87168\",\"43.11243000\"],[\"16660.06306\",\"143.81891000\"],[\"16641.22286\",\"1.20000000\"],[\"16500.00001\",\"12.00000000\"],[\"16500.00000\",\"0.20000000\"],[\"16301.00000\",\"0.15600000\"],[\"16300.00000\",\"0.10000000\"],[\"16287.00000\",\"0.10000000\"],[\"16200.00000\",\"0.05000000\"],[\"16196.86714\",\"12.00000000\"],[\"16150.97014\",\"199.06464000\"],[\"16100.00000\",\"5.00000000\"],[\"16001.00000\",\"0.50000000\"],[\"16000.00000\",\"7.20450000\"]], \"sell_price_levels\":[[\"16835.00000\",\"0.05000000\"],[\"16840.67386\",\"0.39600643\"],[\"16846.78937\",\"0.58884779\"],[\"16853.02733\",\"2.79529000\"],[\"16864.76716\",\"1.92993000\"],[\"16871.92696\",\"2.58205449\"],[\"16892.43094\",\"32.54122000\"],[\"16901.63813\",\"62.99045000\"],[\"16916.46811\",\"1.20000000\"],[\"16916.46812\",\"43.11243000\"],[\"16984.41249\",\"143.81891000\"],[\"17002.00000\",\"0.06330000\"],[\"17005.00000\",\"0.25000000\"],[\"17217.99999\",\"12.00000000\"],[\"17218.00000\",\"0.01000000\"],[\"17249.00000\",\"0.50000000\"],[\"17250.00000\",\"0.01000000\"],[\"17298.16992\",\"0.02564600\"],[\"17300.00000\",\"2.56000000\"],[\"17340.13451\",\"12.00000000\"],[\"17447.00000\",\"0.01660000\"]]}" 42 | } 43 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@rightbtc.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.rightbtc.com\/api\/public\/depth\/LYLETH", 5 | "headers": { 6 | "Host": "www.rightbtc.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:28:44 GMT", 17 | "content-type": "application\/json;charset=UTF-8", 18 | "server": "nginx\/1.12.2", 19 | "access-control-allow-headers": "Origin,X-Requested-With,Content-Type,Accept,token,x-access-token, Cache-Control", 20 | "access-control-allow-methods": "GET,POST,PUT,DELETE", 21 | "access-control-allow-credentials": "true", 22 | "client_ip": "178.148.31.94", 23 | "access-control-expose-headers": "Client_ip" 24 | }, 25 | "body": "{\"status\":{\"success\":1,\"message\":null},\"result\":{\"market\":\"LYLETH\",\"ask\":[[13500.00000000,47720100000.00000000,47720100000.00000000],[14000.00000000,155882800000.00000000,203602900000.00000000],[16996.00000000,34294220000.00000000,237897120000.00000000],[16997.00000000,77941400000.00000000,315838520000.00000000],[16999.00000000,43647190000.00000000,359485710000.00000000],[22338.00000000,5000000000000.00000000,5359485710000.00000000],[26119.00000000,4500000000000.00000000,9859485710000.00000000],[29851.00000000,4000000000000.00000000,13859485710000.00000000],[33582.00000000,3700000000000.00000000,17559485710000.00000000],[37000.00000000,2500000000000.00000000,20059485710000.00000000],[37313.00000000,3500000000000.00000000,23559485710000.00000000],[98888.00000000,99800000.00000000,23559585510000.00000000]],\"bid\":[[200.00000000,150000000000.00000000,150000000000.00000000],[185.00000000,90270000000.00000000,240270000000.00000000],[100.00000000,100000000000.00000000,340270000000.00000000],[54.00000000,2184750000000.00000000,2525020000000.00000000],[52.00000000,100000000000.00000000,2625020000000.00000000],[51.00000000,971600000000.00000000,3596620000000.00000000],[23.00000000,1000000000000.00000000,4596620000000.00000000],[10.00000000,1000000000000.00000000,5596620000000.00000000],[1.00000000,10288396760000.00000000,15885016760000.00000000]]}}" 26 | } 27 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@southxchange.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.southxchange.com\/api\/book\/BCH\/BTC", 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:34:50 GMT", 17 | "Content-Type": "application\/json; charset=utf-8", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=d9b3971b7cb1471ee5e45221f07bd90571513211690; expires=Fri, 14-Dec-18 00:34:50 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": "3ccd146729817c96-BEG", 32 | "Content-Encoding": "gzip" 33 | }, 34 | "body": "{\"BuyOrders\":[{\"Index\":0,\"Amount\":2.48,\"Price\":0.09739809},{\"Index\":1,\"Amount\":1.337071,\"Price\":0.0951142},{\"Index\":2,\"Amount\":0.2,\"Price\":0.09386},{\"Index\":3,\"Amount\":0.0937423,\"Price\":0.0909},{\"Index\":4,\"Amount\":0.0365,\"Price\":0.087086},{\"Index\":5,\"Amount\":0.02,\"Price\":0.0849448},{\"Index\":6,\"Amount\":0.01,\"Price\":0.081393},{\"Index\":7,\"Amount\":0.008,\"Price\":0.07717},{\"Index\":8,\"Amount\":0.004261,\"Price\":0.0729},{\"Index\":9,\"Amount\":0.003,\"Price\":0.069377},{\"Index\":10,\"Amount\":0.05,\"Price\":0.001},{\"Index\":11,\"Amount\":0.2,\"Price\":0.0005},{\"Index\":12,\"Amount\":1,\"Price\":0.00005},{\"Index\":13,\"Amount\":2,\"Price\":0.00001},{\"Index\":14,\"Amount\":4,\"Price\":0.000005}],\"SellOrders\":[{\"Index\":0,\"Amount\":2.9893,\"Price\":0.09788154},{\"Index\":1,\"Amount\":0.24627,\"Price\":0.1003401},{\"Index\":2,\"Amount\":0.327995,\"Price\":0.1026},{\"Index\":3,\"Amount\":0.033,\"Price\":0.1044576},{\"Index\":4,\"Amount\":0.01716,\"Price\":0.1074761},{\"Index\":5,\"Amount\":0.020575,\"Price\":0.111466},{\"Index\":6,\"Amount\":0.0116,\"Price\":0.114759},{\"Index\":7,\"Amount\":0.0057,\"Price\":0.1170777},{\"Index\":8,\"Amount\":0.00395,\"Price\":0.1221},{\"Index\":9,\"Amount\":0.0023066,\"Price\":0.1266},{\"Index\":10,\"Amount\":0.11773944,\"Price\":0.15},{\"Index\":11,\"Amount\":0.26375843,\"Price\":0.338},{\"Index\":12,\"Amount\":0.00074126,\"Price\":0.3389},{\"Index\":13,\"Amount\":0.1,\"Price\":0.515},{\"Index\":14,\"Amount\":0.1,\"Price\":0.523},{\"Index\":15,\"Amount\":0.02501642,\"Price\":0.6457},{\"Index\":16,\"Amount\":0.1,\"Price\":0.73},{\"Index\":17,\"Amount\":0.57194615,\"Price\":1.896},{\"Index\":18,\"Amount\":0.40707873,\"Price\":3.56},{\"Index\":19,\"Amount\":0.01618993,\"Price\":6},{\"Index\":20,\"Amount\":0.00128173,\"Price\":14},{\"Index\":21,\"Amount\":0.00039216,\"Price\":16}]}" 35 | } 36 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@theocean.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.theocean.trade\/v1\/order_book?baseTokenAddress=0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"eTokenAddress=0x0000000000085d4780b73119b644ae5ecd22b376", 5 | "headers": { 6 | "Host": "api.theocean.trade" 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:28:45 GMT", 17 | "content-type": "application\/json; charset=utf-8", 18 | "server": "nginx\/1.17.0", 19 | "x-powered-by": "Express", 20 | "access-control-allow-origin": "*", 21 | "etag": "W\/\"15-JgM\/Us+smN6zC4elJTXo6\/J\/hhc\"", 22 | "content-encoding": "gzip" 23 | }, 24 | "body": "{\"bids\":[],\"asks\":[]}" 25 | } 26 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchOrderBook@upbit.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.upbit.com\/v1\/orderbook?markets=KRW-BTC", 5 | "headers": { 6 | "Host": "api.upbit.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:28:48 GMT", 17 | "content-type": "application\/json;charset=UTF-8", 18 | "limit-by-ip": "Yes", 19 | "remaining-req": "group=orderbook; min=599; sec=9", 20 | "etag": "\"09de43c384df117c9b6c76eb3704e53ae\"", 21 | "x-content-type-options": "nosniff", 22 | "x-xss-protection": "1; mode=block", 23 | "cache-control": "no-cache, no-store, max-age=0, must-revalidate", 24 | "pragma": "no-cache", 25 | "expires": "0", 26 | "x-frame-options": "DENY", 27 | "content-encoding": "gzip", 28 | "vary": "Accept-Encoding" 29 | }, 30 | "body": "[{\"market\":\"KRW-BTC\",\"timestamp\":1562837327533,\"total_ask_size\":10.82119741,\"total_bid_size\":9.24555577,\"orderbook_units\":[{\"ask_price\":1.3865E7,\"bid_price\":1.3861E7,\"ask_size\":0.448,\"bid_size\":2.27038186},{\"ask_price\":1.3866E7,\"bid_price\":1.386E7,\"ask_size\":2.14334208,\"bid_size\":0.03081469},{\"ask_price\":1.3867E7,\"bid_price\":1.3859E7,\"ask_size\":0.15594037,\"bid_size\":3.96862635},{\"ask_price\":1.3873E7,\"bid_price\":1.3854E7,\"ask_size\":2.09,\"bid_size\":0.23576164},{\"ask_price\":1.3876E7,\"bid_price\":1.3853E7,\"ask_size\":0.00007218,\"bid_size\":0.00056991},{\"ask_price\":1.3877E7,\"bid_price\":1.3852E7,\"ask_size\":0.00007215,\"bid_size\":0.26959263},{\"ask_price\":1.3883E7,\"bid_price\":1.3846E7,\"ask_size\":0.3069,\"bid_size\":0.07222302},{\"ask_price\":1.3884E7,\"bid_price\":1.3844E7,\"ask_size\":1.51460241,\"bid_size\":0.00816545},{\"ask_price\":1.3886E7,\"bid_price\":1.3841E7,\"ask_size\":0.2973,\"bid_size\":0.56539278},{\"ask_price\":1.3888E7,\"bid_price\":1.384E7,\"ask_size\":0.461,\"bid_size\":0.10820079},{\"ask_price\":1.3889E7,\"bid_price\":1.3836E7,\"ask_size\":0.26290106,\"bid_size\":0.2973},{\"ask_price\":1.389E7,\"bid_price\":1.3832E7,\"ask_size\":0.2919,\"bid_size\":0.32118065},{\"ask_price\":1.3891E7,\"bid_price\":1.383E7,\"ask_size\":0.49076744,\"bid_size\":0.59391982},{\"ask_price\":1.3894E7,\"bid_price\":1.3829E7,\"ask_size\":2.05,\"bid_size\":0.15433015},{\"ask_price\":1.3895E7,\"bid_price\":1.3828E7,\"ask_size\":0.30839972,\"bid_size\":0.34909603}]}]" 31 | } 32 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTicker@acx.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/acx.io\/api\/api\/v2\/markets.json", 5 | "headers": { 6 | "Host": "acx.io" 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:30:07 GMT", 17 | "Content-Type": "application\/json", 18 | "Content-Length": "281", 19 | "Connection": "keep-alive", 20 | "Status": "200 OK", 21 | "Cache-Control": "max-age=0, private, must-revalidate", 22 | "Access-Control-Allow-Origin": "*", 23 | "X-Request-Id": "327796c9-6cd0-44d4-a28d-92cc55fcc2fa", 24 | "ETag": "\"41d228ef432ccf084972a59ddff4e407\"", 25 | "X-Runtime": "0.002291", 26 | "X-Powered-By": "acx", 27 | "Server": "acx", 28 | "Strict-Transport-Security": "max-age=63072000", 29 | "X-Frame-Options": "DENY", 30 | "X-Content-Type-Options": "sniff" 31 | }, 32 | "body": "[{\"id\":\"btcaud\",\"name\":\"BTC\/AUD\",\"base_unit\":\"btc\",\"quote_unit\":\"aud\"},{\"id\":\"bchaud\",\"name\":\"BCH\/AUD\",\"base_unit\":\"bch\",\"quote_unit\":\"aud\"},{\"id\":\"ethaud\",\"name\":\"ETH\/AUD\",\"base_unit\":\"eth\",\"quote_unit\":\"aud\"},{\"id\":\"hsraud\",\"name\":\"HSR\/AUD\",\"base_unit\":\"hsr\",\"quote_unit\":\"aud\"}]" 33 | } 34 | },{ 35 | "request": { 36 | "method": "GET", 37 | "url": "https:\/\/acx.io\/api\/api\/v2\/tickers.json", 38 | "headers": { 39 | "Host": "acx.io" 40 | } 41 | }, 42 | "response": { 43 | "status": { 44 | "http_version": "1.1", 45 | "code": "200", 46 | "message": "OK" 47 | }, 48 | "headers": { 49 | "Date": "Thu, 14 Dec 2017 00:30:08 GMT", 50 | "Content-Type": "application\/json", 51 | "Content-Length": "816", 52 | "Connection": "keep-alive", 53 | "Status": "200 OK", 54 | "Cache-Control": "max-age=0, private, must-revalidate", 55 | "Access-Control-Allow-Origin": "*", 56 | "X-Request-Id": "e041cc4f-943f-4ac6-9f78-dd5b4234d983", 57 | "ETag": "\"5d73ecf6f39f94b2238f2035df0b4183\"", 58 | "X-Runtime": "0.019954", 59 | "X-Powered-By": "acx", 60 | "Server": "acx", 61 | "Strict-Transport-Security": "max-age=63072000", 62 | "X-Frame-Options": "DENY", 63 | "X-Content-Type-Options": "sniff" 64 | }, 65 | "body": "{\"btcaud\":{\"name\":\"BTC\/AUD\",\"base_unit\":\"btc\",\"quote_unit\":\"aud\",\"at\":1513211408,\"ticker\":{\"buy\":\"24020.53\",\"sell\":\"24049.83\",\"open\":25300.0,\"low\":\"23400.01\",\"high\":\"25625.0\",\"last\":\"24020.51\",\"vol\":\"2005.4689\"}},\"bchaud\":{\"name\":\"BCH\/AUD\",\"base_unit\":\"bch\",\"quote_unit\":\"aud\",\"at\":1513211408,\"ticker\":{\"buy\":\"2251.04\",\"sell\":\"2399.99\",\"open\":2300.0,\"low\":\"2101.28\",\"high\":\"2400.0\",\"last\":\"2399.99\",\"vol\":\"68.1945\"}},\"ethaud\":{\"name\":\"ETH\/AUD\",\"base_unit\":\"eth\",\"quote_unit\":\"aud\",\"at\":1513211408,\"ticker\":{\"buy\":\"1010.88\",\"sell\":\"1042.0\",\"open\":970.0,\"low\":\"880.0\",\"high\":\"1096.99\",\"last\":\"1044.99\",\"vol\":\"464.4652\"}},\"hsraud\":{\"name\":\"HSR\/AUD\",\"base_unit\":\"hsr\",\"quote_unit\":\"aud\",\"at\":1513211408,\"ticker\":{\"buy\":\"24.6\",\"sell\":\"24.67\",\"open\":23.29,\"low\":\"21.54\",\"high\":\"24.97\",\"last\":\"24.65\",\"vol\":\"679678.5957\"}}}" 66 | } 67 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTicker@allcoin.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/cors-anywhere.herokuapp.com\/https:\/\/www.allcoin.com\/Home\/MarketOverViewDetail\/", 5 | "headers": { 6 | "Host": "cors-anywhere.herokuapp.com", 7 | "Origin": "*" 8 | } 9 | }, 10 | "response": { 11 | "status": { 12 | "http_version": "1.1", 13 | "code": "429", 14 | "message": "Too Many Requests" 15 | }, 16 | "headers": { 17 | "Server": "Cowboy", 18 | "Connection": "keep-alive", 19 | "Access-Control-Allow-Origin": "*", 20 | "Access-Control-Expose-Headers": "access-control-allow-origin", 21 | "Date": "Thu, 11 Jul 2019 09:23:27 GMT", 22 | "Transfer-Encoding": "chunked", 23 | "Via": "1.1 vegur" 24 | }, 25 | "body": "The origin \"*\" has sent too many requests.\nThe number of requests is limited to 200 per 60 minutes. Please self-host CORS Anywhere if you need more quota. See https:\/\/github.com\/Rob--W\/cors-anywhere#demo-server" 26 | } 27 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTicker@chbtc.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTicker@cointiger.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTicker@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:30:47 GMT", 20 | "Last-Modified": "Thu, 14 Dec 2017 00:30:47 GMT", 21 | "Server": "nginx", 22 | "Set-Cookie": "device=ZHQxdfb2ARA5bNDW4GuowVK8sw==:u874oNNUbhZ8f1mAJkkSBsk8Qcg=; Path=\/; Max-Age=31536000; HttpOnly; Secure", 23 | "Content-Length": "257", 24 | "Connection": "keep-alive" 25 | }, 26 | "body": "{\"tickers\":[{\"timestamp\":1513211447261,\"bid\":\"256254.00\",\"ask\":\"256255.00\",\"last_trade\":\"256255.00\",\"rolling_24_hour_volume\":\"1489.137565\",\"pair\":\"XBTZAR\"},{\"timestamp\":1513211447262,\"bid\":\"6138946.00\",\"ask\":\"6145499.00\",\"last_trade\":\"6145499.00\",\"rolling_24_hour_volume\":\"41.67143\",\"pair\":\"XBTNGN\"},{\"timestamp\":1513211447263,\"bid\":\"240001000.00\",\"ask\":\"243398000.00\",\"last_trade\":\"240000000.00\",\"rolling_24_hour_volume\":\"10.409595\",\"pair\":\"XBTIDR\"},{\"timestamp\":1513211447264,\"bid\":\"71095.00\",\"ask\":\"71096.00\",\"last_trade\":\"71095.00\",\"rolling_24_hour_volume\":\"332.812988\",\"pair\":\"XBTMYR\"}]}\n" 27 | } 28 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTicker@okcoincny.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.okcoin.cn\/api\/v1\/tickers.do", 5 | "headers": { 6 | "Host": "www.okcoin.cn" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "404", 13 | "message": "Not Found" 14 | }, 15 | "headers": { 16 | "Server": "nginx", 17 | "Date": "Thu, 11 Jul 2019 09:24:53 GMT", 18 | "Content-Type": "text\/html", 19 | "Content-Length": "162", 20 | "Connection": "keep-alive" 21 | }, 22 | "body": "<html>\r\n<head><title>404 Not Found<\/title><\/head>\r\n<body bgcolor=\"white\">\r\n<center><h1>404 Not Found<\/h1><\/center>\r\n<hr><center>nginx<\/center>\r\n<\/body>\r\n<\/html>\r\n" 23 | } 24 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@bitforex.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.bitforex.com\/api\/v1\/market\/trades?symbol=coin-usdt-btc", 5 | "headers": { 6 | "Host": "api.bitforex.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "2", 12 | "code": "200", 13 | "message": "" 14 | }, 15 | "headers": { 16 | "server": "nginx", 17 | "date": "Thu, 11 Jul 2019 09:26:59 GMT", 18 | "content-type": "text\/html;charset=UTF-8", 19 | "vary": "Accept-Encoding", 20 | "x-application-context": "api-bitforex-gateway:7979", 21 | "accept-charset": "big5, big5-hkscs, cesu-8, euc-jp, euc-kr, gb18030, gb2312, gbk, ibm-thai, ibm00858, ibm01140, ibm01141, ibm01142, ibm01143, ibm01144, ibm01145, ibm01146, ibm01147, ibm01148, ibm01149, ibm037, ibm1026, ibm1047, ibm273, ibm277, ibm278, ibm280, ibm284, ibm285, ibm290, ibm297, ibm420, ibm424, ibm437, ibm500, ibm775, ibm850, ibm852, ibm855, ibm857, ibm860, ibm861, ibm862, ibm863, ibm864, ibm865, ibm866, ibm868, ibm869, ibm870, ibm871, ibm918, iso-2022-cn, iso-2022-jp, iso-2022-jp-2, iso-2022-kr, iso-8859-1, iso-8859-13, iso-8859-15, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-9, jis_x0201, jis_x0212-1990, koi8-r, koi8-u, shift_jis, tis-620, us-ascii, utf-16, utf-16be, utf-16le, utf-32, utf-32be, utf-32le, utf-8, windows-1250, windows-1251, windows-1252, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, windows-31j, x-big5-hkscs-2001, x-big5-solaris, x-compound_text, x-euc-jp-linux, x-euc-tw, x-eucjp-open, x-ibm1006, x-ibm1025, x-ibm1046, x-ibm1097, x-ibm1098, x-ibm1112, x-ibm1122, x-ibm1123, x-ibm1124, x-ibm1166, x-ibm1364, x-ibm1381, x-ibm1383, x-ibm300, x-ibm33722, x-ibm737, x-ibm833, x-ibm834, x-ibm856, x-ibm874, x-ibm875, x-ibm921, x-ibm922, x-ibm930, x-ibm933, x-ibm935, x-ibm937, x-ibm939, x-ibm942, x-ibm942c, x-ibm943, x-ibm943c, x-ibm948, x-ibm949, x-ibm949c, x-ibm950, x-ibm964, x-ibm970, x-iscii91, x-iso-2022-cn-cns, x-iso-2022-cn-gb, x-iso-8859-11, x-jis0208, x-jisautodetect, x-johab, x-macarabic, x-maccentraleurope, x-maccroatian, x-maccyrillic, x-macdingbat, x-macgreek, x-machebrew, x-maciceland, x-macroman, x-macromania, x-macsymbol, x-macthai, x-macturkish, x-macukraine, x-ms932_0213, x-ms950-hkscs, x-ms950-hkscs-xp, x-mswin-936, x-pck, x-sjis_0213, x-utf-16le-bom, x-utf-32be-bom, x-utf-32le-bom, x-windows-50220, x-windows-50221, x-windows-874, x-windows-949, x-windows-950, x-windows-iso2022jp", 22 | "strict-transport-security": "max-age=63072000; includeSubdomains; preload, max-age=15768000", 23 | "set-cookie": "secure=true, HttpOnly=true", 24 | "content-encoding": "gzip" 25 | }, 26 | "body": "{\"data\":[{\"amount\":0.002,\"direction\":1,\"price\":11451.02,\"tid\":\"0\",\"time\":1562837219092}],\"success\":true,\"time\":1562837219768}" 27 | } 28 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@bitstamp1.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.bitstamp.net\/api\/transactions?time=minute", 5 | "headers": { 6 | "Host": "www.bitstamp.net" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "301", 13 | "message": "MOVED PERMANENTLY" 14 | }, 15 | "headers": { 16 | "Access-Control-Allow-Headers": "x-requested-with, Content-Type, origin, accept, cache-control", 17 | "Access-Control-Allow-Methods": "POST, GET", 18 | "Access-Control-Allow-Origin": "*", 19 | "Content-Language": "en", 20 | "Content-Type": "text\/html; charset=utf-8", 21 | "Date": "Thu, 21 Dec 2017 22:33:47 GMT", 22 | "Location": "https:\/\/www.bitstamp.net\/api\/transactions\/?time=minute", 23 | "Server": "Apache", 24 | "Strict-Transport-Security": "max-age=63072000; includeSubDomains", 25 | "Vary": "Accept-Language", 26 | "X-Frame-Options": "SAMEORIGIN", 27 | "Content-Length": "0", 28 | "Connection": "keep-alive", 29 | "Set-Cookie": "visid_incap_99025=beXQzJafTZCxJrXgBWhOjco2PFoAAAAAQUIPAAAAAAB6Wsx\/QylJexlNrfgZEo5i; expires=Fri, 21 Dec 2018 08:38:33 GMT; path=\/; Domain=.bitstamp.net, nlbi_99025=7tHMQ1w\/bze48VSE8F1n9AAAAAAv8gjOutVcl1gNOrrQalXG; path=\/; Domain=.bitstamp.net, incap_ses_730_99025=dwJELxZ+IwZ5ju3GWXshCso2PFoAAAAA4w8xqc3r0mqLy6BhS6DRQw==; path=\/; Domain=.bitstamp.net", 30 | "X-Iinfo": "14-121604894-121604429 PNNN RT(1513895626434 96) q(0 0 0 0) r(0 0) U11", 31 | "X-CDN": "Incapsula" 32 | } 33 | } 34 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@coincheck.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/coincheck.com\/api\/trades", 5 | "headers": { 6 | "Host": "coincheck.com" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "400", 13 | "message": "Bad Request" 14 | }, 15 | "headers": { 16 | "Content-Type": "application\/json; charset=utf-8", 17 | "Transfer-Encoding": "chunked", 18 | "Connection": "keep-alive", 19 | "Date": "Thu, 21 Dec 2017 22:33:49 GMT", 20 | "Server": "nginx", 21 | "X-XSS-Protection": "1; mode=block", 22 | "X-Content-Type-Options": "nosniff", 23 | "Cache-Control": "no-cache", 24 | "X-Request-Id": "e4533f7c-122f-4421-bea3-3442b2a9e4e0", 25 | "X-Runtime": "0.005937", 26 | "X-Cache": "Error from cloudfront", 27 | "Via": "1.1 e3666efb6956ba7f03c75c3401b8c79e.cloudfront.net (CloudFront)", 28 | "X-Amz-Cf-Id": "dpOJXoE0ttSDOCGzggwPOFsiaFs2klxe8lCCTPErBregI1QyiUecqg==" 29 | }, 30 | "body": "{\"success\":false,\"error\":\"invalid pair\"}" 31 | } 32 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@coinmate.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/coinmate.io\/api\/transactions?currencyPair=BTC_EUR&minutesIntoHistory=10", 5 | "headers": { 6 | "Host": "coinmate.io" 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:32:32 GMT", 17 | "Content-Type": "application\/json;charset=UTF-8", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=d2109bd18a79229717deeebc8bb9212f21513211552; expires=Fri, 14-Dec-18 00:32:32 GMT; path=\/; domain=.coinmate.io; HttpOnly", 21 | "X-Frame-Options": "SAMEORIGIN", 22 | "X-Content-Type-Options": "nosniff", 23 | "X-XSS-Protection": "1; mode=block", 24 | "Access-Control-Allow-Origin": "*", 25 | "Strict-Transport-Security": "max-age=15552000; includeSubDomains", 26 | "Server": "cloudflare-nginx", 27 | "CF-RAY": "3ccd110c2efb7c6c-BEG", 28 | "Content-Encoding": "gzip" 29 | }, 30 | "body": "{\"error\":false,\"errorMessage\":null,\"data\":[{\"timestamp\":1513211495509,\"transactionId\":\"1369462\",\"price\":13661.44,\"amount\":0.00195909,\"currencyPair\":\"BTC_EUR\"},{\"timestamp\":1513211176448,\"transactionId\":\"1369447\",\"price\":13800.99,\"amount\":0.054,\"currencyPair\":\"BTC_EUR\"},{\"timestamp\":1513211044662,\"transactionId\":\"1369430\",\"price\":13800.99,\"amount\":0.00449228,\"currencyPair\":\"BTC_EUR\"},{\"timestamp\":1513211044650,\"transactionId\":\"1369428\",\"price\":13705.62,\"amount\":0.038633,\"currencyPair\":\"BTC_EUR\"},{\"timestamp\":1513211044634,\"transactionId\":\"1369426\",\"price\":13680.32,\"amount\":0.03456,\"currencyPair\":\"BTC_EUR\"}]}" 31 | } 32 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@coinsecure.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.coinsecure.in\/v1\/exchange\/trades", 5 | "headers": { 6 | "Host": "api.coinsecure.in" 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:32:33 GMT", 18 | "Content-Type": "application\/json", 19 | "Content-Length": "277", 20 | "Connection": "keep-alive", 21 | "Vary": "Accept-Encoding", 22 | "Request-Time": "4", 23 | "Content-Encoding": "gzip", 24 | "Access-Control-Max-Age": "0", 25 | "Access-Control-Allow-Origin": "*", 26 | "Access-Control-Allow-Headers": "Origin, Content-Type, Accept, Referer, User-Agent, Authorization, accept", 27 | "Set-Cookie": "visid_incap_1033907=DWvK3vlnR\/eraim55rqAEKHGMVoAAAAAQUIPAAAAAABkBO2GDhq0y7dn8OkbGRSf; expires=Thu, 13 Dec 2018 08:26:57 GMT; path=\/; Domain=.coinsecure.in, incap_ses_474_1033907=WvqufyKMUT7mSwdqIv2TBqHGMVoAAAAA9q+PpUugvRi1jI+LWenTBg==; path=\/; Domain=.coinsecure.in", 28 | "X-Iinfo": "10-32612759-32611675 2NNN RT(1513211553098 94) q(0 0 0 -1) r(6 6)", 29 | "X-CDN": "Incapsula", 30 | "Cache-Control": "max-age=0" 31 | }, 32 | "body": "{\"success\":true,\"count\":10,\"message\":[{\"time\":1513210613658,\"rate\":134000000,\"vol\":53700000,\"ordType\":\"bid\"},{\"time\":1513209160366,\"rate\":133200000,\"vol\":4400000,\"ordType\":\"ask\"},{\"time\":1513209085359,\"rate\":134000000,\"vol\":2900000,\"ordType\":\"bid\"},{\"time\":1513208475261,\"rate\":133200000,\"vol\":800000,\"ordType\":\"bid\"},{\"time\":1513208165455,\"rate\":133200000,\"vol\":1700000,\"ordType\":\"bid\"},{\"time\":1513208065036,\"rate\":133200008,\"vol\":11600000,\"ordType\":\"ask\"},{\"time\":1513208019522,\"rate\":133500000,\"vol\":1700000,\"ordType\":\"ask\"},{\"time\":1513208003607,\"rate\":134000000,\"vol\":200000,\"ordType\":\"ask\"},{\"time\":1513206870019,\"rate\":134000000,\"vol\":1200000,\"ordType\":\"ask\"},{\"time\":1513206829369,\"rate\":135000000,\"vol\":13500000,\"ordType\":\"bid\"}],\"time\":1513211553687,\"method\":\"All Completed Trades\",\"title\":\"\/v1\/exchange\/trades\"}" 33 | } 34 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@crypton.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.cryptonbtc.com\/markets\/BCH-BTC\/trades", 5 | "headers": { 6 | "Host": "api.cryptonbtc.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:27:21 GMT", 17 | "content-type": "application\/json", 18 | "set-cookie": "__cfduid=dd8fb347e0d19a66485e7cc1e32ec54321562837241; expires=Fri, 10-Jul-20 09:27:21 GMT; path=\/; domain=.cryptonbtc.com; HttpOnly; Secure", 19 | "cache-control": "public, no-cache, must-revalidate", 20 | "strict-transport-security": "max-age=15552000; includeSubDomains; preload", 21 | "x-content-type-options": "nosniff", 22 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 23 | "server": "cloudflare", 24 | "cf-ray": "4f49bdb499a07c40-BEG", 25 | "content-encoding": "gzip" 26 | }, 27 | "body": "{\"result\":[{\"id\":4256389,\"price\":0.048085,\"side\":\"buy\",\"size\":10.63801053,\"time\":\"2019-05-14T16:16:20.831141+00:00\"},{\"id\":4256387,\"price\":0.047995,\"side\":\"buy\",\"size\":9.10773667,\"time\":\"2019-05-14T16:16:18.823142+00:00\"},{\"id\":4256386,\"price\":0.047995,\"side\":\"buy\",\"size\":23.28050418,\"time\":\"2019-05-14T16:16:18.509495+00:00\"},{\"id\":4256385,\"price\":0.047995,\"side\":\"buy\",\"size\":12.5302478,\"time\":\"2019-05-14T16:16:18.165541+00:00\"},{\"id\":4256384,\"price\":0.047995,\"side\":\"buy\",\"size\":1.7848757,\"time\":\"2019-05-14T16:16:17.598918+00:00\"},{\"id\":4256288,\"price\":0.046955,\"side\":\"sell\",\"size\":44.96087838,\"time\":\"2019-05-14T16:06:27.147189+00:00\"},{\"id\":4256287,\"price\":0.046955,\"side\":\"sell\",\"size\":8.51362929,\"time\":\"2019-05-14T16:06:26.593163+00:00\"},{\"id\":4256282,\"price\":0.04696,\"side\":\"sell\",\"size\":46.83152519,\"time\":\"2019-05-14T16:05:42.496135+00:00\"},{\"id\":4256278,\"price\":0.047217,\"side\":\"sell\",\"size\":57.22177206,\"time\":\"2019-05-14T16:05:17.937331+00:00\"},{\"id\":4256239,\"price\":0.047324,\"side\":\"sell\",\"size\":57.14128948,\"time\":\"2019-05-14T16:03:31.954536+00:00\"},{\"id\":4256238,\"price\":0.047405,\"side\":\"sell\",\"size\":25.97360642,\"time\":\"2019-05-14T16:03:29.902452+00:00\"},{\"id\":4256236,\"price\":0.04742,\"side\":\"sell\",\"size\":21.38409757,\"time\":\"2019-05-14T16:03:17.821918+00:00\"},{\"id\":4256231,\"price\":0.047586,\"side\":\"sell\",\"size\":10.54943493,\"time\":\"2019-05-14T16:03:04.656272+00:00\"},{\"id\":4256138,\"price\":0.047712,\"side\":\"buy\",\"size\":5.4402833,\"time\":\"2019-05-14T15:58:34.377581+00:00\"},{\"id\":4256133,\"price\":0.047651,\"side\":\"buy\",\"size\":20.21235524,\"time\":\"2019-05-14T15:57:13.151717+00:00\"},{\"id\":4256132,\"price\":0.047651,\"side\":\"buy\",\"size\":20.20962005,\"time\":\"2019-05-14T15:57:12.725372+00:00\"},{\"id\":4256130,\"price\":0.047645,\"side\":\"sell\",\"size\":15.90533898,\"time\":\"2019-05-14T15:56:49.304639+00:00\"},{\"id\":4256057,\"price\":0.048189,\"side\":\"sell\",\"size\":27.59512569,\"time\":\"2019-05-14T15:49:10.697894+00:00\"},{\"id\":4256056,\"price\":0.048189,\"side\":\"sell\",\"size\":12.68484188,\"time\":\"2019-05-14T15:49:10.271311+00:00\"},{\"id\":4254764,\"price\":0.048594,\"side\":\"buy\",\"size\":34.16491459,\"time\":\"2019-05-14T13:10:06.168416+00:00\"}],\"success\":true}\n" 28 | } 29 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@deribit.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.deribit.com\/api\/v1\/public\/getlasttrades?instrument=BTC-12JUL19-8000-C&limit=10000", 5 | "headers": { 6 | "Host": "www.deribit.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, 11 Jul 2019 09:27:22 GMT", 18 | "Content-Type": "application\/json", 19 | "Content-Length": "245", 20 | "Connection": "keep-alive", 21 | "content-encoding": "gzip", 22 | "Strict-Transport-Security": "max-age=15768000", 23 | "X-Frame-Options": "SAMEORIGIN" 24 | }, 25 | "body": "{\"usOut\":1562837242087468,\"usIn\":1562837242087433,\"usDiff\":35,\"testnet\":false,\"success\":true,\"result\":[{\"tradeId\":30344032,\"instrument\":\"BTC-12JUL19-8000-C\",\"tradeSeq\":1,\"timeStamp\":1562629254307,\"quantity\":1.0,\"amount\":1.0,\"price\":0.352,\"direction\":\"buy\",\"tickDirection\":1,\"indexPrice\":12329.92,\"iv\":136.3}],\"message\":\"\"}" 26 | } 27 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@fcoin.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.fcoin.com\/v2\/market\/trades\/dapusdt?limit=50", 5 | "headers": { 6 | "Host": "api.fcoin.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:27:26 GMT", 17 | "server": "Aleph\/0.4.4", 18 | "content-encoding": "gzip" 19 | }, 20 | "body": "{\"status\":0,\"data\":[{\"id\":1017,\"price\":0.004500000000000000,\"amount\":33035.700000000000000000,\"side\":\"buy\",\"ts\":1559581416786},{\"id\":1017,\"price\":0.004500000000000000,\"amount\":33035.700000000000000000,\"side\":\"buy\",\"ts\":1559581416786},{\"id\":1015,\"price\":0.004499000000000000,\"amount\":950.000000000000000000,\"side\":\"buy\",\"ts\":1559581355243},{\"id\":1011,\"price\":0.004500000000000000,\"amount\":950.000000000000000000,\"side\":\"buy\",\"ts\":1558625698310},{\"id\":1006,\"price\":0.004500000000000000,\"amount\":30400.000000000000000000,\"side\":\"buy\",\"ts\":1558598625082},{\"id\":996,\"price\":0.004000000000000000,\"amount\":9079.210000000000000000,\"side\":\"sell\",\"ts\":1558490767750},{\"id\":995,\"price\":0.004500000000000000,\"amount\":3534.530000000000000000,\"side\":\"sell\",\"ts\":1558490767750},{\"id\":994,\"price\":0.004600000000000000,\"amount\":3467.460000000000000000,\"side\":\"sell\",\"ts\":1558490767750},{\"id\":991,\"price\":0.004600000000000000,\"amount\":6532.540000000000000000,\"side\":\"sell\",\"ts\":1558354481398},{\"id\":989,\"price\":0.004800000000000000,\"amount\":9161.290000000000000000,\"side\":\"sell\",\"ts\":1558354470916},{\"id\":984,\"price\":0.004800000000000000,\"amount\":838.710000000000000000,\"side\":\"sell\",\"ts\":1558322528274},{\"id\":974,\"price\":0.004900000000000000,\"amount\":847.190000000000000000,\"side\":\"buy\",\"ts\":1558319584232},{\"id\":966,\"price\":0.004900000000000000,\"amount\":14473.870000000000000000,\"side\":\"buy\",\"ts\":1558318986856},{\"id\":964,\"price\":0.004900000000000000,\"amount\":1219.960000000000000000,\"side\":\"buy\",\"ts\":1558317217624},{\"id\":962,\"price\":0.004900000000000000,\"amount\":8000.000000000000000000,\"side\":\"sell\",\"ts\":1558276759942},{\"id\":957,\"price\":0.004500000000000000,\"amount\":76465.470000000000000000,\"side\":\"buy\",\"ts\":1558256029798},{\"id\":951,\"price\":0.004500000000000000,\"amount\":200000.000000000000000000,\"side\":\"buy\",\"ts\":1558255897266},{\"id\":66,\"price\":0.004500000000000000,\"amount\":44444.450000000000000000,\"side\":\"buy\",\"ts\":1558107396204},{\"id\":63,\"price\":0.004500000000000000,\"amount\":296433.330000000000000000,\"side\":\"buy\",\"ts\":1558107127641},{\"id\":57,\"price\":0.004500000000000000,\"amount\":1165.750000000000000000,\"side\":\"sell\",\"ts\":1558102560539},{\"id\":55,\"price\":0.004500000000000000,\"amount\":58834.250000000000000000,\"side\":\"buy\",\"ts\":1558099801390},{\"id\":52,\"price\":0.004500000000000000,\"amount\":666666.670000000000000000,\"side\":\"buy\",\"ts\":1558099521766},{\"id\":26,\"price\":0.004500000000000000,\"amount\":190671.980000000000000000,\"side\":\"sell\",\"ts\":1558096403365},{\"id\":25,\"price\":0.004500000000000000,\"amount\":84927.100000000000000000,\"side\":\"sell\",\"ts\":1558096403365},{\"id\":23,\"price\":0.004500000000000000,\"amount\":16605.730000000000000000,\"side\":\"sell\",\"ts\":1558096348817},{\"id\":22,\"price\":0.004500000000000000,\"amount\":80250.270000000000000000,\"side\":\"sell\",\"ts\":1558096348817},{\"id\":8,\"price\":0.003500000000000000,\"amount\":300.000000000000000000,\"side\":\"sell\",\"ts\":1558094763051}]}" 21 | } 22 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@getbtc.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/getbtc.org\/api\/transactions?currency=USD", 5 | "headers": { 6 | "Host": "getbtc.org" 7 | } 8 | }, 9 | "response": { 10 | "status": { 11 | "http_version": "1.1", 12 | "code": "200", 13 | "message": "OK" 14 | }, 15 | "headers": { 16 | "Server": "nginx\/1.4.6 (Ubuntu)", 17 | "Date": "Thu, 14 Dec 2017 00:32:40 GMT", 18 | "Content-Type": "text\/html", 19 | "Transfer-Encoding": "chunked", 20 | "Connection": "keep-alive", 21 | "Set-Cookie": "PHPSESSID=4qh6fb55n0r6p954hbriojruj6; path=\/; secure; HttpOnly", 22 | "Expires": "Thu, 19 Nov 1981 08:52:00 GMT", 23 | "Cache-Control": "no-store, no-cache, must-revalidate, post-check=0, pre-check=0", 24 | "Pragma": "no-cache", 25 | "X-Frame-Options": "SAMEORIGIN", 26 | "X-XSS-Protection": "1; mode=block", 27 | "X-Powered-By": "WLOX", 28 | "Content-Encoding": "gzip" 29 | }, 30 | "body": "{\"transactions\":{\"0\":{\"id\":\"707906\",\"date\":\"2017-12-14 03:32:02\",\"timestamp\":\"1513211522\",\"btc\":\"0.04910000\",\"maker_type\":\"buy\",\"price\":\"16471.50\",\"amount\":\"808.75\",\"currency\":\"USD\"},\"1\":{\"id\":\"707905\",\"date\":\"2017-12-14 03:32:02\",\"timestamp\":\"1513211522\",\"btc\":\"0.02780000\",\"maker_type\":\"buy\",\"price\":\"17775.04\",\"amount\":\"494.15\",\"currency\":\"RUB\"},\"2\":{\"id\":\"707904\",\"date\":\"2017-12-14 03:32:02\",\"timestamp\":\"1513211522\",\"btc\":\"0.06750000\",\"maker_type\":\"buy\",\"price\":\"16532.14\",\"amount\":\"1115.92\",\"currency\":\"EUR\"},\"3\":{\"id\":\"707903\",\"date\":\"2017-12-14 03:31:03\",\"timestamp\":\"1513211463\",\"btc\":\"0.16160000\",\"maker_type\":\"buy\",\"price\":\"16471.50\",\"amount\":\"2661.79\",\"currency\":\"USD\"},\"4\":{\"id\":\"707902\",\"date\":\"2017-12-14 03:31:02\",\"timestamp\":\"1513211462\",\"btc\":\"0.01030000\",\"maker_type\":\"buy\",\"price\":\"17775.04\",\"amount\":\"183.08\",\"currency\":\"RUB\"},\"5\":{\"id\":\"707901\",\"date\":\"2017-12-14 03:31:02\",\"timestamp\":\"1513211462\",\"btc\":\"0.03990000\",\"maker_type\":\"buy\",\"price\":\"16532.14\",\"amount\":\"659.63\",\"currency\":\"EUR\"},\"6\":{\"id\":\"707900\",\"date\":\"2017-12-14 03:30:02\",\"timestamp\":\"1513211402\",\"btc\":\"0.16050000\",\"maker_type\":\"buy\",\"price\":\"16471.50\",\"amount\":\"2643.68\",\"currency\":\"USD\"},\"7\":{\"id\":\"707899\",\"date\":\"2017-12-14 03:30:02\",\"timestamp\":\"1513211402\",\"btc\":\"0.02210000\",\"maker_type\":\"buy\",\"price\":\"17775.04\",\"amount\":\"392.83\",\"currency\":\"RUB\"},\"8\":{\"id\":\"707898\",\"date\":\"2017-12-14 03:30:02\",\"timestamp\":\"1513211402\",\"btc\":\"0.19480000\",\"maker_type\":\"buy\",\"price\":\"16532.14\",\"amount\":\"3220.46\",\"currency\":\"EUR\"},\"9\":{\"id\":\"707897\",\"date\":\"2017-12-14 03:29:02\",\"timestamp\":\"1513211342\",\"btc\":\"0.06800000\",\"maker_type\":\"buy\",\"price\":\"16471.50\",\"amount\":\"1120.06\",\"currency\":\"USD\"},\"request_currency\":\"USD\"}}" 31 | } 32 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@liquid.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.liquid.com\/executions?product_id=35", 5 | "headers": { 6 | "Host": "api.liquid.com", 7 | "X-Quoine-API-Version": "2", 8 | "Content-Type": "application\/json" 9 | } 10 | }, 11 | "response": { 12 | "status": { 13 | "http_version": "2", 14 | "code": "200", 15 | "message": "" 16 | }, 17 | "headers": { 18 | "date": "Thu, 11 Jul 2019 09:27:41 GMT", 19 | "content-type": "application\/json; charset=utf-8", 20 | "content-length": "64", 21 | "set-cookie": "__cfduid=de480914c557e246bf7067c4eadedfcc61562837261; expires=Fri, 10-Jul-20 09:27:41 GMT; path=\/; domain=.liquid.com; HttpOnly; Secure, _vax_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWY0ZGJjYmE5MWRhODQzYzliNTFjZTBkYjliY2RmY2ZmBjsAVEkiCWxhbmcGOwBGOgdlbg%3D%3D--68f050d284d389d69ad9a04518458cad3d567f23; path=\/; secure; HttpOnly", 22 | "content-encoding": "gzip", 23 | "cache-control": "max-age=0, private, must-revalidate", 24 | "cf-ray": "4f49be3269147c76-BEG", 25 | "accept-ranges": "bytes", 26 | "etag": "\"d863824adcd2bd156b577d7c02990c56\"", 27 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 28 | "status": "200 OK", 29 | "strict-transport-security": "max-age=631152000; includeSubdomains", 30 | "vary": "Accept-Encoding", 31 | "via": "1.1 spaces-router (c7665a42a791)", 32 | "x-content-type-options": "nosniff", 33 | "x-frame-options": "SAMEORIGIN", 34 | "x-request-id": "f6ffd8f2-c31f-e995-47ab-94b26412dc5e", 35 | "x-ua-compatible": "IE=Edge,chrome=1", 36 | "x-xss-protection": "1; mode=block", 37 | "server": "cloudflare" 38 | }, 39 | "body": "{\"current_page\":1,\"total_pages\":1,\"models\":[]}" 40 | } 41 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@negociecoins.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/broker.negociecoins.com.br\/api\/v3\/b2xbrl\/trades\/0", 5 | "headers": { 6 | "Host": "broker.negociecoins.com.br" 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:27:45 GMT", 17 | "content-type": "application\/json; charset=utf-8", 18 | "content-length": "2", 19 | "set-cookie": "__cfduid=d836bea805c46add2fe674fc8a7bbf2fb1562837264; expires=Fri, 10-Jul-20 09:27:44 GMT; path=\/; domain=.negociecoins.com.br; HttpOnly, ASP.NET_SessionId=rz1w3l45wdupddw2rw5rn2l0; domain=broker.negociecoins.com.br; path=\/; secure; HttpOnly", 20 | "cache-control": "public, max-age=10", 21 | "expires": "Thu, 11 Jul 2019 09:27:55 GMT", 22 | "last-modified": "Thu, 11 Jul 2019 09:27:45 GMT", 23 | "vary": "*", 24 | "x-powered-by": "ASP.NET", 25 | "access-control-allow-origin": "*", 26 | "access-control-allow-headers": "Content-Type", 27 | "access-control-allow-methods": "GET, POST, PUT, DELETE, OPTIONS", 28 | "expect-ct": "max-age=604800, report-uri=\"https:\/\/report-uri.cloudflare.com\/cdn-cgi\/beacon\/expect-ct\"", 29 | "server": "cloudflare", 30 | "cf-ray": "4f49be48a9d17c64-BEG" 31 | }, 32 | "body": "[]" 33 | } 34 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@southxchange.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/www.southxchange.com\/api\/trades\/BCH\/BTC", 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:33:09 GMT", 17 | "Content-Type": "application\/json; charset=utf-8", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=dd4f5c89f720bd1637ff2f46ade69ded21513211588; expires=Fri, 14-Dec-18 00:33:08 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": "3ccd11ed59387c5a-BEG", 32 | "Content-Encoding": "gzip" 33 | }, 34 | "body": "[{\"At\":1513207826,\"Amount\":0.0863,\"Price\":0.09711734,\"Type\":\"sell\"},{\"At\":1513207181,\"Amount\":0.01849246,\"Price\":0.09754032,\"Type\":\"buy\"},{\"At\":1513202179,\"Amount\":0.0883,\"Price\":0.09581612,\"Type\":\"sell\"},{\"At\":1513189010,\"Amount\":0.0893,\"Price\":0.09882916,\"Type\":\"sell\"},{\"At\":1513186942,\"Amount\":0.00730506,\"Price\":0.09719006,\"Type\":\"sell\"},{\"At\":1513183484,\"Amount\":0.46468781,\"Price\":0.09789777,\"Type\":\"buy\"},{\"At\":1513178924,\"Amount\":0.00074275,\"Price\":0.09629144,\"Type\":\"buy\"},{\"At\":1513177161,\"Amount\":1.08895534,\"Price\":0.09425651,\"Type\":\"sell\"},{\"At\":1513173196,\"Amount\":1.5,\"Price\":0.09300635,\"Type\":\"sell\"},{\"At\":1513170846,\"Amount\":0.1001,\"Price\":0.09300635,\"Type\":\"sell\"},{\"At\":1513149811,\"Amount\":0.1041,\"Price\":0.09248524,\"Type\":\"sell\"},{\"At\":1513144880,\"Amount\":0.01,\"Price\":0.09206364,\"Type\":\"sell\"},{\"At\":1513137155,\"Amount\":0.12131813,\"Price\":0.0918,\"Type\":\"sell\"},{\"At\":1513129359,\"Amount\":0.0999,\"Price\":0.09335273,\"Type\":\"sell\"},{\"At\":1513126500,\"Amount\":0.01517647,\"Price\":0.09558192,\"Type\":\"buy\"},{\"At\":1513118124,\"Amount\":0.05728078,\"Price\":0.0921972,\"Type\":\"sell\"},{\"At\":1513111015,\"Amount\":0.58369166,\"Price\":0.0928678,\"Type\":\"buy\"},{\"At\":1513111013,\"Amount\":0.00644395,\"Price\":0.09286779,\"Type\":\"buy\"},{\"At\":1513107473,\"Amount\":0.11797539,\"Price\":0.09249268,\"Type\":\"buy\"},{\"At\":1513105655,\"Amount\":0.00118989,\"Price\":0.09252981,\"Type\":\"buy\"}]" 35 | } 36 | }] -------------------------------------------------------------------------------- /tests/fixtures/testFetchTrades@xbtce.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/cryptottlivewebapi.xbtce.net:8443\/api\/v1\/trade", 5 | "headers": { 6 | "Host": "cryptottlivewebapi.xbtce.net:8443", 7 | "Accept-Encoding": "gzip, deflate", 8 | "Authorization": "HMAC 68ef0552-3c37-4896-ba56-76173d9cd573:dK2jBXMTppAM57ZJ:1513211580313:cjAgQqkU0b7RKh3Fq22aOQ8sZvc93iVdiMlOrvCc370=" 9 | } 10 | }, 11 | "response": { 12 | "status": { 13 | "http_version": "1.1", 14 | "code": "200", 15 | "message": "OK" 16 | }, 17 | "headers": { 18 | "Content-Length": "22", 19 | "Content-Type": "application\/json; charset=utf-8", 20 | "Content-Encoding": "gzip", 21 | "Server": "Microsoft-HTTPAPI\/2.0", 22 | "Date": "Thu, 14 Dec 2017 00:33:28 GMT" 23 | }, 24 | "body": "[]" 25 | } 26 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@_1btcxe.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@acx.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/acx.io\/api\/api\/v2\/markets.json", 5 | "headers": { 6 | "Host": "acx.io" 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:30:54 GMT", 17 | "Content-Type": "application\/json", 18 | "Content-Length": "281", 19 | "Connection": "keep-alive", 20 | "Status": "200 OK", 21 | "Cache-Control": "max-age=0, private, must-revalidate", 22 | "Access-Control-Allow-Origin": "*", 23 | "X-Request-Id": "e42b5416-6f98-47c0-a6a8-0d982efc4f61", 24 | "ETag": "\"41d228ef432ccf084972a59ddff4e407\"", 25 | "X-Runtime": "0.004172", 26 | "X-Powered-By": "acx", 27 | "Server": "acx", 28 | "Strict-Transport-Security": "max-age=63072000", 29 | "X-Frame-Options": "DENY", 30 | "X-Content-Type-Options": "sniff" 31 | }, 32 | "body": "[{\"id\":\"btcaud\",\"name\":\"BTC\/AUD\",\"base_unit\":\"btc\",\"quote_unit\":\"aud\"},{\"id\":\"bchaud\",\"name\":\"BCH\/AUD\",\"base_unit\":\"bch\",\"quote_unit\":\"aud\"},{\"id\":\"ethaud\",\"name\":\"ETH\/AUD\",\"base_unit\":\"eth\",\"quote_unit\":\"aud\"},{\"id\":\"hsraud\",\"name\":\"HSR\/AUD\",\"base_unit\":\"hsr\",\"quote_unit\":\"aud\"}]" 33 | } 34 | }] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bit2c.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bitbank.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bitcoincoid.json: -------------------------------------------------------------------------------- 1 | [] -------------------------------------------------------------------------------- /tests/fixtures/testLoadMarkets@bitflyer.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "request": { 3 | "method": "GET", 4 | "url": "https:\/\/api.bitflyer.jp\/v1\/getmarkets", 5 | "headers": { 6 | "Host": "api.bitflyer.jp" 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:05 GMT", 17 | "Content-Type": "application\/json; charset=utf-8", 18 | "Transfer-Encoding": "chunked", 19 | "Connection": "keep-alive", 20 | "Set-Cookie": "__cfduid=d69bcb13758db34712c0e737a7442a23d1513211463; expires=Fri, 14-Dec-18 00:31:03 GMT; path=\/; domain=.bitflyer.jp; HttpOnly", 21 | "Cache-Control": "no-cache", 22 | "Pragma": "no-cache", 23 | "Expires": "-1", 24 | "X-AspNet-Version": "4.0.30319", 25 | "Request-Context": "appId=cid-v1:e4fbc941-a2df-48ac-bbac-f2180e904002", 26 | "X-Content-Type-Options": "nosniff", 27 | "X-XSS-Protection": "1; mode=block", 28 | "X-Frame-Options": "sameorigin", 29 | "Content-Security-Policy": "default-src http: https: ws: wss: data: 'unsafe-inline' 'unsafe-eval'", 30 | "Strict-Transport-Security": "max-age=31536000", 31 | "Server": "cloudflare-nginx", 32 | "CF-RAY": "3ccd0edeecc27c90-BEG", 33 | "Content-Encoding": "gzip" 34 | }, 35 | "body": "[{\"product_code\":\"BTC_JPY\"},{\"product_code\":\"FX_BTC_JPY\"},{\"product_code\":\"ETH_BTC\"},{\"product_code\":\"BCH_BTC\"},{\"product_code\":\"BTCJPY15DEC2017\",\"alias\":\"BTCJPY_MAT1WK\"},{\"product_code\":\"BTCJPY22DEC2017\",\"alias\":\"BTCJPY_MAT2WK\"}]" 36 | } 37 | },{ 38 | "request": { 39 | "method": "GET", 40 | "url": "https:\/\/api.bitflyer.jp\/v1\/getmarkets\/usa", 41 | "headers": { 42 | "Host": "api.bitflyer.jp" 43 | } 44 | }, 45 | "response": { 46 | "status": { 47 | "http_version": "2", 48 | "code": "403", 49 | "message": "" 50 | }, 51 | "headers": { 52 | "server": "AkamaiGHost", 53 | "mime-version": "1.0", 54 | "content-type": "text\/html", 55 | "content-length": "289", 56 | "expires": "Thu, 11 Jul 2019 09:25:26 GMT", 57 | "date": "Thu, 11 Jul 2019 09:25:26 GMT" 58 | }, 59 | "body": "<HTML><HEAD>\n<TITLE>Access Denied<\/TITLE>\n<\/HEAD><BODY>\n<H1>Access Denied<\/H1>\n \nYou don't have permission to access \"http://api.bitflyer.jp/v1/getmarkets/usa\" on this server.<P>\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 | [] --------------------------------------------------------------------------------