#[non_exhaustive]#[repr(u8)]pub enum PublicAction<Address> {
LiquidatePerpPositions {
address: Address,
},
ForceCancelOrders {
user_address: Address,
},
ExecuteTriggerOrders {
market_id: MarketId,
},
ApplyFunding {
addresses: Vec<Address>,
},
AccrueBorrowLendInterest {},
ExecuteTwapOrders {
market_id: MarketId,
},
ActivateTwapOrders {
market_ids: Vec<MarketId>,
},
ForceCancelIsoOrders {
user_address: Address,
market_id: MarketId,
},
LiquidateIsoPerpPosition {
user_address: Address,
market_id: MarketId,
},
}Expand description
Permissionless operations anyone can call.
These operations have no authorization checks - anyone can trigger them. Typically used for MEV opportunities (liquidations) or protocol maintenance (interest accrual, funding application).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
LiquidatePerpPositions
Try to force close cross margin perp positions for a user account under maintenance margin but above backstop liquidation margin (permissionless).
Fields
address: AddressForceCancelOrders
Force cancel orders for a user under initial margin on cross margin positions (permissionless).
Fields
user_address: AddressExecuteTriggerOrders
Execute active trigger orders (permissionless).
ApplyFunding
Apply funding to user accounts (permissionless).
AccrueBorrowLendInterest
Accrue borrow/lend interest (permissionless).
ExecuteTwapOrders
Execute TWAP orders (permissionless)
ActivateTwapOrders
Activate TWAP orders (permissionless)
ForceCancelIsoOrders
Force cancel orders for a user under initial margin for an iso margin position (permissionless)
LiquidateIsoPerpPosition
Try to force close an iso margin position for a user under maintenance margin but above backstop liquidation margin (permissionless)
Trait Implementations§
Source§impl<Address> AsRef<str> for PublicAction<Address>
impl<Address> AsRef<str> for PublicAction<Address>
Source§impl<Address> BorshDeserialize for PublicAction<Address>where
Address: BorshDeserialize,
impl<Address> BorshDeserialize for PublicAction<Address>where
Address: BorshDeserialize,
fn deserialize_reader<__R: Read>(reader: &mut __R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl<Address> BorshSerialize for PublicAction<Address>where
Address: BorshSerialize,
impl<Address> BorshSerialize for PublicAction<Address>where
Address: BorshSerialize,
Source§impl<Address: Clone> Clone for PublicAction<Address>
impl<Address: Clone> Clone for PublicAction<Address>
Source§fn clone(&self) -> PublicAction<Address>
fn clone(&self) -> PublicAction<Address>
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<Address: Debug> Debug for PublicAction<Address>
impl<Address: Debug> Debug for PublicAction<Address>
Source§impl<'de, Address> Deserialize<'de> for PublicAction<Address>where
Address: Deserialize<'de>,
impl<'de, Address> Deserialize<'de> for PublicAction<Address>where
Address: Deserialize<'de>,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl<Address> EnumExt for PublicAction<Address>where
Address: BorshDeserialize,
impl<Address> EnumExt for PublicAction<Address>where
Address: BorshDeserialize,
Source§impl<'_enum, Address> From<&'_enum PublicAction<Address>> for PublicActionDiscriminants
impl<'_enum, Address> From<&'_enum PublicAction<Address>> for PublicActionDiscriminants
Source§fn from(val: &'_enum PublicAction<Address>) -> PublicActionDiscriminants
fn from(val: &'_enum PublicAction<Address>) -> PublicActionDiscriminants
Source§impl<Address> From<PublicAction<Address>> for CallMessage<Address>
impl<Address> From<PublicAction<Address>> for CallMessage<Address>
Source§fn from(v: PublicAction<Address>) -> Self
fn from(v: PublicAction<Address>) -> Self
Source§impl<Address> From<PublicAction<Address>> for PublicActionDiscriminants
impl<Address> From<PublicAction<Address>> for PublicActionDiscriminants
Source§fn from(val: PublicAction<Address>) -> PublicActionDiscriminants
fn from(val: PublicAction<Address>) -> PublicActionDiscriminants
Source§impl<Address: Hash> Hash for PublicAction<Address>
impl<Address: Hash> Hash for PublicAction<Address>
Source§impl<Address: JsonSchema> JsonSchema for PublicAction<Address>
impl<Address: JsonSchema> JsonSchema for PublicAction<Address>
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreSource§impl<Address: Ord> Ord for PublicAction<Address>
impl<Address: Ord> Ord for PublicAction<Address>
Source§fn cmp(&self, other: &PublicAction<Address>) -> Ordering
fn cmp(&self, other: &PublicAction<Address>) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<Address: PartialEq> PartialEq for PublicAction<Address>
impl<Address: PartialEq> PartialEq for PublicAction<Address>
Source§fn eq(&self, other: &PublicAction<Address>) -> bool
fn eq(&self, other: &PublicAction<Address>) -> bool
self and other values to be equal, and is used by ==.Source§impl<Address: PartialOrd> PartialOrd for PublicAction<Address>
impl<Address: PartialOrd> PartialOrd for PublicAction<Address>
Source§impl<Address> Serialize for PublicAction<Address>where
Address: Serialize,
impl<Address> Serialize for PublicAction<Address>where
Address: Serialize,
Source§impl<Address> UniversalWallet for PublicAction<Address>where
__SovVirtualWallet_PublicAction_LiquidatePerpPositions<Address>: UniversalWallet,
__SovVirtualWallet_PublicAction_ForceCancelOrders<Address>: UniversalWallet,
__SovVirtualWallet_PublicAction_ExecuteTriggerOrders: UniversalWallet,
__SovVirtualWallet_PublicAction_ApplyFunding<Address>: UniversalWallet,
__SovVirtualWallet_PublicAction_AccrueBorrowLendInterest: UniversalWallet,
__SovVirtualWallet_PublicAction_ExecuteTwapOrders: UniversalWallet,
__SovVirtualWallet_PublicAction_ActivateTwapOrders: UniversalWallet,
__SovVirtualWallet_PublicAction_ForceCancelIsoOrders<Address>: UniversalWallet,
__SovVirtualWallet_PublicAction_LiquidateIsoPerpPosition<Address>: UniversalWallet,
Self: 'static,
impl<Address> UniversalWallet for PublicAction<Address>where
__SovVirtualWallet_PublicAction_LiquidatePerpPositions<Address>: UniversalWallet,
__SovVirtualWallet_PublicAction_ForceCancelOrders<Address>: UniversalWallet,
__SovVirtualWallet_PublicAction_ExecuteTriggerOrders: UniversalWallet,
__SovVirtualWallet_PublicAction_ApplyFunding<Address>: UniversalWallet,
__SovVirtualWallet_PublicAction_AccrueBorrowLendInterest: UniversalWallet,
__SovVirtualWallet_PublicAction_ExecuteTwapOrders: UniversalWallet,
__SovVirtualWallet_PublicAction_ActivateTwapOrders: UniversalWallet,
__SovVirtualWallet_PublicAction_ForceCancelIsoOrders<Address>: UniversalWallet,
__SovVirtualWallet_PublicAction_LiquidateIsoPerpPosition<Address>: UniversalWallet,
Self: 'static,
Source§fn scaffold() -> Item<IndexLinking>
fn scaffold() -> Item<IndexLinking>
Link::Placeholder.Source§fn get_child_links(schema: &mut Schema) -> Vec<Link>
fn get_child_links(schema: &mut Schema) -> Vec<Link>
Link connecting the child to the parent. Read moreSource§fn get_child_templates(schema: &mut Schema) -> TransactionTemplateSet
fn get_child_templates(schema: &mut Schema) -> TransactionTemplateSet
Source§fn write_schema(schema: &mut Schema) -> Link
fn write_schema(schema: &mut Schema) -> Link
Source§fn make_root_of(schema: &mut Schema)
fn make_root_of(schema: &mut Schema)
Source§fn make_linkable(schema: &mut Schema) -> Link
fn make_linkable(schema: &mut Schema) -> Link
Source§fn id_override() -> Option<ItemId>
fn id_override() -> Option<ItemId>
OverrideSchema trait.