ccxt 4.2.81 → 4.2.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +90 -0
- package/README.md +4 -4
- package/dist/ccxt.browser.js +1085 -188
- package/dist/ccxt.browser.min.js +2 -2
- package/dist/cjs/ccxt.js +3 -1
- package/dist/cjs/src/bitget.js +1 -0
- package/dist/cjs/src/bithumb.js +1 -0
- package/dist/cjs/src/bitstamp.js +42 -15
- package/dist/cjs/src/delta.js +147 -0
- package/dist/cjs/src/deribit.js +20 -2
- package/dist/cjs/src/gemini.js +2 -1
- package/dist/cjs/src/hyperliquid.js +9 -8
- package/dist/cjs/src/kucoinfutures.js +147 -8
- package/dist/cjs/src/okx.js +139 -0
- package/dist/cjs/src/pro/bithumb.js +388 -0
- package/dist/cjs/src/pro/bitmart.js +1 -1
- package/dist/cjs/src/pro/bybit.js +1 -1
- package/dist/cjs/src/pro/cex.js +18 -5
- package/dist/cjs/src/pro/okx.js +2 -1
- package/dist/cjs/src/pro/p2b.js +14 -4
- package/dist/cjs/src/pro/woo.js +1 -1
- package/js/ccxt.d.ts +4 -1
- package/js/ccxt.js +3 -1
- package/js/src/abstract/bitstamp.d.ts +1 -1
- package/js/src/ace.d.ts +1 -1
- package/js/src/alpaca.d.ts +1 -1
- package/js/src/ascendex.d.ts +1 -1
- package/js/src/bigone.d.ts +1 -1
- package/js/src/binance.d.ts +1 -1
- package/js/src/bingx.d.ts +1 -1
- package/js/src/bitbank.d.ts +1 -1
- package/js/src/bitbns.d.ts +1 -1
- package/js/src/bitfinex.d.ts +1 -1
- package/js/src/bitfinex2.d.ts +1 -1
- package/js/src/bitflyer.d.ts +1 -1
- package/js/src/bitget.d.ts +1 -1
- package/js/src/bitget.js +1 -0
- package/js/src/bithumb.d.ts +1 -1
- package/js/src/bithumb.js +1 -0
- package/js/src/bitmart.d.ts +1 -1
- package/js/src/bitmex.d.ts +1 -1
- package/js/src/bitopro.d.ts +1 -1
- package/js/src/bitrue.d.ts +1 -1
- package/js/src/bitso.d.ts +1 -1
- package/js/src/bitstamp.d.ts +1 -1
- package/js/src/bitstamp.js +42 -15
- package/js/src/bitteam.d.ts +1 -1
- package/js/src/bitvavo.d.ts +1 -1
- package/js/src/blockchaincom.d.ts +1 -1
- package/js/src/blofin.d.ts +1 -1
- package/js/src/btcalpha.d.ts +1 -1
- package/js/src/btcmarkets.d.ts +1 -1
- package/js/src/btcturk.d.ts +1 -1
- package/js/src/bybit.d.ts +1 -1
- package/js/src/cex.d.ts +1 -1
- package/js/src/coinbase.d.ts +1 -1
- package/js/src/coinbaseinternational.d.ts +1 -1
- package/js/src/coinbasepro.d.ts +1 -1
- package/js/src/coinex.d.ts +1 -1
- package/js/src/coinlist.d.ts +1 -1
- package/js/src/coinmate.d.ts +1 -1
- package/js/src/coinmetro.d.ts +1 -1
- package/js/src/coinone.d.ts +1 -1
- package/js/src/coinsph.d.ts +1 -1
- package/js/src/cryptocom.d.ts +1 -1
- package/js/src/currencycom.d.ts +1 -1
- package/js/src/delta.d.ts +22 -2
- package/js/src/delta.js +147 -0
- package/js/src/deribit.d.ts +2 -2
- package/js/src/deribit.js +20 -2
- package/js/src/digifinex.d.ts +1 -1
- package/js/src/exmo.d.ts +1 -1
- package/js/src/gate.d.ts +1 -1
- package/js/src/gemini.d.ts +1 -1
- package/js/src/gemini.js +2 -1
- package/js/src/hitbtc.d.ts +1 -1
- package/js/src/hollaex.d.ts +1 -1
- package/js/src/htx.d.ts +1 -1
- package/js/src/huobijp.d.ts +1 -1
- package/js/src/hyperliquid.d.ts +1 -1
- package/js/src/hyperliquid.js +9 -8
- package/js/src/idex.d.ts +1 -1
- package/js/src/independentreserve.d.ts +1 -1
- package/js/src/indodax.d.ts +1 -1
- package/js/src/kraken.d.ts +1 -1
- package/js/src/krakenfutures.d.ts +1 -1
- package/js/src/kucoin.d.ts +1 -1
- package/js/src/kucoinfutures.d.ts +3 -2
- package/js/src/kucoinfutures.js +147 -8
- package/js/src/kuna.d.ts +1 -1
- package/js/src/latoken.d.ts +1 -1
- package/js/src/lbank.d.ts +1 -1
- package/js/src/luno.d.ts +1 -1
- package/js/src/lykke.d.ts +1 -1
- package/js/src/mercado.d.ts +1 -1
- package/js/src/mexc.d.ts +1 -1
- package/js/src/ndax.d.ts +1 -1
- package/js/src/novadax.d.ts +1 -1
- package/js/src/oceanex.d.ts +1 -1
- package/js/src/okcoin.d.ts +1 -1
- package/js/src/okx.d.ts +23 -2
- package/js/src/okx.js +139 -0
- package/js/src/onetrading.d.ts +1 -1
- package/js/src/p2b.d.ts +1 -1
- package/js/src/phemex.d.ts +1 -1
- package/js/src/poloniex.d.ts +1 -1
- package/js/src/poloniexfutures.d.ts +1 -1
- package/js/src/pro/bithumb.d.ts +19 -0
- package/js/src/pro/bithumb.js +389 -0
- package/js/src/pro/bitmart.js +1 -1
- package/js/src/pro/bybit.js +1 -1
- package/js/src/pro/cex.js +18 -5
- package/js/src/pro/okx.js +2 -1
- package/js/src/pro/p2b.d.ts +2 -0
- package/js/src/pro/p2b.js +14 -4
- package/js/src/pro/woo.js +1 -1
- package/js/src/probit.d.ts +1 -1
- package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
- package/js/src/timex.d.ts +1 -1
- package/js/src/tokocrypto.d.ts +1 -1
- package/js/src/tradeogre.d.ts +1 -1
- package/js/src/upbit.d.ts +1 -1
- package/js/src/wavesexchange.d.ts +1 -1
- package/js/src/wazirx.d.ts +1 -1
- package/js/src/whitebit.d.ts +1 -1
- package/js/src/woo.d.ts +1 -1
- package/js/src/yobit.d.ts +1 -1
- package/js/src/zaif.d.ts +1 -1
- package/js/src/zonda.d.ts +1 -1
- package/package.json +1 -1
- package/skip-tests.json +17 -4
package/js/src/kucoinfutures.js
CHANGED
|
@@ -85,7 +85,7 @@ export default class kucoinfutures extends kucoin {
|
|
|
85
85
|
'fetchPremiumIndexOHLCV': false,
|
|
86
86
|
'fetchStatus': true,
|
|
87
87
|
'fetchTicker': true,
|
|
88
|
-
'fetchTickers':
|
|
88
|
+
'fetchTickers': true,
|
|
89
89
|
'fetchTime': true,
|
|
90
90
|
'fetchTrades': true,
|
|
91
91
|
'fetchTransactionFee': false,
|
|
@@ -756,6 +756,85 @@ export default class kucoinfutures extends kucoin {
|
|
|
756
756
|
//
|
|
757
757
|
return this.parseTicker(response['data'], market);
|
|
758
758
|
}
|
|
759
|
+
async fetchTickers(symbols = undefined, params = {}) {
|
|
760
|
+
/**
|
|
761
|
+
* @method
|
|
762
|
+
* @name kucoinfutures#fetchTickers
|
|
763
|
+
* @description fetches price tickers for multiple markets, statistical information calculated over the past 24 hours for each market
|
|
764
|
+
* @see https://www.kucoin.com/docs/rest/futures-trading/market-data/get-symbols-list
|
|
765
|
+
* @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
|
|
766
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
767
|
+
* @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
|
|
768
|
+
*/
|
|
769
|
+
await this.loadMarkets();
|
|
770
|
+
symbols = this.marketSymbols(symbols);
|
|
771
|
+
const response = await this.futuresPublicGetContractsActive(params);
|
|
772
|
+
//
|
|
773
|
+
// {
|
|
774
|
+
// "code": "200000",
|
|
775
|
+
// "data": {
|
|
776
|
+
// "symbol": "ETHUSDTM",
|
|
777
|
+
// "rootSymbol": "USDT",
|
|
778
|
+
// "type": "FFWCSX",
|
|
779
|
+
// "firstOpenDate": 1591086000000,
|
|
780
|
+
// "expireDate": null,
|
|
781
|
+
// "settleDate": null,
|
|
782
|
+
// "baseCurrency": "ETH",
|
|
783
|
+
// "quoteCurrency": "USDT",
|
|
784
|
+
// "settleCurrency": "USDT",
|
|
785
|
+
// "maxOrderQty": 1000000,
|
|
786
|
+
// "maxPrice": 1000000.0000000000,
|
|
787
|
+
// "lotSize": 1,
|
|
788
|
+
// "tickSize": 0.05,
|
|
789
|
+
// "indexPriceTickSize": 0.01,
|
|
790
|
+
// "multiplier": 0.01,
|
|
791
|
+
// "initialMargin": 0.01,
|
|
792
|
+
// "maintainMargin": 0.005,
|
|
793
|
+
// "maxRiskLimit": 1000000,
|
|
794
|
+
// "minRiskLimit": 1000000,
|
|
795
|
+
// "riskStep": 500000,
|
|
796
|
+
// "makerFeeRate": 0.00020,
|
|
797
|
+
// "takerFeeRate": 0.00060,
|
|
798
|
+
// "takerFixFee": 0.0000000000,
|
|
799
|
+
// "makerFixFee": 0.0000000000,
|
|
800
|
+
// "settlementFee": null,
|
|
801
|
+
// "isDeleverage": true,
|
|
802
|
+
// "isQuanto": true,
|
|
803
|
+
// "isInverse": false,
|
|
804
|
+
// "markMethod": "FairPrice",
|
|
805
|
+
// "fairMethod": "FundingRate",
|
|
806
|
+
// "fundingBaseSymbol": ".ETHINT8H",
|
|
807
|
+
// "fundingQuoteSymbol": ".USDTINT8H",
|
|
808
|
+
// "fundingRateSymbol": ".ETHUSDTMFPI8H",
|
|
809
|
+
// "indexSymbol": ".KETHUSDT",
|
|
810
|
+
// "settlementSymbol": "",
|
|
811
|
+
// "status": "Open",
|
|
812
|
+
// "fundingFeeRate": 0.000535,
|
|
813
|
+
// "predictedFundingFeeRate": 0.002197,
|
|
814
|
+
// "openInterest": "8724443",
|
|
815
|
+
// "turnoverOf24h": 341156641.03354263,
|
|
816
|
+
// "volumeOf24h": 74833.54000000,
|
|
817
|
+
// "markPrice": 4534.07,
|
|
818
|
+
// "indexPrice":4531.92,
|
|
819
|
+
// "lastTradePrice": 4545.4500000000,
|
|
820
|
+
// "nextFundingRateTime": 25481884,
|
|
821
|
+
// "maxLeverage": 100,
|
|
822
|
+
// "sourceExchanges": [ "huobi", "Okex", "Binance", "Kucoin", "Poloniex", "Hitbtc" ],
|
|
823
|
+
// "premiumsSymbol1M": ".ETHUSDTMPI",
|
|
824
|
+
// "premiumsSymbol8H": ".ETHUSDTMPI8H",
|
|
825
|
+
// "fundingBaseSymbol1M": ".ETHINT",
|
|
826
|
+
// "fundingQuoteSymbol1M": ".USDTINT",
|
|
827
|
+
// "lowPrice": 4456.90,
|
|
828
|
+
// "highPrice": 4674.25,
|
|
829
|
+
// "priceChgPct": 0.0046,
|
|
830
|
+
// "priceChg": 21.15
|
|
831
|
+
// }
|
|
832
|
+
// }
|
|
833
|
+
//
|
|
834
|
+
const data = this.safeList(response, 'data', []);
|
|
835
|
+
const tickers = this.parseTickers(data, symbols);
|
|
836
|
+
return this.filterByArrayTickers(tickers, 'symbol', symbols);
|
|
837
|
+
}
|
|
759
838
|
parseTicker(ticker, market = undefined) {
|
|
760
839
|
//
|
|
761
840
|
// {
|
|
@@ -775,16 +854,76 @@ export default class kucoinfutures extends kucoin {
|
|
|
775
854
|
// }
|
|
776
855
|
// }
|
|
777
856
|
//
|
|
778
|
-
|
|
857
|
+
// from fetchTickers
|
|
858
|
+
//
|
|
859
|
+
// {
|
|
860
|
+
// symbol: "XBTUSDTM",
|
|
861
|
+
// rootSymbol: "USDT",
|
|
862
|
+
// type: "FFWCSX",
|
|
863
|
+
// firstOpenDate: 1585555200000,
|
|
864
|
+
// expireDate: null,
|
|
865
|
+
// settleDate: null,
|
|
866
|
+
// baseCurrency: "XBT",
|
|
867
|
+
// quoteCurrency: "USDT",
|
|
868
|
+
// settleCurrency: "USDT",
|
|
869
|
+
// maxOrderQty: 1000000,
|
|
870
|
+
// maxPrice: 1000000,
|
|
871
|
+
// lotSize: 1,
|
|
872
|
+
// tickSize: 0.1,
|
|
873
|
+
// indexPriceTickSize: 0.01,
|
|
874
|
+
// multiplier: 0.001,
|
|
875
|
+
// initialMargin: 0.008,
|
|
876
|
+
// maintainMargin: 0.004,
|
|
877
|
+
// maxRiskLimit: 100000,
|
|
878
|
+
// minRiskLimit: 100000,
|
|
879
|
+
// riskStep: 50000,
|
|
880
|
+
// makerFeeRate: 0.0002,
|
|
881
|
+
// takerFeeRate: 0.0006,
|
|
882
|
+
// takerFixFee: 0,
|
|
883
|
+
// makerFixFee: 0,
|
|
884
|
+
// settlementFee: null,
|
|
885
|
+
// isDeleverage: true,
|
|
886
|
+
// isQuanto: true,
|
|
887
|
+
// isInverse: false,
|
|
888
|
+
// markMethod: "FairPrice",
|
|
889
|
+
// fairMethod: "FundingRate",
|
|
890
|
+
// fundingBaseSymbol: ".XBTINT8H",
|
|
891
|
+
// fundingQuoteSymbol: ".USDTINT8H",
|
|
892
|
+
// fundingRateSymbol: ".XBTUSDTMFPI8H",
|
|
893
|
+
// indexSymbol: ".KXBTUSDT",
|
|
894
|
+
// settlementSymbol: "",
|
|
895
|
+
// status: "Open",
|
|
896
|
+
// fundingFeeRate: 0.000297,
|
|
897
|
+
// predictedFundingFeeRate: 0.000327,
|
|
898
|
+
// fundingRateGranularity: 28800000,
|
|
899
|
+
// openInterest: "8033200",
|
|
900
|
+
// turnoverOf24h: 659795309.2524643,
|
|
901
|
+
// volumeOf24h: 9998.54,
|
|
902
|
+
// markPrice: 67193.51,
|
|
903
|
+
// indexPrice: 67184.81,
|
|
904
|
+
// lastTradePrice: 67191.8,
|
|
905
|
+
// nextFundingRateTime: 20022985,
|
|
906
|
+
// maxLeverage: 125,
|
|
907
|
+
// premiumsSymbol1M: ".XBTUSDTMPI",
|
|
908
|
+
// premiumsSymbol8H: ".XBTUSDTMPI8H",
|
|
909
|
+
// fundingBaseSymbol1M: ".XBTINT",
|
|
910
|
+
// fundingQuoteSymbol1M: ".USDTINT",
|
|
911
|
+
// lowPrice: 64041.6,
|
|
912
|
+
// highPrice: 67737.3,
|
|
913
|
+
// priceChgPct: 0.0447,
|
|
914
|
+
// priceChg: 2878.7
|
|
915
|
+
// }
|
|
916
|
+
//
|
|
779
917
|
const marketId = this.safeString(ticker, 'symbol');
|
|
780
918
|
market = this.safeMarket(marketId, market, '-');
|
|
919
|
+
const last = this.safeString2(ticker, 'price', 'lastTradePrice');
|
|
781
920
|
const timestamp = this.safeIntegerProduct(ticker, 'ts', 0.000001);
|
|
782
921
|
return this.safeTicker({
|
|
783
922
|
'symbol': market['symbol'],
|
|
784
923
|
'timestamp': timestamp,
|
|
785
924
|
'datetime': this.iso8601(timestamp),
|
|
786
|
-
'high':
|
|
787
|
-
'low':
|
|
925
|
+
'high': this.safeString(ticker, 'highPrice'),
|
|
926
|
+
'low': this.safeString(ticker, 'lowPrice'),
|
|
788
927
|
'bid': this.safeString(ticker, 'bestBidPrice'),
|
|
789
928
|
'bidVolume': this.safeString(ticker, 'bestBidSize'),
|
|
790
929
|
'ask': this.safeString(ticker, 'bestAskPrice'),
|
|
@@ -794,11 +933,11 @@ export default class kucoinfutures extends kucoin {
|
|
|
794
933
|
'close': last,
|
|
795
934
|
'last': last,
|
|
796
935
|
'previousClose': undefined,
|
|
797
|
-
'change':
|
|
798
|
-
'percentage':
|
|
936
|
+
'change': this.safeString(ticker, 'priceChg'),
|
|
937
|
+
'percentage': this.safeString(ticker, 'priceChgPct'),
|
|
799
938
|
'average': undefined,
|
|
800
|
-
'baseVolume':
|
|
801
|
-
'quoteVolume':
|
|
939
|
+
'baseVolume': this.safeString(ticker, 'volumeOf24h'),
|
|
940
|
+
'quoteVolume': this.safeString(ticker, 'turnoverOf24h'),
|
|
802
941
|
'info': ticker,
|
|
803
942
|
}, market);
|
|
804
943
|
}
|
package/js/src/kuna.d.ts
CHANGED
|
@@ -34,7 +34,7 @@ export default class kuna extends Exchange {
|
|
|
34
34
|
};
|
|
35
35
|
networks: {};
|
|
36
36
|
};
|
|
37
|
-
fetchMarkets(params?: {}): Promise<
|
|
37
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
38
38
|
fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
39
39
|
parseTicker(ticker: any, market?: Market): Ticker;
|
|
40
40
|
fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
package/js/src/latoken.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export default class latoken extends Exchange {
|
|
|
8
8
|
describe(): any;
|
|
9
9
|
nonce(): number;
|
|
10
10
|
fetchTime(params?: {}): Promise<number>;
|
|
11
|
-
fetchMarkets(params?: {}): Promise<
|
|
11
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
12
12
|
fetchCurrenciesFromCache(params?: {}): Promise<any>;
|
|
13
13
|
fetchCurrencies(params?: {}): Promise<{}>;
|
|
14
14
|
fetchBalance(params?: {}): Promise<Balances>;
|
package/js/src/lbank.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, Ord
|
|
|
7
7
|
export default class lbank extends Exchange {
|
|
8
8
|
describe(): any;
|
|
9
9
|
fetchTime(params?: {}): Promise<number>;
|
|
10
|
-
fetchMarkets(params?: {}): Promise<
|
|
10
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
11
11
|
fetchSpotMarkets(params?: {}): Promise<any[]>;
|
|
12
12
|
fetchSwapMarkets(params?: {}): Promise<any[]>;
|
|
13
13
|
parseTicker(ticker: any, market?: Market): Ticker;
|
package/js/src/luno.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Order, OrderBook, OrderSide, Orde
|
|
|
6
6
|
*/
|
|
7
7
|
export default class luno extends Exchange {
|
|
8
8
|
describe(): any;
|
|
9
|
-
fetchMarkets(params?: {}): Promise<
|
|
9
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
10
10
|
fetchAccounts(params?: {}): Promise<Account[]>;
|
|
11
11
|
parseBalance(response: any): Balances;
|
|
12
12
|
fetchBalance(params?: {}): Promise<Balances>;
|
package/js/src/lykke.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { IndexType, Balances, Currency, Int, Market, Order, OrderBook, Orde
|
|
|
7
7
|
export default class lykke extends Exchange {
|
|
8
8
|
describe(): any;
|
|
9
9
|
fetchCurrencies(params?: {}): Promise<{}>;
|
|
10
|
-
fetchMarkets(params?: {}): Promise<
|
|
10
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
11
11
|
parseTicker(ticker: any, market?: Market): Ticker;
|
|
12
12
|
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
13
13
|
fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
package/js/src/mercado.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, Ord
|
|
|
6
6
|
*/
|
|
7
7
|
export default class mercado extends Exchange {
|
|
8
8
|
describe(): any;
|
|
9
|
-
fetchMarkets(params?: {}): Promise<
|
|
9
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
10
10
|
fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
11
11
|
parseTicker(ticker: any, market?: Market): Ticker;
|
|
12
12
|
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
package/js/src/mexc.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export default class mexc extends Exchange {
|
|
|
15
15
|
}>;
|
|
16
16
|
fetchTime(params?: {}): Promise<number>;
|
|
17
17
|
fetchCurrencies(params?: {}): Promise<{}>;
|
|
18
|
-
fetchMarkets(params?: {}): Promise<
|
|
18
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
19
19
|
fetchSpotMarkets(params?: {}): Promise<any[]>;
|
|
20
20
|
fetchSwapMarkets(params?: {}): Promise<any[]>;
|
|
21
21
|
fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
package/js/src/ndax.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export default class ndax extends Exchange {
|
|
|
8
8
|
describe(): any;
|
|
9
9
|
signIn(params?: {}): Promise<any>;
|
|
10
10
|
fetchCurrencies(params?: {}): Promise<{}>;
|
|
11
|
-
fetchMarkets(params?: {}): Promise<
|
|
11
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
12
12
|
parseMarket(market: any): Market;
|
|
13
13
|
parseOrderBook(orderbook: any, symbol: any, timestamp?: any, bidsKey?: string, asksKey?: string, priceKey?: IndexType, amountKey?: IndexType, countOrIdKey?: IndexType): OrderBook;
|
|
14
14
|
fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
package/js/src/novadax.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, Orde
|
|
|
7
7
|
export default class novadax extends Exchange {
|
|
8
8
|
describe(): any;
|
|
9
9
|
fetchTime(params?: {}): Promise<number>;
|
|
10
|
-
fetchMarkets(params?: {}): Promise<
|
|
10
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
11
11
|
parseMarket(market: any): Market;
|
|
12
12
|
parseTicker(ticker: any, market?: Market): Ticker;
|
|
13
13
|
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
package/js/src/oceanex.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type { Balances, Dictionary, Int, Market, Num, OHLCV, Order, OrderBook, O
|
|
|
6
6
|
*/
|
|
7
7
|
export default class oceanex extends Exchange {
|
|
8
8
|
describe(): any;
|
|
9
|
-
fetchMarkets(params?: {}): Promise<
|
|
9
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
10
10
|
parseMarket(market: any): Market;
|
|
11
11
|
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
12
12
|
fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
package/js/src/okcoin.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, Orde
|
|
|
7
7
|
export default class okcoin extends Exchange {
|
|
8
8
|
describe(): any;
|
|
9
9
|
fetchTime(params?: {}): Promise<number>;
|
|
10
|
-
fetchMarkets(params?: {}): Promise<
|
|
10
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
11
11
|
parseMarket(market: any): Market;
|
|
12
12
|
safeNetwork(networkId: any): string;
|
|
13
13
|
fetchCurrencies(params?: {}): Promise<{}>;
|
package/js/src/okx.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import Exchange from './abstract/okx.js';
|
|
2
|
-
import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account } from './base/types.js';
|
|
2
|
+
import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account, OptionChain, Option } from './base/types.js';
|
|
3
3
|
/**
|
|
4
4
|
* @class okx
|
|
5
5
|
* @augments Exchange
|
|
@@ -20,7 +20,7 @@ export default class okx extends Exchange {
|
|
|
20
20
|
}>;
|
|
21
21
|
fetchTime(params?: {}): Promise<number>;
|
|
22
22
|
fetchAccounts(params?: {}): Promise<Account[]>;
|
|
23
|
-
fetchMarkets(params?: {}): Promise<
|
|
23
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
24
24
|
parseMarket(market: any): Market;
|
|
25
25
|
fetchMarketsByType(type: any, params?: {}): Promise<MarketInterface[]>;
|
|
26
26
|
safeNetwork(networkId: any): string;
|
|
@@ -315,5 +315,26 @@ export default class okx extends Exchange {
|
|
|
315
315
|
info: any;
|
|
316
316
|
};
|
|
317
317
|
closePosition(symbol: string, side?: OrderSide, params?: {}): Promise<Order>;
|
|
318
|
+
fetchOption(symbol: string, params?: {}): Promise<Option>;
|
|
319
|
+
fetchOptionChain(code: string, params?: {}): Promise<OptionChain>;
|
|
320
|
+
parseOption(chain: any, currency?: Currency, market?: Market): {
|
|
321
|
+
info: any;
|
|
322
|
+
currency: any;
|
|
323
|
+
symbol: string;
|
|
324
|
+
timestamp: number;
|
|
325
|
+
datetime: string;
|
|
326
|
+
impliedVolatility: any;
|
|
327
|
+
openInterest: any;
|
|
328
|
+
bidPrice: number;
|
|
329
|
+
askPrice: number;
|
|
330
|
+
midPrice: any;
|
|
331
|
+
markPrice: any;
|
|
332
|
+
lastPrice: number;
|
|
333
|
+
underlyingPrice: any;
|
|
334
|
+
change: any;
|
|
335
|
+
percentage: any;
|
|
336
|
+
baseVolume: number;
|
|
337
|
+
quoteVolume: any;
|
|
338
|
+
};
|
|
318
339
|
handleErrors(httpCode: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
|
|
319
340
|
}
|
package/js/src/okx.js
CHANGED
|
@@ -97,6 +97,8 @@ export default class okx extends Exchange {
|
|
|
97
97
|
'fetchOpenInterestHistory': true,
|
|
98
98
|
'fetchOpenOrder': undefined,
|
|
99
99
|
'fetchOpenOrders': true,
|
|
100
|
+
'fetchOption': true,
|
|
101
|
+
'fetchOptionChain': true,
|
|
100
102
|
'fetchOrder': true,
|
|
101
103
|
'fetchOrderBook': true,
|
|
102
104
|
'fetchOrderBooks': false,
|
|
@@ -7413,6 +7415,143 @@ export default class okx extends Exchange {
|
|
|
7413
7415
|
const order = this.safeValue(data, 0);
|
|
7414
7416
|
return this.parseOrder(order, market);
|
|
7415
7417
|
}
|
|
7418
|
+
async fetchOption(symbol, params = {}) {
|
|
7419
|
+
/**
|
|
7420
|
+
* @method
|
|
7421
|
+
* @name okx#fetchOption
|
|
7422
|
+
* @description fetches option data that is commonly found in an option chain
|
|
7423
|
+
* @see https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-ticker
|
|
7424
|
+
* @param {string} symbol unified market symbol
|
|
7425
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
7426
|
+
* @returns {object} an [option chain structure]{@link https://docs.ccxt.com/#/?id=option-chain-structure}
|
|
7427
|
+
*/
|
|
7428
|
+
await this.loadMarkets();
|
|
7429
|
+
const market = this.market(symbol);
|
|
7430
|
+
const request = {
|
|
7431
|
+
'instId': market['id'],
|
|
7432
|
+
};
|
|
7433
|
+
const response = await this.publicGetMarketTicker(this.extend(request, params));
|
|
7434
|
+
//
|
|
7435
|
+
// {
|
|
7436
|
+
// "code": "0",
|
|
7437
|
+
// "msg": "",
|
|
7438
|
+
// "data": [
|
|
7439
|
+
// {
|
|
7440
|
+
// "instType": "OPTION",
|
|
7441
|
+
// "instId": "BTC-USD-241227-60000-P",
|
|
7442
|
+
// "last": "",
|
|
7443
|
+
// "lastSz": "0",
|
|
7444
|
+
// "askPx": "",
|
|
7445
|
+
// "askSz": "0",
|
|
7446
|
+
// "bidPx": "",
|
|
7447
|
+
// "bidSz": "0",
|
|
7448
|
+
// "open24h": "",
|
|
7449
|
+
// "high24h": "",
|
|
7450
|
+
// "low24h": "",
|
|
7451
|
+
// "volCcy24h": "0",
|
|
7452
|
+
// "vol24h": "0",
|
|
7453
|
+
// "ts": "1711176035035",
|
|
7454
|
+
// "sodUtc0": "",
|
|
7455
|
+
// "sodUtc8": ""
|
|
7456
|
+
// }
|
|
7457
|
+
// ]
|
|
7458
|
+
// }
|
|
7459
|
+
//
|
|
7460
|
+
const result = this.safeList(response, 'data', []);
|
|
7461
|
+
const chain = this.safeDict(result, 0, {});
|
|
7462
|
+
return this.parseOption(chain, undefined, market);
|
|
7463
|
+
}
|
|
7464
|
+
async fetchOptionChain(code, params = {}) {
|
|
7465
|
+
/**
|
|
7466
|
+
* @method
|
|
7467
|
+
* @name okx#fetchOptionChain
|
|
7468
|
+
* @description fetches data for an underlying asset that is commonly found in an option chain
|
|
7469
|
+
* @see https://www.okx.com/docs-v5/en/#order-book-trading-market-data-get-tickers
|
|
7470
|
+
* @param {string} currency base currency to fetch an option chain for
|
|
7471
|
+
* @param {object} [params] extra parameters specific to the exchange API endpoint
|
|
7472
|
+
* @param {string} [params.uly] the underlying asset, can be obtained from fetchUnderlyingAssets ()
|
|
7473
|
+
* @returns {object} a list of [option chain structures]{@link https://docs.ccxt.com/#/?id=option-chain-structure}
|
|
7474
|
+
*/
|
|
7475
|
+
await this.loadMarkets();
|
|
7476
|
+
const currency = this.currency(code);
|
|
7477
|
+
const request = {
|
|
7478
|
+
'uly': currency['code'] + '-USD',
|
|
7479
|
+
'instType': 'OPTION',
|
|
7480
|
+
};
|
|
7481
|
+
const response = await this.publicGetMarketTickers(this.extend(request, params));
|
|
7482
|
+
//
|
|
7483
|
+
// {
|
|
7484
|
+
// "code": "0",
|
|
7485
|
+
// "msg": "",
|
|
7486
|
+
// "data": [
|
|
7487
|
+
// {
|
|
7488
|
+
// "instType": "OPTION",
|
|
7489
|
+
// "instId": "BTC-USD-240323-52000-C",
|
|
7490
|
+
// "last": "",
|
|
7491
|
+
// "lastSz": "0",
|
|
7492
|
+
// "askPx": "",
|
|
7493
|
+
// "askSz": "0",
|
|
7494
|
+
// "bidPx": "",
|
|
7495
|
+
// "bidSz": "0",
|
|
7496
|
+
// "open24h": "",
|
|
7497
|
+
// "high24h": "",
|
|
7498
|
+
// "low24h": "",
|
|
7499
|
+
// "volCcy24h": "0",
|
|
7500
|
+
// "vol24h": "0",
|
|
7501
|
+
// "ts": "1711176207008",
|
|
7502
|
+
// "sodUtc0": "",
|
|
7503
|
+
// "sodUtc8": ""
|
|
7504
|
+
// },
|
|
7505
|
+
// ]
|
|
7506
|
+
// }
|
|
7507
|
+
//
|
|
7508
|
+
const result = this.safeList(response, 'data', []);
|
|
7509
|
+
return this.parseOptionChain(result, undefined, 'instId');
|
|
7510
|
+
}
|
|
7511
|
+
parseOption(chain, currency = undefined, market = undefined) {
|
|
7512
|
+
//
|
|
7513
|
+
// {
|
|
7514
|
+
// "instType": "OPTION",
|
|
7515
|
+
// "instId": "BTC-USD-241227-60000-P",
|
|
7516
|
+
// "last": "",
|
|
7517
|
+
// "lastSz": "0",
|
|
7518
|
+
// "askPx": "",
|
|
7519
|
+
// "askSz": "0",
|
|
7520
|
+
// "bidPx": "",
|
|
7521
|
+
// "bidSz": "0",
|
|
7522
|
+
// "open24h": "",
|
|
7523
|
+
// "high24h": "",
|
|
7524
|
+
// "low24h": "",
|
|
7525
|
+
// "volCcy24h": "0",
|
|
7526
|
+
// "vol24h": "0",
|
|
7527
|
+
// "ts": "1711176035035",
|
|
7528
|
+
// "sodUtc0": "",
|
|
7529
|
+
// "sodUtc8": ""
|
|
7530
|
+
// }
|
|
7531
|
+
//
|
|
7532
|
+
const marketId = this.safeString(chain, 'instId');
|
|
7533
|
+
market = this.safeMarket(marketId, market);
|
|
7534
|
+
const timestamp = this.safeInteger(chain, 'ts');
|
|
7535
|
+
return {
|
|
7536
|
+
'info': chain,
|
|
7537
|
+
'currency': undefined,
|
|
7538
|
+
'symbol': market['symbol'],
|
|
7539
|
+
'timestamp': timestamp,
|
|
7540
|
+
'datetime': this.iso8601(timestamp),
|
|
7541
|
+
'impliedVolatility': undefined,
|
|
7542
|
+
'openInterest': undefined,
|
|
7543
|
+
'bidPrice': this.safeNumber(chain, 'bidPx'),
|
|
7544
|
+
'askPrice': this.safeNumber(chain, 'askPx'),
|
|
7545
|
+
'midPrice': undefined,
|
|
7546
|
+
'markPrice': undefined,
|
|
7547
|
+
'lastPrice': this.safeNumber(chain, 'last'),
|
|
7548
|
+
'underlyingPrice': undefined,
|
|
7549
|
+
'change': undefined,
|
|
7550
|
+
'percentage': undefined,
|
|
7551
|
+
'baseVolume': this.safeNumber(chain, 'volCcy24h'),
|
|
7552
|
+
'quoteVolume': undefined,
|
|
7553
|
+
};
|
|
7554
|
+
}
|
|
7416
7555
|
handleErrors(httpCode, reason, url, method, headers, body, response, requestHeaders, requestBody) {
|
|
7417
7556
|
if (!response) {
|
|
7418
7557
|
return undefined; // fallback to default error handler
|
package/js/src/onetrading.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export default class onetrading extends Exchange {
|
|
|
8
8
|
describe(): any;
|
|
9
9
|
fetchTime(params?: {}): Promise<number>;
|
|
10
10
|
fetchCurrencies(params?: {}): Promise<{}>;
|
|
11
|
-
fetchMarkets(params?: {}): Promise<
|
|
11
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
12
12
|
parseMarket(market: any): Market;
|
|
13
13
|
fetchTradingFees(params?: {}): Promise<any>;
|
|
14
14
|
fetchPublicTradingFees(params?: {}): Promise<{}>;
|
package/js/src/p2b.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { Int, Num, OHLCV, Order, OrderSide, OrderType, Str, Strings, Ticker
|
|
|
7
7
|
*/
|
|
8
8
|
export default class p2b extends Exchange {
|
|
9
9
|
describe(): any;
|
|
10
|
-
fetchMarkets(params?: {}): Promise<
|
|
10
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
11
11
|
parseMarket(market: any): Market;
|
|
12
12
|
fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
13
13
|
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
package/js/src/phemex.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export default class phemex extends Exchange {
|
|
|
9
9
|
parseSafeNumber(value?: any): any;
|
|
10
10
|
parseSwapMarket(market: any): import("./base/types.js").MarketInterface;
|
|
11
11
|
parseSpotMarket(market: any): import("./base/types.js").MarketInterface;
|
|
12
|
-
fetchMarkets(params?: {}): Promise<
|
|
12
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
13
13
|
fetchCurrencies(params?: {}): Promise<{}>;
|
|
14
14
|
customParseBidAsk(bidask: any, priceKey?: number, amountKey?: number, market?: Market): number[];
|
|
15
15
|
customParseOrderBook(orderbook: any, symbol: any, timestamp?: any, bidsKey?: string, asksKey?: string, priceKey?: number, amountKey?: number, market?: Market): any;
|
package/js/src/poloniex.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export default class poloniex extends Exchange {
|
|
|
9
9
|
parseOHLCV(ohlcv: any, market?: Market): OHLCV;
|
|
10
10
|
fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
|
|
11
11
|
loadMarkets(reload?: boolean, params?: {}): Promise<import("./base/types.js").Dictionary<import("./base/types.js").MarketInterface>>;
|
|
12
|
-
fetchMarkets(params?: {}): Promise<
|
|
12
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
13
13
|
parseMarket(market: any): Market;
|
|
14
14
|
fetchTime(params?: {}): Promise<number>;
|
|
15
15
|
parseTicker(ticker: any, market?: Market): Ticker;
|
|
@@ -6,7 +6,7 @@ import type { Balances, FundingHistory, Int, Market, Num, OHLCV, Order, OrderBoo
|
|
|
6
6
|
*/
|
|
7
7
|
export default class poloniexfutures extends Exchange {
|
|
8
8
|
describe(): any;
|
|
9
|
-
fetchMarkets(params?: {}): Promise<
|
|
9
|
+
fetchMarkets(params?: {}): Promise<Market[]>;
|
|
10
10
|
parseMarket(market: any): Market;
|
|
11
11
|
parseTicker(ticker: any, market?: Market): Ticker;
|
|
12
12
|
fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import bithumbRest from '../bithumb.js';
|
|
2
|
+
import type { Int, OrderBook, Ticker, Trade, Strings, Tickers } from '../base/types.js';
|
|
3
|
+
import Client from '../base/ws/Client.js';
|
|
4
|
+
export default class bithumb extends bithumbRest {
|
|
5
|
+
describe(): any;
|
|
6
|
+
watchTicker(symbol: string, params?: {}): Promise<Ticker>;
|
|
7
|
+
watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
|
|
8
|
+
handleTicker(client: Client, message: any): void;
|
|
9
|
+
parseWsTicker(ticker: any, market?: any): Ticker;
|
|
10
|
+
watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
|
|
11
|
+
handleOrderBook(client: Client, message: any): void;
|
|
12
|
+
handleDelta(orderbook: any, delta: any): void;
|
|
13
|
+
handleDeltas(orderbook: any, deltas: any): void;
|
|
14
|
+
watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
|
|
15
|
+
handleTrades(client: any, message: any): void;
|
|
16
|
+
parseWsTrade(trade: any, market?: any): Trade;
|
|
17
|
+
handleErrorMessage(client: Client, message: any): boolean;
|
|
18
|
+
handleMessage(client: Client, message: any): void;
|
|
19
|
+
}
|