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
6 changes: 3 additions & 3 deletions py_order_utils/builders/market_order_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,19 @@ 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):
"""
Helper function to build and sign a market order
"""
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(
Expand Down
3 changes: 3 additions & 0 deletions py_order_utils/model/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
"""
Expand Down Expand Up @@ -129,11 +130,13 @@ 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 {
"order": self.order.dict(),
"signature": self.signature,
"orderType": self.orderType,
"minAmountReceived": str(self.minAmountReceived),
"timeInForce": self.timeInForce
}
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down