maestro-rust-sdk 1.2.5

Rust SDK for the Maestro Dapp Platform
Documentation
use crate::utils;
use serde::Deserialize;

#[derive(Deserialize, Debug, Clone)]
pub struct ChainTipData {
    pub block_hash: String,
    pub height: i64,
    pub slot: i64,
}

#[derive(Deserialize, Debug, Clone)]
pub struct ChainTip {
    pub data: ChainTipData,
    pub last_updated: utils::LastUpdated,
}

#[derive(Deserialize, Debug, Clone)]
pub struct EraTimeStamp {
    pub epoch: i64,
    pub slot: i64,
    pub time: i64,
}

#[derive(Deserialize, Debug, Clone)]
pub struct EraParams {
    pub epoch_length: i64,
    pub safe_zone: i64,
    pub slot_length: i64,
}

#[derive(Deserialize, Debug, Clone)]
pub struct Era {
    pub end: EraTimeStamp,
    pub parameters: EraParams,
    pub start: EraTimeStamp,
}

#[derive(Deserialize, Debug, Clone)]
pub struct EraSummaries {
    pub data: Vec<Era>,
    pub last_updated: utils::LastUpdated,
}

#[derive(Deserialize, Debug, Clone)]
pub struct ProtocolParameters {
    pub data: ProtocolParametersData,
    pub last_updated: utils::LastUpdated,
}

#[derive(Deserialize, Debug, Clone)]
pub struct Bytes {
    pub bytes: u64,
}

#[derive(Deserialize, Debug, Clone)]
pub struct ExUnits {
    pub memory: u64,
    pub cpu: u64,
}

#[derive(Deserialize, Debug, Clone)]
pub struct LovelaceAmount {
    pub lovelace: u64,
}

#[derive(Deserialize, Debug, Clone)]
pub struct ProtocolVersion {
    pub major: u64,
    pub minor: u64,
}

#[derive(Deserialize, Debug, Clone)]
pub struct PlutusCostModels {
    pub plutus_v1: Vec<u64>,
    pub plutus_v2: Vec<u64>,
}

#[derive(Deserialize, Debug, Clone)]
pub struct ScriptExecutionPrices {
    pub memory: String,
    pub cpu: String,
}

#[derive(Deserialize, Debug, Clone)]
pub struct ProtocolParametersData {
    pub collateral_percentage: u64,
    pub desired_number_of_stake_pools: u64,
    pub max_block_body_size: Bytes,
    pub max_block_header_size: Bytes,
    pub max_collateral_inputs: u64,
    pub max_execution_units_per_block: ExUnits,
    pub max_execution_units_per_transaction: ExUnits,
    pub max_transaction_size: Bytes,
    pub max_value_size: Bytes,
    pub min_fee_coefficient: u64,
    pub min_fee_constant: LovelaceAmount,
    pub min_stake_pool_cost: LovelaceAmount,
    pub min_utxo_deposit_coefficient: u64,
    pub min_utxo_deposit_constant: LovelaceAmount,
    pub monetary_expansion: String,
    pub plutus_cost_models: PlutusCostModels,
    pub script_execution_prices: ScriptExecutionPrices,
    pub stake_credential_deposit: LovelaceAmount,
    pub stake_pool_deposit: LovelaceAmount,
    pub stake_pool_pledge_influence: String,
    pub stake_pool_retirement_epoch_bound: u64,
    pub treasury_expansion: String,
    pub version: ProtocolVersion,
}