ic-query 0.101.0

Internet Computer query library for CloudEngine, NNS, SNS, ICRC, system canisters, and public network metadata
Documentation
//! Module: nns::neuron::report::wire
//!
//! Responsibility: Candid wire types for NNS Governance neuron queries.
//! Does not own: live transport, report DTOs, or text rendering.
//! Boundary: models only the fields needed by bounded neuron reports.

use crate::nns::governance::{GovernanceError, GovernanceProposalId, NnsGovernanceNeuronId};

ic_platform::candid_record! {
    ///
    /// GetNeuronIndexRequestWire
    ///
    /// Candid request for one bounded public neuron-index page.
    ///

    pub(in crate::nns::neuron::report) struct GetNeuronIndexRequestWire {
        307_110_897 => pub(in crate::nns::neuron::report) page_size: Option<u32>,
        459_113_833 => pub(in crate::nns::neuron::report) exclusive_start_neuron_id: Option<NnsGovernanceNeuronId>,
    }
}

///
/// GetNeuronIndexResultWire
///
/// Candid result returned by `get_neuron_index`.
///

pub(in crate::nns::neuron::report) type GetNeuronIndexResultWire =
    Result<NeuronIndexDataWire, GovernanceError>;

///
/// GetNeuronInfoResultWire
///
/// Candid result returned by `get_neuron_info`.
///

pub(in crate::nns::neuron::report) type GetNeuronInfoResultWire =
    Result<NeuronInfoWire, GovernanceError>;

ic_platform::candid_record! {
    ///
    /// NeuronIndexDataWire
    ///
    /// Candid bounded neuron-index payload.
    ///

    pub(in crate::nns::neuron::report) struct NeuronIndexDataWire {
        3_923_068_064 => pub(in crate::nns::neuron::report) neurons: Vec<NeuronInfoWire>,
    }
}

ic_platform::candid_record! {
    ///
    /// NeuronInfoWire
    ///
    /// Candid public limited neuron view returned by Governance.
    ///

    pub(in crate::nns::neuron::report) struct NeuronInfoWire {
        23_515 => pub(in crate::nns::neuron::report) id: Option<NnsGovernanceNeuronId>,
        41_099_906 => pub(in crate::nns::neuron::report) staked_maturity_e8s_equivalent: Option<u64>,
        303_619_573 => pub(in crate::nns::neuron::report) dissolve_delay_seconds: u64,
        349_671_467 => pub(in crate::nns::neuron::report) recent_ballots: Vec<BallotInfoWire>,
        437_059_007 => pub(in crate::nns::neuron::report) voting_power_refreshed_timestamp_seconds: Option<u64>,
        489_181_550 => pub(in crate::nns::neuron::report) potential_voting_power: Option<u64>,
        552_168_774 => pub(in crate::nns::neuron::report) neuron_type: Option<i32>,
        1_186_874_375 => pub(in crate::nns::neuron::report) deciding_voting_power: Option<u64>,
        1_392_680_831 => pub(in crate::nns::neuron::report) created_timestamp_seconds: u64,
        2_215_343_633 => pub(in crate::nns::neuron::report) state: i32,
        2_645_568_795 => pub(in crate::nns::neuron::report) stake_e8s: u64,
        2_878_748_008 => pub(in crate::nns::neuron::report) joined_community_fund_timestamp_seconds: Option<u64>,
        2_948_898_284 => pub(in crate::nns::neuron::report) eight_year_gang_bonus_base_e8s: Option<u64>,
        3_433_024_449 => pub(in crate::nns::neuron::report) retrieved_at_timestamp_seconds: u64,
        3_540_889_042 => pub(in crate::nns::neuron::report) visibility: Option<i32>,
        3_746_161_594 => pub(in crate::nns::neuron::report) known_neuron_data: Option<KnownNeuronDataWire>,
        3_871_395_629 => pub(in crate::nns::neuron::report) voting_power: u64,
        4_290_862_015 => pub(in crate::nns::neuron::report) age_seconds: u64,
    }
}

ic_platform::candid_record! {
    ///
    /// BallotInfoWire
    ///
    /// Candid recent ballot exposed by a public neuron view.
    ///

    pub(in crate::nns::neuron::report) struct BallotInfoWire {
        1_314_114_794 => pub(in crate::nns::neuron::report) vote: i32,
        2_744_746_248 => pub(in crate::nns::neuron::report) proposal_id: Option<GovernanceProposalId>,
    }
}

ic_platform::candid_record! {
    ///
    /// KnownNeuronDataWire
    ///
    /// Candid registered known-neuron metadata.
    ///

    pub(in crate::nns::neuron::report) struct KnownNeuronDataWire {
        1_224_700_491 => pub(in crate::nns::neuron::report) name: String,
        1_595_738_364 => pub(in crate::nns::neuron::report) description: Option<String>,
        1_963_057_977 => pub(in crate::nns::neuron::report) links: Option<Vec<String>>,
    }
}

#[cfg(all(test, feature = "nns-host"))]
mod tests;