bitget 0.0.73__py3-none-any.whl → 0.0.75__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.
bitget/ccxt/__init__.py CHANGED
@@ -26,7 +26,7 @@ sys.modules['ccxt'] = ccxt_module
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
29
- __version__ = '4.4.94'
29
+ __version__ = '4.4.96'
30
30
 
31
31
  # ----------------------------------------------------------------------------
32
32
 
@@ -8,7 +8,7 @@ sys.modules['ccxt'] = ccxt_module
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
11
- __version__ = '4.4.94'
11
+ __version__ = '4.4.96'
12
12
 
13
13
  # -----------------------------------------------------------------------------
14
14
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.4.94'
5
+ __version__ = '4.4.96'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -231,6 +231,8 @@ class Exchange(BaseExchange):
231
231
  self.last_json_response = json_response
232
232
  if self.verbose:
233
233
  self.log("\nfetch Response:", self.id, method, url, http_status_code, "ResponseHeaders:", headers, "ResponseBody:", http_response)
234
+ if json_response and not isinstance(json_response, list) and self.returnResponseHeaders:
235
+ json_response['responseHeaders'] = headers
234
236
  self.logger.debug("%s %s, Response: %s %s %s", method, url, http_status_code, headers, http_response)
235
237
 
236
238
  except socket.gaierror as e:
