ccxt 4.4.48__py2.py3-none-any.whl → 4.4.49__py2.py3-none-any.whl

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 (71) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/async_support/__init__.py +1 -1
  3. ccxt/async_support/base/exchange.py +1 -1
  4. ccxt/async_support/bingx.py +73 -29
  5. ccxt/async_support/bitget.py +12 -10
  6. ccxt/async_support/coinsph.py +17 -8
  7. ccxt/async_support/deribit.py +82 -0
  8. ccxt/async_support/digifinex.py +125 -10
  9. ccxt/async_support/ellipx.py +61 -0
  10. ccxt/async_support/exmo.py +58 -0
  11. ccxt/async_support/hitbtc.py +99 -0
  12. ccxt/async_support/hollaex.py +73 -0
  13. ccxt/async_support/huobijp.py +73 -0
  14. ccxt/async_support/hyperliquid.py +22 -1
  15. ccxt/async_support/idex.py +71 -0
  16. ccxt/async_support/independentreserve.py +64 -0
  17. ccxt/async_support/indodax.py +61 -0
  18. ccxt/async_support/kuna.py +60 -1
  19. ccxt/async_support/latoken.py +64 -0
  20. ccxt/async_support/lbank.py +70 -0
  21. ccxt/async_support/luno.py +73 -0
  22. ccxt/async_support/lykke.py +64 -0
  23. ccxt/async_support/mercado.py +65 -0
  24. ccxt/async_support/mexc.py +1 -1
  25. ccxt/async_support/myokx.py +10 -0
  26. ccxt/async_support/ndax.py +71 -0
  27. ccxt/async_support/novadax.py +74 -0
  28. ccxt/async_support/oceanex.py +69 -0
  29. ccxt/async_support/okcoin.py +79 -2
  30. ccxt/async_support/onetrading.py +66 -0
  31. ccxt/async_support/oxfun.py +66 -0
  32. ccxt/async_support/p2b.py +63 -1
  33. ccxt/async_support/paradex.py +68 -0
  34. ccxt/base/exchange.py +1 -1
  35. ccxt/bingx.py +73 -29
  36. ccxt/bitget.py +12 -10
  37. ccxt/coinsph.py +17 -8
  38. ccxt/deribit.py +82 -0
  39. ccxt/digifinex.py +125 -10
  40. ccxt/ellipx.py +61 -0
  41. ccxt/exmo.py +58 -0
  42. ccxt/hitbtc.py +99 -0
  43. ccxt/hollaex.py +73 -0
  44. ccxt/huobijp.py +73 -0
  45. ccxt/hyperliquid.py +22 -1
  46. ccxt/idex.py +71 -0
  47. ccxt/independentreserve.py +64 -0
  48. ccxt/indodax.py +61 -0
  49. ccxt/kuna.py +60 -1
  50. ccxt/latoken.py +64 -0
  51. ccxt/lbank.py +70 -0
  52. ccxt/luno.py +73 -0
  53. ccxt/lykke.py +64 -0
  54. ccxt/mercado.py +65 -0
  55. ccxt/mexc.py +1 -1
  56. ccxt/myokx.py +10 -0
  57. ccxt/ndax.py +71 -0
  58. ccxt/novadax.py +74 -0
  59. ccxt/oceanex.py +69 -0
  60. ccxt/okcoin.py +79 -2
  61. ccxt/onetrading.py +66 -0
  62. ccxt/oxfun.py +66 -0
  63. ccxt/p2b.py +63 -1
  64. ccxt/paradex.py +68 -0
  65. ccxt/pro/__init__.py +1 -1
  66. ccxt/pro/bitmart.py +5 -0
  67. {ccxt-4.4.48.dist-info → ccxt-4.4.49.dist-info}/METADATA +4 -4
  68. {ccxt-4.4.48.dist-info → ccxt-4.4.49.dist-info}/RECORD +71 -71
  69. {ccxt-4.4.48.dist-info → ccxt-4.4.49.dist-info}/LICENSE.txt +0 -0
  70. {ccxt-4.4.48.dist-info → ccxt-4.4.49.dist-info}/WHEEL +0 -0
  71. {ccxt-4.4.48.dist-info → ccxt-4.4.49.dist-info}/top_level.txt +0 -0
