ccxt 4.3.52__py2.py3-none-any.whl → 4.3.54__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 (44) hide show
  1. ccxt/__init__.py +3 -1
  2. ccxt/abstract/vertex.py +19 -0
  3. ccxt/async_support/__init__.py +3 -1
  4. ccxt/async_support/base/exchange.py +1 -1
  5. ccxt/async_support/base/ws/cache.py +2 -2
  6. ccxt/async_support/binance.py +1 -1
  7. ccxt/async_support/bingx.py +1 -1
  8. ccxt/async_support/bitget.py +1 -1
  9. ccxt/async_support/bitmart.py +1 -1
  10. ccxt/async_support/coinex.py +1 -1
  11. ccxt/async_support/htx.py +1 -1
  12. ccxt/async_support/hyperliquid.py +27 -25
  13. ccxt/async_support/phemex.py +28 -1
  14. ccxt/async_support/poloniex.py +2 -1
  15. ccxt/async_support/probit.py +9 -5
  16. ccxt/async_support/vertex.py +2811 -0
  17. ccxt/async_support/woo.py +26 -18
  18. ccxt/base/exchange.py +2 -2
  19. ccxt/base/precise.py +10 -0
  20. ccxt/binance.py +1 -1
  21. ccxt/bingx.py +1 -1
  22. ccxt/bitget.py +1 -1
  23. ccxt/bitmart.py +1 -1
  24. ccxt/coinex.py +1 -1
  25. ccxt/htx.py +1 -1
  26. ccxt/hyperliquid.py +27 -25
  27. ccxt/phemex.py +28 -1
  28. ccxt/poloniex.py +2 -1
  29. ccxt/pro/__init__.py +3 -1
  30. ccxt/pro/binance.py +1 -1
  31. ccxt/pro/bybit.py +18 -12
  32. ccxt/pro/kucoin.py +63 -26
  33. ccxt/pro/probit.py +6 -4
  34. ccxt/pro/vertex.py +916 -0
  35. ccxt/probit.py +9 -5
  36. ccxt/test/test_async.py +37 -3
  37. ccxt/test/test_sync.py +37 -3
  38. ccxt/vertex.py +2811 -0
  39. ccxt/woo.py +26 -18
  40. {ccxt-4.3.52.dist-info → ccxt-4.3.54.dist-info}/METADATA +7 -6
  41. {ccxt-4.3.52.dist-info → ccxt-4.3.54.dist-info}/RECORD +44 -40
  42. {ccxt-4.3.52.dist-info → ccxt-4.3.54.dist-info}/LICENSE.txt +0 -0
  43. {ccxt-4.3.52.dist-info → ccxt-4.3.54.dist-info}/WHEEL +0 -0
  44. {ccxt-4.3.52.dist-info → ccxt-4.3.54.dist-info}/top_level.txt +0 -0
ccxt/probit.py CHANGED
@@ -13,6 +13,7 @@ from ccxt.base.errors import AuthenticationError
13
13
  from ccxt.base.errors import ArgumentsRequired
14
14
  from ccxt.base.errors import BadRequest
15
15
  from ccxt.base.errors import BadSymbol
16
+ from ccxt.base.errors import MarketClosed
16
17
  from ccxt.base.errors import BadResponse
17
18
  from ccxt.base.errors import InsufficientFunds
18
19
  from ccxt.base.errors import InvalidAddress
@@ -194,7 +195,7 @@ class probit(Exchange, ImplicitAPI):
194
195
  'RATE_LIMIT_EXCEEDED': RateLimitExceeded, # You are sending requests too frequently. Please try it later.
195
196
  'MARKET_UNAVAILABLE': ExchangeNotAvailable, # Market is closed today
196
197
  'INVALID_MARKET': BadSymbol, # Requested market is not exist
197
- 'MARKET_CLOSED': BadSymbol, # {"errorCode":"MARKET_CLOSED"}
198
+ 'MARKET_CLOSED': MarketClosed, # {"errorCode":"MARKET_CLOSED"}
198
199
  'MARKET_NOT_FOUND': BadSymbol, # {"errorCode":"MARKET_NOT_FOUND","message":"8e2b8496-0a1e-5beb-b990-a205b902eabe","details":{}}
199
200
  'INVALID_CURRENCY': BadRequest, # Requested currency is not exist on ProBit system
200
201
  'TOO_MANY_OPEN_ORDERS': DDoSProtection, # Too many open orders