@@ -1596,10 +1598,10 @@ class Exchange(BaseExchange):
1596
1598
  """
1597
1599
  raise NotSupported(self.id + ' fetchDepositsWithdrawals() is not supported yet')
1598
1600
 
1599
- async def fetch_deposits(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1601
+ async def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
1600
1602
  raise NotSupported(self.id + ' fetchDeposits() is not supported yet')
1601
1603
 
1602
- async def fetch_withdrawals(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
1604
+ async def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
1603
1605
  raise NotSupported(self.id + ' fetchWithdrawals() is not supported yet')
1604
1606
 
1605
1607
  async def fetch_deposits_ws(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
@@ -1,6 +1,8 @@
1
1
  import asyncio
2
2
 
3
-
3
+ # Test by running:
4
+ # - python python/ccxt/pro/test/base/test_close.py
5
+ # - python python/ccxt/pro/test/base/test_future.py
4
6
  class Future(asyncio.Future):
5
7
 
6
8
  def resolve(self, result=None):
@@ -30,6 +32,8 @@ class Future(asyncio.Future):
30
32
  if err:
31
33
  exceptions.append(err)
32
34
  # if any exceptions return with first exception
35
+ if future.cancelled():
36
+ return
33
37
  if len(exceptions) > 0:
34
38
  future.set_exception(exceptions[0])
35
39
  # else return first result
@@ -1998,7 +1998,7 @@ class bitget(Exchange, ImplicitAPI):
1998
1998
  'cross': hasCrossMargin,
1999
1999
  'isolated': hasIsolatedMargin,
2000
2000
  }
2001
- isMarginTradingAllowed = hasCrossMargin or hasCrossMargin
2001
+ isMarginTradingAllowed = hasCrossMargin or hasIsolatedMargin
2002
2002
  else:
2003
2003
  if symbolType == 'perpetual':
2004
2004
  type = 'swap'
@@ -4112,82 +4112,35 @@ class bitget(Exchange, ImplicitAPI):
4112
4112
  # "result": "success"
4113
4113
  # }
4114
4114
  #
4115
- # spot: fetchOrder
4116
- #
4117
- # {
4118
- # "userId": "7264631750",
4119
- # "symbol": "BTCUSDT",
4120
- # "orderId": "1111461743123927040",
4121
- # "clientOid": "63f95110-93b5-4309-8f77-46339f1bcf3c",
4122
- # "price": "25000.0000000000000000",
4123
- # "size": "0.0002000000000000",
4124
- # "orderType": "limit",
4125
- # "side": "buy",
4126
- # "status": "live",
4127
- # "priceAvg": "0",
4128
- # "baseVolume": "0.0000000000000000",
4129
- # "quoteVolume": "0.0000000000000000",
4130
- # "enterPointSource": "API",
4131
- # "feeDetail": "",
4132
- # "orderSource": "normal",
4133
- # "cTime": "1700719050198",
4134
- # "uTime": "1700719050198"
4135
- # }
4136
- #
4137
- # swap and future: fetchOrder
4138
- #
4139
- # {
4140
- # "symbol": "BTCUSDT",
4141
- # "size": "0.001",
4142
- # "orderId": "1111465253393825792",
4143
- # "clientOid": "1111465253431574529",
4144
- # "baseVolume": "0",
4145
- # "fee": "0",
4146
- # "price": "27000",
4147
- # "priceAvg": "",
4148
- # "state": "live",
4149
- # "side": "buy",
4150
- # "force": "gtc",
4151
- # "totalProfits": "0",
4152
- # "posSide": "long",
4153
- # "marginCoin": "USDT",
4154
- # "presetStopSurplusPrice": "",
4155
- # "presetStopLossPrice": "",
4156
- # "quoteVolume": "0",
4157
- # "orderType": "limit",
4158
- # "leverage": "20",
4159
- # "marginMode": "crossed",
4160
- # "reduceOnly": "NO",
4161
- # "enterPointSource": "API",
4162
- # "tradeSide": "open",
4163
- # "posMode": "hedge_mode",
4164
- # "orderSource": "normal",
4165
- # "cTime": "1700719887120",
4166
- # "uTime": "1700719887120"
4167
- # }
4168
- #
4169
- # spot: fetchOpenOrders
4115
+ # spot: fetchOrder, fetchOpenOrders, fetchCanceledAndClosedOrders
4170
4116
  #
4171
4117
  # {
4172
4118
  # "userId": "7264631750",
4173
4119
  # "symbol": "BTCUSDT",
4174
4120
  # "orderId": "1111499608327360513",
4175
4121
  # "clientOid": "d0d4dad5-18d0-4869-a074-ec40bb47cba6",
4176
- # "priceAvg": "25000.0000000000000000",
4177
- # "size": "0.0002000000000000",
4122
+ # "size": "0.0002000000000000", # COST for 'buy market' order! AMOUNT in all other cases
4123
+ # "price": "0", # in fetchOrder: 0 for market order, otherwise limit price(field not present in fetchOpenOrders
4178
4124
  # "orderType": "limit",
4179
4125
  # "side": "buy",
4180
4126
  # "status": "live",
4181
4127
  # "basePrice": "0",
4182
- # "baseVolume": "0.0000000000000000",
4183
- # "quoteVolume": "0.0000000000000000",
4128
+ # "priceAvg": "25000.0000000000000000", # 0 if nothing filled
4129
+ # "baseVolume": "0.0000000000000000", # 0 if nothing filled
4130
+ # "quoteVolume": "0.0000000000000000", # 0 if nothing filled
4184
4131
  # "enterPointSource": "WEB",
4185
4132
  # "orderSource": "normal",
4186
4133
  # "cTime": "1700728077966",
4187
4134
  # "uTime": "1700728077966"
4135
+ # "feeDetail": "{\\"newFees\\":{\\"c\\":0,\\"d\\":0,\\"deduction\\":false,\\"r\\":-0.0064699886,\\"t\\":-0.0064699886,\\"totalDeductionFee\\":0},\\"USDT\\":{\\"deduction\\":false,\\"feeCoinCode\\":\\"USDT\\",\\"totalDeductionFee\\":0,\\"totalFee\\":-0.0064699886000000}}", # might not be present in fetchOpenOrders
4136
+ # "triggerPrice": null,
4137
+ # "tpslType": "normal",
4138
+ # "quoteCoin": "USDT", # not present in fetchOpenOrders
4139
+ # "baseCoin": "DOT", # not present in fetchOpenOrders
4140
+ # "cancelReason": "", # not present in fetchOpenOrders
4188
4141
  # }
4189
4142
  #
4190
- # spot stop: fetchOpenOrders, fetchCanceledAndClosedOrders
4143
+ # spot trigger: fetchOpenOrders, fetchCanceledAndClosedOrders
4191
4144
  #
4192
4145
  # {
4193
4146
  # "orderId": "1111503385931620352",
@@ -4228,18 +4181,19 @@ class bitget(Exchange, ImplicitAPI):
4228
4181
  # "uTime": "1700729691866"
4229
4182
  # }
4230
4183
  #
4231
- # swap: fetchOpenOrders, fetchCanceledAndClosedOrders
4184
+ # swap and future: fetchOrder, fetchOpenOrders, fetchCanceledAndClosedOrders
4232
4185
  #
4233
4186
  # {
4234
4187
  # "symbol": "BTCUSDT",
4235
- # "size": "0.002",
4236
- # "orderId": "1111488897767604224",
4237
- # "clientOid": "1111488897805352960",
4188
+ # "size": "0.001",
4189
+ # "orderId": "1111465253393825792",
4190
+ # "clientOid": "1111465253431574529",
4238
4191
  # "baseVolume": "0",
4239
4192
  # "fee": "0",
4240
- # "price": "25000",
4193
+ # "price": "27000",
4241
4194
  # "priceAvg": "",
4242
- # "status": "live",
4195
+ # "state": "live",
4196
+ # # "status": "live", # key for fetchOpenOrders, fetchClosedOrders
4243
4197
  # "side": "buy",
4244
4198
  # "force": "gtc",
4245
4199
  # "totalProfits": "0",
@@ -4248,7 +4202,7 @@ class bitget(Exchange, ImplicitAPI):
4248
4202
  # "quoteVolume": "0",
4249
4203
  # "leverage": "20",
4250
4204
  # "marginMode": "crossed",
4251
- # "enterPointSource": "web",
4205
+ # "enterPointSource": "API",
4252
4206
  # "tradeSide": "open",
4253
4207
  # "posMode": "hedge_mode",
4254
4208
  # "orderType": "limit",
@@ -4256,94 +4210,22 @@ class bitget(Exchange, ImplicitAPI):
4256
4210
  # "presetStopSurplusPrice": "",
4257
4211
  # "presetStopLossPrice": "",
4258
4212
  # "reduceOnly": "NO",
4259
- # "cTime": "1700725524378",
4260
- # "uTime": "1700725524378"
4261
- # }
4213
+ # "cTime": "1700719887120",
4214
+ # "uTime": "1700719887120"
4262
4215
  #
4263
- # swap stop: fetchOpenOrders
4216
+ # for swap trigger order, the additional below fields are present:
4264
4217
  #
4265
- # {
4266
4218
  # "planType": "normal_plan",
4267
- # "symbol": "BTCUSDT",
4268
- # "size": "0.001",
4269
- # "orderId": "1111491399869075457",
4270
- # "clientOid": "1111491399869075456",
4271
- # "price": "27000",
4272
4219
  # "callbackRatio": "",
4273
4220
  # "triggerPrice": "24000",
4274
4221
  # "triggerType": "mark_price",
4275
4222
  # "planStatus": "live",
4276
- # "side": "buy",
4277
- # "posSide": "long",
4278
- # "marginCoin": "USDT",
4279
- # "marginMode": "crossed",
4280
- # "enterPointSource": "API",
4281
- # "tradeSide": "open",
4282
- # "posMode": "hedge_mode",
4283
- # "orderType": "limit",
4284
- # "stopSurplusTriggerPrice": "",
4285
- # "stopSurplusExecutePrice": "",
4286
- # "stopSurplusTriggerType": "fill_price",
4287
- # "stopLossTriggerPrice": "",
4288
- # "stopLossExecutePrice": "",
4289
- # "stopLossTriggerType": "fill_price",
4290
- # "cTime": "1700726120917",
4291
- # "uTime": "1700726120917"
4292
- # }
4293
- #
4294
- # spot: fetchCanceledAndClosedOrders
4295
- #
4296
- # {
4297
- # "userId": "7264631750",
4298
- # "symbol": "BTCUSDT",
4299
- # "orderId": "1111499608327360513",
4300
- # "clientOid": "d0d4dad5-18d0-4869-a074-ec40bb47cba6",
4301
- # "price": "25000.0000000000000000",
4302
- # "size": "0.0002000000000000",
4303
- # "orderType": "limit",
4304
- # "side": "buy",
4305
- # "status": "cancelled",
4306
- # "priceAvg": "0",
4307
- # "baseVolume": "0.0000000000000000",
4308
- # "quoteVolume": "0.0000000000000000",
4309
- # "enterPointSource": "WEB",
4310
- # "feeDetail": "",
4311
- # "orderSource": "normal",
4312
- # "cTime": "1700728077966",
4313
- # "uTime": "1700728911471"
4314
- # }
4315
- #
4316
- # swap stop: fetchCanceledAndClosedOrders
4317
- #
4318
- # {
4319
- # "planType": "normal_plan",
4320
- # "symbol": "BTCUSDT",
4321
- # "size": "0.001",
4322
- # "orderId": "1111491399869075457",
4323
- # "clientOid": "1111491399869075456",
4324
- # "planStatus": "cancelled",
4325
- # "price": "27000",
4326
- # "feeDetail": null,
4327
- # "baseVolume": "0",
4328
- # "callbackRatio": "",
4329
- # "triggerPrice": "24000",
4330
- # "triggerType": "mark_price",
4331
- # "side": "buy",
4332
- # "posSide": "long",
4333
- # "marginCoin": "USDT",
4334
- # "marginMode": "crossed",
4335
- # "enterPointSource": "API",
4336
- # "tradeSide": "open",
4337
- # "posMode": "hedge_mode",
4338
- # "orderType": "limit",
4339
4223
  # "stopSurplusTriggerPrice": "",
4340
4224
  # "stopSurplusExecutePrice": "",
4341
4225
  # "stopSurplusTriggerType": "fill_price",
4342
4226
  # "stopLossTriggerPrice": "",
4343
4227
  # "stopLossExecutePrice": "",
4344
4228
  # "stopLossTriggerType": "fill_price",
4345
- # "cTime": "1700726120917",
4346
- # "uTime": "1700727879652"
4347
4229
  # }
4348
4230
  #
4349
4231
  errorMessage = self.safe_string(order, 'errorMsg')
@@ -4421,6 +4303,11 @@ class bitget(Exchange, ImplicitAPI):
4421
4303
  side = 'sell' if (side == 'buy') else 'buy'
4422
4304
  # on bitget hedge mode if the position is long the side is always buy, and if the position is short the side is always sell
4423
4305
  # so the side of the reduceOnly order is inversed
4306
+ orderType = self.safe_string(order, 'orderType')
4307
+ isBuyMarket = (side == 'buy') and (orderType == 'market')
4308
+ if market['spot'] and isBuyMarket:
4309
+ # in top comment, for 'buy market' the 'size' field is COST, not AMOUNT
4310
+ size = self.safe_string(order, 'baseVolume')
4424
4311
  return self.safe_order({
4425
4312
  'info': order,
4426
4313
  'id': self.safe_string_2(order, 'orderId', 'data'),
@@ -4430,7 +4317,7 @@ class bitget(Exchange, ImplicitAPI):
4430
4317
  'lastTradeTimestamp': updateTimestamp,
4431
4318
  'lastUpdateTimestamp': updateTimestamp,
4432
4319
  'symbol': market['symbol'],
4433
- 'type': self.safe_string(order, 'orderType'),
4320
+ 'type': orderType,
4434
4321
  'side': side,
4435
4322
  'price': price,
4436
4323
  'amount': size,
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.94'
7
+ __version__ = '4.4.96'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -229,6 +229,7 @@ class Exchange(object):
229
229
  'chrome100': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36',
230
230
  }
231
231
  headers = None
232
+ returnResponseHeaders = False
232
233
  origin = '*' # CORS origin
233
234
  MAX_VALUE = float('inf')
234
235
  #
@@ -579,6 +580,8 @@ class Exchange(object):
579
580
  if self.verbose:
580
581
  self.log("\nfetch Response:", self.id, method, url, http_status_code, "ResponseHeaders:", headers, "ResponseBody:", http_response)
581
582
  self.logger.debug("%s %s, Response: %s %s %s", method, url, http_status_code, headers, http_response)
583
+ if json_response and not isinstance(json_response, list) and self.returnResponseHeaders:
584
+ json_response['responseHeaders'] = headers
582
585
  response.raise_for_status()
583
586
 
584
587
  except Timeout as e:
@@ -2839,7 +2842,7 @@ class Exchange(object):
2839
2842
  # keep self in mind:
2840
2843
  # in JS: 1 == 1.0 is True; 1 == 1.0 is True
2841
2844
  # in Python: 1 == 1.0 is True
2842
- # in PHP 1 == 1.0 is True, but 1 == 1.0 is False
2845
+ # in PHP 1 == 1.0 is True, but 1 == 1.0 is False.
2843
2846
  if stringVersion.find('.') >= 0:
2844
2847
  return float(stringVersion)
2845
2848
  return int(stringVersion)
@@ -3780,7 +3783,7 @@ class Exchange(object):
3780
3783
  for i in range(0, len(fees)):
3781
3784
  fee = fees[i]
3782
3785
  code = self.safe_string(fee, 'currency')
3783
- feeCurrencyCode = code is not code if None else str(i)
3786
+ feeCurrencyCode = code if (code is not None) else str(i)
3784
3787
  if feeCurrencyCode is not None:
3785
3788
  rate = self.safe_string(fee, 'rate')
3786
3789
  cost = self.safe_string(fee, 'cost')
@@ -5495,10 +5498,10 @@ class Exchange(object):
5495
5498
  """
