@@ -41,9 +41,31 @@ def __init__(self, network: str):
4141 def Coin (self , amount : int , denom : str ):
4242 return cosmos_base_coin_pb .Coin (amount = str (amount ), denom = denom )
4343
44- def OrderData (self , market_id : str , subaccount_id : str , order_hash : str ):
44+ def OrderData (self , market_id : str , subaccount_id : str , order_hash : str , order_mask : str = "any" ):
45+
46+ if order_mask == "any" :
47+ order_mask = injective_exchange_pb .OrderMask .ANY
48+
49+ elif order_mask == "regular" :
50+ order_mask = injective_exchange_pb .OrderMask .REGULAR
51+
52+ elif order_mask == "conditional" :
53+ order_mask = injective_exchange_pb .OrderMask .CONDITIONAL
54+
55+ elif order_mask == "direction_buy_or_higher" :
56+ order_mask = injective_exchange_pb .OrderMask .DIRECTION_BUY_OR_HIGHER
57+
58+ elif order_mask == "direction_sell_or_lower" :
59+ order_mask = injective_exchange_pb .OrderMask .DIRECTION_SELL_OR_LOWER
60+
61+ elif order_mask == "type_market" :
62+ order_mask = injective_exchange_pb .OrderMask .TYPE_MARKET
63+
64+ elif order_mask == "type_limit" :
65+ order_mask = injective_exchange_pb .OrderMask .TYPE_LIMIT
66+
4567 return injective_exchange_tx_pb .OrderData (
46- market_id = market_id , subaccount_id = subaccount_id , order_hash = order_hash
68+ market_id = market_id , subaccount_id = subaccount_id , order_hash = order_hash , order_mask = order_mask
4769 )
4870
4971 def SpotOrder (
@@ -95,6 +117,7 @@ def DerivativeOrder(
95117 fee_recipient : str ,
96118 price : float ,
97119 quantity : float ,
120+ trigger_price : float = 0 ,
98121 ** kwargs
99122 ):
100123 # load denom metadata
@@ -114,7 +137,7 @@ def DerivativeOrder(
114137
115138 # prepare values
116139 price = derivative_price_to_backend (price , denom )
117- trigger_price = derivative_price_to_backend (0 , denom )
140+ trigger_price = derivative_price_to_backend (trigger_price , denom )
118141 quantity = derivative_quantity_to_backend (quantity , denom )
119142
120143 if kwargs .get ("is_buy" ) and not kwargs .get ("is_po" ):
@@ -129,6 +152,18 @@ def DerivativeOrder(
129152 elif not kwargs .get ("is_buy" ) and kwargs .get ("is_po" ):
130153 order_type = injective_exchange_pb .OrderType .SELL_PO
131154
155+ elif kwargs .get ("stop_buy" ):
156+ order_type = injective_exchange_pb .OrderType .STOP_BUY
157+
158+ elif kwargs .get ("stop_sell" ):
159+ order_type = injective_exchange_pb .OrderType .STOP_SEll
160+
161+ elif kwargs .get ("take_buy" ):
162+ order_type = injective_exchange_pb .OrderType .TAKE_BUY
163+
164+ elif kwargs .get ("take_sell" ):
165+ order_type = injective_exchange_pb .OrderType .TAKE_SELL
166+
132167 return injective_exchange_pb .DerivativeOrder (
133168 market_id = market_id ,
134169 order_info = injective_exchange_pb .OrderInfo (
@@ -290,7 +325,7 @@ def MsgCancelSpotOrder(
290325 sender = sender ,
291326 market_id = market_id ,
292327 subaccount_id = subaccount_id ,
293- order_hash = order_hash ,
328+ order_hash = order_hash
294329 )
295330
296331 def MsgBatchCreateSpotLimitOrders (self , sender : str , orders : List ):
@@ -509,13 +544,36 @@ def MsgInstantBinaryOptionsMarketLaunch(
509544 )
510545
511546 def MsgCancelDerivativeOrder (
512- self , market_id : str , sender : str , subaccount_id : str , order_hash : str
547+ self , market_id : str , sender : str , subaccount_id : str , order_hash : str , order_mask : str = "any"
513548 ):
549+
550+ if order_mask == "any" :
551+ order_mask = injective_exchange_pb .OrderMask .ANY
552+
553+ elif order_mask == "regular" :
554+ order_mask = injective_exchange_pb .OrderMask .REGULAR
555+
556+ elif order_mask == "conditional" :
557+ order_mask = injective_exchange_pb .OrderMask .CONDITIONAL
558+
559+ elif order_mask == "direction_buy_or_higher" :
560+ order_mask = injective_exchange_pb .OrderMask .DIRECTION_BUY_OR_HIGHER
561+
562+ elif order_mask == "direction_sell_or_lower" :
563+ order_mask = injective_exchange_pb .OrderMask .DIRECTION_SELL_OR_LOWER
564+
565+ elif order_mask == "type_market" :
566+ order_mask = injective_exchange_pb .OrderMask .TYPE_MARKET
567+
568+ elif order_mask == "type_limit" :
569+ order_mask = injective_exchange_pb .OrderMask .TYPE_LIMIT
570+
514571 return injective_exchange_tx_pb .MsgCancelDerivativeOrder (
515572 sender = sender ,
516573 market_id = market_id ,
517574 subaccount_id = subaccount_id ,
518575 order_hash = order_hash ,
576+ order_mask = order_mask
519577 )
520578
521579 def MsgBatchCreateDerivativeLimitOrders (self , sender : str , orders : List ):
0 commit comments