bullet_exchange_interface/message/user/
args.rs1use crate::decimals::PositiveDecimal;
4use crate::define_struct;
5use crate::string::CustomString;
6use crate::types::{
7 AssetId, ClientOrderId, MarketId, OrderId, OrderType, Side, TriggerDirection,
8 TriggerPriceCondition,
9};
10
11define_struct! {
12 struct NewOrderArgs {
13 price: PositiveDecimal,
14 size: PositiveDecimal,
15 side: Side,
16 order_type: OrderType,
17 reduce_only: bool,
18 client_order_id: Option<ClientOrderId>,
19 pending_tpsl_pair: Option<PendingTpslPair>,
20 }
21}
22
23define_struct! {
24 struct AmendOrderArgs {
25 cancel: CancelOrderArgs,
26 place: NewOrderArgs,
27 }
28}
29
30define_struct! {
31 struct CancelOrderArgs {
32 order_id: Option<OrderId>,
33 client_order_id: Option<ClientOrderId>,
34 }
35}
36
37define_struct! {
38 struct PendingTpslPair {
39 tpsl_pair: TpslPair,
40 dynamic_size: bool,
41 }
42}
43
44define_struct! {
45 struct TpslPair {
46 tp: Option<Tpsl>,
47 sl: Option<Tpsl>,
48 }
49}
50
51define_struct! {
52 struct Tpsl {
53 order_price: PositiveDecimal,
54 trigger_price: PositiveDecimal,
55 price_condition: TriggerPriceCondition,
56 order_type: OrderType,
57 }
58}
59
60define_struct! {
61 struct NewTriggerOrderArgs {
62 side: Side,
63 order_price: PositiveDecimal,
64 trigger_price: PositiveDecimal,
65 trigger_direction: TriggerDirection,
66 price_condition: TriggerPriceCondition,
67 size: Option<PositiveDecimal>,
68 order_type: OrderType,
69 }
70}
71
72define_struct! {
73 struct NewTwapOrderArgs {
74 side: Side,
75 total_size: PositiveDecimal,
76 reduce_only: bool,
77 total_duration_seconds: u64,
78 }
79}
80
81define_struct! {
82 struct BackstopLiquidatePerpPositionArgs {
83 market_id: MarketId,
84 size: PositiveDecimal,
85 }
86}
87
88define_struct! {
89 struct CreateVaultArgs<Address> {
90 name: CustomString,
91 description: CustomString,
92 leader: Address,
93 deposit_asset_ids: Vec<AssetId>,
94 withdraw_asset_id: AssetId,
95 withdraw_lockup_period_hours: u8,
96 whitelist_deposits: bool,
97 profit_share_percentage: u8,
98 withdrawal_fee_bps: u8,
99 deposit_limit: PositiveDecimal,
100 }
101}