5496
5499
  raise NotSupported(self.id + ' fetchDepositsWithdrawals() is not supported yet')
5497
5500
 
5498
- def fetch_deposits(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
5501
+ def fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
5499
5502
  raise NotSupported(self.id + ' fetchDeposits() is not supported yet')
5500
5503
 
5501
- def fetch_withdrawals(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}):
5504
+ def fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
5502
5505
  raise NotSupported(self.id + ' fetchWithdrawals() is not supported yet')
5503
5506
 
5504
5507
  def fetch_deposits_ws(self, code: Str = None, since: Int = None, limit: Int = None, params={}):
bitget/ccxt/bitget.py CHANGED
@@ -1997,7 +1997,7 @@ class bitget(Exchange, ImplicitAPI):
1997
1997
  'cross': hasCrossMargin,
1998
1998
  'isolated': hasIsolatedMargin,
1999
1999
  }
2000
- isMarginTradingAllowed = hasCrossMargin or hasCrossMargin
2000
+ isMarginTradingAllowed = hasCrossMargin or hasIsolatedMargin
2001
2001
  else:
2002
2002
  if symbolType == 'perpetual':
2003
2003
  type = 'swap'
@@ -4111,82 +4111,35 @@ class bitget(Exchange, ImplicitAPI):
4111
4111
  # "result": "success"