@@ -1725,10 +1726,13 @@ class probit(Exchange, ImplicitAPI):
1725
1726
  return None # fallback to default error handler
1726
1727
  if 'errorCode' in response:
1727
1728
  errorCode = self.safe_string(response, 'errorCode')
1728
- message = self.safe_string(response, 'message')
1729
1729
  if errorCode is not None:
1730
- feedback = self.id + ' ' + body
1731
- self.throw_exactly_matched_exception(self.exceptions['exact'], message, feedback)
1732
- self.throw_broadly_matched_exception(self.exceptions['exact'], errorCode, feedback)
1730
+ errMessage = self.safe_string(response, 'message', '')
1731
+ details = self.safe_value(response, 'details')
1732
+ feedback = self.id + ' ' + errorCode + ' ' + errMessage + ' ' + self.json(details)
1733
+ if 'exact' in self.exceptions:
1734
+ self.throw_exactly_matched_exception(self.exceptions['exact'], errorCode, feedback)
1735
+ if 'broad' in self.exceptions:
1736
+ self.throw_broadly_matched_exception(self.exceptions['broad'], errMessage, feedback)
1733
1737
  raise ExchangeError(feedback)
1734
1738
  return None
ccxt/test/test_async.py CHANGED
@@ -1144,10 +1144,16 @@ class testMainClass(baseMainTestClass):
1144
1144
  # read apiKey/secret from the test file
1145
1145
  api_key = exchange.safe_string(exchange_data, 'apiKey')
1146
1146
  if api_key:
1147
- exchange.api_key = str(api_key)
1147
+ exchange.apiKey = str(api_key)
1148
1148
  secret = exchange.safe_string(exchange_data, 'secret')
1149
1149
  if secret:
1150
1150
  exchange.secret = str(secret)
1151
+ private_key = exchange.safe_string(exchange_data, 'privateKey')
1152
+ if private_key:
1153
+ exchange.privateKey = str(private_key)
1154
+ wallet_address = exchange.safe_string(exchange_data, 'walletAddress')
1155
+ if wallet_address:
1156
+ exchange.walletAddress = str(wallet_address)
1151
1157
  # exchange.options = exchange.deepExtend (exchange.options, globalOptions); # custom options to be used in the tests
1152
1158
  exchange.extend_exchange_options(global_options)
1153
1159
  methods = exchange.safe_value(exchange_data, 'methods', {})
@@ -1181,10 +1187,16 @@ class testMainClass(baseMainTestClass):
1181
1187
  # read apiKey/secret from the test file
1182
1188
  api_key = exchange.safe_string(exchange_data, 'apiKey')
1183
1189
  if api_key:
1184
- exchange.api_key = str(api_key)
1190
+ exchange.apiKey = str(api_key)
1185
1191
  secret = exchange.safe_string(exchange_data, 'secret')
1186
1192
  if secret:
1187
1193
  exchange.secret = str(secret)
1194
+ private_key = exchange.safe_string(exchange_data, 'privateKey')
1195
+ if private_key:
1196
+ exchange.privateKey = str(private_key)
1197
+ wallet_address = exchange.safe_string(exchange_data, 'walletAddress')
1198
+ if wallet_address:
1199
+ exchange.walletAddress = str(wallet_address)
1188
1200
  methods = exchange.safe_value(exchange_data, 'methods', {})
1189
1201
  options = exchange.safe_value(exchange_data, 'options', {})
1190
1202
  # exchange.options = exchange.deepExtend (exchange.options, options); # custom options to be used in the tests
@@ -1274,7 +1286,7 @@ class testMainClass(baseMainTestClass):
1274
1286
  # -----------------------------------------------------------------------------
1275
1287
  # --- Init of brokerId tests functions-----------------------------------------
1276
1288
  # -----------------------------------------------------------------------------
1277
- promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt()]
1289
+ promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex()]
1278
1290
  await asyncio.gather(*promises)
1279
1291
  success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
1280
1292
  dump('[INFO]' + success_message)
@@ -1638,6 +1650,28 @@ class testMainClass(baseMainTestClass):
1638
1650
  await close(exchange)
1639
1651
  return True
1640
1652
 
