diff --git a/py_order_utils/builders/market_order_builder.py b/py_order_utils/builders/market_order_builder.py index 378f783..7086fea 100644 --- a/py_order_utils/builders/market_order_builder.py +++ b/py_order_utils/builders/market_order_builder.py @@ -44,11 +44,11 @@ def build_market_order_signature(self, mkt_order: MarketOrder): return self.sign(self._create_struct_hash(normalized_mkt_order)) - def build_market_order_and_signature(self, mkt_order: MarketOrder, signature: str): + def build_market_order_and_signature(self, mkt_order: MarketOrder, signature: str, minAmountReceived: str = "0", timeInForce: str = "FOK"): """ Returns the canonical market order and signature object used across processes """ - return MarketOrderAndSignature(mkt_order, signature, "market") + return MarketOrderAndSignature(mkt_order, signature, "market", minAmountReceived=minAmountReceived, timeInForce=timeInForce) def create_market_order(self, data: MarketOrderData): """ @@ -56,7 +56,7 @@ def create_market_order(self, data: MarketOrderData): """ order = self.build_market_order(data) sig = self.build_market_order_signature(order) - return MarketOrderAndSignature(order=order, signature=sig, orderType="market", minAmountReceived=data.min_amount_received) + return MarketOrderAndSignature(order=order, signature=sig, orderType="market", minAmountReceived=data.min_amount_received, timeInForce=data.time_in_force) def _normalize(self, mkt_order: MarketOrder): return MarketOrder( diff --git a/py_order_utils/model/model.py b/py_order_utils/model/model.py index efb963d..e776c01 100644 --- a/py_order_utils/model/model.py +++ b/py_order_utils/model/model.py @@ -73,6 +73,7 @@ class MarketOrderData: signer: str = None sig_type: int = EOA min_amount_received: int = "0" + time_in_force: str = "FOK" class MarketOrder(EIP712Struct): """ @@ -129,6 +130,7 @@ class MarketOrderAndSignature: signature: str orderType: str minAmountReceived: str = "0"; # Optional slippage protection field + timeInForce: str = "FOK"; # Optional market order type: FOK (fill or kill) / IOC (immediate or cancel) def dict(self): return { @@ -136,4 +138,5 @@ def dict(self): "signature": self.signature, "orderType": self.orderType, "minAmountReceived": str(self.minAmountReceived), + "timeInForce": self.timeInForce } diff --git a/setup.py b/setup.py index 6f13fb6..35d970a 100644 --- a/setup.py +++ b/setup.py @@ -5,7 +5,7 @@ setuptools.setup( name="py_order_utils", - version="0.0.21", + version="0.0.22", author="Jonathan Amenechi", author_email="jonathanamenechi@gmail.com", description="Python utilities used to generate and sign limit and market orders on Polymarket's CLOB",