ccxt 4.4.45__py2.py3-none-any.whl → 4.4.46__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.
- ccxt/__init__.py +1 -1
- ccxt/ascendex.py +15 -1
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/ascendex.py +15 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/binance.py +1 -1
- ccxt/async_support/bitget.py +102 -38
- ccxt/async_support/bybit.py +80 -36
- ccxt/async_support/delta.py +9 -4
- ccxt/async_support/gate.py +0 -1
- ccxt/async_support/hyperliquid.py +2 -3
- ccxt/async_support/mexc.py +1 -0
- ccxt/async_support/onetrading.py +18 -3
- ccxt/base/exchange.py +1 -1
- ccxt/binance.py +1 -1
- ccxt/bitget.py +102 -38
- ccxt/bybit.py +80 -36
- ccxt/delta.py +9 -4
- ccxt/gate.py +0 -1
- ccxt/hyperliquid.py +2 -3
- ccxt/mexc.py +1 -0
- ccxt/onetrading.py +18 -3
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/coinex.py +1 -1
- {ccxt-4.4.45.dist-info → ccxt-4.4.46.dist-info}/METADATA +4 -4
- {ccxt-4.4.45.dist-info → ccxt-4.4.46.dist-info}/RECORD +29 -29
- {ccxt-4.4.45.dist-info → ccxt-4.4.46.dist-info}/LICENSE.txt +0 -0
- {ccxt-4.4.45.dist-info → ccxt-4.4.46.dist-info}/WHEEL +0 -0
- {ccxt-4.4.45.dist-info → ccxt-4.4.46.dist-info}/top_level.txt +0 -0
ccxt/bitget.py
CHANGED
@@ -1444,16 +1444,102 @@ class bitget(Exchange, ImplicitAPI):
|
|
1444
1444
|
},
|
1445
1445
|
'sandboxMode': False,
|
1446
1446
|
'networks': {
|
1447
|
+
# 'TRX': 'TRX', # different code for mainnet
|
1447
1448
|
'TRC20': 'TRC20',
|
1449
|
+
# 'ETH': 'ETH', # different code for mainnet
|
1448
1450
|
'ERC20': 'ERC20',
|
1449
1451
|
'BEP20': 'BSC',
|
1450
|
-
'
|
1451
|
-
'
|
1452
|
-
'
|
1452
|
+
# 'BEP20': 'BEP20', # different for BEP20
|
1453
|
+
'BSC': 'BEP20',
|
1454
|
+
'ATOM': 'ATOM',
|
1455
|
+
'ACA': 'AcalaToken',
|
1453
1456
|
'APT': 'Aptos',
|
1457
|
+
'ARBONE': 'ArbitrumOne',
|
1458
|
+
'ARBNOVA': 'ArbitrumNova',
|
1459
|
+
'AVAXC': 'C-Chain',
|
1460
|
+
'AVAXX': 'X-Chain',
|
1461
|
+
'AR': 'Arweave',
|
1462
|
+
'BCH': 'BCH',
|
1463
|
+
'BCHA': 'BCHA',
|
1464
|
+
'BITCI': 'BITCI',
|
1465
|
+
'BTC': 'BTC',
|
1466
|
+
'CELO': 'CELO',
|
1467
|
+
'CSPR': 'CSPR',
|
1468
|
+
'ADA': 'Cardano',
|
1469
|
+
'CHZ': 'ChilizChain',
|
1470
|
+
'CRC20': 'CronosChain',
|
1471
|
+
'DOGE': 'DOGE',
|
1472
|
+
'DOT': 'DOT',
|
1473
|
+
'EOS': 'EOS',
|
1474
|
+
'ETHF': 'ETHFAIR',
|
1475
|
+
'ETHW': 'ETHW',
|
1476
|
+
'ETC': 'ETC',
|
1477
|
+
'EGLD': 'Elrond',
|
1478
|
+
'FIL': 'FIL',
|
1479
|
+
'FIO': 'FIO',
|
1480
|
+
'FTM': 'Fantom',
|
1481
|
+
'HRC20': 'HECO',
|
1482
|
+
'ONE': 'Harmony',
|
1483
|
+
'HNT': 'Helium',
|
1484
|
+
'ICP': 'ICP',
|
1485
|
+
'IOTX': 'IoTeX',
|
1486
|
+
'KARDIA': 'KAI',
|
1487
|
+
'KAVA': 'KAVA',
|
1488
|
+
'KDA': 'KDA',
|
1489
|
+
'KLAY': 'Klaytn',
|
1490
|
+
'KSM': 'Kusama',
|
1491
|
+
'LAT': 'LAT',
|
1492
|
+
'LTC': 'LTC',
|
1493
|
+
'MINA': 'MINA',
|
1494
|
+
'MOVR': 'MOVR',
|
1495
|
+
'METIS': 'MetisToken',
|
1496
|
+
'GLMR': 'Moonbeam',
|
1497
|
+
'NEAR': 'NEARProtocol',
|
1498
|
+
'NULS': 'NULS',
|
1499
|
+
'OASYS': 'OASYS',
|
1500
|
+
'OASIS': 'ROSE',
|
1501
|
+
'OMNI': 'OMNI',
|
1502
|
+
'ONT': 'Ontology',
|
1503
|
+
'OPTIMISM': 'Optimism',
|
1504
|
+
'OSMO': 'Osmosis',
|
1505
|
+
'POKT': 'PocketNetwork',
|
1454
1506
|
'MATIC': 'Polygon',
|
1507
|
+
'QTUM': 'QTUM',
|
1508
|
+
'REEF': 'REEF',
|
1509
|
+
'SOL': 'SOL',
|
1510
|
+
'SYS': 'SYS', # SyscoinNEVM is different
|
1511
|
+
'SXP': 'Solar',
|
1512
|
+
'XYM': 'Symbol',
|
1513
|
+
'TON': 'TON',
|
1514
|
+
'TT': 'TT',
|
1515
|
+
'TLOS': 'Telos',
|
1516
|
+
'THETA': 'ThetaToken',
|
1517
|
+
'VITE': 'VITE',
|
1518
|
+
'WAVES': 'WAVES',
|
1519
|
+
'WAX': 'WAXP',
|
1520
|
+
'WEMIX': 'WEMIXMainnet',
|
1521
|
+
'XDC': 'XDCNetworkXDC',
|
1522
|
+
'XRP': 'XRP',
|
1523
|
+
'FET': 'FETCH',
|
1524
|
+
'NEM': 'NEM',
|
1525
|
+
'REI': 'REINetwork',
|
1526
|
+
'ZIL': 'ZIL',
|
1527
|
+
'ABBC': 'ABBCCoin',
|
1528
|
+
'RSK': 'RSK',
|
1529
|
+
'AZERO': 'AZERO',
|
1530
|
+
'TRC10': 'TRC10',
|
1531
|
+
'JUNO': 'JUNO',
|
1532
|
+
# undetected: USDSP, more info at https://www.bitget.com/v1/spot/public/coinChainList
|
1533
|
+
# todo: uncomment below after unification
|
1534
|
+
# 'TERRACLASSIC': 'Terra', # tbd, that network id is also assigned to TERRANEW network
|
1535
|
+
# 'CUBENETWORK': 'CUBE',
|
1536
|
+
# 'CADUCEUS': 'CMP',
|
1537
|
+
# 'CONFLUX': 'CFX', # CFXeSpace is different
|
1538
|
+
# 'CERE': 'CERE',
|
1539
|
+
# 'CANTO': 'CANTO',
|
1540
|
+
'ZKSYNC': 'zkSyncEra',
|
1541
|
+
'STARKNET': 'Starknet',
|
1455
1542
|
'VIC': 'VICTION',
|
1456
|
-
'AVAXC': 'C-Chain',
|
1457
1543
|
},
|
1458
1544
|
'networksById': {
|
1459
1545
|
},
|
@@ -2303,13 +2389,13 @@ class bitget(Exchange, ImplicitAPI):
|
|
2303
2389
|
:returns dict: a `transaction structure <https://docs.ccxt.com/#/?id=transaction-structure>`
|
2304
2390
|
"""
|
2305
2391
|
self.check_address(address)
|
2306
|
-
|
2307
|
-
params = self.
|
2308
|
-
if
|
2309
|
-
raise ArgumentsRequired(self.id + ' withdraw() requires a
|
2392
|
+
networkCode = None
|
2393
|
+
networkCode, params = self.handle_network_code_and_params(params)
|
2394
|
+
if networkCode is None:
|
2395
|
+
raise ArgumentsRequired(self.id + ' withdraw() requires a "network" parameter')
|
2310
2396
|
self.load_markets()
|
2311
2397
|
currency = self.currency(code)
|
2312
|
-
networkId = self.network_code_to_id(
|
2398
|
+
networkId = self.network_code_to_id(networkCode)
|
2313
2399
|
request: dict = {
|
2314
2400
|
'coin': currency['id'],
|
2315
2401
|
'address': address,
|
@@ -2332,27 +2418,8 @@ class bitget(Exchange, ImplicitAPI):
|
|
2332
2418
|
# }
|
2333
2419
|
#
|
2334
2420
|
data = self.safe_value(response, 'data', {})
|
2335
|
-
result
|
2336
|
-
|
2337
|
-
'info': response,
|
2338
|
-
'txid': None,
|
2339
|
-
'timestamp': None,
|
2340
|
-
'datetime': None,
|
2341
|
-
'network': None,
|
2342
|
-
'addressFrom': None,
|
2343
|
-
'address': None,
|
2344
|
-
'addressTo': None,
|
2345
|
-
'amount': None,
|
2346
|
-
'type': 'withdrawal',
|
2347
|
-
'currency': None,
|
2348
|
-
'status': None,
|
2349
|
-
'updated': None,
|
2350
|
-
'tagFrom': None,
|
2351
|
-
'tag': None,
|
2352
|
-
'tagTo': None,
|
2353
|
-
'comment': None,
|
2354
|
-
'fee': None,
|
2355
|
-
}
|
2421
|
+
result = self.parse_transaction(data, currency)
|
2422
|
+
result['type'] = 'withdrawal'
|
2356
2423
|
withdrawOptions = self.safe_value(self.options, 'withdraw', {})
|
2357
2424
|
fillResponseFromRequest = self.safe_bool(withdrawOptions, 'fillResponseFromRequest', True)
|
2358
2425
|
if fillResponseFromRequest:
|
@@ -2363,7 +2430,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
2363
2430
|
result['tag'] = tag
|
2364
2431
|
result['address'] = address
|
2365
2432
|
result['addressTo'] = address
|
2366
|
-
result['network'] =
|
2433
|
+
result['network'] = networkCode
|
2367
2434
|
return result
|
2368
2435
|
|
2369
2436
|
def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
@@ -2525,17 +2592,14 @@ class bitget(Exchange, ImplicitAPI):
|
|
2525
2592
|
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
|
2526
2593
|
"""
|
2527
2594
|
self.load_markets()
|
2528
|
-
networkCode =
|
2529
|
-
params = self.
|
2530
|
-
networkId = None
|
2531
|
-
if networkCode is not None:
|
2532
|
-
networkId = self.network_code_to_id(networkCode, code)
|
2595
|
+
networkCode = None
|
2596
|
+
networkCode, params = self.handle_network_code_and_params(params)
|
2533
2597
|
currency = self.currency(code)
|
2534
2598
|
request: dict = {
|
2535
2599
|
'coin': currency['id'],
|
2536
2600
|
}
|
2537
|
-
if
|
2538
|
-
request['chain'] =
|
2601
|
+
if networkCode is not None:
|
2602
|
+
request['chain'] = self.network_code_to_id(networkCode, code)
|
2539
2603
|
response = self.privateSpotGetV2SpotWalletDepositAddress(self.extend(request, params))
|
2540
2604
|
#
|
2541
2605
|
# {
|
ccxt/bybit.py
CHANGED
@@ -1072,8 +1072,78 @@ class bybit(Exchange, ImplicitAPI):
|
|
1072
1072
|
'ERC20': 'ETH',
|
1073
1073
|
'TRC20': 'TRX',
|
1074
1074
|
'BEP20': 'BSC',
|
1075
|
+
'SOL': 'SOL',
|
1076
|
+
'ACA': 'ACA',
|
1077
|
+
'ADA': 'ADA',
|
1078
|
+
'ALGO': 'ALGO',
|
1079
|
+
'APT': 'APTOS',
|
1080
|
+
'AR': 'AR',
|
1081
|
+
'ARBONE': 'ARBI',
|
1082
|
+
'AVAXC': 'CAVAX',
|
1083
|
+
'AVAXX': 'XAVAX',
|
1084
|
+
'ATOM': 'ATOM',
|
1085
|
+
'BCH': 'BCH',
|
1086
|
+
'BEP2': 'BNB',
|
1087
|
+
'CHZ': 'CHZ',
|
1088
|
+
'DCR': 'DCR',
|
1089
|
+
'DGB': 'DGB',
|
1090
|
+
'DOGE': 'DOGE',
|
1091
|
+
'DOT': 'DOT',
|
1092
|
+
'EGLD': 'EGLD',
|
1093
|
+
'EOS': 'EOS',
|
1094
|
+
'ETC': 'ETC',
|
1095
|
+
'ETHF': 'ETHF',
|
1096
|
+
'ETHW': 'ETHW',
|
1097
|
+
'FIL': 'FIL',
|
1098
|
+
'STEP': 'FITFI',
|
1099
|
+
'FLOW': 'FLOW',
|
1100
|
+
'FTM': 'FTM',
|
1101
|
+
'GLMR': 'GLMR',
|
1102
|
+
'HBAR': 'HBAR',
|
1103
|
+
'HNT': 'HNT',
|
1104
|
+
'ICP': 'ICP',
|
1105
|
+
'ICX': 'ICX',
|
1106
|
+
'KDA': 'KDA',
|
1107
|
+
'KLAY': 'KLAY',
|
1108
|
+
'KMA': 'KMA',
|
1109
|
+
'KSM': 'KSM',
|
1110
|
+
'LTC': 'LTC',
|
1111
|
+
# 'TERRA': 'LUNANEW',
|
1112
|
+
# 'TERRACLASSIC': 'LUNA',
|
1113
|
+
'MATIC': 'MATIC',
|
1114
|
+
'MINA': 'MINA',
|
1115
|
+
'MOVR': 'MOVR',
|
1116
|
+
'NEAR': 'NEAR',
|
1117
|
+
'NEM': 'NEM',
|
1118
|
+
'OASYS': 'OAS',
|
1119
|
+
'OASIS': 'ROSE',
|
1075
1120
|
'OMNI': 'OMNI',
|
1076
|
-
'
|
1121
|
+
'ONE': 'ONE',
|
1122
|
+
'OPTIMISM': 'OP',
|
1123
|
+
'POKT': 'POKT',
|
1124
|
+
'QTUM': 'QTUM',
|
1125
|
+
'RVN': 'RVN',
|
1126
|
+
'SC': 'SC',
|
1127
|
+
'SCRT': 'SCRT',
|
1128
|
+
'STX': 'STX',
|
1129
|
+
'THETA': 'THETA',
|
1130
|
+
'TON': 'TON',
|
1131
|
+
'WAVES': 'WAVES',
|
1132
|
+
'WAX': 'WAXP',
|
1133
|
+
'XDC': 'XDC',
|
1134
|
+
'XEC': 'XEC',
|
1135
|
+
'XLM': 'XLM',
|
1136
|
+
'XRP': 'XRP',
|
1137
|
+
'XTZ': 'XTZ',
|
1138
|
+
'XYM': 'XYM',
|
1139
|
+
'ZEN': 'ZEN',
|
1140
|
+
'ZIL': 'ZIL',
|
1141
|
+
'ZKSYNC': 'ZKSYNC',
|
1142
|
+
# todo: uncomment after consensus
|
1143
|
+
# 'CADUCEUS': 'CMP',
|
1144
|
+
# 'KON': 'KON', # konpay, "konchain"
|
1145
|
+
# 'AURORA': 'AURORA',
|
1146
|
+
# 'BITCOINGOLD': 'BTG',
|
1077
1147
|
},
|
1078
1148
|
'networksById': {
|
1079
1149
|
'ETH': 'ERC20',
|
@@ -5058,12 +5128,11 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
5058
5128
|
address = self.safe_string(depositAddress, 'addressDeposit')
|
5059
5129
|
tag = self.safe_string(depositAddress, 'tagDeposit')
|
5060
5130
|
code = self.safe_string(currency, 'code')
|
5061
|
-
chain = self.safe_string(depositAddress, 'chain')
|
5062
5131
|
self.check_address(address)
|
5063
5132
|
return {
|
5064
5133
|
'info': depositAddress,
|
5065
5134
|
'currency': code,
|
5066
|
-
'network': chain,
|
5135
|
+
'network': self.network_id_to_code(self.safe_string(depositAddress, 'chain'), code),
|
5067
5136
|
'address': address,
|
5068
5137
|
'tag': tag,
|
5069
5138
|
}
|
@@ -5083,6 +5152,10 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
5083
5152
|
request: dict = {
|
5084
5153
|
'coin': currency['id'],
|
5085
5154
|
}
|
5155
|
+
networkCode = None
|
5156
|
+
networkCode, params = self.handle_network_code_and_params(params)
|
5157
|
+
if networkCode is not None:
|
5158
|
+
request['chainType'] = self.network_code_to_id(networkCode, code)
|
5086
5159
|
response = self.privateGetV5AssetDepositQueryAddress(self.extend(request, params))
|
5087
5160
|
#
|
5088
5161
|
# {
|
@@ -5123,40 +5196,11 @@ classic accounts only/ spot not supported* fetches information on an order made
|
|
5123
5196
|
:returns dict: an `address structure <https://docs.ccxt.com/#/?id=address-structure>`
|
5124
5197
|
"""
|
5125
5198
|
self.load_markets()
|
5126
|
-
networkCode, query = self.handle_network_code_and_params(params)
|
5127
|
-
networkId = self.network_code_to_id(networkCode)
|
5128
5199
|
currency = self.currency(code)
|
5129
|
-
|
5130
|
-
|
5131
|
-
|
5132
|
-
|
5133
|
-
request['chainType'] = networkId
|
5134
|
-
response = self.privateGetV5AssetDepositQueryAddress(self.extend(request, query))
|
5135
|
-
#
|
5136
|
-
# {
|
5137
|
-
# "retCode": 0,
|
5138
|
-
# "retMsg": "success",
|
5139
|
-
# "result": {
|
5140
|
-
# "coin": "USDT",
|
5141
|
-
# "chains": [
|
5142
|
-
# {
|
5143
|
-
# "chainType": "ERC20",
|
5144
|
-
# "addressDeposit": "0xd9e1cd77afa0e50b452a62fbb68a3340602286c3",
|
5145
|
-
# "tagDeposit": "",
|
5146
|
-
# "chain": "ETH"
|
5147
|
-
# }
|
5148
|
-
# ]
|
5149
|
-
# },
|
5150
|
-
# "retExtInfo": {},
|
5151
|
-
# "time": 1672192792860
|
5152
|
-
# }
|
5153
|
-
#
|
5154
|
-
result = self.safe_dict(response, 'result', {})
|
5155
|
-
chains = self.safe_list(result, 'chains', [])
|
5156
|
-
chainsIndexedById = self.index_by(chains, 'chain')
|
5157
|
-
selectedNetworkId = self.select_network_id_from_raw_networks(code, networkCode, chainsIndexedById)
|
5158
|
-
addressObject = self.safe_dict(chainsIndexedById, selectedNetworkId, {})
|
5159
|
-
return self.parse_deposit_address(addressObject, currency)
|
5200
|
+
networkCode, paramsOmited = self.handle_network_code_and_params(params)
|
5201
|
+
indexedAddresses = self.fetch_deposit_addresses_by_network(code, paramsOmited)
|
5202
|
+
selectedNetworkCode = self.select_network_code_from_unified_networks(currency['code'], networkCode, indexedAddresses)
|
5203
|
+
return indexedAddresses[selectedNetworkCode]
|
5160
5204
|
|
5161
5205
|
def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Transaction]:
|
5162
5206
|
"""
|
ccxt/delta.py
CHANGED
@@ -1446,13 +1446,14 @@ class delta(Exchange, ImplicitAPI):
|
|
1446
1446
|
"""
|
1447
1447
|
fetches historical candlestick data containing the open, high, low, and close price, and the volume of a market
|
1448
1448
|
|
1449
|
-
https://docs.delta.exchange/#
|
1449
|
+
https://docs.delta.exchange/#delta-exchange-api-v2-historical-ohlc-candles-sparklines
|
1450
1450
|
|
1451
1451
|
:param str symbol: unified symbol of the market to fetch OHLCV data for
|
1452
1452
|
:param str timeframe: the length of time each candle represents
|
1453
1453
|
:param int [since]: timestamp in ms of the earliest candle to fetch
|
1454
1454
|
:param int [limit]: the maximum amount of candles to fetch
|
1455
1455
|
:param dict [params]: extra parameters specific to the exchange API endpoint
|
1456
|
+
:param str [params.until]: timestamp in ms of the latest candle to fetch
|
1456
1457
|
:returns int[][]: A list of candles ordered, open, high, low, close, volume
|
1457
1458
|
"""
|
1458
1459
|
self.load_markets()
|
@@ -1462,14 +1463,18 @@ class delta(Exchange, ImplicitAPI):
|
|
1462
1463
|
}
|
1463
1464
|
duration = self.parse_timeframe(timeframe)
|
1464
1465
|
limit = limit if limit else 2000 # max 2000
|
1466
|
+
until = self.safe_integer_product(params, 'until', 0.001)
|
1467
|
+
untilIsDefined = (until is not None)
|
1468
|
+
if untilIsDefined:
|
1469
|
+
until = self.parse_to_int(until)
|
1465
1470
|
if since is None:
|
1466
|
-
end = self.seconds()
|
1471
|
+
end = until if untilIsDefined else self.seconds()
|
1467
1472
|
request['end'] = end
|
1468
1473
|
request['start'] = end - limit * duration
|
1469
1474
|
else:
|
1470
1475
|
start = self.parse_to_int(since / 1000)
|
1471
1476
|
request['start'] = start
|
1472
|
-
request['end'] = self.sum(start, limit * duration)
|
1477
|
+
request['end'] = until if untilIsDefined else self.sum(start, limit * duration)
|
1473
1478
|
price = self.safe_string(params, 'price')
|
1474
1479
|
if price == 'mark':
|
1475
1480
|
request['symbol'] = 'MARK:' + market['id']
|
@@ -1477,7 +1482,7 @@ class delta(Exchange, ImplicitAPI):
|
|
1477
1482
|
request['symbol'] = market['info']['spot_index']['symbol']
|
1478
1483
|
else:
|
1479
1484
|
request['symbol'] = market['id']
|
1480
|
-
params = self.omit(params, 'price')
|
1485
|
+
params = self.omit(params, ['price', 'until'])
|
1481
1486
|
response = self.publicGetHistoryCandles(self.extend(request, params))
|
1482
1487
|
#
|
1483
1488
|
# {
|
ccxt/gate.py
CHANGED
ccxt/hyperliquid.py
CHANGED
@@ -238,7 +238,6 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
238
238
|
'takeProfitPrice': False,
|
239
239
|
'attachedStopLossTakeProfit': None,
|
240
240
|
'timeInForce': {
|
241
|
-
'GTC': True,
|
242
241
|
'IOC': True,
|
243
242
|
'FOK': False,
|
244
243
|
'PO': True,
|
@@ -2181,7 +2180,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
2181
2180
|
else:
|
2182
2181
|
market = self.safe_market(marketId, market)
|
2183
2182
|
symbol = market['symbol']
|
2184
|
-
timestamp = self.
|
2183
|
+
timestamp = self.safe_integer(entry, 'timestamp')
|
2185
2184
|
status = self.safe_string_2(order, 'status', 'ccxtStatus')
|
2186
2185
|
order = self.omit(order, ['ccxtStatus'])
|
2187
2186
|
side = self.safe_string(entry, 'side')
|
@@ -2196,7 +2195,7 @@ class hyperliquid(Exchange, ImplicitAPI):
|
|
2196
2195
|
'timestamp': timestamp,
|
2197
2196
|
'datetime': self.iso8601(timestamp),
|
2198
2197
|
'lastTradeTimestamp': None,
|
2199
|
-
'lastUpdateTimestamp':
|
2198
|
+
'lastUpdateTimestamp': self.safe_integer(order, 'statusTimestamp'),
|
2200
2199
|
'symbol': symbol,
|
2201
2200
|
'type': self.parse_order_type(self.safe_string_lower(entry, 'orderType')),
|
2202
2201
|
'timeInForce': self.safe_string_upper(entry, 'tif'),
|
ccxt/mexc.py
CHANGED
ccxt/onetrading.py
CHANGED
@@ -289,6 +289,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
289
289
|
'INTERNAL_SERVER_ERROR': ExchangeError,
|
290
290
|
},
|
291
291
|
'broad': {
|
292
|
+
'Order not found.': OrderNotFound,
|
292
293
|
},
|
293
294
|
},
|
294
295
|
'commonCurrencies': {
|
@@ -1000,6 +1001,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1000
1001
|
'CLOSED': 'canceled',
|
1001
1002
|
'FAILED': 'failed',
|
1002
1003
|
'STOP_TRIGGERED': 'triggered',
|
1004
|
+
'DONE': 'closed',
|
1003
1005
|
}
|
1004
1006
|
return self.safe_string(statuses, status, status)
|
1005
1007
|
|
@@ -1094,7 +1096,7 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1094
1096
|
'datetime': self.iso8601(timestamp),
|
1095
1097
|
'lastTradeTimestamp': None,
|
1096
1098
|
'symbol': symbol,
|
1097
|
-
'type': type,
|
1099
|
+
'type': self.parse_order_type(type),
|
1098
1100
|
'timeInForce': timeInForce,
|
1099
1101
|
'postOnly': postOnly,
|
1100
1102
|
'side': side,
|
@@ -1110,6 +1112,12 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1110
1112
|
'trades': rawTrades,
|
1111
1113
|
}, market)
|
1112
1114
|
|
1115
|
+
def parse_order_type(self, type: Str):
|
1116
|
+
types: dict = {
|
1117
|
+
'booked': 'limit',
|
1118
|
+
}
|
1119
|
+
return self.safe_string(types, type, type)
|
1120
|
+
|
1113
1121
|
def parse_time_in_force(self, timeInForce: Str):
|
1114
1122
|
timeInForces: dict = {
|
1115
1123
|
'GOOD_TILL_CANCELLED': 'GTC',
|
@@ -1167,6 +1175,9 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1167
1175
|
if clientOrderId is not None:
|
1168
1176
|
request['client_id'] = clientOrderId
|
1169
1177
|
params = self.omit(params, ['clientOrderId', 'client_id'])
|
1178
|
+
timeInForce = self.safe_string_2(params, 'timeInForce', 'time_in_force', 'GOOD_TILL_CANCELLED')
|
1179
|
+
params = self.omit(params, 'timeInForce')
|
1180
|
+
request['time_in_force'] = timeInForce
|
1170
1181
|
response = self.privatePostAccountOrders(self.extend(request, params))
|
1171
1182
|
#
|
1172
1183
|
# {
|
@@ -1206,11 +1217,15 @@ class onetrading(Exchange, ImplicitAPI):
|
|
1206
1217
|
request['client_id'] = clientOrderId
|
1207
1218
|
else:
|
1208
1219
|
request['order_id'] = id
|
1209
|
-
response =
|
1220
|
+
response = None
|
1221
|
+
if method == 'privateDeleteAccountOrdersOrderId':
|
1222
|
+
response = self.privateDeleteAccountOrdersOrderId(self.extend(request, params))
|
1223
|
+
else:
|
1224
|
+
response = self.privateDeleteAccountOrdersClientClientId(self.extend(request, params))
|
1210
1225
|
#
|
1211
1226
|
# responds with an empty body
|
1212
1227
|
#
|
1213
|
-
return response
|
1228
|
+
return self.parse_order(response)
|
1214
1229
|
|
1215
1230
|
def cancel_all_orders(self, symbol: Str = None, params={}):
|
1216
1231
|
"""
|
ccxt/pro/__init__.py
CHANGED
ccxt/pro/coinex.py
CHANGED
@@ -1238,7 +1238,7 @@ class coinex(ccxt.async_support.coinex):
|
|
1238
1238
|
defaultType = self.safe_string(self.options, 'defaultType')
|
1239
1239
|
marketId = self.safe_string(ticker, 'market')
|
1240
1240
|
market = self.safe_market(marketId, market, None, defaultType)
|
1241
|
-
timestamp = self.
|
1241
|
+
timestamp = self.safe_integer(ticker, 'updated_at')
|
1242
1242
|
return self.safe_ticker({
|
1243
1243
|
'symbol': self.safe_symbol(marketId, market, None, defaultType),
|
1244
1244
|
'timestamp': timestamp,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.4.
|
3
|
+
Version: 4.4.46
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -277,13 +277,13 @@ console.log(version, Object.keys(exchanges));
|
|
277
277
|
|
278
278
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
279
279
|
|
280
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
281
|
-
* unpkg: https://unpkg.com/ccxt@4.4.
|
280
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.46/dist/ccxt.browser.min.js
|
281
|
+
* unpkg: https://unpkg.com/ccxt@4.4.46/dist/ccxt.browser.min.js
|
282
282
|
|
283
283
|
CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
|
284
284
|
|
285
285
|
```HTML
|
286
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.
|
286
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.46/dist/ccxt.browser.min.js"></script>
|
287
287
|
```
|
288
288
|
|
289
289
|
Creates a global `ccxt` object:
|