ccxt 4.0.68 → 4.0.70

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 CHANGED
@@ -1,3 +1,149 @@
1
+ ## 4.0.68 (2023-08-19)
2
+
3
+ * wavesexchange string math [7c6166f5ed](https://github.com/ccxt/ccxt/commits/7c6166f5ed601b0702d6e1fed82c0a15d1cd824f)
4
+ * wavesexchange.parseOrderBookSide safety checks [67c6d5a7bc](https://github.com/ccxt/ccxt/commits/67c6d5a7bc99511770e567fb003cf45050c8a30c)
5
+ * wavesexchange.parseOrderBookSide fix error related to toString transpilation [df976bc895](https://github.com/ccxt/ccxt/commits/df976bc895db52e661df908ede9ae951b62126fa)
6
+ * wavesexchange minor fix [9897bc5e57](https://github.com/ccxt/ccxt/commits/9897bc5e57dfc2946d75710df599ccdfe3b5a5e9)
7
+ * wavesexchange customPriceToPrecision customAmountToPrecision currencyToPrecisiontype fixes [669f692e10](https://github.com/ccxt/ccxt/commits/669f692e103192ab3af75a127e5f18282f566158)
8
+ * bittrex [de5a2827ff](https://github.com/ccxt/ccxt/commits/de5a2827ff73facd73a83ad71f17d7ead71fe8b8)
9
+ * rename [be4038f890](https://github.com/ccxt/ccxt/commits/be4038f890901013c56571a29599ee0ccbe2a331)
10
+ * reorganize [d26267a91c](https://github.com/ccxt/ccxt/commits/d26267a91ca54fb37e0d7f57bee1753e1bc2590f)
11
+ * remove [947b5193f3](https://github.com/ccxt/ccxt/commits/947b5193f3e503ed37f8dbb0f05406b51cbdc2ea)
12
+ * exception [d42b8ad5f7](https://github.com/ccxt/ccxt/commits/d42b8ad5f701ed408d50cf6727d01ce4652db259)
13
+ * fix(bitfinex2): ws auth [53d645df2a](https://github.com/ccxt/ccxt/commits/53d645df2ae7e23ef1a37a8081ce4ab469ccb865)
14
+ * fix(bitget): ws auth [12b9f8ac40](https://github.com/ccxt/ccxt/commits/12b9f8ac40556cfae2416eaa2b137ff67fa16ed2)
15
+ * fix(bitmart): ws auth [d4b92900f9](https://github.com/ccxt/ccxt/commits/d4b92900f92288eaceb0f4abf4887ce6869b982e)
16
+ * test.ts [e45c7be90e](https://github.com/ccxt/ccxt/commits/e45c7be90e2a2a4cd7b64f068dfd3226ddfcc8e6)
17
+ * test.php [229fd8248e](https://github.com/ccxt/ccxt/commits/229fd8248eb7e250b596a4f290558a70b022f592)
18
+ * test.py [11b37bc1a1](https://github.com/ccxt/ccxt/commits/11b37bc1a120a7274c93646109c69cc5b2f9cf86)
19
+ * minor [afda518f8e](https://github.com/ccxt/ccxt/commits/afda518f8e467faa727aca5195edcf3ae621ce5f)
20
+ * loadmarkets fix [38530b0c35](https://github.com/ccxt/ccxt/commits/38530b0c35364dc0b437605130a7d41bfa29c180)
21
+ * list [a16d0a4f31](https://github.com/ccxt/ccxt/commits/a16d0a4f31dbcd8b1131905327f6f8ead0ee42f4)
22
+ * rename to maxRetries [29e6bde601](https://github.com/ccxt/ccxt/commits/29e6bde60120187b231e7fa8d4d7140838e16304)
23
+ * add ws exceptions [c3406a6c61](https://github.com/ccxt/ccxt/commits/c3406a6c61c46eb4e60465f33f77230bfdcb9f2a)
24
+ * asserts [a3e9f0567d](https://github.com/ccxt/ccxt/commits/a3e9f0567dc872b797f73712ccbbe531c21a2f09)
25
+ * ts [6d503735a6](https://github.com/ccxt/ccxt/commits/6d503735a6157b578fe7ce704f17721731b8bcfa)
26
+ * ts [4acc22c4d6](https://github.com/ccxt/ccxt/commits/4acc22c4d6fee8fddd7c2dd106e7cdc88a58a68f)
27
+ * replace toString with numberToString [623d70431c](https://github.com/ccxt/ccxt/commits/623d70431cbcd72e88824c6b7c507c05b79fef15)
28
+ * replace toString() [e6e1b4d219](https://github.com/ccxt/ccxt/commits/e6e1b4d2191445604e0c22ac8c14ce85adde3b1f)
29
+ * fix(bybit): market() override [3a2be92fff](https://github.com/ccxt/ccxt/commits/3a2be92fff15f673ee0234c3ac0d8b6e4c6b34f3)
30
+ * feat(coinbasepro): add watchTickers [a21b01af22](https://github.com/ccxt/ccxt/commits/a21b01af2258ca6b6bad7f3f3ca2fa3d1bc411b0)
31
+ * 4.0.68 [6e870665d0](https://github.com/ccxt/ccxt/commits/6e870665d04cd5a0cf14f9cecc65856c4ef81463)
32
+
33
+
34
+ ## 4.0.67 (2023-08-18)
35
+
36
+ * fix(bitget): default ohlcv limit [a81e422e1f](https://github.com/ccxt/ccxt/commits/a81e422e1f266221545ac17c7c6167dcec397f02)
37
+ * fix(bybit): watchTickers market selection [8123a0db32](https://github.com/ccxt/ccxt/commits/8123a0db32431dc04afa2c1d95c06292f85c57a8)
38
+ * fix conflict [55acae23ab](https://github.com/ccxt/ccxt/commits/55acae23ab51dfab8abd391f6dfddf1c5af9930e)
39
+ * fix docs [9550ec6c8c](https://github.com/ccxt/ccxt/commits/9550ec6c8cb7ab9d3cd50eaf560a7e715a34848f)
40
+ * merge conflict cleanup [0c3d41e2f2](https://github.com/ccxt/ccxt/commits/0c3d41e2f2d138e817a1dc7430053b761f5e17cf)
41
+ * 4.0.67 [bb8bc0bf55](https://github.com/ccxt/ccxt/commits/bb8bc0bf55809631b26098036eb2ab9aeb2e57a3)
42
+
43
+
44
+ ## 4.0.66 (2023-08-17)
45
+
46
+ * feat(hitbtc): params["triggerPrice"] unified [c69fed1450](https://github.com/ccxt/ccxt/commits/c69fed145081194de0f5abac23562132d5d3eb41)
47
+ * fix(bitget): fetchTrades 'since' support [983c257d3d](https://github.com/ccxt/ccxt/commits/983c257d3dfacc523aeb5d854e32e4e1fb18cbfe)
48
+ * fetchTrades make multiple methods available through an option [2d69f30be3](https://github.com/ccxt/ccxt/commits/2d69f30be338deccc1821ed11ea371a1156489c1)
49
+ * fix(bitget): fetchOHLCV, optional methods typo [a99bd56a0b](https://github.com/ccxt/ccxt/commits/a99bd56a0b4f13d5f478768657b36bad0fee6410)
50
+ * feat(bitget): fetchMarkOHLCV, fetchIndexOHLCV [eb8a07d080](https://github.com/ccxt/ccxt/commits/eb8a07d08039a4cbff480ad73dcd54d0fe9d4480)
51
+ * fix(tokocrypto): fetchOrderBook type 2 symbol fix [1ec88c9c82](https://github.com/ccxt/ccxt/commits/1ec88c9c82b7f36e46e92eea4f881e1f52872bc2)
52
+ * feat(tokocrypto): add fetchTrades and fetchOHLCV support to type 2 [53451101d5](https://github.com/ccxt/ccxt/commits/53451101d5bee87bcdf9e85195182970ff48f0b2)
53
+ * omit params [47a1fd8001](https://github.com/ccxt/ccxt/commits/47a1fd80019c434dab8e29766fc57278b6e43c82)
54
+ * swap params [af5f4340f6](https://github.com/ccxt/ccxt/commits/af5f4340f648371fbd3e9afcd326d3b51655b70f)
55
+ * add @see to createOrder [d4f85b5672](https://github.com/ccxt/ccxt/commits/d4f85b5672f90f7df18e687f73cbf5cfae3aa45c)
56
+ * 4.0.66 [29e35cf74e](https://github.com/ccxt/ccxt/commits/29e35cf74eec3d30e1dc93657b71f0b57db9f06f)
57
+
58
+
59
+ ## 4.0.65 (2023-08-16)
60
+
61
+ * updated has[ws] for all exchanges ws unimplemented [f955adda0a](https://github.com/ccxt/ccxt/commits/f955adda0ae6bc8c25071c55dc9930094c2bf6a9)
62
+ * removed "ws": undefined, // has but unimplemented" lines [397c857d35](https://github.com/ccxt/ccxt/commits/397c857d3569f342acd4bb7ab6828dc6d7c14256)
63
+ * hitbtc removed pro:false [e5a44e2d38](https://github.com/ccxt/ccxt/commits/e5a44e2d38c2847df5724f0442ca665c68a3a275)
64
+ * Fixing the problem of outputting an error message to unicode [800f6ca1c1](https://github.com/ccxt/ccxt/commits/800f6ca1c14bb84f191ce7b55af0b4f56f963eab)
65
+ * Fix missing '.' [4be1e9837f](https://github.com/ccxt/ccxt/commits/4be1e9837f0b618344db23aadbb6ab6813c2e594)
66
+ * idex: handleOrder safeOrder && handleTrade safeTrade [0bd24a17fa](https://github.com/ccxt/ccxt/commits/0bd24a17fa086e07fd167417cebe11ab90223081)
67
+ * add InvalidOrder if both undefined [065f9d99b7](https://github.com/ccxt/ccxt/commits/065f9d99b71a61b90c917672f2045a5f448f1312)
68
+ * fix authenticate [1038feff12](https://github.com/ccxt/ccxt/commits/1038feff12eb488ccabbdc4556aedaaca3731f9a)
69
+ * refactor [5365e6ae84](https://github.com/ccxt/ccxt/commits/5365e6ae84ffe83adab4078c36c71ff5b8b8d7ac)
70
+ * okx: update apis [b7318e215d](https://github.com/ccxt/ccxt/commits/b7318e215d2d2d4d08a0b41d219a9fb60540b89e)
71
+ * wiki/Manual typo fix [81b57f3c19](https://github.com/ccxt/ccxt/commits/81b57f3c198a52e3578a668526b545d9b1242778)
72
+ * remove unnecassry line [b4809de67e](https://github.com/ccxt/ccxt/commits/b4809de67e6e9e4a4517a6160ef2919bc26a017e)
73
+ * fix(cryptocom): update id [174b7849a1](https://github.com/ccxt/ccxt/commits/174b7849a1eb72303d111def7378835bd0f0ca67)
74
+ * 4.0.65 [79d1cf2c61](https://github.com/ccxt/ccxt/commits/79d1cf2c61ac110a42d20015e5a0e0e3da36fae4)
75
+
76
+
77
+ ## 4.0.64 (2023-08-16)
78
+
79
+ * wavesexchange: add apis [48396fdeec](https://github.com/ccxt/ccxt/commits/48396fdeec368f37490e4997b83aec603c3d320d)
80
+ * wavesexchange: update v4 order signature [9d610ebd11](https://github.com/ccxt/ccxt/commits/9d610ebd119d06a1d86fd45ace218e749356eca4)
81
+ * wavesexchange: fix fetchOrderBook params [66fcc42015](https://github.com/ccxt/ccxt/commits/66fcc4201599ff578caa73cfa5b526dc881f4581)
82
+ * wavesexchange: createOrder add stop order [a28497cedb](https://github.com/ccxt/ccxt/commits/a28497cedb9bb458d013fa5103cd1a5e1538c60e)
83
+ * Exchange: add stringToBinary & binaryToBase58 [70c8a08615](https://github.com/ccxt/ccxt/commits/70c8a08615fee4fe921952bd81546b3183ca6742)
84
+ * wavesexchange: import move into wavesexchange.ts [2392064300](https://github.com/ccxt/ccxt/commits/2392064300dc14de4e42446ee7069ebd87d90ce2)
85
+ * wavesexchange: minor update [449b3c15d2](https://github.com/ccxt/ccxt/commits/449b3c15d2618b61583f459cd285581af980347a)
86
+ * wavesexchange: update doc, www, matcher api domain [0e1ab86cc0](https://github.com/ccxt/ccxt/commits/0e1ab86cc0a3839f0f0b744506e2a3b1480d9050)
87
+ * wavesexchange: update domain name [4b3ec89ec0](https://github.com/ccxt/ccxt/commits/4b3ec89ec0f95ed1f568936c2ab2a7393d732d80)
88
+ * wavesexchange: fix build [8bf910b1ea](https://github.com/ccxt/ccxt/commits/8bf910b1eafe026fd48d3c1bfbbb713061ffaf3f)
89
+ * wavesexchange: export binaryToBase58 [b158118690](https://github.com/ccxt/ccxt/commits/b1581186905a818bd912b7abaf8d2fac57c88488)
90
+ * wavesexchange: update stringToBinary as encode & binaryToString as decode [fede94bf8b](https://github.com/ccxt/ccxt/commits/fede94bf8b9c1c2175a656e8321fe57ec7290596)
91
+ * wavesexchange: fix createOrder sign error [36ce4559c3](https://github.com/ccxt/ccxt/commits/36ce4559c3304e1f7c4455153a440fe971d85809)
92
+ * wavesexchange: update createOrder matcherFees [4a16dc51ec](https://github.com/ccxt/ccxt/commits/4a16dc51ec2af1af55026cb24a55dff6c94122ba)
93
+ * wavesexchange: update createOrder params [eb0497c079](https://github.com/ccxt/ccxt/commits/eb0497c0799f8b0c4c304856c8ab15c283899dc7)
94
+ * wavesexchange: update fetchMarkets [d28f86beb1](https://github.com/ccxt/ccxt/commits/d28f86beb14248b67669e79e65a1227a013a7c93)
95
+ * Revert "wavesexchange: update fetchMarkets" [7dd2f325bd](https://github.com/ccxt/ccxt/commits/7dd2f325bd807f825d3378376946efc51c17ecc2)
96
+ * wavesexchange: update [bd473b15f2](https://github.com/ccxt/ccxt/commits/bd473b15f23ffeff7c09d9dd23a9cddc21125733)
97
+ * wavesexchange conditional orders unification #18578 [93b4b67bd2](https://github.com/ccxt/ccxt/commits/93b4b67bd2830633008f40e28ac882d1a35b28e3)
98
+ * 4.0.63 [ci deploy] [c99fd58f8b](https://github.com/ccxt/ccxt/commits/c99fd58f8b9138013e8c2923b335e033bf334228)
99
+ * 4.0.64 [29983102ec](https://github.com/ccxt/ccxt/commits/29983102ec6bf649966c050373fed264c3543a66)
100
+
101
+
102
+ ## 4.0.62 (2023-08-15)
103
+
104
+ * dummy change to cause tests trigger for all [066e1ba2f3](https://github.com/ccxt/ccxt/commits/066e1ba2f3845f1804ef0d0cb388c8ff0e175b54)
105
+ * update [2a6ef80252](https://github.com/ccxt/ccxt/commits/2a6ef80252ae1d3b53017934b05f914e06bd2a27)
106
+ * fix!(exmo): createOrder can place market orders, response is parsed using parseOrder [079d375872](https://github.com/ccxt/ccxt/commits/079d37587288fd643b54352928480151db0f6a9f)
107
+ * exmo minor fix [f9c7d0bb21](https://github.com/ccxt/ccxt/commits/f9c7d0bb21828744b7f067c1e9f8359376f4e6c0)
108
+ * bybit [6796911f62](https://github.com/ccxt/ccxt/commits/6796911f6234f67d5ba4533b535da5767f0f830b)
109
+ * revert [ec98f58aac](https://github.com/ccxt/ccxt/commits/ec98f58aacb7ddec5b99084b9b8970e16735a0cf)
110
+ * minor [f25e1d7232](https://github.com/ccxt/ccxt/commits/f25e1d72322ad5870eebe9aafcd295681f1c32b6)
111
+ * bingx: add apis [91263dae1c](https://github.com/ccxt/ccxt/commits/91263dae1cd12bae78889b40a2a6eda3597fd9bf)
112
+ * alpaca exceptions RateLimitExceeded [5fa4654ee2](https://github.com/ccxt/ccxt/commits/5fa4654ee212d53e21ba7296fc9527f9d9fbffbd)
113
+ * okx sponsored promo period ended [0fa10d9af0](https://github.com/ccxt/ccxt/commits/0fa10d9af063f3e4f56548f1e7a559b5426d14f5)
114
+ * 4.0.62 [f5a91d5f0a](https://github.com/ccxt/ccxt/commits/f5a91d5f0a5348028ca8ceed7059fd5005cc20eb)
115
+
116
+
117
+ ## 4.0.61 (2023-08-15)
118
+
119
+ * bitpanda has for stop orders [8315f55d30](https://github.com/ccxt/ccxt/commits/8315f55d3009115cf979edb953b5999b49c0b23e)
120
+ * support stopPrice [15317b850c](https://github.com/ccxt/ccxt/commits/15317b850c0d8f1c78b6e6e89b42386d1e990d23)
121
+ * fix(kucoin): ws error handling [aabd2e1091](https://github.com/ccxt/ccxt/commits/aabd2e1091433dcb9ceccbe98083303ebb0b78c2)
122
+ * 4.0.61 [db7a83aff9](https://github.com/ccxt/ccxt/commits/db7a83aff9b6c5967f7e52ffbf11f8988aca97e7)
123
+
124
+
125
+ ## 4.0.60 (2023-08-14)
126
+
127
+ * feat(binance): add sor support for createOrder [f87dc46a8b](https://github.com/ccxt/ccxt/commits/f87dc46a8bc3aabd62ef3081a986be476eb52413)
128
+ * add params.test [31143b4573](https://github.com/ccxt/ccxt/commits/31143b4573e023c685d4ca2917083a72f376ad64)
129
+ * omit sor [6e07f0ab93](https://github.com/ccxt/ccxt/commits/6e07f0ab933204c35eed6f4fba66201890a6d8da)
130
+ * add to signing [1784ab2b6b](https://github.com/ccxt/ccxt/commits/1784ab2b6b9a9badb99a5a2d227f2b30c9b03ecd)
131
+ * 4.0.60 [9a2f2f5429](https://github.com/ccxt/ccxt/commits/9a2f2f5429662b563be392edb06ec8f444d7f943)
132
+
133
+
134
+ ## 4.0.59 (2023-08-14)
135
+
136
+ * fix(gate): parseOrder fixes related to filled and cost being set to 0 [afabda7638](https://github.com/ccxt/ccxt/commits/afabda7638d39b096d98eb98d213557dca5ba141)
137
+ * fix!(bitfinex2): unify fetchPositions response. fixes: #16388 [bead2d7095](https://github.com/ccxt/ccxt/commits/bead2d7095ead89665cebe46e58686ba46a5e753)
138
+ * use safeNumber instead [6ade005c3f](https://github.com/ccxt/ccxt/commits/6ade005c3f3d5ad61b2381adb80c6375c9cb1912)
139
+ * timestamp fix [239862092d](https://github.com/ccxt/ccxt/commits/239862092d09cae7b5a2fabca7869264356acd1f)
140
+ * filter by symbols [6a47d3e2dd](https://github.com/ccxt/ccxt/commits/6a47d3e2ddac50ae0a01ef786e478282d37b8fa5)
141
+ * fix(bybit): crash when fetchPosition array is empty [8897b83854](https://github.com/ccxt/ccxt/commits/8897b83854f157f4b0e4a2ce33dc7ed96f361dc3)
142
+ * fix condition [9518b9e6f7](https://github.com/ccxt/ccxt/commits/9518b9e6f7eba21f1205c8cd82e8d770561b1a64)
143
+ * simplify logic [3da2216fae](https://github.com/ccxt/ccxt/commits/3da2216fae98a1833ab0d77757b18dfdfb7f34ef)
144
+ * 4.0.59 [bbb2625f90](https://github.com/ccxt/ccxt/commits/bbb2625f9075de32d7bad73898d5e07a621863a0)
145
+
146
+
1
147
  ## 4.0.58 (2023-08-12)
2
148
 
3
149
  * bybit.parsePosition: added fields takeProfit trailingStop stopLoss [387141abe1](https://github.com/ccxt/ccxt/commits/387141abe170abea6df0cf482bf21475af6ab29e)
package/README.md CHANGED
@@ -40,7 +40,7 @@ Current feature list:
40
40
  | [![bitvavo](https://user-images.githubusercontent.com/1294454/169202626-bd130fc5-fcf9-41bb-8d97-6093225c73cd.jpg)](https://bitvavo.com/?a=24F34952F7) | bitvavo | [Bitvavo](https://bitvavo.com/?a=24F34952F7) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://docs.bitvavo.com/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
41
41
  | [![bybit](https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg)](https://www.bybit.com/register?affiliate_id=35953) | bybit | [Bybit](https://www.bybit.com/register?affiliate_id=35953) | [![API Version 5](https://img.shields.io/badge/5-lightgray)](https://bybit-exchange.github.io/docs/inverse/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
42
42
  | [![cryptocom](https://user-images.githubusercontent.com/1294454/147792121-38ed5e36-c229-48d6-b49a-48d05fc19ed4.jpeg)](https://crypto.com/exch/5835vstech) | cryptocom | [Crypto.com](https://crypto.com/exch/5835vstech) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
43
- | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/ref/2436035) | gate | [Gate.io](https://www.gate.io/ref/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Gate.io using CCXT's referral link for a 20% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d20%25&color=orange)](https://www.gate.io/ref/2436035) |
43
+ | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Gate.io using CCXT's referral link for a 20% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d20%25&color=orange)](https://www.gate.io/signup/2436035) |
44
44
  | [![huobi](https://user-images.githubusercontent.com/1294454/76137448-22748a80-604e-11ea-8069-6e389271911d.jpg)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | huobi | [Huobi](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://huobiapi.github.io/docs/spot/v1/en/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Huobi using CCXT's referral link for a 15% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d15%25&color=orange)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) |
45
45
  | [![kucoin](https://user-images.githubusercontent.com/51840849/87295558-132aaf80-c50e-11ea-9801-a2fb0c57c799.jpg)](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | kucoin | [KuCoin](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://docs.kucoin.com) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
46
46
  | [![kucoinfutures](https://user-images.githubusercontent.com/1294454/147508995-9e35030a-d046-43a1-a006-6fabd981b554.jpg)](https://futures.kucoin.com/?rcode=E5wkqe) | kucoinfutures | [KuCoin Futures](https://futures.kucoin.com/?rcode=E5wkqe) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.kucoin.com/futures) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
@@ -111,7 +111,7 @@ The CCXT library currently supports the following 98 cryptocurrency exchange mar
111
111
  | [![digifinex](https://user-images.githubusercontent.com/51840849/87443315-01283a00-c5fe-11ea-8628-c2a0feaf07ac.jpg)](https://www.digifinex.com/en-ww/from/DhOzBg?channelCode=ljaUPp) | digifinex | [DigiFinex](https://www.digifinex.com/en-ww/from/DhOzBg?channelCode=ljaUPp) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://docs.digifinex.com) | | |
112
112
  | [![exmo](https://user-images.githubusercontent.com/1294454/27766491-1b0ea956-5eda-11e7-9225-40d67b481b8d.jpg)](https://exmo.me/?ref=131685) | exmo | [EXMO](https://exmo.me/?ref=131685) | [![API Version 1.1](https://img.shields.io/badge/1.1-lightgray)](https://exmo.me/en/api_doc?ref=131685) | | |
113
113
  | [![fmfwio](https://user-images.githubusercontent.com/1294454/159177712-b685b40c-5269-4cea-ac83-f7894c49525d.jpg)](https://fmfw.io/referral/da948b21d6c92d69) | fmfwio | [FMFW.io](https://fmfw.io/referral/da948b21d6c92d69) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://api.fmfw.io/) | | |
114
- | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/ref/2436035) | gate | [Gate.io](https://www.gate.io/ref/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
114
+ | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
115
115
  | [![gemini](https://user-images.githubusercontent.com/1294454/27816857-ce7be644-6096-11e7-82d6-3c257263229c.jpg)](https://gemini.com/) | gemini | [Gemini](https://gemini.com/) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.gemini.com/rest-api) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
116
116
  | [![hitbtc](https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg)](https://hitbtc.com/?ref_id=5a5d39a65d466) | hitbtc | [HitBTC](https://hitbtc.com/?ref_id=5a5d39a65d466) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://api.hitbtc.com) | | |
117
117
  | [![hollaex](https://user-images.githubusercontent.com/1294454/75841031-ca375180-5ddd-11ea-8417-b975674c23cb.jpg)](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | hollaex | [HollaEx](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://apidocs.hollaex.com) | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
@@ -210,13 +210,13 @@ console.log(version, Object.keys(exchanges));
210
210
 
211
211
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
212
212
 
213
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.68/dist/ccxt.browser.js
214
- * unpkg: https://unpkg.com/ccxt@4.0.68/dist/ccxt.browser.js
213
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.70/dist/ccxt.browser.js
214
+ * unpkg: https://unpkg.com/ccxt@4.0.70/dist/ccxt.browser.js
215
215
 
216
216
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
217
217
 
218
218
  ```HTML
219
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.68/dist/ccxt.browser.js"></script>
219
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.70/dist/ccxt.browser.js"></script>
220
220
  ```
221
221
 
222
222
  Creates a global `ccxt` object:
@@ -39096,6 +39096,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
39096
39096
  * @param {int} [since] timestamp in ms of the earliest trade to fetch
39097
39097
  * @param {int} [limit] the maximum amount of trades to fetch
39098
39098
  * @param {object} [params] extra parameters specific to the bitget api endpoint
39099
+ * @param {int} [params.until] the latest time in ms to fetch deposits for
39099
39100
  * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/en/latest/manual.html?#public-trades}
39100
39101
  */
39101
39102
  await this.loadMarkets();
@@ -39106,9 +39107,19 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
39106
39107
  if (limit !== undefined) {
39107
39108
  request['limit'] = limit;
39108
39109
  }
39110
+ const until = this.safeInteger2(params, 'until', 'endTime');
39109
39111
  if (since !== undefined) {
39110
39112
  request['startTime'] = since;
39113
+ if (until === undefined) {
39114
+ const now = this.milliseconds();
39115
+ request['endTime'] = now;
39116
+ }
39111
39117
  }
39118
+ if (until !== undefined) {
39119
+ this.checkRequiredArgument('fetchTrades', since, 'since');
39120
+ request['endTime'] = until;
39121
+ }
39122
+ params = this.omit(params, 'until');
39112
39123
  const options = this.safeValue(this.options, 'fetchTrades', {});
39113
39124
  let response = undefined;
39114
39125
  if (market['spot']) {
@@ -41465,8 +41476,14 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
41465
41476
  */
41466
41477
  this.checkRequiredSymbol('setMarginMode', symbol);
41467
41478
  marginMode = marginMode.toLowerCase();
41479
+ if (marginMode === 'isolated') {
41480
+ marginMode = 'fixed';
41481
+ }
41482
+ if (marginMode === 'cross') {
41483
+ marginMode = 'crossed';
41484
+ }
41468
41485
  if ((marginMode !== 'fixed') && (marginMode !== 'crossed')) {
41469
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' setMarginMode() marginMode must be "fixed" or "crossed"');
41486
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' setMarginMode() marginMode must be either fixed (isolated) or crossed (cross)');
41470
41487
  }
41471
41488
  await this.loadMarkets();
41472
41489
  const market = this.market(symbol);
@@ -114909,7 +114926,7 @@ class gate extends _abstract_gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
114909
114926
  },
114910
114927
  },
114911
114928
  'referral': {
114912
- 'url': 'https://www.gate.io/ref/2436035',
114929
+ 'url': 'https://www.gate.io/signup/2436035',
114913
114930
  'discount': 0.2,
114914
114931
  },
114915
114932
  },
@@ -228426,16 +228443,10 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
228426
228443
  },
228427
228444
  'urls': {
228428
228445
  'api': {
228429
- 'ws': {
228430
- 'public': 'wss://ws.okx.com:8443/ws/v5/public',
228431
- 'private': 'wss://ws.okx.com:8443/ws/v5/private', // wss://wsaws.okx.com:8443/ws/v5/private
228432
- },
228446
+ 'ws': 'wss://ws.okx.com:8443/ws/v5',
228433
228447
  },
228434
228448
  'test': {
228435
- 'ws': {
228436
- 'public': 'wss://wspap.okx.com:8443/ws/v5/public?brokerId=9999',
228437
- 'private': 'wss://wspap.okx.com:8443/ws/v5/private?brokerId=9999',
228438
- },
228449
+ 'ws': 'wss://wspap.okx.com:8443/ws/v5',
228439
228450
  },
228440
228451
  },
228441
228452
  'options': {
@@ -228497,13 +228508,25 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
228497
228508
  },
228498
228509
  });
228499
228510
  }
228511
+ getUrl(channel, access = 'public') {
228512
+ // for context: https://www.okx.com/help-center/changes-to-v5-api-websocket-subscription-parameter-and-url
228513
+ const isPublic = (access === 'public');
228514
+ const url = this.urls['api']['ws'];
228515
+ if ((channel.indexOf('candle') > -1) || (channel === 'orders-algo')) {
228516
+ return url + '/business';
228517
+ }
228518
+ else if (isPublic) {
228519
+ return url + '/public';
228520
+ }
228521
+ return url + '/private';
228522
+ }
228500
228523
  async subscribeMultiple(access, channel, symbols = undefined, params = {}) {
228501
228524
  await this.loadMarkets();
228502
228525
  if (symbols === undefined) {
228503
228526
  symbols = this.symbols;
228504
228527
  }
228505
228528
  symbols = this.marketSymbols(symbols);
228506
- const url = this.urls['api']['ws'][access];
228529
+ const url = this.getUrl(channel, access);
228507
228530
  let messageHash = channel;
228508
228531
  const args = [];
228509
228532
  messageHash += '::' + symbols.join(',');
@@ -228523,7 +228546,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
228523
228546
  }
228524
228547
  async subscribe(access, messageHash, channel, symbol, params = {}) {
228525
228548
  await this.loadMarkets();
228526
- const url = this.urls['api']['ws'][access];
228549
+ const url = this.getUrl(channel, access);
228527
228550
  const firstArgument = {
228528
228551
  'channel': channel,
228529
228552
  };
@@ -228995,7 +229018,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
228995
229018
  this.checkRequiredCredentials();
228996
229019
  const access = this.safeString(params, 'access', 'private');
228997
229020
  params = this.omit(params, ['access']);
228998
- const url = this.urls['api']['ws'][access];
229021
+ const url = this.getUrl('users', access);
228999
229022
  const messageHash = 'authenticated';
229000
229023
  const client = this.client(url);
229001
229024
  let future = this.safeValue(client.subscriptions, messageHash);
@@ -229386,7 +229409,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
229386
229409
  */
229387
229410
  await this.loadMarkets();
229388
229411
  await this.authenticate();
229389
- const url = this.urls['api']['ws']['private'];
229412
+ const url = this.getUrl('private', 'private');
229390
229413
  const messageHash = this.nonce().toString();
229391
229414
  let op = undefined;
229392
229415
  [op, params] = this.handleOptionAndParams(params, 'createOrderWs', 'op', 'batch-orders');
@@ -229455,7 +229478,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
229455
229478
  */
229456
229479
  await this.loadMarkets();
229457
229480
  await this.authenticate();
229458
- const url = this.urls['api']['ws']['private'];
229481
+ const url = this.getUrl('private', 'private');
229459
229482
  const messageHash = this.nonce().toString();
229460
229483
  let op = undefined;
229461
229484
  [op, params] = this.handleOptionAndParams(params, 'editOrderWs', 'op', 'amend-order');
@@ -229484,7 +229507,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
229484
229507
  }
229485
229508
  await this.loadMarkets();
229486
229509
  await this.authenticate();
229487
- const url = this.urls['api']['ws']['private'];
229510
+ const url = this.getUrl('private', 'private');
229488
229511
  const messageHash = this.nonce().toString();
229489
229512
  const clientOrderId = this.safeString2(params, 'clOrdId', 'clientOrderId');
229490
229513
  params = this.omit(params, ['clientOrderId', 'clOrdId']);
@@ -229524,7 +229547,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
229524
229547
  }
229525
229548
  await this.loadMarkets();
229526
229549
  await this.authenticate();
229527
- const url = this.urls['api']['ws']['private'];
229550
+ const url = this.getUrl('private', 'private');
229528
229551
  const messageHash = this.nonce().toString();
229529
229552
  const args = [];
229530
229553
  for (let i = 0; i < idsLength; i++) {
@@ -229560,7 +229583,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
229560
229583
  if (market['type'] !== 'option') {
229561
229584
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + 'cancelAllOrdersWs is only applicable to Option in Portfolio Margin mode, and MMP privilege is required.');
229562
229585
  }
229563
- const url = this.urls['api']['ws']['private'];
229586
+ const url = this.getUrl('private', 'private');
229564
229587
  const messageHash = this.nonce().toString();
229565
229588
  const request = {
229566
229589
  'id': messageHash,
@@ -272325,7 +272348,7 @@ SOFTWARE.
272325
272348
 
272326
272349
  //-----------------------------------------------------------------------------
272327
272350
  // this is updated by vss.js when building
272328
- const version = '4.0.68';
272351
+ const version = '4.0.70';
272329
272352
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
272330
272353
  //-----------------------------------------------------------------------------
272331
272354