@@ -248,6 +248,70 @@ class latoken(Exchange, ImplicitAPI):
248
248
  'method': 'fetchPrivateTradingFee', # or 'fetchPublicTradingFee'
249
249
  },
250
250
  },
251
+ 'features': {
252
+ 'spot': {
253
+ 'sandbox': False,
254
+ 'createOrder': {
255
+ 'marginMode': False,
256
+ 'triggerPrice': True,
257
+ 'triggerPriceType': None,
258
+ 'triggerDirection': False,
259
+ 'stopLossPrice': False, # todo
260
+ 'takeProfitPrice': False, # todo
261
+ 'attachedStopLossTakeProfit': None,
262
+ 'timeInForce': {
263
+ 'IOC': True, # todo: for non-trigger orders
264
+ 'FOK': True,
265
+ 'PO': False,
266
+ 'GTD': False,
267
+ },
268
+ 'hedged': False,
269
+ 'selfTradePrevention': False,
270
+ 'trailing': False,
271
+ 'leverage': False,
272
+ 'marketBuyByCost': True,
273
+ 'marketBuyRequiresPrice': False,
274
+ 'iceberg': False,
275
+ },
276
+ 'createOrders': None,
277
+ 'fetchMyTrades': {
278
+ 'marginMode': False,
279
+ 'limit': 1000,
280
+ 'daysBack': 100000, # todo
281
+ 'untilDays': None,
282
+ },
283
+ 'fetchOrder': {
284
+ 'marginMode': False,
285
+ 'trigger': True,
286
+ 'trailing': False,
287
+ },
288
+ 'fetchOpenOrders': {
289
+ 'marginMode': False,
290
+ 'limit': None,
291
+ 'trigger': False,
292
+ 'trailing': False,
293
+ },
294
+ 'fetchOrders': None,
295
+ 'fetchClosedOrders': {
296
+ 'marginMode': False,
297
+ 'limit': 1000,
298
+ 'daysBack': 100000, # todo
299
+ 'daysBackCanceled': 1,
300
+ 'untilDays': None,
301
+ 'trigger': True,
302
+ 'trailing': False,
303
+ },
304
+ 'fetchOHLCV': None,
305
+ },
306
+ 'swap': {
307
+ 'linear': None,
308
+ 'inverse': None,
309
+ },
310
+ 'future': {
311
+ 'linear': None,
312
+ 'inverse': None,
313
+ },
314
+ },
251
315
  })
252
316
 
253
317
  def nonce(self):
@@ -309,6 +309,76 @@ class lbank(Exchange, ImplicitAPI):
309
309
  'USDT': 'TRC20',
310
310
  },
311
311
  },
312
+ 'features': {
313
+ 'default': {
314
+ 'sandbox': False,
315
+ 'createOrder': {
316
+ 'marginMode': False,
317
+ 'triggerPrice': False,
318
+ 'triggerPriceType': None,
319
+ 'triggerDirection': False,
320
+ 'stopLossPrice': False,
321
+ 'takeProfitPrice': False,
322
+ 'attachedStopLossTakeProfit': None,
323
+ 'timeInForce': {
324
+ 'IOC': True,
325
+ 'FOK': True,
326
+ 'PO': False,
327
+ 'GTD': False,
328
+ },
329
+ 'hedged': False,
330
+ 'selfTradePrevention': False,
331
+ 'trailing': False,
332
+ 'leverage': False,
333
+ 'marketBuyByCost': True,
334
+ 'marketBuyRequiresPrice': False,
335
+ 'iceberg': False,
336
+ },
337
+ 'createOrders': None, # todo
338
+ 'fetchMyTrades': {
339
+ 'marginMode': False,
340
+ 'limit': 100,
341
+ 'daysBack': 100000, # todo
342
+ 'untilDays': 2,
343
+ },
344
+ 'fetchOrder': {
345
+ 'marginMode': False,
346
+ 'trigger': False,
347
+ 'trailing': False,
348
+ },
349
+ 'fetchOpenOrders': {
350
+ 'marginMode': False,
351
+ 'limit': 200,
352
+ 'trigger': False,
353
+ 'trailing': False,
354
+ },
355
+ 'fetchOrders': {
356
+ 'marginMode': False,
357
+ 'limit': 200,
358
+ 'daysBack': None,
359
+ 'untilDays': None,
360
+ 'trigger': False,
361
+ 'trailing': False,
362
+ },
363
+ 'fetchClosedOrders': None, # todo: through fetchOrders "status" -1: Cancelled 0: Unfilled 1: Partially filled 2: Completely filled 3: Partially filled has been cancelled 4: Cancellation is being processed
364
+ 'fetchOHLCV': {
365
+ 'limit': 2000,
366
+ },
367
+ },
368
+ 'spot': {
369
+ 'extends': 'default',
370
+ },
371
+ 'swap': {
372
+ 'linear': {
373
+ 'extends': 'default',
374
+ },
375
+ 'inverse': None,
376
+ },
377
+ 'future': {
378
+ 'linear': None,
379
+ 'inverse': None,
380
+ },
381
+ },
312
382
  })