4112
4112
  # }
4113
4113
  #
4114
- # spot: fetchOrder
4115
- #
4116
- # {
4117
- # "userId": "7264631750",
4118
- # "symbol": "BTCUSDT",
4119
- # "orderId": "1111461743123927040",
4120
- # "clientOid": "63f95110-93b5-4309-8f77-46339f1bcf3c",
4121
- # "price": "25000.0000000000000000",
4122
- # "size": "0.0002000000000000",
4123
- # "orderType": "limit",
4124
- # "side": "buy",
4125
- # "status": "live",
4126
- # "priceAvg": "0",
4127
- # "baseVolume": "0.0000000000000000",
4128
- # "quoteVolume": "0.0000000000000000",
4129
- # "enterPointSource": "API",
4130
- # "feeDetail": "",
4131
- # "orderSource": "normal",
4132
- # "cTime": "1700719050198",
4133
- # "uTime": "1700719050198"
4134
- # }
4135
- #
4136
- # swap and future: fetchOrder
4137
- #
4138
- # {
4139
- # "symbol": "BTCUSDT",
4140
- # "size": "0.001",
4141
- # "orderId": "1111465253393825792",
4142
- # "clientOid": "1111465253431574529",
4143
- # "baseVolume": "0",
4144
- # "fee": "0",
4145
- # "price": "27000",
4146
- # "priceAvg": "",
4147
- # "state": "live",
4148
- # "side": "buy",
4149
- # "force": "gtc",
4150
- # "totalProfits": "0",
4151
- # "posSide": "long",
4152
- # "marginCoin": "USDT",
4153
- # "presetStopSurplusPrice": "",
4154
- # "presetStopLossPrice": "",
4155
- # "quoteVolume": "0",
4156
- # "orderType": "limit",
4157
- # "leverage": "20",
4158
- # "marginMode": "crossed",
4159
- # "reduceOnly": "NO",
4160
- # "enterPointSource": "API",
4161
- # "tradeSide": "open",
4162
- # "posMode": "hedge_mode",
4163
- # "orderSource": "normal",
4164
- # "cTime": "1700719887120",
4165
- # "uTime": "1700719887120"
4166
- # }
4167
- #
4168
- # spot: fetchOpenOrders
4114
+ # spot: fetchOrder, fetchOpenOrders, fetchCanceledAndClosedOrders
4169
4115
  #