1653
+ async def test_vertex(self):
1654
+ exchange = self.init_offline_exchange('vertex')
1655
+ exchange.walletAddress = '0xc751489d24a33172541ea451bc253d7a9e98c781'
1656
+ exchange.privateKey = 'c33b1eb4b53108bf52e10f636d8c1236c04c33a712357ba3543ab45f48a5cb0b'
1657
+ exchange.options['v1contracts'] = {
1658
+ 'chain_id': '42161',
1659
+ 'endpoint_addr': '0xbbee07b3e8121227afcfe1e2b82772246226128e',
1660
+ 'book_addrs': ['0x0000000000000000000000000000000000000000', '0x70e5911371472e406f1291c621d1c8f207764d73', '0xf03f457a30e598d5020164a339727ef40f2b8fbc', '0x1c6281a78aa0ed88949c319cba5f0f0de2ce8353', '0xfe653438a1a4a7f56e727509c341d60a7b54fa91', '0xb6304e9a6ca241376a5fc9294daa8fca65ddcdcd', '0x01ec802ae0ab1b2cc4f028b9fe6eb954aef06ed1', '0x0000000000000000000000000000000000000000', '0x9c52d5c4df5a68955ad088a781b4ab364a861e9e', '0x0000000000000000000000000000000000000000', '0x2a3bcda1bb3ef649f3571c96c597c3d2b25edc79', '0x0000000000000000000000000000000000000000', '0x0492ff9807f82856781488015ef7aa5526c0edd6', '0x0000000000000000000000000000000000000000', '0xea884c82418ebc21cd080b8f40ecc4d06a6a6883', '0x0000000000000000000000000000000000000000', '0x5ecf68f983253a818ca8c17a56a4f2fb48d6ec6b', '0x0000000000000000000000000000000000000000', '0xba3f57a977f099905531f7c2f294aad7b56ed254', '0x0000000000000000000000000000000000000000', '0x0ac8c26d207d0c6aabb3644fea18f530c4d6fc8e', '0x0000000000000000000000000000000000000000', '0x8bd80ad7630b3864bed66cf28f548143ea43dc3b', '0x0000000000000000000000000000000000000000', '0x045391227fc4b2cdd27b95f066864225afc9314e', '0x0000000000000000000000000000000000000000', '0x7d512bef2e6cfd7e7f5f6b2f8027e3728eb7b6c3', '0x0000000000000000000000000000000000000000', '0x678a6c5003b56b5e9a81559e9a0df880407c796f', '0x0000000000000000000000000000000000000000', '0x14b5a17208fa98843cc602b3f74e31c95ded3567', '0xe442a89a07b3888ab10579fbb2824aeceff3a282', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0xac28ac205275d7c2d6877bea8657cebe04fd9ae9', '0x0000000000000000000000000000000000000000', '0xed811409bfea901e75cb19ba347c08a154e860c9', '0x0000000000000000000000000000000000000000', '0x0f7afcb1612b305626cff84f84e4169ba2d0f12c', '0x0000000000000000000000000000000000000000', '0xe4b8d903db2ce2d3891ef04cfc3ac56330c1b0c3', '0x5f44362bad629846b7455ad9d36bbc3759a3ef62', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0xa64e04ed4b223a71e524dc7ebb7f28e422ccfdde', '0x0000000000000000000000000000000000000000', '0x2ee573caab73c1d8cf0ca6bd3589b67de79628a4', '0x0000000000000000000000000000000000000000', '0x01bb96883a8a478d4410387d4aaf11067edc2c74', '0x0000000000000000000000000000000000000000', '0xe7ed0c559d905436a867cddf07e06921d572363c', '0x0000000000000000000000000000000000000000', '0xa94f9e3433c92a5cd1925494811a67b1943557d9', '0x0000000000000000000000000000000000000000', '0xa63de7f89ba1270b85f3dcc193ff1a1390a7c7c7', '0x0000000000000000000000000000000000000000', '0xc8b0b37dffe3a711a076dc86dd617cc203f36121', '0x0000000000000000000000000000000000000000', '0x646df48947ff785fe609969ff634e7be9d1c34cd', '0x0000000000000000000000000000000000000000', '0x42582b404b0bec4a266631a0e178840b107a0c69', '0x0000000000000000000000000000000000000000', '0x36a94bc3edb1b629d1413091e22dc65fa050f17f', '0x0000000000000000000000000000000000000000', '0xb398d00b5a336f0ad33cfb352fd7646171cec442', '0x0000000000000000000000000000000000000000', '0xb4bc3b00de98e1c0498699379f6607b1f00bd5a1', '0x0000000000000000000000000000000000000000', '0xfe8b7baf68952bac2c04f386223d2013c1b4c601', '0x0000000000000000000000000000000000000000', '0x9c8764ec71f175c97c6c2fd558eb6546fcdbea32', '0x0000000000000000000000000000000000000000', '0x94d31188982c8eccf243e555b22dc57de1dba4e1', '0x0000000000000000000000000000000000000000', '0x407c5e2fadd7555be927c028bc358daa907c797a', '0x0000000000000000000000000000000000000000', '0x7e97da2dbbbdd7fb313cf9dc0581ac7cec999c70', '0x0000000000000000000000000000000000000000', '0x7f8d2662f64dd468c423805f98a6579ad59b28fa', '0x0000000000000000000000000000000000000000', '0x3398adf63fed17cbadd6080a1fb771e6a2a55958', '0x0000000000000000000000000000000000000000', '0xba8910a1d7ab62129729047d453091a1e6356170', '0x0000000000000000000000000000000000000000', '0xdc054bce222fe725da0f17abcef38253bd8bb745', '0x0000000000000000000000000000000000000000', '0xca21693467d0a5ea9e10a5a7c5044b9b3837e694', '0x0000000000000000000000000000000000000000', '0xe0b02de2139256dbae55cf350094b882fbe629ea', '0x0000000000000000000000000000000000000000', '0x02c38368a6f53858aab5a3a8d91d73eb59edf9b9', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0xfe8c4778843c3cb047ffe7c0c0154a724c05cab9', '0x0000000000000000000000000000000000000000', '0xe2e88862d9b7379e21c82fc4aec8d71bddbcdb4b', '0x0000000000000000000000000000000000000000', '0xbbaff9e73b30f9cea5c01481f12de75050947fd6', '0x0000000000000000000000000000000000000000', '0xa20f6f381fe0fec5a1035d37ebf8890726377ab9', '0x0000000000000000000000000000000000000000', '0xbad68032d012bf35d3a2a177b242e86684027ed0', '0x0000000000000000000000000000000000000000', '0x0e61ca37f0c67e8a8794e45e264970a2a23a513c', '0x0000000000000000000000000000000000000000', '0xa77b7048e378c5270b15918449ededf87c3a3db3', '0x0000000000000000000000000000000000000000', '0x15afca1e6f02b556fa6551021b3493a1e4a7f44f'],
1661
+ }
1662
+ id = 5930043274845996
1663
+ await exchange.load_markets()
1664
+ request = None
1665
+ try:
1666
+ await exchange.create_order('BTC/USDC:USDC', 'limit', 'buy', 1, 20000)
1667
+ except Exception as e:
1668
+ request = json_parse(exchange.last_request_body)
1669
+ order = request['place_order']
1670
+ broker_id = order['id']
1671
+ assert broker_id == id, 'vertex - id: ' + str(id) + ' different from broker_id: ' + str(broker_id)
1672
+ await close(exchange)
1673
+ return True
1674
+
1641
1675
  # ***** AUTO-TRANSPILER-END *****
1642
1676
  # *******************************
1643
1677
 
ccxt/test/test_sync.py CHANGED
@@ -1143,10 +1143,16 @@ class testMainClass(baseMainTestClass):
1143
1143
  # read apiKey/secret from the test file
1144
1144
  api_key = exchange.safe_string(exchange_data, 'apiKey')
1145
1145
  if api_key:
1146
- exchange.api_key = str(api_key)
1146
+ exchange.apiKey = str(api_key)
1147
1147
  secret = exchange.safe_string(exchange_data, 'secret')
1148
1148
  if secret:
1149
1149
  exchange.secret = str(secret)
1150
+ private_key = exchange.safe_string(exchange_data, 'privateKey')
1151
+ if private_key:
1152
+ exchange.privateKey = str(private_key)
1153
+ wallet_address = exchange.safe_string(exchange_data, 'walletAddress')
1154
+ if wallet_address:
1155
+ exchange.walletAddress = str(wallet_address)
1150
1156
  # exchange.options = exchange.deepExtend (exchange.options, globalOptions); # custom options to be used in the tests
1151
1157
  exchange.extend_exchange_options(global_options)
1152
1158
  methods = exchange.safe_value(exchange_data, 'methods', {})
@@ -1180,10 +1186,16 @@ class testMainClass(baseMainTestClass):
1180
1186
  # read apiKey/secret from the test file
1181
1187
  api_key = exchange.safe_string(exchange_data, 'apiKey')
1182
1188
  if api_key:
1183
- exchange.api_key = str(api_key)
1189
+ exchange.apiKey = str(api_key)
1184
1190
  secret = exchange.safe_string(exchange_data, 'secret')
1185
1191
  if secret:
1186
1192
  exchange.secret = str(secret)
1193
+ private_key = exchange.safe_string(exchange_data, 'privateKey')
1194
+ if private_key:
1195
+ exchange.privateKey = str(private_key)
1196
+ wallet_address = exchange.safe_string(exchange_data, 'walletAddress')
1197
+ if wallet_address:
1198
+ exchange.walletAddress = str(wallet_address)
1187
1199
  methods = exchange.safe_value(exchange_data, 'methods', {})
1188
1200
  options = exchange.safe_value(exchange_data, 'options', {})
1189
1201
  # exchange.options = exchange.deepExtend (exchange.options, options); # custom options to be used in the tests
@@ -1273,7 +1285,7 @@ class testMainClass(baseMainTestClass):
1273
1285
  # -----------------------------------------------------------------------------
1274
1286
  # --- Init of brokerId tests functions-----------------------------------------
1275
1287
  # -----------------------------------------------------------------------------
1276
- promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt()]
1288
+ promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex()]
1277
1289
  (promises)
