ccxt 4.2.59 → 4.2.61

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.
Files changed (184) hide show
  1. package/README.md +103 -102
  2. package/build.sh +2 -2
  3. package/dist/ccxt.browser.js +11853 -3790
  4. package/dist/ccxt.browser.min.js +7 -7
  5. package/dist/cjs/ccxt.js +4 -1
  6. package/dist/cjs/src/abstract/hyperliquid.js +9 -0
  7. package/dist/cjs/src/ascendex.js +10 -12
  8. package/dist/cjs/src/base/Exchange.js +22 -1
  9. package/dist/cjs/src/base/functions/encode.js +5 -0
  10. package/dist/cjs/src/base/functions.js +1 -0
  11. package/dist/cjs/src/bingx.js +38 -0
  12. package/dist/cjs/src/bitfinex2.js +20 -3
  13. package/dist/cjs/src/bitget.js +9 -2
  14. package/dist/cjs/src/bitmart.js +41 -23
  15. package/dist/cjs/src/blofin.js +59 -1
  16. package/dist/cjs/src/coinbase.js +108 -103
  17. package/dist/cjs/src/coinex.js +61 -1
  18. package/dist/cjs/src/hitbtc.js +1 -1
  19. package/dist/cjs/src/htx.js +4 -1
  20. package/dist/cjs/src/hyperliquid.js +2035 -0
  21. package/dist/cjs/src/kraken.js +50 -41
  22. package/dist/cjs/src/krakenfutures.js +28 -0
  23. package/dist/cjs/src/kucoinfutures.js +3 -2
  24. package/dist/cjs/src/okx.js +1 -1
  25. package/dist/cjs/src/phemex.js +2 -2
  26. package/dist/cjs/src/pro/binance.js +16 -3
  27. package/dist/cjs/src/pro/bingx.js +1 -0
  28. package/dist/cjs/src/static_dependencies/ethers/abi-coder.js +158 -0
  29. package/dist/cjs/src/static_dependencies/ethers/address/address.js +144 -0
  30. package/dist/cjs/src/static_dependencies/ethers/coders/abstract-coder.js +407 -0
  31. package/dist/cjs/src/static_dependencies/ethers/coders/address.js +45 -0
  32. package/dist/cjs/src/static_dependencies/ethers/coders/anonymous.js +28 -0
  33. package/dist/cjs/src/static_dependencies/ethers/coders/array.js +176 -0
  34. package/dist/cjs/src/static_dependencies/ethers/coders/boolean.js +27 -0
  35. package/dist/cjs/src/static_dependencies/ethers/coders/bytes.js +52 -0
  36. package/dist/cjs/src/static_dependencies/ethers/coders/fixed-bytes.js +45 -0
  37. package/dist/cjs/src/static_dependencies/ethers/coders/null.js +30 -0
  38. package/dist/cjs/src/static_dependencies/ethers/coders/number.js +60 -0
  39. package/dist/cjs/src/static_dependencies/ethers/coders/string.js +27 -0
  40. package/dist/cjs/src/static_dependencies/ethers/coders/tuple.js +68 -0
  41. package/dist/cjs/src/static_dependencies/ethers/fragments.js +614 -0
  42. package/dist/cjs/src/static_dependencies/ethers/hash/typed-data.js +492 -0
  43. package/dist/cjs/src/static_dependencies/ethers/index.js +35 -0
  44. package/dist/cjs/src/static_dependencies/ethers/interface.js +44 -0
  45. package/dist/cjs/src/static_dependencies/ethers/typed.js +618 -0
  46. package/dist/cjs/src/static_dependencies/ethers/utils/base58.js +20 -0
  47. package/dist/cjs/src/static_dependencies/ethers/utils/data.js +134 -0
  48. package/dist/cjs/src/static_dependencies/ethers/utils/errors.js +228 -0
  49. package/dist/cjs/src/static_dependencies/ethers/utils/events.js +13 -0
  50. package/dist/cjs/src/static_dependencies/ethers/utils/fixednumber.js +29 -0
  51. package/dist/cjs/src/static_dependencies/ethers/utils/index.js +53 -0
  52. package/dist/cjs/src/static_dependencies/ethers/utils/maths.js +231 -0
  53. package/dist/cjs/src/static_dependencies/ethers/utils/properties.js +47 -0
  54. package/dist/cjs/src/static_dependencies/ethers/utils/utf8.js +218 -0
  55. package/dist/cjs/src/static_dependencies/messagepack/msgpack.js +292 -0
  56. package/dist/cjs/src/tokocrypto.js +22 -2
  57. package/dist/cjs/src/wazirx.js +314 -4
  58. package/dist/cjs/src/woo.js +157 -77
  59. package/js/ccxt.d.ts +5 -2
  60. package/js/ccxt.js +4 -2
  61. package/js/src/abstract/blofin.d.ts +1 -0
  62. package/js/src/abstract/coinbase.d.ts +3 -3
  63. package/js/src/abstract/hyperliquid.d.ts +9 -0
  64. package/js/src/abstract/hyperliquid.js +11 -0
  65. package/js/src/abstract/wazirx.d.ts +5 -0
  66. package/js/src/ascendex.d.ts +2 -2
  67. package/js/src/ascendex.js +10 -12
  68. package/js/src/base/Exchange.d.ts +4 -0
  69. package/js/src/base/Exchange.js +13 -1
  70. package/js/src/base/functions/encode.d.ts +2 -1
  71. package/js/src/base/functions/encode.js +5 -1
  72. package/js/src/bingx.d.ts +3 -1
  73. package/js/src/bingx.js +38 -0
  74. package/js/src/bitfinex2.js +20 -3
  75. package/js/src/bitget.js +9 -2
  76. package/js/src/bitmart.d.ts +9 -2
  77. package/js/src/bitmart.js +41 -23
  78. package/js/src/blofin.d.ts +2 -1
  79. package/js/src/blofin.js +59 -1
  80. package/js/src/coinbase.js +108 -103
  81. package/js/src/coinex.d.ts +3 -1
  82. package/js/src/coinex.js +61 -1
  83. package/js/src/hitbtc.js +1 -1
  84. package/js/src/htx.js +4 -1
  85. package/js/src/hyperliquid.d.ts +83 -0
  86. package/js/src/hyperliquid.js +2036 -0
  87. package/js/src/kraken.js +50 -41
  88. package/js/src/krakenfutures.d.ts +2 -1
  89. package/js/src/krakenfutures.js +28 -0
  90. package/js/src/kucoinfutures.js +3 -2
  91. package/js/src/okx.js +1 -1
  92. package/js/src/phemex.js +2 -2
  93. package/js/src/pro/binance.js +16 -3
  94. package/js/src/pro/bingx.js +1 -0
  95. package/js/src/pro/deribit.d.ts +1 -1
  96. package/js/src/static_dependencies/ethers/abi-coder.d.ts +50 -0
  97. package/js/src/static_dependencies/ethers/abi-coder.js +148 -0
  98. package/js/src/static_dependencies/ethers/address/address.d.ts +55 -0
  99. package/js/src/static_dependencies/ethers/address/address.js +162 -0
  100. package/js/src/static_dependencies/ethers/address/checks.d.ts +80 -0
  101. package/js/src/static_dependencies/ethers/address/checks.js +119 -0
  102. package/js/src/static_dependencies/ethers/address/contract-address.d.ts +47 -0
  103. package/js/src/static_dependencies/ethers/address/contract-address.js +73 -0
  104. package/js/src/static_dependencies/ethers/address/index.d.ts +48 -0
  105. package/js/src/static_dependencies/ethers/address/index.js +24 -0
  106. package/js/src/static_dependencies/ethers/bytes32.d.ts +14 -0
  107. package/js/src/static_dependencies/ethers/bytes32.js +45 -0
  108. package/js/src/static_dependencies/ethers/coders/abstract-coder.d.ts +120 -0
  109. package/js/src/static_dependencies/ethers/coders/abstract-coder.js +424 -0
  110. package/js/src/static_dependencies/ethers/coders/address.d.ts +12 -0
  111. package/js/src/static_dependencies/ethers/coders/address.js +34 -0
  112. package/js/src/static_dependencies/ethers/coders/anonymous.d.ts +14 -0
  113. package/js/src/static_dependencies/ethers/coders/anonymous.js +27 -0
  114. package/js/src/static_dependencies/ethers/coders/array.d.ts +24 -0
  115. package/js/src/static_dependencies/ethers/coders/array.js +162 -0
  116. package/js/src/static_dependencies/ethers/coders/boolean.d.ts +12 -0
  117. package/js/src/static_dependencies/ethers/coders/boolean.js +26 -0
  118. package/js/src/static_dependencies/ethers/coders/bytes.d.ts +18 -0
  119. package/js/src/static_dependencies/ethers/coders/bytes.js +39 -0
  120. package/js/src/static_dependencies/ethers/coders/fixed-bytes.d.ts +14 -0
  121. package/js/src/static_dependencies/ethers/coders/fixed-bytes.js +32 -0
  122. package/js/src/static_dependencies/ethers/coders/null.d.ts +11 -0
  123. package/js/src/static_dependencies/ethers/coders/null.js +29 -0
  124. package/js/src/static_dependencies/ethers/coders/number.d.ts +15 -0
  125. package/js/src/static_dependencies/ethers/coders/number.js +48 -0
  126. package/js/src/static_dependencies/ethers/coders/string.d.ts +12 -0
  127. package/js/src/static_dependencies/ethers/coders/string.js +26 -0
  128. package/js/src/static_dependencies/ethers/coders/tuple.d.ts +15 -0
  129. package/js/src/static_dependencies/ethers/coders/tuple.js +67 -0
  130. package/js/src/static_dependencies/ethers/fragments.d.ts +458 -0
  131. package/js/src/static_dependencies/ethers/fragments.js +1252 -0
  132. package/js/src/static_dependencies/ethers/hash/index.d.ts +10 -0
  133. package/js/src/static_dependencies/ethers/hash/index.js +15 -0
  134. package/js/src/static_dependencies/ethers/hash/solidity.d.ts +30 -0
  135. package/js/src/static_dependencies/ethers/hash/solidity.js +107 -0
  136. package/js/src/static_dependencies/ethers/hash/typed-data.d.ts +144 -0
  137. package/js/src/static_dependencies/ethers/hash/typed-data.js +490 -0
  138. package/js/src/static_dependencies/ethers/index.d.ts +19 -0
  139. package/js/src/static_dependencies/ethers/index.js +22 -0
  140. package/js/src/static_dependencies/ethers/interface.d.ts +380 -0
  141. package/js/src/static_dependencies/ethers/interface.js +990 -0
  142. package/js/src/static_dependencies/ethers/typed.d.ts +569 -0
  143. package/js/src/static_dependencies/ethers/typed.js +608 -0
  144. package/js/src/static_dependencies/ethers/utils/base58.d.ts +22 -0
  145. package/js/src/static_dependencies/ethers/utils/base58.js +68 -0
  146. package/js/src/static_dependencies/ethers/utils/base64-browser.d.ts +3 -0
  147. package/js/src/static_dependencies/ethers/utils/base64-browser.js +24 -0
  148. package/js/src/static_dependencies/ethers/utils/base64.d.ts +39 -0
  149. package/js/src/static_dependencies/ethers/utils/base64.js +58 -0
  150. package/js/src/static_dependencies/ethers/utils/data.d.ts +92 -0
  151. package/js/src/static_dependencies/ethers/utils/data.js +175 -0
  152. package/js/src/static_dependencies/ethers/utils/errors.d.ts +509 -0
  153. package/js/src/static_dependencies/ethers/utils/errors.js +227 -0
  154. package/js/src/static_dependencies/ethers/utils/events.d.ts +76 -0
  155. package/js/src/static_dependencies/ethers/utils/events.js +52 -0
  156. package/js/src/static_dependencies/ethers/utils/fixednumber.d.ts +251 -0
  157. package/js/src/static_dependencies/ethers/utils/fixednumber.js +529 -0
  158. package/js/src/static_dependencies/ethers/utils/index.d.ts +30 -0
  159. package/js/src/static_dependencies/ethers/utils/index.js +38 -0
  160. package/js/src/static_dependencies/ethers/utils/maths.d.ts +65 -0
  161. package/js/src/static_dependencies/ethers/utils/maths.js +220 -0
  162. package/js/src/static_dependencies/ethers/utils/properties.d.ts +22 -0
  163. package/js/src/static_dependencies/ethers/utils/properties.js +59 -0
  164. package/js/src/static_dependencies/ethers/utils/rlp-decode.d.ts +5 -0
  165. package/js/src/static_dependencies/ethers/utils/rlp-decode.js +84 -0
  166. package/js/src/static_dependencies/ethers/utils/rlp-encode.d.ts +5 -0
  167. package/js/src/static_dependencies/ethers/utils/rlp-encode.js +54 -0
  168. package/js/src/static_dependencies/ethers/utils/rlp.d.ts +16 -0
  169. package/js/src/static_dependencies/ethers/utils/rlp.js +14 -0
  170. package/js/src/static_dependencies/ethers/utils/units.d.ts +23 -0
  171. package/js/src/static_dependencies/ethers/utils/units.js +88 -0
  172. package/js/src/static_dependencies/ethers/utils/utf8.d.ts +95 -0
  173. package/js/src/static_dependencies/ethers/utils/utf8.js +225 -0
  174. package/js/src/static_dependencies/ethers/utils/uuid.d.ts +7 -0
  175. package/js/src/static_dependencies/ethers/utils/uuid.js +35 -0
  176. package/js/src/static_dependencies/messagepack/msgpack.d.ts +2 -0
  177. package/js/src/static_dependencies/messagepack/msgpack.js +572 -0
  178. package/js/src/tokocrypto.js +22 -2
  179. package/js/src/wazirx.d.ts +12 -1
  180. package/js/src/wazirx.js +314 -4
  181. package/js/src/woo.d.ts +8 -0
  182. package/js/src/woo.js +157 -77
  183. package/package.json +1 -1
  184. package/skip-tests.json +60 -16