4170
4116
  # {
4171
4117
  # "userId": "7264631750",
4172
4118
  # "symbol": "BTCUSDT",
4173
4119
  # "orderId": "1111499608327360513",
4174
4120
  # "clientOid": "d0d4dad5-18d0-4869-a074-ec40bb47cba6",
4175
- # "priceAvg": "25000.0000000000000000",
4176
- # "size": "0.0002000000000000",
4121
+ # "size": "0.0002000000000000", # COST for 'buy market' order! AMOUNT in all other cases
4122
+ # "price": "0", # in fetchOrder: 0 for market order, otherwise limit price(field not present in fetchOpenOrders
4177
4123
  # "orderType": "limit",
4178
4124
  # "side": "buy",
4179
4125
  # "status": "live",
4180
4126
  # "basePrice": "0",
4181
- # "baseVolume": "0.0000000000000000",
4182
- # "quoteVolume": "0.0000000000000000",
4127
+ # "priceAvg": "25000.0000000000000000", # 0 if nothing filled
4128
+ # "baseVolume": "0.0000000000000000", # 0 if nothing filled
4129
+ # "quoteVolume": "0.0000000000000000", # 0 if nothing filled
4183
4130
  # "enterPointSource": "WEB",
4184
4131
  # "orderSource": "normal",
4185
4132
  # "cTime": "1700728077966",
4186
4133
  # "uTime": "1700728077966"
4134
+ # "feeDetail": "{\\"newFees\\":{\\"c\\":0,\\"d\\":0,\\"deduction\\":false,\\"r\\":-0.0064699886,\\"t\\":-0.0064699886,\\"totalDeductionFee\\":0},\\"USDT\\":{\\"deduction\\":false,\\"feeCoinCode\\":\\"USDT\\",\\"totalDeductionFee\\":0,\\"totalFee\\":-0.0064699886000000}}", # might not be present in fetchOpenOrders
4135
+ # "triggerPrice": null,
4136
+ # "tpslType": "normal",
4137
+ # "quoteCoin": "USDT", # not present in fetchOpenOrders
4138
+ # "baseCoin": "DOT", # not present in fetchOpenOrders
4139
+ # "cancelReason": "", # not present in fetchOpenOrders
4187
4140
  # }
