@@ -31,6 +31,7 @@ def __init__(
3131 tld : str = "com" ,
3232 base_endpoint : str = BaseClient .BASE_ENDPOINT_DEFAULT ,
3333 testnet : bool = False ,
34+ demo : bool = False ,
3435 loop = None ,
3536 session_params : Optional [Dict [str , Any ]] = None ,
3637 private_key : Optional [Union [str , Path ]] = None ,
@@ -41,13 +42,23 @@ def __init__(
4142 self .https_proxy = https_proxy
4243 self .loop = loop or get_loop ()
4344 self ._session_params : Dict [str , Any ] = session_params or {}
45+
46+ # Convert https_proxy to requests_params format for BaseClient
47+ if https_proxy and requests_params is None :
48+ requests_params = {'proxies' : {'http' : https_proxy , 'https' : https_proxy }}
49+ elif https_proxy and requests_params is not None :
50+ if 'proxies' not in requests_params :
51+ requests_params ['proxies' ] = {}
52+ requests_params ['proxies' ].update ({'http' : https_proxy , 'https' : https_proxy })
53+
4454 super ().__init__ (
4555 api_key ,
4656 api_secret ,
4757 requests_params ,
4858 tld ,
4959 base_endpoint ,
5060 testnet ,
61+ demo ,
5162 private_key ,
5263 private_key_pass ,
5364 time_unit = time_unit ,
@@ -62,6 +73,7 @@ async def create(
6273 tld : str = "com" ,
6374 base_endpoint : str = BaseClient .BASE_ENDPOINT_DEFAULT ,
6475 testnet : bool = False ,
76+ demo : bool = False ,
6577 loop = None ,
6678 session_params : Optional [Dict [str , Any ]] = None ,
6779 private_key : Optional [Union [str , Path ]] = None ,
@@ -76,6 +88,7 @@ async def create(
7688 tld ,
7789 base_endpoint ,
7890 testnet ,
91+ demo ,
7992 loop ,
8093 session_params ,
8194 private_key ,
@@ -151,6 +164,9 @@ async def _request(
151164 url_encoded_data = urlencode (dict_data )
152165 data = f"{ url_encoded_data } &signature={ signature } "
153166
167+ # Remove proxies from kwargs since aiohttp uses 'proxy' parameter instead
168+ kwargs .pop ('proxies' , None )
169+
154170 async with getattr (self .session , method )(
155171 yarl .URL (uri , encoded = True ),
156172 proxy = self .https_proxy ,
@@ -1876,6 +1892,77 @@ async def futures_create_order(self, **params):
18761892 params ["newClientOrderId" ] = self .CONTRACT_ORDER_PREFIX + self .uuid22 ()
18771893 return await self ._request_futures_api ("post" , "order" , True , data = params )
18781894
1895+ async def futures_limit_order (self , ** params ):
1896+ """Send in a new futures limit order.
1897+
1898+ https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api
1899+
1900+ """
1901+ if "newClientOrderId" not in params :
1902+ params ["newClientOrderId" ] = self .CONTRACT_ORDER_PREFIX + self .uuid22 ()
1903+ params ["type" ] = "LIMIT"
1904+ return await self ._request_futures_api ("post" , "order" , True , data = params )
1905+
1906+ async def futures_market_order (self , ** params ):
1907+ """Send in a new futures market order.
1908+
1909+ https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api
1910+
1911+ """
1912+ if "newClientOrderId" not in params :
1913+ params ["newClientOrderId" ] = self .CONTRACT_ORDER_PREFIX + self .uuid22 ()
1914+ params ["type" ] = "MARKET"
1915+ return await self ._request_futures_api ("post" , "order" , True , data = params )
1916+
1917+
1918+ async def futures_limit_buy_order (self , ** params ):
1919+ """Send in a new futures limit buy order.
1920+
1921+ https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api
1922+
1923+ """
1924+ if "newClientOrderId" not in params :
1925+ params ["newClientOrderId" ] = self .CONTRACT_ORDER_PREFIX + self .uuid22 ()
1926+ params ["side" ] = "BUY"
1927+ params ["type" ] = "LIMIT"
1928+ return await self ._request_futures_api ("post" , "order" , True , data = params )
1929+
1930+ async def futures_limit_sell_order (self , ** params ):
1931+ """Send in a new futures limit sell order.
1932+
1933+ https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api
1934+
1935+ """
1936+ if "newClientOrderId" not in params :
1937+ params ["newClientOrderId" ] = self .CONTRACT_ORDER_PREFIX + self .uuid22 ()
1938+ params ["side" ] = "SELL"
1939+ params ["type" ] = "LIMIT"
1940+ return await self ._request_futures_api ("post" , "order" , True , data = params )
1941+
1942+ async def futures_market_buy_order (self , ** params ):
1943+ """Send in a new futures market buy order.
1944+
1945+ https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api
1946+
1947+ """
1948+ if "newClientOrderId" not in params :
1949+ params ["newClientOrderId" ] = self .CONTRACT_ORDER_PREFIX + self .uuid22 ()
1950+ params ["side" ] = "BUY"
1951+ params ["type" ] = "MARKET"
1952+ return await self ._request_futures_api ("post" , "order" , True , data = params )
1953+
1954+ async def futures_market_sell_order (self , ** params ):
1955+ """Send in a new futures market sell order.
1956+
1957+ https://developers.binance.com/docs/derivatives/usds-margined-futures/trade/rest-api
1958+
1959+ """
1960+ if "newClientOrderId" not in params :
1961+ params ["newClientOrderId" ] = self .CONTRACT_ORDER_PREFIX + self .uuid22 ()
1962+ params ["side" ] = "SELL"
1963+ params ["type" ] = "MARKET"
1964+ return await self ._request_futures_api ("post" , "order" , True , data = params )
1965+
18791966 async def futures_modify_order (self , ** params ):
18801967 """Modify an existing order. Currently only LIMIT order modification is supported.
18811968
0 commit comments