maestro-rust-sdk 1.0.0

Rust SDK for the Maestro Dapp Platform
Documentation
use crate::utils;
use serde::{Deserialize, Serialize};

use super::{addresses::Utxo, scripts::Script};

#[derive(Deserialize)]
pub struct Certificates {
    pub mir_transfers: Vec<serde_json::Value>,
    pub pool_registrations: Vec<serde_json::Value>,
    pub pool_retirements: Vec<serde_json::Value>,
    pub stake_delegations: Vec<serde_json::Value>,
    pub stake_deregistrations: Vec<serde_json::Value>,
    pub stake_registrations_reserves: Vec<serde_json::Value>,
}

#[derive(Deserialize)]
pub struct Redeemers {
    pub certificates: Vec<serde_json::Value>,
    pub mints: Vec<serde_json::Value>,
    pub spends: Vec<serde_json::Value>,
    pub withdrawals: Vec<serde_json::Value>,
}

#[derive(Deserialize)]
pub struct TransactionDetail {
    pub additional_signers: Vec<String>,
    pub block_absolute_slot: i64,
    pub block_hash: String,
    pub block_height: i64,
    pub block_timestamp: i64,
    pub block_tx_index: i64,
    pub certificates: Certificates,
    pub collateral_inputs: Vec<Utxo>,
    pub collateral_return: serde_json::Value,
    pub deposit: i64,
    pub fee: i64,
    pub inputs: Vec<Utxo>,
    pub invalid_before: i64,
    pub invalid_hereafter: i64,
    pub metadata: serde_json::Value,
    pub mint: Vec<serde_json::Value>,
    pub outputs: Vec<Utxo>,
    pub redeemers: Vec<Redeemers>,
    pub reference_inputs: Vec<serde_json::Value>,
    pub scripts_executed: Vec<Script>,
    pub scripts_succesful: bool,
    pub size: i64,
    pub tx_hash: String,
    pub withdrawals: Vec<serde_json::Value>,
}

#[derive(Deserialize)]
pub struct TransactionDetails {
    pub data: TransactionDetail,
    pub last_updated: utils::LastUpdated,
}

#[derive(Deserialize)]
pub struct TransactionOutputFromReference {
    pub data: Utxo,
    pub last_updated: utils::LastUpdated,
}

#[derive(Deserialize)]
pub struct TxoReference {
    pub tx_hash: String,
    pub index: i32,
}

#[derive(Deserialize)]
pub struct TransactionOutputsFromReferences {
    pub data: Vec<Utxo>,
    pub last_updated: utils::LastUpdated,
    pub next_cursor: Option<String>,
}

#[derive(Serialize, Deserialize)]
pub struct EvaluateTx {
    pub cbor: String,
    pub additional_utxos: Vec<String>,
}

#[derive(Deserialize)]
pub struct ExecutionUnits {
    pub mem: i64,
    pub steps: i64,
}

#[derive(Deserialize)]
pub struct RedeemerEvaluation {
    pub ex_units: ExecutionUnits,
    pub redeemer_index: i32,
    pub redeemer_tag: String,
}

pub type EvaluateTxResponse = Vec<RedeemerEvaluation>;