4188
4141
  #
4189
- # spot stop: fetchOpenOrders, fetchCanceledAndClosedOrders
4142
+ # spot trigger: fetchOpenOrders, fetchCanceledAndClosedOrders
4190
4143
  #
4191
4144
  # {
4192
4145
  # "orderId": "1111503385931620352",
@@ -4227,18 +4180,19 @@ class bitget(Exchange, ImplicitAPI):
4227
4180
  # "uTime": "1700729691866"
4228
4181
  # }
4229
4182
  #
4230
- # swap: fetchOpenOrders, fetchCanceledAndClosedOrders
4183
+ # swap and future: fetchOrder, fetchOpenOrders, fetchCanceledAndClosedOrders
4231
4184
  #
4232
4185
  # {
4233
4186
  # "symbol": "BTCUSDT",
4234
- # "size": "0.002",
4235
- # "orderId": "1111488897767604224",
4236
- # "clientOid": "1111488897805352960",
4187
+ # "size": "0.001",
4188
+ # "orderId": "1111465253393825792",
4189
+ # "clientOid": "1111465253431574529",
4237
4190
  # "baseVolume": "0",
4238
4191
  # "fee": "0",
4239
- # "price": "25000",
4192
+ # "price": "27000",
4240
4193
  # "priceAvg": "",
4241
- # "status": "live",
4194
+ # "state": "live",
4195
+ # # "status": "live", # key for fetchOpenOrders, fetchClosedOrders
4242
4196
  # "side": "buy",
4243
4197
  # "force": "gtc",
4244
4198
  # "totalProfits": "0",
@@ -4247,7 +4201,7 @@ class bitget(Exchange, ImplicitAPI):
4247
4201
  # "quoteVolume": "0",
4248
4202
  # "leverage": "20",
4249
4203
  # "marginMode": "crossed",
4250
- # "enterPointSource": "web",
4204
+ # "enterPointSource": "API",
4251
4205
  # "tradeSide": "open",
4252
4206
  # "posMode": "hedge_mode",
4253
4207
  # "orderType": "limit",
@@ -4255,94 +4209,22 @@ class bitget(Exchange, ImplicitAPI):
4255
4209
  # "presetStopSurplusPrice": "",
4256
4210
  # "presetStopLossPrice": "",
4257
4211
  # "reduceOnly": "NO",
4258
- # "cTime": "1700725524378",
4259
- # "uTime": "1700725524378"
4260
- # }
4212
+ # "cTime": "1700719887120",
4213
+ # "uTime": "1700719887120"
4261
4214
  #
4262
- # swap stop: fetchOpenOrders
4215
+ # for swap trigger order, the additional below fields are present:
4263
4216
  #
4264
- # {
4265
4217
  # "planType": "normal_plan",
4266
- # "symbol": "BTCUSDT",
4267
- # "size": "0.001",
4268
- # "orderId": "1111491399869075457",
4269
- # "clientOid": "1111491399869075456",
4270
- # "price": "27000",
4271
4218
  # "callbackRatio": "",
4272
4219
  # "triggerPrice": "24000",
4273
4220
  # "triggerType": "mark_price",
4274
4221
  # "planStatus": "live",
4275
- # "side": "buy",
4276
- # "posSide": "long",
4277
- # "marginCoin": "USDT",
4278
- # "marginMode": "crossed",
4279
- # "enterPointSource": "API",
4280
- # "tradeSide": "open",
4281
- # "posMode": "hedge_mode",
4282
- # "orderType": "limit",
4283
- # "stopSurplusTriggerPrice": "",
4284
- # "stopSurplusExecutePrice": "",
4285
- # "stopSurplusTriggerType": "fill_price",
4286
- # "stopLossTriggerPrice": "",
4287
- # "stopLossExecutePrice": "",
4288
- # "stopLossTriggerType": "fill_price",
4289
- # "cTime": "1700726120917",
4290
- # "uTime": "1700726120917"
4291
- # }
4292
- #
4293
- # spot: fetchCanceledAndClosedOrders
4294
- #
4295
- # {
4296
- # "userId": "7264631750",
4297
- # "symbol": "BTCUSDT",
4298
- # "orderId": "1111499608327360513",
4299
- # "clientOid": "d0d4dad5-18d0-4869-a074-ec40bb47cba6",
4300
- # "price": "25000.0000000000000000",
4301
- # "size": "0.0002000000000000",
4302
- # "orderType": "limit",
4303
- # "side": "buy",
4304
- # "status": "cancelled",
4305
- # "priceAvg": "0",
4306
- # "baseVolume": "0.0000000000000000",
4307
- # "quoteVolume": "0.0000000000000000",
4308
- # "enterPointSource": "WEB",
4309
- # "feeDetail": "",
4310
- # "orderSource": "normal",
4311
- # "cTime": "1700728077966",
4312
- # "uTime": "1700728911471"
4313
- # }
4314
- #
4315
- # swap stop: fetchCanceledAndClosedOrders
4316
- #
4317
- # {
4318
- # "planType": "normal_plan",
4319
- # "symbol": "BTCUSDT",
4320
- # "size": "0.001",
4321
- # "orderId": "1111491399869075457",
4322
- # "clientOid": "1111491399869075456",
4323
- # "planStatus": "cancelled",
4324
- # "price": "27000",
4325
- # "feeDetail": null,
4326
- # "baseVolume": "0",
4327
- # "callbackRatio": "",
4328
- # "triggerPrice": "24000",
4329
- # "triggerType": "mark_price",
4330
- # "side": "buy",
4331
- # "posSide": "long",
4332
- # "marginCoin": "USDT",
4333
- # "marginMode": "crossed",
4334
- # "enterPointSource": "API",
4335
- # "tradeSide": "open",
4336
- # "posMode": "hedge_mode",
4337
- # "orderType": "limit",
4338
4222
  # "stopSurplusTriggerPrice": "",