@@ -19,7 +19,12 @@ class coinbase extends coinbase$1 {
19
19
  'name': 'Coinbase',
20
20
  'countries': ['US'],
21
21
  'pro': true,
22
- 'rateLimit': 400,
22
+ // rate-limits:
23
+ // ADVANCED API: https://docs.cloud.coinbase.com/advanced-trade-api/docs/rest-api-rate-limits
24
+ // - max 30 req/second for private data, 10 req/s for public data
25
+ // DATA API : https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/rate-limiting
26
+ // - max 10000 req/hour (to prevent userland mistakes we apply ~3 req/second RL per call
27
+ 'rateLimit': 34,
23
28
  'version': 'v2',
24
29
  'userAgent': this.userAgents['chrome'],
25
30
  'headers': {
@@ -132,116 +137,116 @@ class coinbase extends coinbase$1 {
132
137
  'api': {
133
138
  'v2': {
134
139
  'public': {
135
- 'get': [
136
- 'currencies',
137
- 'currencies/crypto',
138
- 'time',
139
- 'exchange-rates',
140
- 'users/{user_id}',
141
- 'prices/{symbol}/buy',
142
- 'prices/{symbol}/sell',
143
- 'prices/{symbol}/spot',
144
- ],
140
+ 'get': {
141
+ 'currencies': 10.6,
142
+ 'currencies/crypto': 10.6,
143
+ 'time': 10.6,
144
+ 'exchange-rates': 10.6,
145
+ 'users/{user_id}': 10.6,
146
+ 'prices/{symbol}/buy': 10.6,
147
+ 'prices/{symbol}/sell': 10.6,
148
+ 'prices/{symbol}/spot': 10.6,
149
+ },
145
150
  },
146
151
  'private': {
147
- 'get': [
148
- 'accounts',
149
- 'accounts/{account_id}',
150
- 'accounts/{account_id}/addresses',
151
- 'accounts/{account_id}/addresses/{address_id}',
152
- 'accounts/{account_id}/addresses/{address_id}/transactions',
153
- 'accounts/{account_id}/transactions',
154
- 'accounts/{account_id}/transactions/{transaction_id}',
155
- 'accounts/{account_id}/buys',
156
- 'accounts/{account_id}/buys/{buy_id}',
157
- 'accounts/{account_id}/sells',
158
- 'accounts/{account_id}/sells/{sell_id}',
159
- 'accounts/{account_id}/deposits',
160
- 'accounts/{account_id}/deposits/{deposit_id}',
161
- 'accounts/{account_id}/withdrawals',
162
- 'accounts/{account_id}/withdrawals/{withdrawal_id}',
163
- 'payment-methods',
164
- 'payment-methods/{payment_method_id}',
165
- 'user',
166
- 'user/auth',
167
- ],
168
- 'post': [
169
- 'accounts',
170
- 'accounts/{account_id}/primary',
171
- 'accounts/{account_id}/addresses',
172
- 'accounts/{account_id}/transactions',
173
- 'accounts/{account_id}/transactions/{transaction_id}/complete',
174
- 'accounts/{account_id}/transactions/{transaction_id}/resend',
175
- 'accounts/{account_id}/buys',
176
- 'accounts/{account_id}/buys/{buy_id}/commit',
177
- 'accounts/{account_id}/sells',
178
- 'accounts/{account_id}/sells/{sell_id}/commit',
179
- 'accounts/{account_id}/deposits',
180
- 'accounts/{account_id}/deposits/{deposit_id}/commit',
181
- 'accounts/{account_id}/withdrawals',
182
- 'accounts/{account_id}/withdrawals/{withdrawal_id}/commit',
183
- ],
184
- 'put': [
185
- 'accounts/{account_id}',
186
- 'user',
187
- ],
188
- 'delete': [
189
- 'accounts/{id}',
190
- 'accounts/{account_id}/transactions/{transaction_id}',
191
- ],
152
+ 'get': {
153
+ 'accounts': 10.6,
154
+ 'accounts/{account_id}': 10.6,
155
+ 'accounts/{account_id}/addresses': 10.6,
156
+ 'accounts/{account_id}/addresses/{address_id}': 10.6,
157
+ 'accounts/{account_id}/addresses/{address_id}/transactions': 10.6,
158
+ 'accounts/{account_id}/transactions': 10.6,
159
+ 'accounts/{account_id}/transactions/{transaction_id}': 10.6,
160
+ 'accounts/{account_id}/buys': 10.6,
161
+ 'accounts/{account_id}/buys/{buy_id}': 10.6,
162
+ 'accounts/{account_id}/sells': 10.6,
163
+ 'accounts/{account_id}/sells/{sell_id}': 10.6,
164
+ 'accounts/{account_id}/deposits': 10.6,
165
+ 'accounts/{account_id}/deposits/{deposit_id}': 10.6,
166
+ 'accounts/{account_id}/withdrawals': 10.6,
167
+ 'accounts/{account_id}/withdrawals/{withdrawal_id}': 10.6,
168
+ 'payment-methods': 10.6,
169
+ 'payment-methods/{payment_method_id}': 10.6,
170
+ 'user': 10.6,
171
+ 'user/auth': 10.6,
172
+ },
173
+ 'post': {
174
+ 'accounts': 10.6,
175
+ 'accounts/{account_id}/primary': 10.6,
176
+ 'accounts/{account_id}/addresses': 10.6,
177
+ 'accounts/{account_id}/transactions': 10.6,
178
+ 'accounts/{account_id}/transactions/{transaction_id}/complete': 10.6,
179
+ 'accounts/{account_id}/transactions/{transaction_id}/resend': 10.6,
180
+ 'accounts/{account_id}/buys': 10.6,
181
+ 'accounts/{account_id}/buys/{buy_id}/commit': 10.6,
182
+ 'accounts/{account_id}/sells': 10.6,
183
+ 'accounts/{account_id}/sells/{sell_id}/commit': 10.6,
184
+ 'accounts/{account_id}/deposits': 10.6,
185
+ 'accounts/{account_id}/deposits/{deposit_id}/commit': 10.6,
186
+ 'accounts/{account_id}/withdrawals': 10.6,
187
+ 'accounts/{account_id}/withdrawals/{withdrawal_id}/commit': 10.6,
188
+ },
189
+ 'put': {
190
+ 'accounts/{account_id}': 10.6,
191
+ 'user': 10.6,
192
+ },
193
+ 'delete': {
194
+ 'accounts/{id}': 10.6,
195
+ 'accounts/{account_id}/transactions/{transaction_id}': 10.6,
196
+ },
192
197
  },
193
198
  },
194
199
  'v3': {
195
200
  'public': {
196
- 'get': [
197
- 'brokerage/time',
198
- ],
201
+ 'get': {
202
+ 'brokerage/time': 3,
203
+ },
199
204
  },
200
205
  'private': {
201
- 'get': [
202
- 'brokerage/accounts',
203
- 'brokerage/accounts/{account_uuid}',
204
- 'brokerage/orders/historical/batch',
205
- 'brokerage/orders/historical/fills',
206
- 'brokerage/orders/historical/{order_id}',
207
- 'brokerage/products',
208
- 'brokerage/products/{product_id}',
209
- 'brokerage/products/{product_id}/candles',
210
- 'brokerage/products/{product_id}/ticker',
211
- 'brokerage/portfolios',
212
- 'brokerage/portfolios/{portfolio_uuid}',
213
- 'brokerage/transaction_summary',
214
- 'brokerage/product_book',
215
- 'brokerage/best_bid_ask',
216
- 'brokerage/convert/trade/{trade_id}',
217
- 'brokerage/cfm/balance_summary',
218
- 'brokerage/cfm/positions',
219
- 'brokerage/cfm/positions/{product_id}',
220
- 'brokerage/cfm/sweeps',
221
- 'brokerage/intx/portfolio/{portfolio_uuid}',
222
- 'brokerage/intx/positions/{portfolio_uuid}',
223
- 'brokerage/intx/positions/{portfolio_uuid}/{symbol}',
224
- ],
225
- 'post': [
226
- 'brokerage/orders',
227
- 'brokerage/orders/batch_cancel',
228
- 'brokerage/orders/edit',
229
- 'brokerage/orders/edit_preview',
230
- 'brokerage/orders/preview',
231
- 'brokerage/portfolios',
232
- 'brokerage/portfolios/move_funds',
233
- 'brokerage/convert/quote',
234
- 'brokerage/convert/trade/{trade_id}',
235
- 'brokerage/cfm/sweeps/schedule',
236
- 'brokerage/intx/allocate',
237
- ],
238
- 'put': [
239
- 'brokerage/portfolios/{portfolio_uuid}',
240
- ],
241
- 'delete': [
242
- 'brokerage/portfolios/{portfolio_uuid}',
243
- 'brokerage/cfm/sweeps',
244
- ],
206
+ 'get': {
207
+ 'brokerage/accounts': 1,
208
+ 'brokerage/accounts/{account_uuid}': 1,
209
+ 'brokerage/orders/historical/batch': 1,
210
+ 'brokerage/orders/historical/fills': 1,
211
+ 'brokerage/orders/historical/{order_id}': 1,
212
+ 'brokerage/products': 3,
213
+ 'brokerage/products/{product_id}': 3,
214
+ 'brokerage/products/{product_id}/candles': 3,
215
+ 'brokerage/products/{product_id}/ticker': 3,
216
+ 'brokerage/best_bid_ask': 3,
217
+ 'brokerage/product_book': 3,
218
+ 'brokerage/transaction_summary': 3,
219
+ 'brokerage/portfolios': 1,
220
+ 'brokerage/portfolios/{portfolio_uuid}': 1,
221
+ 'brokerage/convert/trade/{trade_id}': 1,
222
+ 'brokerage/cfm/balance_summary': 1,
223
+ 'brokerage/cfm/positions': 1,
224
+ 'brokerage/cfm/positions/{product_id}': 1,
225
+ 'brokerage/cfm/sweeps': 1,
226
+ 'brokerage/intx/portfolio/{portfolio_uuid}': 1,
227
+ 'brokerage/intx/positions/{portfolio_uuid}': 1,
228
+ 'brokerage/intx/positions/{portfolio_uuid}/{symbol}': 1,
229
+ },
230
+ 'post': {
231
+ 'brokerage/orders': 1,
232
+ 'brokerage/orders/batch_cancel': 1,
233
+ 'brokerage/orders/edit': 1,
234
+ 'brokerage/orders/edit_preview': 1,
235
+ 'brokerage/orders/preview': 1,
236
+ 'brokerage/portfolios': 1,
237
+ 'brokerage/portfolios/move_funds': 1,
238
+ 'brokerage/convert/quote': 1,
239
+ 'brokerage/convert/trade/{trade_id}': 1,
240
+ 'brokerage/cfm/sweeps/schedule': 1,
241
+ 'brokerage/intx/allocate': 1,
242
+ },
243
+ 'put': {
244
+ 'brokerage/portfolios/{portfolio_uuid}': 1,
245
+ },
246
+ 'delete': {
247
+ 'brokerage/portfolios/{portfolio_uuid}': 1,
248
+ 'brokerage/cfm/sweeps': 1,
249
+ },
245
250
  },
246
251
  },
247
252
  },
@@ -76,7 +76,8 @@ class coinex extends coinex$1 {
76
76
  'fetchIndexOHLCV': false,
77
77
  'fetchIsolatedBorrowRate': true,
78
78
  'fetchIsolatedBorrowRates': true,
79
- 'fetchLeverage': false,
79
+ 'fetchLeverage': 'emulated',
80
+ 'fetchLeverages': true,
80
81
  'fetchLeverageTiers': true,
81
82
  'fetchMarketLeverageTiers': 'emulated',
82
83
  'fetchMarkets': true,
@@ -5342,6 +5343,65 @@ class coinex extends coinex$1 {
5342
5343
  }
5343
5344
  return depositWithdrawFees;
5344
5345
  }
5346
+ async fetchLeverages(symbols = undefined, params = {}) {
5347
+ /**
5348
+ * @method
5349
+ * @name coinex#fetchLeverages
5350
+ * @description fetch the set leverage for all contract and margin markets
5351
+ * @see https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot002_account007_margin_account_settings
5352
+ * @param {string[]} [symbols] a list of unified market symbols
5353
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
5354
+ * @returns {object} a list of [leverage structures]{@link https://docs.ccxt.com/#/?id=leverage-structure}
5355
+ */
5356
+ await this.loadMarkets();
5357
+ symbols = this.marketSymbols(symbols);
5358
+ let market = undefined;
5359
+ if (symbols !== undefined) {
5360
+ const symbol = this.safeValue(symbols, 0);
5361
+ market = this.market(symbol);
5362
+ }
5363
+ let marketType = undefined;
5364
+ [marketType, params] = this.handleMarketTypeAndParams('fetchLeverages', market, params);
5365
+ if (marketType !== 'spot') {
5366
+ throw new errors.NotSupported(this.id + ' fetchLeverages() supports spot margin markets only');
5367
+ }
5368
+ const response = await this.privateGetMarginConfig(params);
5369
+ //
5370
+ // {
5371
+ // "code": 0,
5372
+ // "data": [
5373
+ // {
5374
+ // "market": "BTCUSDT",
5375
+ // "leverage": 10,
5376
+ // "BTC": {
5377
+ // "min_amount": "0.0008",
5378
+ // "max_amount": "200",
5379
+ // "day_rate": "0.0015"
5380
+ // },
5381
+ // "USDT": {
5382
+ // "min_amount": "50",
5383
+ // "max_amount": "500000",
5384
+ // "day_rate": "0.001"
5385
+ // }
5386
+ // },
5387
+ // ],
5388
+ // "message": "Success"
5389
+ // }
5390
+ //
5391
+ const leverages = this.safeList(response, 'data', []);
5392
+ return this.parseLeverages(leverages, symbols, 'market', marketType);
5393
+ }
5394
+ parseLeverage(leverage, market = undefined) {
5395
+ const marketId = this.safeString(leverage, 'market');
5396
+ const leverageValue = this.safeInteger(leverage, 'leverage');
5397
+ return {
5398
+ 'info': leverage,
5399
+ 'symbol': this.safeSymbol(marketId, market, undefined, 'spot'),
5400
+ 'marginMode': undefined,
5401
+ 'longLeverage': leverageValue,
5402
+ 'shortLeverage': leverageValue,
5403
+ };
5404
+ }
5345
5405
  handleMarginModeAndParams(methodName, params = {}, defaultValue = undefined) {
5346
5406
  /**
5347
5407
  * @ignore
@@ -2699,7 +2699,7 @@ class hitbtc extends hitbtc$1 {
2699
2699
  if ((network !== undefined) && (code === 'USDT')) {
2700
2700
  const parsedNetwork = this.safeString(networks, network);
2701
2701
  if (parsedNetwork !== undefined) {
2702
- request['currency'] = parsedNetwork;
2702
+ request['network_code'] = parsedNetwork;
2703
2703
  }
2704
2704
  params = this.omit(params, 'network');
2705
2705
  }
@@ -2591,7 +2591,10 @@ class htx extends htx$1 {
2591
2591
  amountString = this.safeString(trade, 'trade_volume', amountString);
2592
2592
  const costString = this.safeString(trade, 'trade_turnover');
2593
2593
  let fee = undefined;
2594
- let feeCost = this.safeString2(trade, 'filled-fees', 'trade_fee');
2594
+ let feeCost = this.safeString(trade, 'filled-fees');
2595
+ if (feeCost === undefined) {
2596
+ feeCost = Precise["default"].stringNeg(this.safeString(trade, 'trade_fee'));
2597
+ }
2595
2598
  const feeCurrencyId = this.safeString2(trade, 'fee-currency', 'fee_asset');
2596
2599
  let feeCurrency = this.safeCurrencyCode(feeCurrencyId);
2597
2600
  const filledPoints = this.safeString(trade, 'filled-points');