Skip to main content

blockfrost_openapi/models/
committee_members_inner.rs

1use crate::models;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
5pub struct CommitteeMembersInner {
6    /// CIP-129 bech32 encoded cold credential (`cc_cold1...`).
7    #[serde(rename = "cc_cold_id")]
8    pub cc_cold_id: String,
9    /// Hex of the raw 28-byte cold key/script hash.
10    #[serde(rename = "cc_cold_hex")]
11    pub cc_cold_hex: String,
12    #[serde(rename = "cc_cold_has_script")]
13    pub cc_cold_has_script: bool,
14    /// CIP-129 bech32 encoded current hot credential (`cc_hot1...`). `null` unless `status` is `authorized`.
15    #[serde(rename = "cc_hot_id", deserialize_with = "Option::deserialize")]
16    pub cc_hot_id: Option<String>,
17    #[serde(rename = "cc_hot_hex", deserialize_with = "Option::deserialize")]
18    pub cc_hot_hex: Option<String>,
19    #[serde(rename = "cc_hot_has_script", deserialize_with = "Option::deserialize")]
20    pub cc_hot_has_script: Option<bool>,
21    /// `authorized` — member has a currently active hot key. `not_authorized` — member has never authorized a hot key. `resigned` — member's most recent on-chain event is a resignation certificate.
22    #[serde(rename = "status")]
23    pub status: Status,
24    /// Epoch at which this member's term expires.
25    #[serde(rename = "expiration_epoch")]
26    pub expiration_epoch: i32,
27}
28
29impl CommitteeMembersInner {
30    pub fn new(cc_cold_id: String, cc_cold_hex: String, cc_cold_has_script: bool, cc_hot_id: Option<String>, cc_hot_hex: Option<String>, cc_hot_has_script: Option<bool>, status: Status, expiration_epoch: i32) -> CommitteeMembersInner {
31        CommitteeMembersInner {
32            cc_cold_id,
33            cc_cold_hex,
34            cc_cold_has_script,
35            cc_hot_id,
36            cc_hot_hex,
37            cc_hot_has_script,
38            status,
39            expiration_epoch,
40        }
41    }
42}
43/// `authorized` — member has a currently active hot key. `not_authorized` — member has never authorized a hot key. `resigned` — member's most recent on-chain event is a resignation certificate.
44#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
45pub enum Status {
46    #[serde(rename = "authorized")]
47    Authorized,
48    #[serde(rename = "not_authorized")]
49    NotAuthorized,
50    #[serde(rename = "resigned")]
51    Resigned,
52}
53
54impl Default for Status {
55    fn default() -> Status {
56        Self::Authorized
57    }
58}
59