313
383
 
314
384
  async def fetch_time(self, params={}):
@@ -183,6 +183,79 @@ class luno(Exchange, ImplicitAPI):
183
183
  },
184
184
  },
185
185
  'precisionMode': TICK_SIZE,
186
+ 'features': {
187
+ 'spot': {
188
+ 'sandbox': False,
189
+ 'createOrder': {
190
+ 'marginMode': False,
191
+ 'triggerPrice': True, # todo
192
+ 'triggerPriceType': None,
193
+ 'triggerDirection': True, # todo
194
+ 'stopLossPrice': False, # todo
195
+ 'takeProfitPrice': False, # todo
196
+ 'attachedStopLossTakeProfit': None,
197
+ 'timeInForce': {
198
+ 'IOC': True,
199
+ 'FOK': True,
200
+ 'PO': True,
201
+ 'GTD': False,
202
+ },
203
+ 'hedged': False,
204
+ 'trailing': False,
205
+ 'leverage': False,
206
+ 'marketBuyByCost': True,
207
+ 'marketBuyRequiresPrice': False,
208
+ 'selfTradePrevention': False,
209
+ 'iceberg': False,
210
+ },
211
+ 'createOrders': None,
212
+ 'fetchMyTrades': {
213
+ 'marginMode': False,
214
+ 'limit': 1000,
215
+ 'daysBack': 100000, # todo
216
+ 'untilDays': 100000, # todo
217
+ },
218
+ 'fetchOrder': {
219
+ 'marginMode': False,
220
+ 'trigger': False,
221
+ 'trailing': False,
222
+ },
223
+ 'fetchOpenOrders': {
224
+ 'marginMode': False,
225
+ 'limit': 1000,
226
+ 'trigger': False,
227
+ 'trailing': False,
228
+ },
229
+ 'fetchOrders': {
230
+ 'marginMode': False,
231
+ 'limit': 1000,
232
+ 'daysBack': 100000,
233
+ 'untilDays': None,
234
+ 'trigger': False,
235
+ 'trailing': False,
236
+ },
237
+ 'fetchClosedOrders': {
238
+ 'marginMode': False,
239
+ 'limit': 1000,
240
+ 'daysBack': 100000,
241
+ 'daysBackCanceled': 1,
242
+ 'untilDays': None,
243
+ 'trigger': False,
244
+ 'trailing': False,
245
+ },
246
+ 'fetchOHLCV': {
247
+ 'limit': None,
248
+ },
249
+ },
250
+ 'swap': {
251
+ 'linear': None,
252
+ 'inverse': None,
253
+ },
254
+ 'future': {
255
+ 'linear': None,
256
+ 'inverse': None,
257
+ },
258
+ },
186
259
  })
187
260
 
188
261
  async def fetch_markets(self, params={}) -> List[Market]:
@@ -192,6 +192,70 @@ class lykke(Exchange, ImplicitAPI):
192
192
  },
193
193
  'commonCurrencies': {
194
194
  },
