Skip to content

Commit 792612a

Browse files
authored
feat: add support for block trades endpoints (sammchardy#1493)
1 parent bc2c07e commit 792612a

File tree

2 files changed

+342
-0
lines changed

2 files changed

+342
-0
lines changed

binance/async_client.py

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3705,3 +3705,66 @@ async def gift_card_create_dual_token(self, **params):
37053705
)
37063706

37073707
gift_card_create_dual_token.__doc__ = Client.gift_card_create_dual_token.__doc__
3708+
3709+
####################################################
3710+
# Options - Market Maker Block Trade
3711+
####################################################
3712+
3713+
async def options_create_block_trade_order(self, **params):
3714+
return await self._request_options_api(
3715+
"post", "block/order/create", signed=True, data=params
3716+
)
3717+
3718+
options_create_block_trade_order.__doc__ = (
3719+
Client.options_create_block_trade_order.__doc__
3720+
)
3721+
3722+
async def options_cancel_block_trade_order(self, **params):
3723+
return await self._request_options_api(
3724+
"delete", "block/order/create", signed=True, data=params
3725+
)
3726+
3727+
options_cancel_block_trade_order.__doc__ = (
3728+
Client.options_cancel_block_trade_order.__doc__
3729+
)
3730+
3731+
async def options_extend_block_trade_order(self, **params):
3732+
return await self._request_options_api(
3733+
"put", "block/order/create", signed=True, data=params
3734+
)
3735+
3736+
options_extend_block_trade_order.__doc__ = (
3737+
Client.options_extend_block_trade_order.__doc__
3738+
)
3739+
3740+
async def options_get_block_trade_orders(self, **params):
3741+
return await self._request_options_api(
3742+
"get", "block/order/orders", signed=True, data=params
3743+
)
3744+
3745+
options_get_block_trade_orders.__doc__ = (
3746+
Client.options_get_block_trade_orders.__doc__
3747+
)
3748+
3749+
async def options_accept_block_trade_order(self, **params):
3750+
return await self._request_options_api(
3751+
"post", "block/order/execute", signed=True, data=params
3752+
)
3753+
3754+
options_accept_block_trade_order.__doc__ = (
3755+
Client.options_accept_block_trade_order.__doc__
3756+
)
3757+
3758+
async def options_get_block_trade_order(self, **params):
3759+
return await self._request_options_api(
3760+
"get", "block/order/execute", signed=True, data=params
3761+
)
3762+
3763+
options_get_block_trade_order.__doc__ = Client.options_get_block_trade_order.__doc__
3764+
3765+
async def options_account_get_block_trades(self, **params):
3766+
return await self._request_options_api(
3767+
"get", "block/user-trades", signed=True, data=params
3768+
)
3769+
3770+
options_account_get_block_trades.__doc__ = Client.options_account_get_block_trades.__doc__

binance/client.py

