Skip to content

Commit d7d4151

Browse files
committed
chore: add incremental order_mask per arg
1 parent a6202cf commit d7d4151

File tree

1 file changed

+40
-36
lines changed

1 file changed

+40
-36
lines changed

pyinjective/composer.py

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -41,28 +41,30 @@ 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, order_mask: str = "any"):
44+
def OrderData(self, market_id: str, subaccount_id: str, order_hash: str, **kwargs):
4545

46-
if order_mask == "any":
47-
order_mask = injective_exchange_pb.OrderMask.ANY
46+
order_mask = 0
4847

49-
elif order_mask == "regular":
50-
order_mask = injective_exchange_pb.OrderMask.REGULAR
48+
if not kwargs.get("is_conditional") and not kwargs.get("order_direction") and not kwargs.get("order_type"):
49+
order_mask = 1
5150

52-
elif order_mask == "conditional":
53-
order_mask = injective_exchange_pb.OrderMask.CONDITIONAL
51+
if kwargs.get("is_conditional"):
52+
order_mask += injective_exchange_pb.OrderMask.CONDITIONAL
5453

55-
elif order_mask == "direction_buy_or_higher":
56-
order_mask = injective_exchange_pb.OrderMask.DIRECTION_BUY_OR_HIGHER
54+
elif kwargs.get("is_conditional", False):
55+
order_mask += injective_exchange_pb.OrderMask.REGULAR
5756

58-
elif order_mask == "direction_sell_or_lower":
59-
order_mask = injective_exchange_pb.OrderMask.DIRECTION_SELL_OR_LOWER
57+
if kwargs.get("is_conditional") and kwargs.get("order_direction") == "buy":
58+
order_mask += injective_exchange_pb.OrderMask.DIRECTION_BUY_OR_HIGHER
6059

61-
elif order_mask == "type_market":
62-
order_mask = injective_exchange_pb.OrderMask.TYPE_MARKET
60+
elif kwargs.get("is_conditional") and kwargs.get("order_direction") == "sell":
61+
order_mask += injective_exchange_pb.OrderMask.DIRECTION_SELL_OR_LOWER
6362

64-
elif order_mask == "type_limit":
65-
order_mask = injective_exchange_pb.OrderMask.TYPE_LIMIT
63+
if kwargs.get("order_type") == "market":
64+
order_mask += injective_exchange_pb.OrderMask.TYPE_MARKET
65+
66+
elif kwargs.get("order_type") == "limit":
67+
order_mask += injective_exchange_pb.OrderMask.TYPE_LIMIT
6668

6769
return injective_exchange_tx_pb.OrderData(
6870
market_id=market_id, subaccount_id=subaccount_id, order_hash=order_hash, order_mask=order_mask
@@ -544,36 +546,38 @@ def MsgInstantBinaryOptionsMarketLaunch(
544546
)
545547

546548
def MsgCancelDerivativeOrder(
547-
self, market_id: str, sender: str, subaccount_id: str, order_hash: str, order_mask: str = "any"
549+
self, market_id: str, sender: str, subaccount_id: str, order_hash: str, **kwargs
548550
):
549551

550-
if order_mask == "any":
551-
order_mask = injective_exchange_pb.OrderMask.ANY
552+
order_mask = 0
552553

553-
elif order_mask == "regular":
554-
order_mask = injective_exchange_pb.OrderMask.REGULAR
554+
if not kwargs.get("is_conditional") and not kwargs.get("order_direction") and not kwargs.get("order_type"):
555+
order_mask = 1
555556

556-
elif order_mask == "conditional":
557-
order_mask = injective_exchange_pb.OrderMask.CONDITIONAL
557+
if kwargs.get("is_conditional"):
558+
order_mask += injective_exchange_pb.OrderMask.CONDITIONAL
558559

559-
elif order_mask == "direction_buy_or_higher":
560-
order_mask = injective_exchange_pb.OrderMask.DIRECTION_BUY_OR_HIGHER
560+
elif kwargs.get("is_conditional", False):
561+
order_mask += injective_exchange_pb.OrderMask.REGULAR
561562

562-
elif order_mask == "direction_sell_or_lower":
563-
order_mask = injective_exchange_pb.OrderMask.DIRECTION_SELL_OR_LOWER
563+
if kwargs.get("is_conditional") and kwargs.get("order_direction") == "buy":
564+
order_mask += injective_exchange_pb.OrderMask.DIRECTION_BUY_OR_HIGHER
564565

565-
elif order_mask == "type_market":
566-
order_mask = injective_exchange_pb.OrderMask.TYPE_MARKET
566+
elif kwargs.get("is_conditional") and kwargs.get("order_direction") == "sell":
567+
order_mask += injective_exchange_pb.OrderMask.DIRECTION_SELL_OR_LOWER
567568

568-
elif order_mask == "type_limit":
569-
order_mask = injective_exchange_pb.OrderMask.TYPE_LIMIT
569+
if kwargs.get("order_type") == "market":
570+
order_mask += injective_exchange_pb.OrderMask.TYPE_MARKET
570571

571-
return injective_exchange_tx_pb.MsgCancelDerivativeOrder(
572-
sender=sender,
573-
market_id=market_id,
574-
subaccount_id=subaccount_id,
575-
order_hash=order_hash,
576-
order_mask=order_mask
572+
elif kwargs.get("order_type") == "limit":
573+
order_mask += injective_exchange_pb.OrderMask.TYPE_LIMIT
574+
575+
return injective_exchange_tx_pb.MsgCancelDerivativeOrder(
576+
sender=sender,
577+
market_id=market_id,
578+
subaccount_id=subaccount_id,
579+
order_hash=order_hash,
580+
order_mask=order_mask
577581
)
578582

579583
def MsgBatchCreateDerivativeLimitOrders(self, sender: str, orders: List):

0 commit comments

Comments
 (0)