UNPKG

@jalmonter/ccxt

Version:

A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges

1,442 lines (1,440 loc) 55.1 kB
{ "ace": { "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": { "skip": "private endpoints", "skipWs": true }, "ascendex": { "skipPhpAsync": true, "skipMethods": { "loadMarkets": { "currencyIdAndCode": "broken currencies" }, "fetchCurrencies": { "withdraw": "not provided", "deposit": "not provided" }, "fetchTickers": { "low":"16 Aug - happened weird negative 24hr low", "bid":"messed bid-ask", "ask":"messed bid-ask" } } }, "bequant": { "skipWs": true, "skipMethods": { "loadMarkets": { "currencyIdAndCode": "https://app.travis-ci.com/github/ccxt/ccxt/builds/264802937#L2194" }, "fetchTickers": { "bid":"broken bid-ask", "ask":"broken bid-ask" } } }, "binance": { "httpProxy": "http://5.75.153.75:8002", "skipPhpAsync": true, "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" }, "fetchStatus": "private endpoints" } }, "binancecoinm": { "httpProxy": "http://5.75.153.75:8002", "skipPhpAsync": true, "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": { "httpProxy": "http://5.75.153.75:8002", "skipPhpAsync": true, "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" }, "fetchPositions": "currently returns a lot of default/non open positions", "fetchLedger": { "account": "empty", "status": "not provided", "before": "not provided", "after": "not provided", "fee": "not provided", "code": "not provided", "referenceId": "not provided" }, "fetchBalance": "tmp skip" } }, "bit2c": { "skip": "temporary certificate issues", "until": "2023-11-25", "skipMethods": { "loadMarkets": { "precision": "not provided", "active": "not provided", "taker": "not provided", "maker": "not provided", "info":"null" }, "fetchOrderBook": { "bid":"sometimes equals to zero: https://app.travis-ci.com/github/ccxt/ccxt/builds/267809189#L2540", "ask":"same" } } }, "tokocrypto": { "httpProxy": "http://5.75.153.75:8002", "skipPhpAsync": true, "skipWs": true }, "bitbank": { }, "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": { "skip": "fetchMarkets returning undefined", "until": "2023-09-05", "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", "fetchPositions": { "stopLossPrice": "undefined", "takeProfitPrice": "undefined", "marginRatio": "undefined", "lastPrice": "undefined", "collateral": "undefined", "hedged": "undefined", "lastUpdateTimestamp": "undefined", "entryPrice": "undefined", "markPrice": "undefined", "leverage": "undefined", "initialMargin": "undefined", "maintenanceMargin": "can be zero for default position", "notional": "can be zero for default position", "contracts": "contracts", "unrealizedPnl": "undefined", "realizedPnl": "undefined", "liquidationPrice": "can be 0", "percentage": "might be 0" }, "fetchMyTrades": { "side": "sometimes side is not available" }, "fetchLedger": { "referenceId": "undefined", "amount": "undefined", "before":"not provided", "tag": "undefined", "tagFrom": "undefined", "tagTo": "undefined", "type": "unmapped types", "timestamp": "default value might be invalid" }, "fetchDepositsWithdrawals": { "currency": "undefined", "currencyIdAndCode": "messes codes" }, "fetchTransactions": "skip" } }, "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", "bid": "bid ask crossed", "ask": "bid ask crossed" }, "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" }, "fetchTicker": { "bid": "greater than ask https://app.travis-ci.com/github/ccxt/ccxt/builds/264241638#L3027", "baseVolume": "baseVolume * low = 8.43e-6 * 3692.59081464 = 0.03112854056 < 0.0311285405674152", "quoteVolume": "quoteVolume >= baseVolume * low <<< bitstamp fetchTickers" }, "fetchTickers": { "bid": "same", "baseVolume": "same", "quoteVolume": "same" } } }, "bitstamp1": { "skipWs": true, "skipMethods": { "loadMarkets": { "info": "null", "precision":"not provided", "active": "not provided" }, "fetchOrderBook": "bid/ask might be 0", "fetchL2OrderBook": "same", "fetchTicker": { "bid": "greater than ask https://app.travis-ci.com/github/ccxt/ccxt/builds/264241638#L3027" }, "fetchTickers": { "bid": "same" } } }, "bl3p": { "skipMethods": { "loadMarkets": { "precision":"not provided", "active": "not provided", "info": "null" }, "fetchTrades": { "side": "side is undefined" } } }, "bitvavo": { "httpsProxy": "http://51.83.140.52:11230", "skipWs": true, "skipMethods": { "fetchCurrencies": { "precision": "not provided", "networks": "missing" }, "loadMarkets": { "currencyIdAndCode": "broken currencies", "taker": "is undefined", "maker": "is undefined" }, "fetchTickers": { "bid":"broken bid-ask", "ask":"broken bid-ask", "quoteVolume": "quoteVolume >= baseVolume * low is failing https://app.travis-ci.com/github/ccxt/ccxt/builds/266144312#L2220" } } }, "blockchaincom": { "skipWs": "https://app.travis-ci.com/github/ccxt/ccxt/builds/265225134#L2304", "skipMethods": { "loadMarkets": { "taker":"not provided", "maker":"not provided" }, "fetchOrderBook": "bid should be greater than next bid", "fetchL2OrderBook": "same" } }, "bkex": { "skipMethods": { "fetchOrderBook": "system busy", "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" } }, "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": true, "skipMethods": { "fetchOrderBook": "bids[0][0] is not < asks[0][0]", "fetchL2OrderBook": "same", "fetchTickers": { "symbol": "https://app.travis-ci.com/github/ccxt/ccxt/builds/265171549#L2518", "percentage": "broken", "bid": "messed bid-ask", "ask": "messed bid-ask" }, "fetchTicker": { "percentage": "", "symbol": "", "bid": "", "ask": "" } } }, "btcmarkets": { "skipMethods": { "loadMarkets":{ "active":"is undefined" }, "fetchOrderBook": "bid should be greater than next bid", "fetchL2OrderBook": "same" } }, "btctradeua": { "skipMethods": { "loadMarkets": { "precision":"is undefined", "active":"is undefined", "taker":"is undefined", "maker":"is undefined", "info":"null" }, "fetchOrderBook": "bid should be greater than next bid", "fetchL2OrderBook": "same" } }, "btcturk": { "skipMethods": { "fetchOrderBook": "https://app.travis-ci.com/github/ccxt/ccxt/builds/263287870#L2201" } }, "bybit": { "skipWs": "temporarily skipped because of RL issues. after proxy merge, turn it back on", "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", "fetchCurrencies": { "currencyIdAndCode": "temp skip" }, "loadMarkets": { "currencyIdAndCode": "temp skip" }, "fetchPositions": "currently returns a lot of default/non open positions", "fetchLedger": { "account": "account is not provided", "status": "status is not provided", "fee": "undefined" }, "fetchOpenInterestHistory": { "openInterestAmount": "openInterestAmount is not provided" }, "fetchBorrowRate": "does not work with unified account" } }, "buda": { "httpProxy": "http://5.75.153.75:8002" }, "bigone": { "skipMethods": { "fetchCurrencies": { "withdraw": "not provided", "deposit": "not provided" }, "fetchTickers": { "bid": "broken bid-ask", "ask": "broken bid-ask", "baseVolume": "negative value" } } }, "coincheck": { "skipMethods": { "loadMarkets":{ "info":"not provided", "precision":"not provided", "active":"is undefined", "taker":"is undefined", "maker":"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": { "ask": "broken bid-ask", "bid": "broken bid-ask", "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, "skipPhpAsync": true, "skipMethods": { "proxies": "probably they do not permit our proxy location", "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, "skipPhpAsync": true, "skipMethods": { "proxies": "probably they do not permit our proxy", "loadMarkets": { "limits":"max is below min", "active":"is undefined", "currencyIdAndCode": "from travis location (USA) these webapi endpoints cant be loaded" }, "fetchTickers": { "timestamp": "timestamp might be of 1970-01-01T00:00:00.000Z", "quoteVolume": "can't be infered" }, "fetchTicker": { "timestamp": "timestamp might be of 1970-01-01T00:00:00.000Z", "quoteVolume": "can't be infered" }, "fetchPositions": { "entryPrice": "entryPrice is not provided", "markPrice": "undefined", "notional": "undefined", "leverage": "undefined", "liquidationPrice": "undefined", "marginMode": "undefined", "percentage": "undefined", "marginRatio": "undefined", "stopLossPrice": "undefined", "takeProfitPrice": "undefined", "maintenanceMargin": "undefined", "initialMarginPercentage": "undefined", "maintenanceMarginPercentage": "undefined", "hedged": "undefined", "side": "undefined", "contracts": "undefined" }, "fetchAccounts": { "type": "type is not provided", "code": "not provided" } } }, "currencycom": { "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", "fetchOrderBook": "ask crossing bids test failing", "fetchTickers": { "quoteVolume": "quoteVolume >= baseVolume * low is failing", "baseVolume": "quoteVolume >= baseVolume * low is failing", "ask": "failing the test", "bid": "failing the test" }, "fetchTicker": { "quoteVolume": "quoteVolume >= baseVolume * low is failing", "baseVolume": "quoteVolume >= baseVolume * low is failing", "ask": "failing the test", "bid": "failing the test" } } }, "deribit": { "skipWs": true, "skipMethods": { "fetchCurrencies": "deposit/withdraw not provided", "loadMarkets": "strike is set when option is not true", "fetchTickers": "something wrong", "fetchBalance": "does not add up", "fetchPositions": { "percentage": "undefined", "hedged": "undefined", "stopLossPrice": "undefined", "takeProfitPrice": "undefined", "lastPrice": "undefined", "collateral": "undefined", "marginMode": "undefined", "marginRatio": "undefined", "contracts": "undefined", "id": "undefined" }, "fetchDeposits": { "id": "undefined", "network": "undefined", "addressFrom": "undefined", "tag": "undefined", "tagTo": "undefined", "tagFrom": "undefined", "fee": "undefined" } } }, "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", "fetchLeverageTiers": { "minNotional": "undefined", "currencyIdAndCode": "messed codes", "currency": "messed" }, "fetchBorrowRates": { "currencyIdAndCode": "messed codes", "currency": "messed" }, "fetchBorrowInterest": "symbol is messed", "fetchPositions": { "percentage": "undefined", "stopLossPrice": "undefined", "takeProfitPrice": "undefined", "collateral": "undefined", "initialMargin": "undefined", "initialMarginPercentage": "undefined", "hedged": "undefined", "id": "undefined", "notional":"undefined" }, "fetchBalance": "tmp skip" } }, "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": "timestamp is in decimals" }, "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" }, "fetchPositions": "currently returns a lot of default/non open positions", "fetchLedger": { "currency": "undefined", "status": "undefined", "fee": "undefined", "account": "undefined", "referenceAccount": "undefined", "referenceId": "undefined" }, "fetchTradingFees": "sandbox does not have this endpoint", "fetchDeposits": "sandbox does not have this endpoint", "fetchWithdrawals": "sandbox does not have this endpoint" } }, "hollaex": { "skipWs": true }, "htx": { "skipMethods": { "loadMarkets": { "limits":"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": { "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": { "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": "needs fixing", "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": "temporary glitches with this exchange: https://app.travis-ci.com/github/ccxt/ccxt/builds/267517440#L2304", "httpProxy": "http://5.75.153.75:8002", "skipPhpAsync": true, "skipMethods": { "loadMarkets": { "active":"is undefined" }, "fetchCurrencies": { "deposit":"is undefined", "withdraw":"is undefined", "active":"is undefined", "precision":"somewhat strange atm https://app.travis-ci.com/github/ccxt/ccxt/builds/267515280#L2337" } } }, "kucoin": { "skipWs": true, "skipMethods":{ "fetchCurrencies": { "depositForNonCrypto": "not provided", "withdrawForNonCrypto": "not provided" }, "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" }, "fetchPositions": { "percentage": "percentage is not provided" } } }, "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": { "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", "ask": "https://app.travis-ci.com/github/ccxt/ccxt/builds/266029139", "bid": "https://app.travis-ci.com/github/ccxt/ccxt/builds/266029139" }, "fetchTicker": { "quoteVolume": "quoteVolume >= baseVolume * low is failing", "baseVolume": "quoteVolume >= baseVolume * low is failing" } } }, "ndax": { "skipWs": true, "skipMethods": { "fetchCurrencies": { "withdraw": "not provided", "deposit": "not provided" } } }, "mexc": { "skipWs": true, "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" }, "fetchAccounts": { "type": "type is not provided" }, "fetchLeverageTiers": "swap only supported" } }, "oceanex": { "skipMethods": { "loadMarkets":{ "active":"is undefined" }, "fetchOrderBooks": "fetchOrderBooks returned 0 length" } }, "p2b": { "httpsProxy": "http://51.83.140.52:11230", "skipMethods": { "loadMarkets": "invalid URL", "fetchTrades": "requires order id" } }, "paymium": { "skip": "exchange is down", "skipMethods": { "loadMarkets": { "precision": "not provided", "active": "not provided", "info": "null", "taker":"is undefined", "maker":"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" } } }, "phemex": { "skipPhpAsync": true, "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": { "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" } } }, "okx": { "skipMethods": { "loadMarkets": "linear & inverse must not be same", "fetchCurrencies": { "info": "null", "currencyIdAndCode": "temp skip" }, "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" }, "fetchBorrowRate": "some fields that we can't skip missing", "fetchBorrowRates": "same" } }, "tidex": { "skip": "exchange unavailable, probably api upgrade needed" }, "kraken": { "skipWs": true, "skipPhpAsync": true, "skipMethods": { "loadMarkets": { "currencyIdAndCode": "https://app.travis-ci.com/github/ccxt/ccxt/builds/267515280#L2314" }, "fetchCurrencies": { "withdraw": "undefined", "deposit": "undefined", "currencyIdAndCode": "same as in loadMarkets" }, "fetchTickers": { "quoteVolume": "quoteVolume <= baseVolume * high is failing", "baseVolume": "quoteVolume <= baseVolume * high is failing" } } }, "krakenfutures": { "skip": "continious timeouts https://app.travis-ci.com/github/ccxt/ccxt/builds/265225134#L2431", "skipWs": true, "skipMethods": { "loadMarkets": "skip loadMarkets", "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": { "httpProxy": "http://5.75.153.75:8002", "skipWs": true }, "timex": { "skipMethods": { "loadMarkets": { "currencyIdAndCode": "messed" }, "fetchCurrencies": { "fee":"is undefined", "networks": "key not present" }, "fetchTrades": { "fees": "missingn from struc