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
@@ -22,7 +22,12 @@ export default class coinbase extends Exchange {
22
22
  'name': 'Coinbase',
23
23
  'countries': ['US'],
24
24
  'pro': true,
25
- 'rateLimit': 400,
25
+ // rate-limits:
26
+ // ADVANCED API: https://docs.cloud.coinbase.com/advanced-trade-api/docs/rest-api-rate-limits
27
+ // - max 30 req/second for private data, 10 req/s for public data
28
+ // DATA API : https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/rate-limiting
29
+ // - max 10000 req/hour (to prevent userland mistakes we apply ~3 req/second RL per call
30
+ 'rateLimit': 34,
26
31
  'version': 'v2',
27
32
  'userAgent': this.userAgents['chrome'],
28
33
  'headers': {
@@ -135,116 +140,116 @@ export default class coinbase extends Exchange {
135
140
  'api': {
136
141
  'v2': {
137
142
  'public': {
138
- 'get': [
139
- 'currencies',
140
- 'currencies/crypto',
141
- 'time',
142
- 'exchange-rates',
143
- 'users/{user_id}',
144
- 'prices/{symbol}/buy',
145
- 'prices/{symbol}/sell',
146
- 'prices/{symbol}/spot',
147
- ],
143
+ 'get': {
144
+ 'currencies': 10.6,
145
+ 'currencies/crypto': 10.6,
146
+ 'time': 10.6,
147
+ 'exchange-rates': 10.6,
148
+ 'users/{user_id}': 10.6,
149
+ 'prices/{symbol}/buy': 10.6,
150
+ 'prices/{symbol}/sell': 10.6,
151
+ 'prices/{symbol}/spot': 10.6,
152
+ },
148
153
  },
149
154
  'private': {
150
- 'get': [
151
- 'accounts',
152
- 'accounts/{account_id}',
153
- 'accounts/{account_id}/addresses',
154
- 'accounts/{account_id}/addresses/{address_id}',
155
- 'accounts/{account_id}/addresses/{address_id}/transactions',
156
- 'accounts/{account_id}/transactions',
157
- 'accounts/{account_id}/transactions/{transaction_id}',
158
- 'accounts/{account_id}/buys',
159
- 'accounts/{account_id}/buys/{buy_id}',
160
- 'accounts/{account_id}/sells',
161
- 'accounts/{account_id}/sells/{sell_id}',
162
- 'accounts/{account_id}/deposits',
163
- 'accounts/{account_id}/deposits/{deposit_id}',
164
- 'accounts/{account_id}/withdrawals',
165
- 'accounts/{account_id}/withdrawals/{withdrawal_id}',
166
- 'payment-methods',
167
- 'payment-methods/{payment_method_id}',
168
- 'user',
169
- 'user/auth',
170
- ],
171
- 'post': [
172
- 'accounts',
173
- 'accounts/{account_id}/primary',
174
- 'accounts/{account_id}/addresses',
175
- 'accounts/{account_id}/transactions',
176
- 'accounts/{account_id}/transactions/{transaction_id}/complete',
177
- 'accounts/{account_id}/transactions/{transaction_id}/resend',
178
- 'accounts/{account_id}/buys',
179
- 'accounts/{account_id}/buys/{buy_id}/commit',
180
- 'accounts/{account_id}/sells',
181
- 'accounts/{account_id}/sells/{sell_id}/commit',
182
- 'accounts/{account_id}/deposits',
183
- 'accounts/{account_id}/deposits/{deposit_id}/commit',
184
- 'accounts/{account_id}/withdrawals',
185
- 'accounts/{account_id}/withdrawals/{withdrawal_id}/commit',
186
- ],
187
- 'put': [
188
- 'accounts/{account_id}',
189
- 'user',
190
- ],
191
- 'delete': [
192
- 'accounts/{id}',
193
- 'accounts/{account_id}/transactions/{transaction_id}',
194
- ],
155
+ 'get': {
156
+ 'accounts': 10.6,
157
+ 'accounts/{account_id}': 10.6,
158
+ 'accounts/{account_id}/addresses': 10.6,
159
+ 'accounts/{account_id}/addresses/{address_id}': 10.6,
160
+ 'accounts/{account_id}/addresses/{address_id}/transactions': 10.6,
161
+ 'accounts/{account_id}/transactions': 10.6,
162
+ 'accounts/{account_id}/transactions/{transaction_id}': 10.6,
163
+ 'accounts/{account_id}/buys': 10.6,
164
+ 'accounts/{account_id}/buys/{buy_id}': 10.6,
165
+ 'accounts/{account_id}/sells': 10.6,
166
+ 'accounts/{account_id}/sells/{sell_id}': 10.6,
167
+ 'accounts/{account_id}/deposits': 10.6,
168
+ 'accounts/{account_id}/deposits/{deposit_id}': 10.6,
169
+ 'accounts/{account_id}/withdrawals': 10.6,
170
+ 'accounts/{account_id}/withdrawals/{withdrawal_id}': 10.6,
171
+ 'payment-methods': 10.6,
172
+ 'payment-methods/{payment_method_id}': 10.6,
173
+ 'user': 10.6,
174
+ 'user/auth': 10.6,
175
+ },
176
+ 'post': {
177
+ 'accounts': 10.6,
178
+ 'accounts/{account_id}/primary': 10.6,
179
+ 'accounts/{account_id}/addresses': 10.6,
180
+ 'accounts/{account_id}/transactions': 10.6,
181
+ 'accounts/{account_id}/transactions/{transaction_id}/complete': 10.6,
182
+ 'accounts/{account_id}/transactions/{transaction_id}/resend': 10.6,
183
+ 'accounts/{account_id}/buys': 10.6,
184
+ 'accounts/{account_id}/buys/{buy_id}/commit': 10.6,
185
+ 'accounts/{account_id}/sells': 10.6,
186
+ 'accounts/{account_id}/sells/{sell_id}/commit': 10.6,
187
+ 'accounts/{account_id}/deposits': 10.6,
188
+ 'accounts/{account_id}/deposits/{deposit_id}/commit': 10.6,
189
+ 'accounts/{account_id}/withdrawals': 10.6,
190
+ 'accounts/{account_id}/withdrawals/{withdrawal_id}/commit': 10.6,
191
+ },
192
+ 'put': {
193
+ 'accounts/{account_id}': 10.6,
194
+ 'user': 10.6,
195
+ },
196
+ 'delete': {
197
+ 'accounts/{id}': 10.6,
198
+ 'accounts/{account_id}/transactions/{transaction_id}': 10.6,
199
+ },
195
200
  },
196
201
  },
197
202
  'v3': {
198
203
  'public': {
199
- 'get': [
200
- 'brokerage/time',
201
- ],
204
+ 'get': {
205
+ 'brokerage/time': 3,
206
+ },
202
207
  },
203
208
  'private': {
204
- 'get': [
205
- 'brokerage/accounts',
206
- 'brokerage/accounts/{account_uuid}',
207
- 'brokerage/orders/historical/batch',
208
- 'brokerage/orders/historical/fills',
209
- 'brokerage/orders/historical/{order_id}',
210
- 'brokerage/products',
211
- 'brokerage/products/{product_id}',
212
- 'brokerage/products/{product_id}/candles',
213
- 'brokerage/products/{product_id}/ticker',
214
- 'brokerage/portfolios',
215
- 'brokerage/portfolios/{portfolio_uuid}',
216
- 'brokerage/transaction_summary',
217
- 'brokerage/product_book',
218
- 'brokerage/best_bid_ask',
219
- 'brokerage/convert/trade/{trade_id}',
220
- 'brokerage/cfm/balance_summary',
221
- 'brokerage/cfm/positions',
222
- 'brokerage/cfm/positions/{product_id}',
223
- 'brokerage/cfm/sweeps',
224
- 'brokerage/intx/portfolio/{portfolio_uuid}',
225
- 'brokerage/intx/positions/{portfolio_uuid}',
226
- 'brokerage/intx/positions/{portfolio_uuid}/{symbol}',
227
- ],
228
- 'post': [
229
- 'brokerage/orders',
230
- 'brokerage/orders/batch_cancel',
231
- 'brokerage/orders/edit',
232
- 'brokerage/orders/edit_preview',
233
- 'brokerage/orders/preview',
234
- 'brokerage/portfolios',
235
- 'brokerage/portfolios/move_funds',
236
- 'brokerage/convert/quote',
237
- 'brokerage/convert/trade/{trade_id}',
238
- 'brokerage/cfm/sweeps/schedule',
239
- 'brokerage/intx/allocate',
240
- ],
241
- 'put': [
242
- 'brokerage/portfolios/{portfolio_uuid}',
243
- ],
244
- 'delete': [
245
- 'brokerage/portfolios/{portfolio_uuid}',
246
- 'brokerage/cfm/sweeps',
247
- ],
209
+ 'get': {
210
+ 'brokerage/accounts': 1,
211
+ 'brokerage/accounts/{account_uuid}': 1,
212
+ 'brokerage/orders/historical/batch': 1,
213
+ 'brokerage/orders/historical/fills': 1,
214
+ 'brokerage/orders/historical/{order_id}': 1,
215
+ 'brokerage/products': 3,
216
+ 'brokerage/products/{product_id}': 3,
217
+ 'brokerage/products/{product_id}/candles': 3,
218
+ 'brokerage/products/{product_id}/ticker': 3,
219
+ 'brokerage/best_bid_ask': 3,
220
+ 'brokerage/product_book': 3,
221
+ 'brokerage/transaction_summary': 3,
222
+ 'brokerage/portfolios': 1,
223
+ 'brokerage/portfolios/{portfolio_uuid}': 1,
224
+ 'brokerage/convert/trade/{trade_id}': 1,
225
+ 'brokerage/cfm/balance_summary': 1,
226
+ 'brokerage/cfm/positions': 1,
227
+ 'brokerage/cfm/positions/{product_id}': 1,
228
+ 'brokerage/cfm/sweeps': 1,
229
+ 'brokerage/intx/portfolio/{portfolio_uuid}': 1,
230
+ 'brokerage/intx/positions/{portfolio_uuid}': 1,
231
+ 'brokerage/intx/positions/{portfolio_uuid}/{symbol}': 1,
232
+ },
233
+ 'post': {
234
+ 'brokerage/orders': 1,
235
+ 'brokerage/orders/batch_cancel': 1,
236
+ 'brokerage/orders/edit': 1,
237
+ 'brokerage/orders/edit_preview': 1,
238
+ 'brokerage/orders/preview': 1,
239
+ 'brokerage/portfolios': 1,
240
+ 'brokerage/portfolios/move_funds': 1,
241
+ 'brokerage/convert/quote': 1,
242
+ 'brokerage/convert/trade/{trade_id}': 1,
243
+ 'brokerage/cfm/sweeps/schedule': 1,
244
+ 'brokerage/intx/allocate': 1,
245
+ },
246
+ 'put': {
247
+ 'brokerage/portfolios/{portfolio_uuid}': 1,
248
+ },
249
+ 'delete': {
250
+ 'brokerage/portfolios/{portfolio_uuid}': 1,
251
+ 'brokerage/cfm/sweeps': 1,
252
+ },
248
253
  },
249
254
  },
250
255
  },
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/coinex.js';
2
- import type { Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, OHLCV, Order, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, OrderRequest, TransferEntry } from './base/types.js';
2
+ import type { Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, OHLCV, Order, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, OrderRequest, TransferEntry, Leverage, Leverages } from './base/types.js';
3
3
  /**
4
4
  * @class coinex
5
5
  * @augments Exchange
@@ -207,6 +207,8 @@ export default class coinex extends Exchange {
207
207
  };
208
208
  fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<{}>;
209
209
  parseDepositWithdrawFees(response: any, codes?: any, currencyIdKey?: any): {};
210
+ fetchLeverages(symbols?: string[], params?: {}): Promise<Leverages>;
211
+ parseLeverage(leverage: any, market?: any): Leverage;
210
212
  handleMarginModeAndParams(methodName: any, params?: {}, defaultValue?: any): any[];
211
213
  nonce(): number;
212
214
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
package/js/src/coinex.js CHANGED
@@ -79,7 +79,8 @@ export default class coinex extends Exchange {
79
79
  'fetchIndexOHLCV': false,
80
80
  'fetchIsolatedBorrowRate': true,
81
81
  'fetchIsolatedBorrowRates': true,
82
- 'fetchLeverage': false,
82
+ 'fetchLeverage': 'emulated',
83
+ 'fetchLeverages': true,
83
84
  'fetchLeverageTiers': true,
84
85
  'fetchMarketLeverageTiers': 'emulated',
85
86
  'fetchMarkets': true,
@@ -5345,6 +5346,65 @@ export default class coinex extends Exchange {
5345
5346
  }
5346
5347
  return depositWithdrawFees;
5347
5348
  }
5349
+ async fetchLeverages(symbols = undefined, params = {}) {
5350
+ /**
5351
+ * @method
5352
+ * @name coinex#fetchLeverages
5353
+ * @description fetch the set leverage for all contract and margin markets
5354
+ * @see https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot002_account007_margin_account_settings
5355
+ * @param {string[]} [symbols] a list of unified market symbols
5356
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
5357
+ * @returns {object} a list of [leverage structures]{@link https://docs.ccxt.com/#/?id=leverage-structure}
5358
+ */
5359
+ await this.loadMarkets();
5360
+ symbols = this.marketSymbols(symbols);
5361
+ let market = undefined;
5362
+ if (symbols !== undefined) {
5363
+ const symbol = this.safeValue(symbols, 0);
5364
+ market = this.market(symbol);
5365
+ }
5366
+ let marketType = undefined;
5367
+ [marketType, params] = this.handleMarketTypeAndParams('fetchLeverages', market, params);
5368
+ if (marketType !== 'spot') {
5369
+ throw new NotSupported(this.id + ' fetchLeverages() supports spot margin markets only');
5370
+ }
5371
+ const response = await this.privateGetMarginConfig(params);
5372
+ //
5373
+ // {
5374
+ // "code": 0,
5375
+ // "data": [
5376
+ // {
5377
+ // "market": "BTCUSDT",
5378
+ // "leverage": 10,
5379
+ // "BTC": {
5380
+ // "min_amount": "0.0008",
5381
+ // "max_amount": "200",
5382
+ // "day_rate": "0.0015"
5383
+ // },
5384
+ // "USDT": {
5385
+ // "min_amount": "50",
5386
+ // "max_amount": "500000",
5387
+ // "day_rate": "0.001"
5388
+ // }
5389
+ // },
5390
+ // ],
5391
+ // "message": "Success"
5392
+ // }
5393
+ //
5394
+ const leverages = this.safeList(response, 'data', []);
5395
+ return this.parseLeverages(leverages, symbols, 'market', marketType);
5396
+ }
5397
+ parseLeverage(leverage, market = undefined) {
5398
+ const marketId = this.safeString(leverage, 'market');
5399
+ const leverageValue = this.safeInteger(leverage, 'leverage');
5400
+ return {
5401
+ 'info': leverage,
5402
+ 'symbol': this.safeSymbol(marketId, market, undefined, 'spot'),
5403
+ 'marginMode': undefined,
5404
+ 'longLeverage': leverageValue,
5405
+ 'shortLeverage': leverageValue,
5406
+ };
5407
+ }
5348
5408
  handleMarginModeAndParams(methodName, params = {}, defaultValue = undefined) {
5349
5409
  /**
5350
5410
  * @ignore
package/js/src/hitbtc.js CHANGED
@@ -2702,7 +2702,7 @@ export default class hitbtc extends Exchange {
2702
2702
  if ((network !== undefined) && (code === 'USDT')) {
2703
2703
  const parsedNetwork = this.safeString(networks, network);
2704
2704
  if (parsedNetwork !== undefined) {
2705
- request['currency'] = parsedNetwork;
2705
+ request['network_code'] = parsedNetwork;
2706
2706
  }
2707
2707
  params = this.omit(params, 'network');
2708
2708
  }
package/js/src/htx.js CHANGED
@@ -2594,7 +2594,10 @@ export default class htx extends Exchange {
2594
2594
  amountString = this.safeString(trade, 'trade_volume', amountString);
2595
2595
  const costString = this.safeString(trade, 'trade_turnover');
2596
2596
  let fee = undefined;
2597
- let feeCost = this.safeString2(trade, 'filled-fees', 'trade_fee');
2597
+ let feeCost = this.safeString(trade, 'filled-fees');
2598
+ if (feeCost === undefined) {
2599
+ feeCost = Precise.stringNeg(this.safeString(trade, 'trade_fee'));
2600
+ }
2598
2601
  const feeCurrencyId = this.safeString2(trade, 'fee-currency', 'fee_asset');
2599
2602
  let feeCurrency = this.safeCurrencyCode(feeCurrencyId);
2600
2603
  const filledPoints = this.safeString(trade, 'filled-points');
@@ -0,0 +1,83 @@
1
+ import Exchange from './abstract/hyperliquid.js';
2
+ import type { Market, TransferEntry, Balances, Int, OrderBook, OHLCV, Str, FundingRateHistory, Order, OrderType, OrderSide, Trade, Strings, Position, OrderRequest, Dict } from './base/types.js';
3
+ /**
4
+ * @class hyperliquid
5
+ * @augments Exchange
6
+ */
7
+ export default class hyperliquid extends Exchange {
8
+ describe(): any;
9
+ setSandboxMode(enabled: any): void;
10
+ fetchCurrencies(params?: {}): Promise<{}>;
11
+ fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
12
+ parseMarket(market: any): Market;
13
+ fetchBalance(params?: {}): Promise<Balances>;
14
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
15
+ fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
16
+ parseOHLCV(ohlcv: any, market?: Market): OHLCV;
17
+ fetchTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
18
+ amountToPrecision(symbol: any, amount: any): any;
19
+ hashMessage(message: any): string;
20
+ signHash(hash: any, privateKey: any): {
21
+ r: string;
22
+ s: string;
23
+ v: any;
24
+ };
25
+ signMessage(message: any, privateKey: any): {
26
+ r: string;
27
+ s: string;
28
+ v: any;
29
+ };
30
+ constructPhantomAgent(hash: any, isTestnet?: boolean): {
31
+ source: string;
32
+ connectionId: any;
33
+ };
34
+ actionHash(action: any, vaultAddress: any, nonce: any): any;
35
+ signL1Action(action: any, nonce: any, vaultAdress?: any): object;
36
+ buildSig(chainId: any, messageTypes: any, message: any): {
37
+ r: string;
38
+ s: string;
39
+ v: any;
40
+ };
41
+ buildTransferSig(message: any): {
42
+ r: string;
43
+ s: string;
44
+ v: any;
45
+ };
46
+ buildWithdrawSig(message: any): {
47
+ r: string;
48
+ s: string;
49
+ v: any;
50
+ };
51
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
52
+ createOrders(orders: OrderRequest[], params?: {}): Promise<Order[]>;
53
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
54
+ cancelOrders(ids: string[], symbol?: Str, params?: {}): Promise<any>;
55
+ editOrder(id: string, symbol: string, type: string, side: string, amount?: number, price?: number, params?: {}): Promise<Order>;
56
+ fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
57
+ fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
58
+ fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
59
+ fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
60
+ parseOrder(order: any, market?: Market): Order;
61
+ parseOrderStatus(status: any): string;
62
+ parseOrderType(status: any): string;
63
+ fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
64
+ parseTrade(trade: any, market?: Market): Trade;
65
+ fetchPosition(symbol: string, params?: {}): Promise<Position>;
66
+ fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
67
+ parsePosition(position: any, market?: Market): Position;
68
+ setMarginMode(marginMode: string, symbol?: Str, params?: {}): Promise<any>;
69
+ setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
70
+ addMargin(symbol: string, amount: any, params?: {}): Promise<any>;
71
+ reduceMargin(symbol: string, amount: any, params?: {}): Promise<any>;
72
+ modifyMarginHelper(symbol: string, amount: any, type: any, params?: {}): Promise<any>;
73
+ transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
74
+ withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<any>;
75
+ handlePublicAddress(methodName: string, params: Dict): any[];
76
+ handleErrors(code: any, reason: any, url: any, method: any, headers: any, body: any, response: any, requestHeaders: any, requestBody: any): any;
77
+ sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
78
+ url: string;
79
+ method: string;
80
+ body: any;
81
+ headers: any;
82
+ };
83
+ }