195
+ 'features': {
196
+ 'spot': {
197
+ 'sandbox': False,
198
+ 'createOrder': {
199
+ 'marginMode': False,
200
+ 'triggerPrice': False,
201
+ 'triggerPriceType': None,
202
+ 'triggerDirection': False,
203
+ 'stopLossPrice': False,
204
+ 'takeProfitPrice': False,
205
+ 'attachedStopLossTakeProfit': None,
206
+ 'timeInForce': {
207
+ 'IOC': False,
208
+ 'FOK': False,
209
+ 'PO': False,
210
+ 'GTD': False,
211
+ },
212
+ 'hedged': False,
213
+ 'trailing': False,
214
+ 'leverage': False,
215
+ 'marketBuyByCost': False,
216
+ 'marketBuyRequiresPrice': False,
217
+ 'selfTradePrevention': False,
218
+ 'iceberg': False,
219
+ },
220
+ 'createOrders': None,
221
+ 'fetchMyTrades': {
222
+ 'marginMode': False,
223
+ 'limit': 1000,
224
+ 'daysBack': 100000, # todo
225
+ 'untilDays': 100000, # todo
226
+ },
227
+ 'fetchOrder': {
228
+ 'marginMode': False,
229
+ 'trigger': False,
230
+ 'trailing': False,
231
+ },
232
+ 'fetchOpenOrders': {
233
+ 'marginMode': False,
234
+ 'limit': 1000,
235
+ 'trigger': False,
236
+ 'trailing': False,
237
+ },
238
+ 'fetchOrders': None,
239
+ 'fetchClosedOrders': {
240
+ 'marginMode': False,
241
+ 'limit': 1000,
242
+ 'daysBack': None,
243
+ 'daysBackCanceled': None,
244
+ 'untilDays': None,
245
+ 'trigger': False,
246
+ 'trailing': False,
247
+ },
248
+ 'fetchOHLCV': None,
249
+ },
250
+ 'swap': {
251
+ 'linear': None,
252
+ 'inverse': None,
253
+ },
254
+ 'future': {
255
+ 'linear': None,
256
+ 'inverse': None,
257
+ },
258
+ },
195
259
  })
196
260
 
197
261
  async def fetch_currencies(self, params={}) -> Currencies:
@@ -162,6 +162,71 @@ class mercado(Exchange, ImplicitAPI):
162
162
  'XRP': 0.1,
163
163
  },
164
164
  },
165
+ 'features': {
166
+ 'spot': {
167
+ 'sandbox': False,
168
+ 'createOrder': {
169
+ 'marginMode': False,
170
+ 'triggerPrice': False,
171
+ 'triggerPriceType': None,
172
+ 'triggerDirection': False,
173
+ 'stopLossPrice': False,
174
+ 'takeProfitPrice': False,
175
+ 'attachedStopLossTakeProfit': None,
176
+ 'timeInForce': {
177
+ 'IOC': False,
178
+ 'FOK': False,
179
+ 'PO': True, # todo
180
+ 'GTD': False,
181
+ },
182
+ 'hedged': False,
183
+ 'trailing': False,
184
+ 'leverage': False,
185
+ 'marketBuyByCost': True, # todo
186
+ 'marketBuyRequiresPrice': True,
187
+ 'selfTradePrevention': False,
188
+ 'iceberg': False,
189
+ },
190
+ 'createOrders': None,
191
+ 'fetchMyTrades': {
192
+ 'marginMode': False,
193
+ 'limit': None, # todo
194
+ 'daysBack': 100000, # todo
195
+ 'untilDays': 100000, # todo
196
+ },
197
+ 'fetchOrder': {
198
+ 'marginMode': False,
199
+ 'trigger': False,
200
+ 'trailing': False,
201
+ },
202
+ 'fetchOpenOrders': {
203
+ 'marginMode': False,
204
+ 'limit': None,
205
+ 'trigger': False,
206
+ 'trailing': False,
207
+ },
208
+ 'fetchOrders': {
209
+ 'marginMode': False,
210
+ 'limit': 500,
211
+ 'daysBack': 100000,
212
+ 'untilDays': 100000,
213
+ 'trigger': False,
214
+ 'trailing': False,
215
+ },
216
+ 'fetchClosedOrders': None,
217
+ 'fetchOHLCV': {
218
+ 'limit': 1000,
219
+ },
220
+ },
221
+ 'swap': {
222
+ 'linear': None,
223
+ 'inverse': None,
224
+ },
225
+ 'future': {
226
+ 'linear': None,
227
+ 'inverse': None,
228
+ },
229
+ },
165
230
  'precisionMode': TICK_SIZE,
166
231
  })
167
232
 
@@ -4475,7 +4475,7 @@ class mexc(Exchange, ImplicitAPI):
4475
4475
  return {
4476
4476
  'info': depositAddress,
4477
4477
  'currency': self.safe_currency_code(currencyId, currency),
4478
- 'network': self.network_id_to_code(networkId),
4478
+ 'network': self.network_id_to_code(networkId, currencyId),
4479
4479
  'address': address,
4480
4480
  'tag': self.safe_string(depositAddress, 'memo'),
4481
4481
  }
