whisky_provider/maestro/models/
transaction.rs

1use std::collections::HashMap;
2
3use super::*;
4use serde::Deserialize;
5
6use super::{script::Script, utxo::Utxo};
7
8#[derive(Deserialize, Debug, Clone)]
9pub struct Certificates {
10    pub auth_committee_hot_certs: Vec<serde_json::Value>,
11    pub mir_transfers: Vec<serde_json::Value>,
12    pub pool_registrations: Vec<serde_json::Value>,
13    pub pool_retirements: Vec<serde_json::Value>,
14    pub reg_certs: Vec<serde_json::Value>,
15    pub reg_drep_certs: Vec<serde_json::Value>,
16    pub resign_committee_cold_certs: Vec<serde_json::Value>,
17    pub stake_delegations: Vec<serde_json::Value>,
18    pub stake_deregistrations: Vec<serde_json::Value>,
19    pub stake_reg_delegations: Vec<serde_json::Value>,
20    pub stake_registrations: Vec<serde_json::Value>,
21    pub stake_vote_delegations: Vec<serde_json::Value>,
22    pub stake_vote_reg_delegations: Vec<serde_json::Value>,
23    pub unreg_certs: Vec<serde_json::Value>,
24    pub unreg_drep_certs: Vec<serde_json::Value>,
25    pub update_drep_certs: Vec<serde_json::Value>,
26    pub vote_delegations: Vec<serde_json::Value>,
27    pub vote_reg_delegations: Vec<serde_json::Value>,
28}
29
30#[derive(Deserialize, Debug, Clone)]
31pub struct Redeemers {
32    pub certificates: Vec<serde_json::Value>,
33    pub mints: Vec<serde_json::Value>,
34    pub spends: Vec<serde_json::Value>,
35    pub withdrawals: Vec<serde_json::Value>,
36    pub votes: Vec<serde_json::Value>,
37    pub proposals: Vec<serde_json::Value>,
38}
39
40#[derive(Deserialize, Debug, Clone)]
41pub struct MintAsset {
42    pub unit: String,
43    pub amount: serde_json::Value,
44}
45
46#[derive(Deserialize, Debug, Clone)]
47pub struct TransactionDetail {
48    pub additional_signers: Vec<String>,
49    pub block_absolute_slot: i64,
50    pub block_hash: String,
51    pub block_height: i64,
52    pub block_timestamp: i64,
53    pub block_tx_index: i64,
54    pub certificates: Certificates,
55    pub collateral_inputs: Vec<Utxo>,
56    pub collateral_return: serde_json::Value,
57    pub deposit: i64,
58    pub fee: i64,
59    pub inputs: Vec<Utxo>,
60    pub invalid_before: Option<i64>,
61    pub invalid_hereafter: Option<i64>,
62    pub metadata: serde_json::Value,
63    pub mint: Vec<MintAsset>,
64    pub outputs: Vec<Utxo>,
65    pub redeemers: HashMap<String, serde_json::Value>,
66    pub reference_inputs: Vec<serde_json::Value>,
67    pub scripts_executed: Vec<Script>,
68    pub scripts_successful: bool,
69    pub size: i64,
70    pub tx_hash: String,
71    pub withdrawals: Vec<serde_json::Value>,
72}
73
74#[derive(Deserialize, Debug, Clone)]
75pub struct TransactionDetails {
76    pub data: TransactionDetail,
77    pub last_updated: LastUpdated,
78}