4339
4223
  # "stopSurplusExecutePrice": "",
4340
4224
  # "stopSurplusTriggerType": "fill_price",
4341
4225
  # "stopLossTriggerPrice": "",
4342
4226
  # "stopLossExecutePrice": "",
4343
4227
  # "stopLossTriggerType": "fill_price",
4344
- # "cTime": "1700726120917",
4345
- # "uTime": "1700727879652"
4346
4228
  # }
4347
4229
  #
4348
4230
  errorMessage = self.safe_string(order, 'errorMsg')
@@ -4420,6 +4302,11 @@ class bitget(Exchange, ImplicitAPI):
4420
4302
  side = 'sell' if (side == 'buy') else 'buy'
4421
4303
  # on bitget hedge mode if the position is long the side is always buy, and if the position is short the side is always sell
4422
4304
  # so the side of the reduceOnly order is inversed
4305
+ orderType = self.safe_string(order, 'orderType')
4306
+ isBuyMarket = (side == 'buy') and (orderType == 'market')
4307
+ if market['spot'] and isBuyMarket:
4308
+ # in top comment, for 'buy market' the 'size' field is COST, not AMOUNT
4309
+ size = self.safe_string(order, 'baseVolume')
4423
4310
  return self.safe_order({
4424
4311
  'info': order,
4425
4312
  'id': self.safe_string_2(order, 'orderId', 'data'),
@@ -4429,7 +4316,7 @@ class bitget(Exchange, ImplicitAPI):
4429
4316
  'lastTradeTimestamp': updateTimestamp,
4430
4317
  'lastUpdateTimestamp': updateTimestamp,
4431
4318
  'symbol': market['symbol'],
4432
- 'type': self.safe_string(order, 'orderType'),
4319
+ 'type': orderType,
4433
4320
  'side': side,
4434
4321
  'price': price,
4435
4322
  'amount': size,
@@ -8,7 +8,7 @@ sys.modules['ccxt'] = ccxt_module
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
11
- __version__ = '4.4.94'
11
+ __version__ = '4.4.96'
12
12
 
13
13
  # ----------------------------------------------------------------------------
14
14
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bitget
3
- Version: 0.0.73
3
+ Version: 0.0.75
4
4
  Summary: bitget crypto exchange api client
5
5
  Project-URL: Homepage, https://github.com/ccxt/ccxt
6
6
  Project-URL: Issues, https://github.com/ccxt/ccxt
@@ -1,26 +1,26 @@
1
1
  bitget/__init__.py,sha256=D5tG1_AjwXjMim3CPnCuWSheOXtq4vlSwVCS5ZG1bMQ,246
2
- bitget/ccxt/__init__.py,sha256=x777vI7CVq2yOf15sBN3mKe60kiqJyoPwrRJxbF_ZWk,6048
3
- bitget/ccxt/bitget.py,sha256=e6ssz20PaoHGhU9bL0fDs4q54HGB-_BkssQGelOOW_0,453846
2
+ bitget/ccxt/__init__.py,sha256=ATBu0xXeUcJCjDjVN8p-SHX2Oi9tPd-pNYgI4O2D790,6048
3
+ bitget/ccxt/bitget.py,sha256=7IHFajA2BNw1C349M04z6YybdEz4p7rjsUXssA9CuZU,450352
4
4
  bitget/ccxt/abstract/bitget.py,sha256=6q34nW4J1Vfvls4tExxZRJt0Ct28hCO0TQja_Mb_bmI,99978
5
- bitget/ccxt/async_support/__init__.py,sha256=6iCUN8VUHdK73SjUBSSOclqWtQn0T6QgiqnY5-PQdlU,4781
6
- bitget/ccxt/async_support/bitget.py,sha256=sPHtswNgPICInGQshCx2B1FxTmzf71mHVFQIxImZeew,455589
5
+ bitget/ccxt/async_support/__init__.py,sha256=gYqIM4mM0PYDcLMeIuNv8pJ3EkXfQ3KcXan_JpXJCx8,4781
6
+ bitget/ccxt/async_support/bitget.py,sha256=bmm9xyMAZ9v9uJW5BR6Sg3QBAurwz7j004Ly-HGMqQM,452095
7
7
  bitget/ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
8
- bitget/ccxt/async_support/base/exchange.py,sha256=Z9NwTqOgxX_ZbS_RhtiRlLojF9sY4xOXTmwyXRjXVc0,119440
8
+ bitget/ccxt/async_support/base/exchange.py,sha256=Ov3ySIOFH_PGlKGNFfPqF_RywDiSLp9Je64KanBTMDY,119604
9
9
  bitget/ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
10
10
  bitget/ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
11
11
  bitget/ccxt/async_support/base/ws/cache.py,sha256=xf2VOtfUwloxSlIQ39M1RGZHWQzyS9IGhB5NX6cDcAc,8370
12
12
  bitget/ccxt/async_support/base/ws/client.py,sha256=ekIN5HNgeQgMG3tLZMsE889Aoxs960DLwQnwkTGhdi8,13624
13
13
  bitget/ccxt/async_support/base/ws/functions.py,sha256=qwvEnjtINWL5ZU-dbbeIunjyBxzFqbGWHfVhxqAcKug,1499
14
- bitget/ccxt/async_support/base/ws/future.py,sha256=9yFyxqT7cl-7ZFM6LM4b6UPXyO2FGIbAhs5uoJ3-Smo,1271
14
+ bitget/ccxt/async_support/base/ws/future.py,sha256=hjdQ42zkfju5nar0GpTLJ4zXQBtgBU8DzYM5uPFcjsE,1450
15
15
  bitget/ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6VxhEs8x-Kbj-NI,2894
16
16
  bitget/ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmBJLCI5FHIRdMz1O-g,6551
17
17
  bitget/ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
18
18
  bitget/ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
19
19
  bitget/ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
20
- bitget/ccxt/base/exchange.py,sha256=ygC1Ymk0Jd6SUwnCS8Eq0ZaPyYBLyG5iXWNJyrMuhNQ,331662
20
+ bitget/ccxt/base/exchange.py,sha256=uJ-9MHGpRUufv0rcn7X9QmQSnSKuWj8OjA5poA_qc_s,331855
21
21
  bitget/ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
22
22
  bitget/ccxt/base/types.py,sha256=vMQfFDVntED4YHrRJt0Q98YaM7OtGhK-DkbkqXFTYHc,11485
23
- bitget/ccxt/pro/__init__.py,sha256=vmaveAbqGlqYevcElWyf1bv8lv1sOV4RwZMj1_g4l8A,4095
23
+ bitget/ccxt/pro/__init__.py,sha256=jn8mQixqcA5MpjDArx45_4HgnMHLIPhnZTHcNL7AC4M,4095
24
24
  bitget/ccxt/pro/bitget.py,sha256=g8SkdhTze-idsChWiGIBi1twpiDfRlJyvnG2NL9VsR0,90372
25
25
  bitget/ccxt/static_dependencies/README.md,sha256=3TCvhhn09_Cqf9BDDpao1V7EfKHDpQ6k9oWRsLFixpU,18
26
26
  bitget/ccxt/static_dependencies/__init__.py,sha256=tzFje8cloqmiIE6kola3EaYC0SnD1izWnri69hzHsSw,168
@@ -281,6 +281,6 @@ bitget/ccxt/static_dependencies/toolz/curried/exceptions.py,sha256=gKFOHDIayAWnX
281
281
  bitget/ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4werSUmJEtSHNY9NSzhseNM9s,525
282
282
  bitget/ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
283
283
  bitget/ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
284
- bitget-0.0.73.dist-info/METADATA,sha256=RAau7rxB0yLeayenoQp2xDrBRkEXHUjiNFVtrZpKqrc,44111
285
- bitget-0.0.73.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
286
- bitget-0.0.73.dist-info/RECORD,,
284
+ bitget-0.0.75.dist-info/METADATA,sha256=qBEbMLCx7tdApsFe8oOe5wOyv3Ft5ISEzueloNvdXqc,44111
285
+ bitget-0.0.75.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
286
+ bitget-0.0.75.dist-info/RECORD,,