Lines changed: 279 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8699,6 +8699,285 @@ def options_user_trades(self, **params):
86998699
"""
87008700
return self._request_options_api("get", "userTrades", signed=True, data=params)
87018701

8702+
####################################################
8703+
# Options - Market Maker Block Trade
8704+
####################################################
8705+
8706+
def options_create_block_trade_order(self, **params):
8707+
"""New Block Trade Order (TRADE)
8708+
8709+
https://developers.binance.com/docs/derivatives/option/market-maker-block-trade
8710+
8711+
:param liquidity: required - Taker or Maker
8712+
:type liquidity: str
8713+
:param symbol: required - Option trading pair, e.g BTC-200730-9000-C
8714+
:type symbol: str
8715+
:param side: required - BUY or SELL
8716+
:type side: str
8717+
:param price: required - Order Price
8718+
:type price: float
8719+
:param quantity: required - Order Quantity
8720+
:type quantity: float
8721+
:param recvWindow: optional - The value cannot be greater than 60000
8722+
:type recvWindow: int
8723+
8724+
:returns: API response
8725+
8726+
.. code-block:: python
8727+
{
8728+
"blockTradeSettlementKey": "3668822b8-1baa-6a2f-adb8-d3de6289b361",
8729+
"expireTime": 1730171888109,
8730+
"liquidity": "TAKER",
8731+
"status": "RECEIVED",
8732+
"legs": [
8733+
{
8734+
"symbol": "BNB-241101-700-C",
8735+
"side": "BUY",
8736+
"quantity": "1.2",
8737+
"price": "2.8"
8738+
}
8739+
]
8740+
}
8741+
8742+
:raises: BinanceRequestException, BinanceAPIException
8743+
"""
8744+
return self._request_options_api(
8745+
"post", "block/order/create", signed=True, data=params
8746+
)
8747+
8748+
def options_cancel_block_trade_order(self, **params):
8749+
"""Cancel Block Trade Order (TRADE)
8750+
8751+
https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Cancel-Block-Trade-Order
8752+
8753+
:param blockOrderMatchingKey: required - Block Order Matching Key
8754+
:type blockOrderMatchingKey: str
8755+
:param recvWindow: optional - The value cannot be greater than 60000
8756+
:type recvWindow: int
8757+
8758+
:returns: API response
8759+
8760+
.. code-block:: python
8761+
{}
8762+
8763+
:raises: BinanceRequestException, BinanceAPIException
8764+
"""
8765+
return self._request_options_api(
8766+
"delete", "block/order/create", signed=True, data=params
8767+
)
8768+
8769+
def options_extend_block_trade_order(self, **params):
8770+
"""Extend Block Trade Order (TRADE)
8771+
8772+
Extends a block trade expire time by 30 mins from the current time.
8773+
8774+
https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Extend-Block-Trade-Order
8775+
8776+
:param blockOrderMatchingKey: required - Block Order Matching Key
8777+
:type blockOrderMatchingKey: str
8778+
:param recvWindow: optional - The value cannot be greater than 60000
8779+
:type recvWindow: int
8780+
8781+
:returns: API response
8782+
8783+
.. code-block:: python
8784+
{
8785+
"blockTradeSettlementKey": "3668822b8-1baa-6a2f-adb8-d3de6289b361",
8786+
"expireTime": 1730172007000,
8787+
"liquidity": "TAKER",
8788+
"status": "RECEIVED",
8789+
"createTime": 1730170088111,
8790+
"legs": [
8791+
{
8792+
"symbol": "BNB-241101-700-C",
8793+
"side": "BUY",
8794+
"quantity": "1.2",
8795+
"price": "2.8"
8796+
}
8797+
]
8798+
}
8799+
8800+
:raises: BinanceRequestException, BinanceAPIException
8801+
"""
8802+
return self._request_options_api(
8803+
"put", "block/order/create", signed=True, data=params
8804+
)
8805+
8806+
def options_get_block_trade_orders(self, **params):
8807+
"""Query Block Trade Order (TRADE)
8808+
8809+
Check block trade order status.
8810+
8811+
https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Query-Block-Trade-Order
8812+
8813+
:param blockOrderMatchingKey: optional - Returns specific block trade for this key
8814+
:type blockOrderMatchingKey: str
8815+
:param endTime: optional
8816+
:type endTime: int
8817+
:param startTime: optional
8818+
:type startTime: int
8819+
:param underlying: optional
8820+
:type underlying: str
8821+
:param recvWindow: optional - The value cannot be greater than 60000
8822+
:type recvWindow: int
8823+
8824+
:returns: API response
8825+
8826+
.. code-block:: python
8827+
[
8828+
{
8829+
"blockTradeSettlementKey": "7d046e6e-a429-4335-ab9d-6a681febcde5",
8830+
"expireTime": 1730172115801,
8831+
"liquidity": "TAKER",
8832+
"status": "RECEIVED",
8833+
"createTime": 1730170315803,
8834+
"legs": [
8835+
{
8836+
"symbol": "BNB-241101-700-C",
8837+
"side": "BUY",
8838+
"quantity": "1.2",
8839+
"price": "2.8"
8840+
}
8841+
]
8842+
}
8843+
]
8844+
8845+
:raises: BinanceRequestException, BinanceAPIException
8846+
"""
8847+
return self._request_options_api(
8848+
"get", "block/order/orders", signed=True, data=params
8849+
)
8850+
8851+
def options_accept_block_trade_order(self, **params):
8852+
"""Accept Block Trade Order (TRADE)
8853+
8854+
Accept a block trade order.
8855+
8856+
https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Accept-Block-Trade-Order
8857+
8858+
:param blockOrderMatchingKey: required - Block Order Matching Key
8859+
:type blockOrderMatchingKey: str
8860+
:param recvWindow: optional - The value cannot be greater than 60000
8861+
:type recvWindow: int
8862+
8863+
:returns: API response
8864+
8865+
.. code-block:: python
8866+
{
8867+
"blockTradeSettlementKey": "7d046e6e-a429-4335-ab9d-6a681febcde5",
8868+
"expireTime": 1730172115801,
8869+
"liquidity": "MAKER",
8870+
"status": "ACCEPTED",
8871+
"createTime": 1730170315803,
8872+
"legs": [
8873+
{
8874+
"symbol": "BNB-241101-700-C",
8875+
"side": "SELL",
8876+
"quantity": "1.2",
8877+
"price": "2.8"
8878+
}
8879+
]
8880+
}
8881+
8882+
:raises: BinanceRequestException, BinanceAPIException
8883+
"""
8884+
return self._request_options_api(
8885+
"post", "block/order/execute", signed=True, data=params
8886+
)
8887+
8888+
def options_get_block_trade_order(self, **params):
8889+
"""Query Block Trade Details (USER_DATA)
8890+
8891+
Query block trade details; returns block trade details from counterparty's perspective.
8892+
8893+
https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Query-Block-Trade-Detail
8894+
8895+
:param blockOrderMatchingKey: required - Block Order Matching Key
8896+
:type blockOrderMatchingKey: str
8897+
:param recvWindow: optional - The value cannot be greater than 60000
8898+
:type recvWindow: int
8899+
8900+
:returns: API response
8901+
8902+
.. code-block:: python
8903+
{
8904+
"blockTradeSettlementKey": "12b96c28-ba05-8906-c89t-703215cfb2e6",
8905+
"expireTime": 1730171860460,
8906+
"liquidity": "MAKER",
8907+
"status": "RECEIVED",
8908+
"createTime": 1730170060462,
8909+
"legs": [
8910+
{
8911+
"symbol": "BNB-241101-700-C",
8912+
"side": "SELL",
8913+
"quantity": "1.66",
8914+
"price": "20"
8915+
}
8916+
]
8917+
}
8918+
8919+
:raises: BinanceRequestException, BinanceAPIException
8920+
"""
8921+
return self._request_options_api(
8922+
"get", "block/order/execute", signed=True, data=params
8923+
)
8924+
8925+
def options_account_get_block_trades(self, **params):
8926+
"""Account Block Trade List (USER_DATA)
8927+
8928+
Gets block trades for a specific account.
8929+
8930+
https://developers.binance.com/docs/derivatives/option/market-maker-block-trade/Account-Block-Trade-List
8931+
8932+
:param endTime: optional
8933+
:type endTime: int
8934+
:param startTime: optional
8935+
:type startTime: int
8936+
:param underlying: optional
8937+
:type underlying: str
8938+
:param recvWindow: optional - The value cannot be greater than 60000
8939+
:type recvWindow: int
8940+
8941+
:returns: API response
8942+
8943+
.. code-block:: python
8944+
[
8945+
{
8946+
"parentOrderId": "4675011431944499201",
8947+
"crossType": "USER_BLOCK",
8948+
"legs": [
8949+
{
8950+
"createTime": 1730170445600,
8951+
"updateTime": 1730170445600,
8952+
"symbol": "BNB-241101-700-C",
8953+
"orderId": "4675011431944499203",
8954+
"orderPrice": 2.8,
8955+
"orderQuantity": 1.2,
8956+
"orderStatus": "FILLED",
8957+
"executedQty": 1.2,
8958+
"executedAmount": 3.36,
8959+
"fee": 0.336,
8960+
"orderType": "PREV_QUOTED",
8961+
"orderSide": "BUY",
8962+
"id": "1125899906900937837",
8963+
"tradeId": 1,
8964+
"tradePrice": 2.8,
8965+
"tradeQty": 1.2,
8966+
"tradeTime": 1730170445600,
8967+
"liquidity": "TAKER",
8968+
"commission": 0.336
8969+
}
8970+
],
8971+
"blockTradeSettlementKey": "7d085e6e-a229-2335-ab9d-6a581febcd25"
8972+
}
8973+
]
8974+
8975+
:raises: BinanceRequestException, BinanceAPIException
8976+
"""
8977+
return self._request_options_api(
8978+
"get", "block/user-trades", signed=True, data=params
8979+
)
8980+
87028981
# Fiat Endpoints
87038982

87048983
def get_fiat_deposit_withdraw_history(self, **params):

0 commit comments

Comments
 (0)