1278
1290
  success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
1279
1291
  dump('[INFO]' + success_message)
@@ -1637,6 +1649,28 @@ class testMainClass(baseMainTestClass):
1637
1649
  close(exchange)
1638
1650
  return True
1639
1651
 
1652
+ def test_vertex(self):
1653
+ exchange = self.init_offline_exchange('vertex')
1654
+ exchange.walletAddress = '0xc751489d24a33172541ea451bc253d7a9e98c781'
1655
+ exchange.privateKey = 'c33b1eb4b53108bf52e10f636d8c1236c04c33a712357ba3543ab45f48a5cb0b'
1656
+ exchange.options['v1contracts'] = {
1657
+ 'chain_id': '42161',
1658
+ 'endpoint_addr': '0xbbee07b3e8121227afcfe1e2b82772246226128e',
1659
+ 'book_addrs': ['0x0000000000000000000000000000000000000000', '0x70e5911371472e406f1291c621d1c8f207764d73', '0xf03f457a30e598d5020164a339727ef40f2b8fbc', '0x1c6281a78aa0ed88949c319cba5f0f0de2ce8353', '0xfe653438a1a4a7f56e727509c341d60a7b54fa91', '0xb6304e9a6ca241376a5fc9294daa8fca65ddcdcd', '0x01ec802ae0ab1b2cc4f028b9fe6eb954aef06ed1', '0x0000000000000000000000000000000000000000', '0x9c52d5c4df5a68955ad088a781b4ab364a861e9e', '0x0000000000000000000000000000000000000000', '0x2a3bcda1bb3ef649f3571c96c597c3d2b25edc79', '0x0000000000000000000000000000000000000000', '0x0492ff9807f82856781488015ef7aa5526c0edd6', '0x0000000000000000000000000000000000000000', '0xea884c82418ebc21cd080b8f40ecc4d06a6a6883', '0x0000000000000000000000000000000000000000', '0x5ecf68f983253a818ca8c17a56a4f2fb48d6ec6b', '0x0000000000000000000000000000000000000000', '0xba3f57a977f099905531f7c2f294aad7b56ed254', '0x0000000000000000000000000000000000000000', '0x0ac8c26d207d0c6aabb3644fea18f530c4d6fc8e', '0x0000000000000000000000000000000000000000', '0x8bd80ad7630b3864bed66cf28f548143ea43dc3b', '0x0000000000000000000000000000000000000000', '0x045391227fc4b2cdd27b95f066864225afc9314e', '0x0000000000000000000000000000000000000000', '0x7d512bef2e6cfd7e7f5f6b2f8027e3728eb7b6c3', '0x0000000000000000000000000000000000000000', '0x678a6c5003b56b5e9a81559e9a0df880407c796f', '0x0000000000000000000000000000000000000000', '0x14b5a17208fa98843cc602b3f74e31c95ded3567', '0xe442a89a07b3888ab10579fbb2824aeceff3a282', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0xac28ac205275d7c2d6877bea8657cebe04fd9ae9', '0x0000000000000000000000000000000000000000', '0xed811409bfea901e75cb19ba347c08a154e860c9', '0x0000000000000000000000000000000000000000', '0x0f7afcb1612b305626cff84f84e4169ba2d0f12c', '0x0000000000000000000000000000000000000000', '0xe4b8d903db2ce2d3891ef04cfc3ac56330c1b0c3', '0x5f44362bad629846b7455ad9d36bbc3759a3ef62', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0xa64e04ed4b223a71e524dc7ebb7f28e422ccfdde', '0x0000000000000000000000000000000000000000', '0x2ee573caab73c1d8cf0ca6bd3589b67de79628a4', '0x0000000000000000000000000000000000000000', '0x01bb96883a8a478d4410387d4aaf11067edc2c74', '0x0000000000000000000000000000000000000000', '0xe7ed0c559d905436a867cddf07e06921d572363c', '0x0000000000000000000000000000000000000000', '0xa94f9e3433c92a5cd1925494811a67b1943557d9', '0x0000000000000000000000000000000000000000', '0xa63de7f89ba1270b85f3dcc193ff1a1390a7c7c7', '0x0000000000000000000000000000000000000000', '0xc8b0b37dffe3a711a076dc86dd617cc203f36121', '0x0000000000000000000000000000000000000000', '0x646df48947ff785fe609969ff634e7be9d1c34cd', '0x0000000000000000000000000000000000000000', '0x42582b404b0bec4a266631a0e178840b107a0c69', '0x0000000000000000000000000000000000000000', '0x36a94bc3edb1b629d1413091e22dc65fa050f17f', '0x0000000000000000000000000000000000000000', '0xb398d00b5a336f0ad33cfb352fd7646171cec442', '0x0000000000000000000000000000000000000000', '0xb4bc3b00de98e1c0498699379f6607b1f00bd5a1', '0x0000000000000000000000000000000000000000', '0xfe8b7baf68952bac2c04f386223d2013c1b4c601', '0x0000000000000000000000000000000000000000', '0x9c8764ec71f175c97c6c2fd558eb6546fcdbea32', '0x0000000000000000000000000000000000000000', '0x94d31188982c8eccf243e555b22dc57de1dba4e1', '0x0000000000000000000000000000000000000000', '0x407c5e2fadd7555be927c028bc358daa907c797a', '0x0000000000000000000000000000000000000000', '0x7e97da2dbbbdd7fb313cf9dc0581ac7cec999c70', '0x0000000000000000000000000000000000000000', '0x7f8d2662f64dd468c423805f98a6579ad59b28fa', '0x0000000000000000000000000000000000000000', '0x3398adf63fed17cbadd6080a1fb771e6a2a55958', '0x0000000000000000000000000000000000000000', '0xba8910a1d7ab62129729047d453091a1e6356170', '0x0000000000000000000000000000000000000000', '0xdc054bce222fe725da0f17abcef38253bd8bb745', '0x0000000000000000000000000000000000000000', '0xca21693467d0a5ea9e10a5a7c5044b9b3837e694', '0x0000000000000000000000000000000000000000', '0xe0b02de2139256dbae55cf350094b882fbe629ea', '0x0000000000000000000000000000000000000000', '0x02c38368a6f53858aab5a3a8d91d73eb59edf9b9', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000', '0xfe8c4778843c3cb047ffe7c0c0154a724c05cab9', '0x0000000000000000000000000000000000000000', '0xe2e88862d9b7379e21c82fc4aec8d71bddbcdb4b', '0x0000000000000000000000000000000000000000', '0xbbaff9e73b30f9cea5c01481f12de75050947fd6', '0x0000000000000000000000000000000000000000', '0xa20f6f381fe0fec5a1035d37ebf8890726377ab9', '0x0000000000000000000000000000000000000000', '0xbad68032d012bf35d3a2a177b242e86684027ed0', '0x0000000000000000000000000000000000000000', '0x0e61ca37f0c67e8a8794e45e264970a2a23a513c', '0x0000000000000000000000000000000000000000', '0xa77b7048e378c5270b15918449ededf87c3a3db3', '0x0000000000000000000000000000000000000000', '0x15afca1e6f02b556fa6551021b3493a1e4a7f44f'],
1660
+ }
1661
+ id = 5930043274845996
1662
+ exchange.load_markets()
1663
+ request = None
1664
+ try:
1665
+ exchange.create_order('BTC/USDC:USDC', 'limit', 'buy', 1, 20000)
1666
+ except Exception as e:
1667
+ request = json_parse(exchange.last_request_body)
1668
+ order = request['place_order']
1669
+ broker_id = order['id']
1670
+ assert broker_id == id, 'vertex - id: ' + str(id) + ' different from broker_id: ' + str(broker_id)
1671
+ close(exchange)
1672
+ return True
1673
+
1640
1674
  # ***** AUTO-TRANSPILER-END *****
1641
1675
  # *******************************
1642
1676