whisky_provider/blockfrost/models/
script.rs

1use serde::Deserialize;
2use serde::Serialize;
3
4/// Type of the script language
5#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
6pub enum Type {
7    #[serde(rename = "timelock")]
8    Timelock,
9    #[serde(rename = "plutusV1")]
10    PlutusV1,
11    #[serde(rename = "plutusV2")]
12    PlutusV2,
13    #[serde(rename = "plutusV3")]
14    PlutusV3,
15}
16
17impl Default for Type {
18    fn default() -> Type {
19        Self::Timelock
20    }
21}
22
23#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
24pub struct Script {
25    /// Script hash
26    #[serde(rename = "script_hash")]
27    pub script_hash: String,
28    /// Type of the script language
29    #[serde(rename = "type")]
30    pub r#type: Type,
31    /// The size of the CBOR serialised script, if a Plutus script
32    #[serde(rename = "serialised_size", deserialize_with = "Option::deserialize")]
33    pub serialised_size: Option<i32>,
34}