@@ -40,4 +40,14 @@ class myokx(okx, ImplicitAPI):
40
40
  'future': False,
41
41
  'option': False,
42
42
  },
43
+ 'features': {
44
+ 'swap': {
45
+ 'linear': None,
46
+ 'inverse': None,
47
+ },
48
+ 'future': {
49
+ 'linear': None,
50
+ 'inverse': None,
51
+ },
52
+ },
43
53
  })
@@ -264,6 +264,77 @@ class ndax(Exchange, ImplicitAPI):
264
264
  },
265
265
  },
266
266
  },
267
+ 'features': {
268
+ 'spot': {
269
+ 'sandbox': True,
270
+ 'createOrder': {
271
+ 'marginMode': False,
272
+ 'triggerPrice': True,
273
+ 'triggerDirection': False,
274
+ 'triggerPriceType': {
275
+ 'last': True,
276
+ 'mark': False,
277
+ 'index': False,
278
+ # bid & ask
279
+ },
280
+ 'stopLossPrice': False, # todo
281
+ 'takeProfitPrice': False, # todo
282
+ 'attachedStopLossTakeProfit': None,
283
+ # todo
284
+ 'timeInForce': {
285
+ 'IOC': True,
286
+ 'FOK': True,
287
+ 'PO': True,
288
+ 'GTD': False,
289
+ },
290
+ 'hedged': False,
291
+ 'trailing': False,
292
+ 'leverage': False,
293
+ 'marketBuyByCost': False,
294
+ 'marketBuyRequiresPrice': False,
295
+ 'selfTradePrevention': False,
296
+ 'iceberg': True, # todo
297
+ },
298
+ 'createOrders': None,
299
+ 'fetchMyTrades': {
300
+ 'marginMode': False,
301
+ 'limit': 100, # todo
302
+ 'daysBack': 100000, # todo
303
+ 'untilDays': 100000, # todo
304
+ },
305
+ 'fetchOrder': {
306
+ 'marginMode': False,
307
+ 'trigger': False,
308
+ 'trailing': False,
309
+ },
310
+ 'fetchOpenOrders': {
311
+ 'marginMode': False,
312
+ 'limit': None,
313
+ 'trigger': False,
314
+ 'trailing': False,
315
+ },
316
+ 'fetchOrders': {
317
+ 'marginMode': False,
318
+ 'limit': None,
319
+ 'daysBack': None,
320
+ 'untilDays': None,
321
+ 'trigger': False,
322
+ 'trailing': False,
323
+ },
324
+ 'fetchClosedOrders': None,
325
+ 'fetchOHLCV': {
326
+ 'limit': None,
327
+ },
328
+ },
329
+ 'swap': {
330
+ 'linear': None,
331
+ 'inverse': None,
332
+ },
333
+ 'future': {
334
+ 'linear': None,
335
+ 'inverse': None,
336
+ },
337
+ },
267
338
  'fees': {
268
339
  'trading': {
269
340
  'tierBased': False,
@@ -223,6 +223,80 @@ class novadax(Exchange, ImplicitAPI):
223
223
  'fillResponseFromRequest': True,
224
224
  },
225
225
  },
