dpp/tokens/
emergency_action.rs1use crate::tokens::status::TokenStatus;
2use crate::ProtocolError;
3use bincode::{Decode, Encode};
4use platform_version::version::PlatformVersion;
5#[cfg(feature = "serde-conversion")]
6use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, Copy, Default, Encode, Decode, PartialOrd, PartialEq, Eq)]
9#[cfg_attr(
10 feature = "serde-conversion",
11 derive(Serialize, Deserialize),
12 serde(rename_all = "camelCase")
13)]
14pub enum TokenEmergencyAction {
15 #[default]
16 Pause = 0,
17 Resume = 1,
18}
19
20impl TokenEmergencyAction {
21 pub fn paused(&self) -> bool {
22 matches!(self, TokenEmergencyAction::Pause)
23 }
24 pub fn resulting_status(
25 &self,
26 platform_version: &PlatformVersion,
27 ) -> Result<TokenStatus, ProtocolError> {
28 match self {
29 TokenEmergencyAction::Pause => TokenStatus::new(true, platform_version),
30 TokenEmergencyAction::Resume => TokenStatus::new(false, platform_version),
31 }
32 }
33}