Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "x10-python-trading-starknet"
version = "0.0.15"
version = "0.0.16"
description = "Python client for X10 API"
authors = ["X10 <tech@ex10.org>"]
repository = "https://github.com/x10xchange/python_sdk"
Expand Down
20 changes: 13 additions & 7 deletions x10/perpetual/order_object.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@
)
from x10.perpetual.orders import (
CreateOrderTpslTriggerModel,
NewOrderModel,
OrderPriceType,
OrderSide,
OrderTpslType,
OrderTriggerPriceType,
OrderType,
PerpetualOrderModel,
SelfTradeProtectionLevel,
TimeInForce,
)
Expand Down Expand Up @@ -55,7 +55,7 @@ def create_order_object(
tp_sl_type: Optional[OrderTpslType] = None,
take_profit: Optional[OrderTpslTriggerParam] = None,
stop_loss: Optional[OrderTpslTriggerParam] = None,
) -> PerpetualOrderModel:
) -> NewOrderModel:
"""
Creates an order object to be placed on the exchange using the `place_order` method.
"""
Expand Down Expand Up @@ -132,7 +132,16 @@ def __create_order_object(
tp_sl_type: Optional[OrderTpslType] = None,
take_profit: Optional[OrderTpslTriggerParam] = None,
stop_loss: Optional[OrderTpslTriggerParam] = None,
) -> PerpetualOrderModel:
) -> NewOrderModel:
if side not in OrderSide:
raise ValueError(f"Unexpected order side value: {side}")

if time_in_force not in TimeInForce or time_in_force == TimeInForce.FOK:
raise ValueError(f"Unexpected time in force value: {time_in_force}")

if expire_time is None:
raise ValueError("`expire_time` must be provided")

if exact_only:
raise NotImplementedError("`exact_only` option is not supported yet")

Expand All @@ -144,9 +153,6 @@ def __create_order_object(
):
raise NotImplementedError("TPSL `MARKET` price type is not supported yet")

if expire_time is None:
raise ValueError("`expire_time` must be provided")

if nonce is None:
nonce = generate_nonce()

Expand Down Expand Up @@ -194,7 +200,7 @@ def __create_order_object(
)

order_id = str(settlement_data.order_hash) if order_external_id is None else order_external_id
order = PerpetualOrderModel(
order = NewOrderModel(
id=order_id,
market=market.name,
type=OrderType.LIMIT,
Expand Down
3 changes: 2 additions & 1 deletion x10/perpetual/orders.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ class CreateOrderTpslTriggerModel(X10BaseModel):
debugging_amounts: Optional[StarkDebuggingOrderAmountsModel] = None


class PerpetualOrderModel(X10BaseModel):
class NewOrderModel(X10BaseModel):
id: str
market: str
type: OrderType
Expand Down Expand Up @@ -188,6 +188,7 @@ class OpenOrderModel(X10BaseModel):
created_time: int
updated_time: int
expiry_time: Optional[int] = None
time_in_force: TimeInForce
tp_sl_type: Optional[OrderTpslType] = None
take_profit: Optional[OpenOrderTpslTriggerModel] = None
stop_loss: Optional[OpenOrderTpslTriggerModel] = None
4 changes: 2 additions & 2 deletions x10/perpetual/simple_client/simple_trading_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
from x10.perpetual.markets import MarketModel
from x10.perpetual.order_object import create_order_object
from x10.perpetual.orders import (
NewOrderModel,
OpenOrderModel,
OrderSide,
OrderStatus,
PerpetualOrderModel,
TimeInForce,
)
from x10.perpetual.stream_client.perpetual_stream_connection import (
Expand Down Expand Up @@ -208,7 +208,7 @@ async def create_and_place_order(
if not market:
raise ValueError(f"Market '{market_name}' not found.")

order: PerpetualOrderModel = create_order_object(
order: NewOrderModel = create_order_object(
account=self.__account,
market=market,
amount_of_synthetic=amount_of_synthetic,
Expand Down
4 changes: 2 additions & 2 deletions x10/perpetual/trading_client/order_management_module.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from typing import List, Optional

from x10.perpetual.orders import PerpetualOrderModel, PlacedOrderModel
from x10.perpetual.orders import NewOrderModel, PlacedOrderModel
from x10.perpetual.trading_client.base_module import BaseModule
from x10.utils.http import send_delete_request, send_post_request
from x10.utils.log import get_logger
Expand All @@ -17,7 +17,7 @@ class _MassCancelRequestModel(X10BaseModel):


class OrderManagementModule(BaseModule):
async def place_order(self, order: PerpetualOrderModel):
async def place_order(self, order: NewOrderModel):
"""
Placed new order on the exchange.

Expand Down