@proton/ccxt
Version:
A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
1,327 lines (1,326 loc) • 43.8 kB
JSON
{
"ace": {
"skip": "30/05: 504 Gateway Time-out",
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "temporary skip, because ids are numeric and we are in wip for numeric id tests",
"quoteId": "numeric",
"quote": "numeric",
"baseId": "numeric",
"base": "numeric",
"settleId": "numeric",
"settle": "numeric",
"active":"is undefined"
},
"fetchOrderBook": "needs reversion of amount/price",
"fetchL2OrderBook": "same"
}
},
"alpaca": {
"skipWs": true
},
"ascendex": {
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "broken currencies"
},
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided"
},
"fetchTickers": {
"bid":"messed bid-ask",
"ask":"messed bid-ask"
}
}
},
"bequant": {
"skipWs": true,
"skipMethods": {
"fetchTickers": {
"bid":"broken bid-ask",
"ask":"broken bid-ask"
}
}
},
"binance": {
"httpsProxy": "http://51.83.140.52:11230",
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "i.e. binance does not have currency code BCC",
"expiry": "expiry not set for future markets",
"expiryDatetime": "expiry not set for future markets"
},
"fetchCurrencies": {
"precision": "not provided in public api",
"networks": "not yet unified"
}
}
},
"binanceus": {
"skipMethods": {
"loadMarkets": {
"expiry": "expiry not set for future markets",
"expiryDatetime": "expiry not set for future markets"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"binancecoinm": {
"httpsProxy": "http://51.83.140.52:11230",
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"expiry": "expiry not set for future markets",
"expiryDatetime": "expiry not set for future markets"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"binanceusdm": {
"httpsProxy": "http://51.83.140.52:11230",
"skipWs": true,
"skipMethods": {
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"bit2c": {
"skipMethods": {
"loadMarkets": {
"precision": "not provided",
"active": "not provided",
"info":"null"
}
}
},
"tokocrypto": {
"httpsProxy": "http://51.83.140.52:11230",
"skipWs": true
},
"bitbank": {
"skip": "temporary outage"
},
"bitbay": {
"skipMethods": {
"loadMarkets": {
"expiry": "expiry not set for future markets",
"expiryDatetime": "expiry not set for future markets"
}
}
},
"bitbns": {
"skipMethods": {
"loadMarkets": {
"limits": "only one market has min>max limit",
"active": "not provided",
"currencyIdAndCode": "broken"
},
"fetchTickers": "unknown symbol might be returned"
}
},
"bitcoincom": {
"skipWs": true
},
"bitfinex": {
"skipWs": true,
"skipMethods": {
"loadMarkets": "linear and inverse values are same",
"fetchTickers": {
"symbol": "something broken with symbol",
"ask": "https://app.travis-ci.com/github/ccxt/ccxt/builds/262965121#L3179",
"bid": "same"
}
}
},
"bitfinex2": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "broken currencies"
},
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided"
},
"fetchOrderBook": "multiple bids might have same value",
"fetchL2OrderBook": "same",
"fetchTickers": "negative values"
}
},
"bitflyer": {
"skipMethods": {
"loadMarkets": "contract is true, but contractSize is undefined",
"fetchTrades": {
"side": "side key has an null value, but is expected to have a value"
}
}
},
"bitget": {
"skipMethods": {
"loadMarkets": {
"precision": "broken precision",
"limits": "limit max value is zero, lwer than min",
"contractSize": "not defined when contract",
"currencyIdAndCode": "broken currencies"
},
"fetchCurrencies": {
"precision": "not provided",
"withdraw": "not provided",
"deposit": "not provided"
},
"fetchTickers": {
"bid":"broken bid-ask",
"ask":"broken bid-ask",
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"bithumb": {
"skipMethods": {
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"bitmart": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"expiry":"expiry is expected to be > 0",
"settle": "not defined when contract",
"settleId": "not defined when contract",
"currencyIdAndCode": "broken currencies"
},
"fetchCurrencies": {
"precision":"not provided",
"networks": "missing"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "same"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "same"
},
"fetchL2OrderBook": "bid==ask , https://app.travis-ci.com/github/ccxt/ccxt/builds/263304041#L2170",
"fetchLOrderBook": "same"
}
},
"bitmex": {
"skipWs": true,
"skipMethods": {
"loadMarkets": "some market types are out of expected market-types",
"fetchOHLCV": "open might be greater than high",
"fetchTickers": "negative values"
}
},
"bitopro": {
"skipWs": true,
"skipMethods": {
"fetchCurrencies": {
"precision": "not provided",
"networks": "missing"
},
"loadMarkets": {
"currencyIdAndCode": "broken currencies"
}
}
},
"bitpanda": {
"skipWs": true,
"skipMethods": {
"fetchOrderBook": "some bid might be lower than next bid",
"fetchL2OrderBook": "same",
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided"
}
}
},
"bitrue": {
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "broken currencies",
"limits": "max is below min"
},
"fetchCurrencies": {
"precision": "not provided",
"withdraw": "not provided",
"deposit": "not provided"
},
"fetchTrades": {
"side": "not set"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"bitso": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"active": "not provided"
},
"fetchOHLCV": "randomly failing with 404 not found"
}
},
"bitstamp": {
"skipWs": true,
"skipMethods": {
"fetchOrderBook": "bid/ask might be 0",
"fetchL2OrderBook": "same",
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided"
},
"fetchTickers": {
"baseVolume": "baseVolume * low = 8.43e-6 * 3692.59081464 = 0.03112854056 < 0.0311285405674152",
"quoteVolume": "quoteVolume >= baseVolume * low <<< bitstamp fetchTickers"
}
}
},
"bitstamp1": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"info": "null",
"precision":"not provided",
"active": "not provided"
},
"fetchCurrencies":{
},
"fetchOrderBook": "bid/ask might be 0",
"fetchL2OrderBook": "same"
}
},
"bl3p": {
"skipMethods": {
"loadMarkets": {
"precision":"not provided",
"active": "not provided",
"info": "null"
},
"fetchTrades": {
"side": "side is undefined"
}
}
},
"bitvavo": {
"skipWs": true,
"skipMethods": {
"fetchCurrencies": {
"precision": "not provided",
"networks": "missing"
},
"loadMarkets": {
"currencyIdAndCode": "broken currencies"
},
"fetchTickers": {
"bid":"broken bid-ask",
"ask":"broken bid-ask"
}
}
},
"blockchaincom": {
"skip":"temporary outage",
"skipMethods": {
"loadMarkets": {
"taker":"not provided",
"maker":"not provided"
},
"fetchOrderBook": "bid should be greater than next bid",
"fetchL2OrderBook": "same"
}
},
"bkex": {
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "broken currencies",
"contractSize": "broken for some markets"
},
"fetchCurrencies": {
"precision": "not provided",
"networks": "missing"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchOHLCV": "open might be greater than high"
}
},
"bittrex": {
"skipWs": true,
"skipMethods": {
"fetchStatus": "frequent rate limit for this endpoint",
"fetchTickers": "bid might be set to 0",
"fetchTicker": "same",
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided",
"networks":"missing"
}
}
},
"btcbox": {
"skipMethods": {
"loadMarkets": {
"precision":"is undefined",
"active":"is undefined",
"info": "null"
},
"fetchOrderBook": "bids[0][0] (3787971.0) should be < than asks[0][0] (3787971.0) <<< btcbox ",
"fetchL2OrderBook": "bids[0][0] (3787971.0) should be < than asks[0][0] (3787971.0) <<< btcbox ",
"fetchTickers": {
"bid":"broken bid-ask",
"ask":"broken bid-ask"
},
"fetchTicker": {
"bid":"broken bid-ask",
"ask":"broken bid-ask"
}
}
},
"btcex": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"active": "is undefined",
"limits": "sometimes 'max' value is zero, lower than 'min'"
},
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided"
},
"fetchTickers": {
"bid": "messed bid-ask : https://app.travis-ci.com/github/ccxt/ccxt/builds/263319874#L2090",
"ask": "same as above"
},
"fetchTicker": {
"bid": "same as above",
"ask": "same as above"
}
}
},
"btcalpha": {
"skip": "USDT_USD high price is a negative number below zero breaking the assertion in the test",
"skipMethods": {
"fetchOrderBook": "bids[0][0] is not < asks[0][0]",
"fetchL2OrderBook": "same",
"fetchTickers": {
"percentage": "broken",
"bid": "messed bid-ask",
"ask": "messed bid-ask"
},
"fetchTicker": {
"percentage": "broken",
"bid": "messed bid-ask",
"ask": "messed bid-ask"
}
}
},
"btcmarkets": {
"skip": "04/05 under maintenance",
"skipMethods": {
"loadMarkets":{
"active":"is undefined"
},
"fetchOrderBook": "bid should be greater than next bid",
"fetchL2OrderBook": "same"
}
},
"btctradeua": {
"skip": "24/05 exchange not available",
"skipMethods": {
"loadMarkets": {
"precision":"is undefined",
"active":"is undefined",
"info":"null"
},
"fetchOrderBook": "bid should be greater than next bid",
"fetchL2OrderBook": "same"
}
},
"bybit": {
"httpsProxy": "http://51.83.140.52:11230",
"skipPhpAsync": "missing php async proxy",
"skipMethods": {
"fetchTickers": {
"symbol" :"returned symbol is not same as requested symbol. i.e. BTC/USDT:USDT vs BTC/USDT"
},
"fetchTicker": {
"symbol" :"same"
},
"fetchTrades": "endpoint return Internal System Error"
}
},
"buda": {
"skip": "forbidden location"
},
"bigone": {
"skipMethods": {
"fetchTickers": {
"bid": "broken bid-ask",
"ask": "broken bid-ask"
}
}
},
"coincheck": {
"skipMethods": {
"loadMarkets":{
"info":"not provided",
"precision":"not provided",
"active":"is undefined"
}
}
},
"coinbase": {
"skip": "private endpoints",
"skipMethods": {
"fetchCurrencies": {
"precision": "not provided"
},
"fetchTrades": "datetime is not same as timestamp"
}
},
"coinbasepro": {
"skipPhpAsync":true,
"skipMethods": {
"fetchStatus": "request timeout",
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided"
}
}
},
"coinbaseprime": {
"skipPhpAsync":true,
"skipMethods": {
"fetchStatus": "request timeout",
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided"
}
}
},
"coinone": {
"skipMethods": {
"loadMarkets": {
"active":"is undefined"
}
}
},
"coinspot": {
"skipMethods": {
"loadMarkets": "precision key has an null value, but is expected to have a value| taker key missing from structure (markets are created from constructor .options, so needs to fill with default values in base)",
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"coinsph": {
"skipMethods": {
"loadMarkets": {
"taker":"messed",
"maker":"messed"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"cex": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"active":"is undefined"
},
"fetchOHLCV": "unexpected issue",
"fetchCurrencies": {
"limits": "min is negative",
"withdraw": "not provided",
"deposit": "not provided",
"networks": "missing"
}
}
},
"coinex": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode":"broken",
"active":"is undefined"
}
}
},
"coinmate": {
"skipMethods": {
"loadMarkets": {
"active":"is undefined"
},
"fetchOrderBook": "ask should be less than next ask",
"fetchL2OrderBook": "same"
}
},
"cryptocom": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"limits":"max is below min",
"active":"is undefined",
"currencyIdAndCode": "from travis location (USA) these webapi endpoints cant be loaded"
},
"fetchTickers": "timestamp might be of 1970-01-01T00:00:00.000Z",
"fetchTicker": "same"
}
},
"currencycom": {
"skip": "17/06 exchange not available 503",
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"type": "unexpected market type",
"contractSize": "not defined when contract",
"settle": "not defined when contract",
"settleId": "not defined when contract"
},
"fetchTickers": {
"ask": "not above bid https://app.travis-ci.com/github/ccxt/ccxt/builds/263871244#L2163",
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"ask": "not above bid https://app.travis-ci.com/github/ccxt/ccxt/builds/263871244#L2163",
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"delta": {
"skipMethods": {
"loadMarkets": "expiryDatetime must be equal to expiry in iso8601 format",
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"deribit": {
"skipWs": true,
"skipMethods": {
"loadMarkets": "strike is set when option is not true",
"fetchTickers": "something wrong"
}
},
"flowbtc": {
"skipMethods": {
"fetchTrades": "timestamp is more than current utc timestamp",
"fetchOHLCV": "same"
}
},
"fmfwio": {
"skipMethods": {
"fetchCurrencies": {
"fee": "not provided"
},
"fetchTickers": {
"bid":"messed bid-ask",
"ask":"messed bid-ask"
}
}
},
"gemini": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "messed codes",
"active": "not provided"
},
"fetchCurrencies":{
"withdraw": "not provided",
"deposit": "not provided"
}
}
},
"hitbtc": {
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "messed codes"
},
"fetchCurrencies": {
"fee": "not provided"
},
"fetchTickers": {
"bid":"messed bid-ask",
"ask":"messed bid-ask"
}
}
},
"hitbtc3": {
"skipMethods": {
"loadMarkets": {
"limits": "messed min max",
"currencyIdAndCode": "messed codes"
},
"fetchCurrencies": {
"fee": "not provided"
},
"fetchTickers": {
"bid":"messed bid-ask",
"ask":"messed bid-ask"
}
}
},
"digifinex": {
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "messed codes"
},
"fetchCurrencies": {
"precision": "messed"
},
"fetchTicker": "unexpected symbol is being returned | safeMarket() requires a fourth argument for BTC_USDT to disambiguate between different markets with the same market id",
"fetchTickers": "unexpected symbol is being returned | safeMarket() requires a fourth argument for BTC_USDT to disambiguate between different markets with the same market id"
}
},
"gate": {
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "messed codes",
"fetchCurrencies": {
"fee":"not provided"
},
"limits": "max should be above min",
"contractSize": "broken for some markets",
"strike": "incorrect number type"
},
"fetchTrades": "timestamp is in decimal seconds like 1234567890.123",
"fetchTickers": {
"bid":"messed bid-ask",
"ask":"messed bid-ask",
"quoteVolume": "https://app.travis-ci.com/github/ccxt/ccxt/builds/262963390#L3138",
"baseVolume": "https://app.travis-ci.com/github/ccxt/ccxt/builds/262963390#L3138"
},
"fetchTicker": {
"bid":"same",
"ask":"same",
"quoteVolume": "same",
"baseVolume": "same"
}
}
},
"hollaex": {
"skipWs": true
},
"huobi": {
"skipPhpAsync": true,
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"limits":"messed",
"taker": "messed",
"maker": "messed",
"currencyIdAndCode": "messed codes"
},
"fetchCurrencies": {
"withdraw":"not provided",
"deposit":"not provided",
"precision":"is undefined",
"limits": "broken somewhere"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"bid":"messed bid-ask",
"ask":"messed bid-ask"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"bid":"messed bid-ask",
"ask":"messed bid-ask"
}
}
},
"huobijp": {
"skip": "29/06 fetchMarkets returns empty array",
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"limits": "messed"
},
"fetchCurrencies": {
"fee": "not defined",
"networks": "missing"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTrades": {
"fees": "missing"
}
}
},
"stex": {
"skip": "31/05 maintenance",
"skipMethods": {
"fetchCurrencies":{
"withdraw":"not provided",
"deposit":"not provided"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"bid":"messed bid-ask",
"ask":"messed bid-ask"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"bid":"messed bid-ask",
"ask":"messed bid-ask"
}
}
},
"probit": {
"skipWs": true,
"skipMethods": {
"loadMarkets":{
"currencyIdAndCode": "messed codes"
},
"fetchCurrencies": {
"limits": "messed"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"idex": {
"skipWs": true,
"skipMethods": {
"fetchCurrencies": {
"withdraw":"not provided",
"deposit":"not provided",
"networks": "missing"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"ask":"messed bid-ask",
"bid":"messed bid-ask"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"ask":"messed bid-ask",
"bid":"messed bid-ask"
}
}
},
"independentreserve": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"active":"is undefined"
},
"fetchTrades": {
"side":"side is undefined"
},
"fetchOrderBook": "bid should be greater than next bid",
"fetchL2OrderBook": "same"
}
},
"coinfalcon": {
"skipMethods": {
"fetchTickers": "negative values"
}
},
"kuna": {
"skip": "403 forbidden"
},
"kucoin": {
"skipWs": true,
"skipMethods":{
"loadMarkets": {
"currencyIdAndCode": "messed"
},
"fetchTickers": {
"bid":"messed bid-ask",
"ask":"messed bid-ask",
"quoteVolume": "quoteVolume <= baseVolume * high https://app.travis-ci.com/github/ccxt/ccxt/builds/263304041#L2190",
"baseVolume": "same"
}
}
},
"kucoinfutures": {
"skipWs": true,
"skipMethods":{
"loadMarkets": {
"currencyIdAndCode": "messed"
}
}
},
"latoken": {
"skipMethods":{
"loadMarkets": {
"currencyIdAndCode": "messed"
},
"fetchCurrencies": {
"withdraw":"not provided",
"deposit":"not provided"
},
"fetchTickers": "negative values"
}
},
"luno": {
"skipMethods": {
"fetchOrderBook": "bid should be greater than next bid",
"fetchL2OrderBook": "same"
}
},
"lbank": {
"skipMethods": {
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker":{
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTrades":{
"fees": "mising"
}
}
},
"lbank2": {
"skipMethods": {
"loadMarkets": "settle must be defined when contract is true",
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"lykke": {
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "messed codes"
},
"fetchCurrencies": {
"fee":"not provided"
},
"fetchOrderBook": "bid should be greater than next bid",
"fetchL2OrderBook": "same",
"fetchTickers": "negative values",
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"mercado": {
"skipMethods": {
"loadMarkets": "needs migration to v4, as raw info is not being used. granular can be used for skipping 'info'",
"fetchOrderBook": "bid > ask",
"fetchL2OrderBook": "bid > ask",
"fetchTickers": "bid > ask",
"fetchTicker": "bid > ask",
"fetchCurrencies": "info key is missing"
}
},
"novadax": {
"skipMethods": {
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"ndax": {
"skip": "https://api.ndax.io:8443/AP/GetProducts?omsId=1 503 Service Unavailable No server is available to handle this request.",
"skipWs": true,
"skipMethods": {
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided"
}
}
},
"mexc": {
"skipWs": true,
"skipPhpAsync": "Connection ended before receiving response...",
"skipMethods": {
"loadMarkets":{
"currencyIdAndCode": "messed"
},
"fetchCurrencies":{
"precision":"is undefined"
},
"fetchTrades": {
"side": "side is not buy/sell"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"bid":"messed bid-ask",
"ask":"messed bid-ask"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"bid":"messed bid-ask",
"ask":"messed bid-ask"
}
}
},
"oceanex": {
"skipMethods": {
"loadMarkets":{
"active":"is undefined"
},
"fetchOrderBooks": "fetchOrderBooks returned 0 length"
}
},
"paymium": {
"skipMethods": {
"loadMarkets": {
"precision": "not provided",
"active": "not provided",
"info": "null"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"phemex": {
"skipMethods": {
"loadMarkets": {
"contractSize": "broken for some markets",
"active": "not provided",
"currencyIdAndCode": "messed",
"taker": "null",
"maker": "null"
},
"fetchCurrencies": {
"withdraw": "not provided",
"deposit": "not provided"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"ask": "messed bid-ask",
"bid": "messed bid-ask"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing",
"ask": "messed bid-ask",
"bid": "messed bid-ask"
}
}
},
"okcoin": {
"skip": "502 Bad Gateway, probably location restricted, or might be temporary",
"skipWs": true,
"skipMethods": {
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"exmo": {
"skipWs": true,
"skipMethods": {
"loadMarkets": {
"active":"is undefined"
},
"fetchCurrencies":{
"info":"null",
"withdraw":"not provided",
"deposit":"not provided"
},
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"poloniex": {
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "some currencies does not exist in currencies"
},
"fetchCurrencies": {
"withdraw": "undefined",
"deposit": "undefined",
"networks": "networks key is missing",
"precision": "not provided"
},
"fetchTrades": {
"side": "side is not buy/sell"
},
"fetchTicker": {
"quoteVolume": "quoteVolume <= baseVolume * high | https://app.travis-ci.com/github/ccxt/ccxt/builds/263884643#L2462",
"baseVolume": "same"
},
"fetchTickers": {
"quoteVolume": "same",
"baseVolume": "same"
}
}
},
"protondex": {
"skipMethods": {
"fetchTrades": "ide key is expected to be one from: [buy,sell]",
"fetchOrderBook": "bid should be less than next bid",
"fetchOHLCV": "unexpected issue, works for regular calls from example"
}
},
"okx": {
"skipMethods": {
"loadMarkets": "linear & inverse must not be same",
"fetchCurrencies": {
"info": "null"
},
"fetchTickers": {
"quoteVolume": "quoteVolume <= baseVolume * high : https://app.travis-ci.com/github/ccxt/ccxt/builds/263319874#L2132",
"baseVolume": "same"
},
"fetchTicker": {
"quoteVolume": "quoteVolume <= baseVolume * high <<< okx fetchTicker"
}
}
},
"tidex": {
"skip": "exchange does not seem to respond"
},
"kraken": {
"skipWs": true,
"skipMethods": {
"fetchCurrencies": {
"withdraw": "undefined",
"deposit": "undefined"
},
"fetchTickers": {
"quoteVolume": "quoteVolume <= baseVolume * high is failing",
"baseVolume": "quoteVolume <= baseVolume * high is failing"
}
}
},
"krakenfutures": {
"skipMethods": {
"loadMarkets": {
"type":"unexpected market type",
"limits": "messed",
"active":"is undefined"
},
"fetchCurrencies": {
"withdraw": "undefined",
"deposit": "undefined"
},
"fetchTickers": "timeouts this call specifically",
"fetchTicker": "timeouts this call specifically"
},
"timeout": 120000
},
"upbit": {
"skipWs": true,
"skipMethods": {
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"ripio": {
"skip": "503 Service Unavailable, might be location issue",
"skipWs": true
},
"timex": {
"skipMethods": {
"loadMarkets": {
"currencyIdAndCode": "messed"
},
"fetchCurrencies": {
"fee":"is undefined",
"networks": "key not present"
},
"fetchTrades": {
"fees": "missingn from structure"
},
"fetchTickers": "temporary issues"
}
},
"wavesexchange": {
"skipMethods": {
"loadMarkets": "missing key",
"fetchOHLCV": "index 1 (open price) is undefined",
"fetchTickers": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
},
"fetchTicker": {
"quoteVolume": "quoteVolume >= baseVolume * low is failing",
"baseVolume": "quoteVolume >= baseVolume * low is failing"
}
}
},
"wazirx": {
"skipWs": true,
"skip": "rate limit blocks"
},
"whitebit": {
"skipWs": true,
"skipMethods": {
"loadMarkets": "contractSize must be undefined when contract is false",
"fetchCurrencies": {
"info": "missing key",
"precision":"not provided",
"fee":"is undefined",
"networks":"missing",
"limits": "broken for some markets"
}
}
},
"woo": {
"skipPhpAsync": true,
"skipMethods":{
"loadMarkets":{
"active": "undefined",
"currencyIdAndCode": "messed"
},
"fetchCurrencies":{
"withdraw": "undefined",
"deposit": "undefined"
}
}
},
"xt": {
"skip": "fetchFundingRate returns 502 Bad Gateway",
"skipMethods": {
"loadMarkets": "expiry and expiryDatetime are defined for non future/options markets",
"fetchCurrencies": {
"precision":"is undefined",
"withdraw": "undefined",
"deposit": "undefined",
"fee": "undefined"
},
"fetchTickers": "some outaded contracts, eg RICHARLISONGBALL2022/USDT:USDT-221219 return bid > ask",
"fetchTicker": "same",
"fetchTrades": {
"side": "messed"
}
}
},
"yobit": {
"skipMethods": {
"loadMarkets":{
"currencyIdAndCode": "messed"
},
"fetchTickers": "all tickers request exceedes max url length"
}
},
"zaif": {
"skipMethods": {
"fetchCurrencies": {
"info": "key is missing"
},
"loadMarkets": {
"active": "is undefined"
}
}
},
"zipmex": {
"skipWs": true
},
"zonda": {
"skipMethods": {
"loadMarkets": {
"active":"is undefined"
}
}
}
}