bullet_exchange_interface/message/public/mod.rs
1//! Permissionless operations.
2
3use crate::define_enum;
4use crate::types::MarketId;
5
6define_enum! {
7 /// Permissionless operations anyone can call.
8 ///
9 /// These operations have no authorization checks - anyone can trigger them.
10 /// Typically used for MEV opportunities (liquidations) or protocol maintenance
11 /// (interest accrual, funding application).
12 #[non_exhaustive]
13 enum PublicAction<Address> {
14 /// Try to force close cross margin perp positions for a user account under maintenance margin but above backstop liquidation margin (permissionless).
15 LiquidatePerpPositions { address: Address } = 0,
16
17 /// Force cancel orders for a user under initial margin on cross margin positions (permissionless).
18 ForceCancelOrders { user_address: Address } = 1,
19
20 /// Execute active trigger orders (permissionless).
21 ExecuteTriggerOrders { market_id: MarketId } = 2,
22
23 /// Apply funding to user accounts (permissionless).
24 ApplyFunding { addresses: Vec<Address> } = 3,
25
26 /// Accrue borrow/lend interest (permissionless).
27 AccrueBorrowLendInterest {} = 4,
28
29 /// Execute TWAP orders (permissionless)
30 ExecuteTwapOrders { market_id: MarketId } = 5,
31
32 /// Activate TWAP orders (permissionless)
33 ActivateTwapOrders { market_ids: Vec<MarketId> } = 6,
34
35 /// Force cancel orders for a user under initial margin for an iso margin position (permissionless)
36 ForceCancelIsoOrders { user_address: Address, market_id: MarketId } = 7,
37
38 /// Try to force close an iso margin position for a user under maintenance margin but above backstop liquidation margin (permissionless)
39 LiquidateIsoPerpPosition { user_address: Address, market_id: MarketId } = 8,
40
41 // Reserved: 9-255
42 }
43}