226
+ 'features': {
227
+ 'spot': {
228
+ 'sandbox': False,
229
+ 'createOrder': {
230
+ 'marginMode': False,
231
+ 'triggerPrice': True,
232
+ 'triggerDirection': True, # todo
233
+ 'triggerPriceType': None,
234
+ 'stopLossPrice': False, # todo
235
+ 'takeProfitPrice': False, # todo
236
+ 'attachedStopLossTakeProfit': None,
237
+ # todo
238
+ 'timeInForce': {
239
+ 'IOC': False,
240
+ 'FOK': False,
241
+ 'PO': False,
242
+ 'GTD': False,
243
+ },
244
+ 'hedged': False,
245
+ 'trailing': False,
246
+ 'leverage': False,
247
+ 'marketBuyByCost': True,
248
+ 'marketBuyRequiresPrice': False,
249
+ 'selfTradePrevention': False,
250
+ 'iceberg': True, # todo
251
+ },
252
+ 'createOrders': None, # todo: add implementation
253
+ 'fetchMyTrades': {
254
+ 'marginMode': False,
255
+ 'limit': 100,
256
+ 'daysBack': 100000, # todo
257
+ 'untilDays': 100000, # todo
258
+ },
259
+ 'fetchOrder': {
260
+ 'marginMode': False,
261
+ 'trigger': False,
262
+ 'trailing': False,
263
+ },
264
+ 'fetchOpenOrders': {
265
+ 'marginMode': False,
266
+ 'limit': None,
267
+ 'trigger': False,
268
+ 'trailing': False,
269
+ },
270
+ 'fetchOrders': {
271
+ 'marginMode': False,
272
+ 'limit': 100,
273
+ 'daysBack': 100000, # todo
274
+ 'untilDays': 100000, # todo
275
+ 'trigger': False,
276
+ 'trailing': False,
277
+ },
278
+ 'fetchClosedOrders': {
279
+ 'marginMode': False,
280
+ 'limit': 100,
281
+ 'daysBack': 100000, # todo
282
+ 'daysBackCanceled': 1, # todo
283
+ 'untilDays': 100000, # todo
284
+ 'trigger': False,
285
+ 'trailing': False,
286
+ },
287
+ 'fetchOHLCV': {
288
+ 'limit': None, # todo max 3000
289
+ },
290
+ },
291
+ 'swap': {
292
+ 'linear': None,
293
+ 'inverse': None,
294
+ },
295
+ 'future': {
296
+ 'linear': None,
297
+ 'inverse': None,
298
+ },
299
+ },
226
300
  })
227
301
 
228
302
  async def fetch_time(self, params={}):
@@ -139,6 +139,75 @@ class oceanex(Exchange, ImplicitAPI):
139
139
  'PLA': 'Plair',
140
140
  },
141
141
  'precisionMode': TICK_SIZE,
142
+ 'features': {
143
+ 'spot': {
144
+ 'sandbox': False,
145
+ 'createOrder': {
146
+ 'marginMode': False,
147
+ 'triggerPrice': True, # todo
148
+ 'triggerDirection': True, # todo
149
+ 'triggerPriceType': None,
150
+ 'stopLossPrice': False, # todo
151
+ 'takeProfitPrice': False, # todo
152
+ 'attachedStopLossTakeProfit': None,
153
+ 'timeInForce': {
154
+ 'IOC': False,
155
+ 'FOK': False,
156
+ 'PO': False,
157
+ 'GTD': False,
158
+ },
159
+ 'hedged': False,
160
+ 'trailing': False,
161
+ 'leverage': False,
162
+ 'marketBuyByCost': False,
163
+ 'marketBuyRequiresPrice': False,
164
+ 'selfTradePrevention': False,
165
+ 'iceberg': False,
166
+ },
167
+ 'createOrders': None,
168
+ 'fetchMyTrades': None,
169
+ 'fetchOrder': {
170
+ 'marginMode': False,
171
+ 'trigger': False,
172
+ 'trailing': False,
173
+ },
174
+ 'fetchOpenOrders': {
175
+ 'marginMode': False,
176
+ 'limit': 100, # todo: max unknown
177
+ 'trigger': False,
178
+ 'trailing': False,
179
+ },
180
+ 'fetchOrders': {
181
+ 'marginMode': False,
182
+ 'limit': 100,
183
+ 'daysBack': 100000, # todo
184
+ 'untilDays': 100000, # todo
185
+ 'trigger': False,
186
+ 'trailing': False,
187
+ },
188
+ 'fetchClosedOrders': {
189
+ 'marginMode': False,
190
+ 'limit': 100,
191
+ 'daysBack': 100000, # todo
192
+ 'daysBackCanceled': 1, # todo
193
+ 'untilDays': 100000, # todo
194
+ 'trigger': False,
195
+ 'trailing': False,
196
+ },
197
+ 'fetchOHLCV': {
198
+ 'limit': 100,
199
+ },
200
+ },
201
+ # todo implement swap
202
+ 'swap': {
203
+ 'linear': None,
204
+ 'inverse': None,
205
+ },
206
+ 'future': {
207
+ 'linear': None,
208
+ 'inverse': None,
209
+ },
210
+ },
142
211
  'exceptions': {
143
212
  'codes': {
144
213
  '-1': BadRequest,