whisky_provider/maestro/models/
utxo.rs

1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Debug, Clone)]
6pub enum ScriptVersion {
7    #[serde(rename = "native")]
8    Native,
9    #[serde(rename = "plutusv1")]
10    Plutusv1,
11    #[serde(rename = "plutusv2")]
12    Plutusv2,
13    #[serde(rename = "plutusv3")]
14    Plutusv3,
15}
16
17#[derive(Deserialize, Debug, Clone)]
18pub struct Asset {
19    pub amount: i64,
20    pub unit: String,
21}
22#[derive(Deserialize, Debug, Clone)]
23pub struct Utxo {
24    pub address: String,
25    pub assets: Vec<Asset>,
26    pub datum: Option<HashMap<String, serde_json::Value>>,
27    pub index: i64,
28    pub reference_script: Option<ReferenceScript>,
29    pub tx_hash: String,
30    #[serde(alias = "txout_cbor")]
31    pub tx_out_cbor: Option<String>,
32}
33
34#[derive(Deserialize, Debug, Clone)]
35pub struct ReferenceScript {
36    pub bytes: String,
37    pub hash: String,
38    pub json: Option<HashMap<String, serde_json::Value>>,
39    pub r#type: ScriptVersion,
40}