whisky_provider/maestro/models/
transaction.rs1use 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}