ic-query 0.101.0

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

use crate::nns::governance::{GovernanceProposalId, NnsGovernanceNeuronId};
use ic_platform::candid_codec::Reserved;

ic_platform::candid_record! {
    ///
    /// NnsListProposalInfoRequest
    ///
    /// Candid request for bounded NNS governance proposal listings.
    ///

    #[derive(Clone, Debug, Eq, PartialEq)]
    pub(in crate::nns::proposals::report) struct NnsListProposalInfoRequest {
        591_667_337 => pub(in crate::nns::proposals::report) return_self_describing_action: Option<bool>,
        1_109_138_859 => pub(in crate::nns::proposals::report) include_reward_status: Vec<i32>,
        1_554_422_387 => pub(in crate::nns::proposals::report) omit_large_fields: Option<bool>,
        1_581_233_970 => pub(in crate::nns::proposals::report) before_proposal: Option<GovernanceProposalId>,
        1_963_007_803 => pub(in crate::nns::proposals::report) limit: u32,
        2_217_932_618 => pub(in crate::nns::proposals::report) exclude_topic: Vec<i32>,
        2_598_726_170 => pub(in crate::nns::proposals::report) include_all_manage_neuron_proposals: Option<bool>,
        3_931_738_025 => pub(in crate::nns::proposals::report) include_status: Vec<i32>,
    }
}

ic_platform::candid_record! {
    ///
    /// NnsListProposalInfoResponse
    ///
    /// Candid response containing bounded NNS governance proposal rows.
    ///

    #[derive(Clone, Debug, Eq, PartialEq)]
    pub(in crate::nns::proposals::report) struct NnsListProposalInfoResponse {
        3_720_987_355 => pub(in crate::nns::proposals::report) proposal_info: Vec<NnsProposalInfo>,
    }
}

ic_platform::candid_record! {
    ///
    /// NnsProposal
    ///
    /// Candid NNS proposal content fields used in reports.
    ///

    #[derive(Clone, Debug, Eq, PartialEq)]
    pub(in crate::nns::proposals::report) struct NnsProposal {
        5_843_823 => pub(in crate::nns::proposals::report) url: String,
        272_307_608 => pub(in crate::nns::proposals::report) title: Option<String>,
        373_701_558 => pub(in crate::nns::proposals::report) action: Option<NnsProposalAction>,
        2_162_756_390 => pub(in crate::nns::proposals::report) summary: String,
    }
}

ic_platform::candid_variant! {
    ///
    /// NnsProposalAction
    ///
    /// Label-only Candid NNS proposal action variant.
    ///

    #[derive(Clone, Debug, Eq, PartialEq)]
    pub(in crate::nns::proposals::report) enum NnsProposalAction {
        599_266_195 => RegisterKnownNeuron(Reserved),
        919_927_150 => FulfillSubnetRentalRequest(Reserved),
        949_108_952 => ManageNeuron(Reserved),
        1_125_549_041 => LoadCanisterSnapshot(Reserved),
        1_138_099_982 => BlessAlternativeGuestOsVersion(Reserved),
        1_219_646_067 => UpdateCanisterSettings(Reserved),
        1_489_728_456 => InstallCode(Reserved),
        1_553_385_650 => DeregisterKnownNeuron(Reserved),
        1_784_656_914 => TakeCanisterSnapshot(Reserved),
        2_040_896_388 => StopOrStartCanister(Reserved),
        2_257_795_080 => CreateServiceNervousSystem(Reserved),
        2_746_863_190 => ExecuteNnsFunction(Reserved),
        3_018_890_004 => CreateCanisterAndInstallCode(Reserved),
        3_310_616_450 => RewardNodeProvider(Reserved),
        3_557_165_726 => OpenSnsTokenSwap(Reserved),
        3_565_501_725 => SetSnsTokenSwapOpenTimeWindow(Reserved),
        3_811_664_355 => SetDefaultFollowees(Reserved),
        3_828_060_849 => RewardNodeProviders(Reserved),
        3_837_127_925 => ManageNetworkEconomics(Reserved),
        4_002_900_730 => ApproveGenesisKyc(Reserved),
        4_009_414_235 => AddOrRemoveNodeProvider(Reserved),
        4_294_048_342 => Motion(Reserved),
    }
}

impl NnsProposalAction {
    pub(in crate::nns::proposals::report) const fn as_str(&self) -> &'static str {
        match self {
            Self::RegisterKnownNeuron(_) => "register-known-neuron",
            Self::DeregisterKnownNeuron(_) => "deregister-known-neuron",
            Self::ManageNeuron(_) => "manage-neuron",
            Self::UpdateCanisterSettings(_) => "update-canister-settings",
            Self::InstallCode(_) => "install-code",
            Self::StopOrStartCanister(_) => "stop-or-start-canister",
            Self::CreateServiceNervousSystem(_) => "create-service-nervous-system",
            Self::ExecuteNnsFunction(_) => "execute-nns-function",
            Self::RewardNodeProvider(_) => "reward-node-provider",
            Self::OpenSnsTokenSwap(_) => "open-sns-token-swap",
            Self::SetSnsTokenSwapOpenTimeWindow(_) => "set-sns-token-swap-open-time-window",
            Self::SetDefaultFollowees(_) => "set-default-followees",
            Self::RewardNodeProviders(_) => "reward-node-providers",
            Self::ManageNetworkEconomics(_) => "manage-network-economics",
            Self::ApproveGenesisKyc(_) => "approve-genesis-kyc",
            Self::AddOrRemoveNodeProvider(_) => "add-or-remove-node-provider",
            Self::Motion(_) => "motion",
            Self::FulfillSubnetRentalRequest(_) => "fulfill-subnet-rental-request",
            Self::BlessAlternativeGuestOsVersion(_) => "bless-alternative-guest-os-version",
            Self::TakeCanisterSnapshot(_) => "take-canister-snapshot",
            Self::LoadCanisterSnapshot(_) => "load-canister-snapshot",
            Self::CreateCanisterAndInstallCode(_) => "create-canister-and-install-code",
        }
    }
}

ic_platform::candid_record! {
    ///
    /// NnsGovernanceBallot
    ///
    /// Candid NNS governance ballot row.
    ///

    #[derive(Clone, Debug, Eq, PartialEq)]
    pub(in crate::nns::proposals::report) struct NnsGovernanceBallot {
        1_314_114_794 => pub(in crate::nns::proposals::report) vote: i32,
        3_871_395_629 => pub(in crate::nns::proposals::report) voting_power: u64,
    }
}

ic_platform::candid_record! {
    ///
    /// NnsProposalTallyWire
    ///
    /// Candid NNS proposal vote tally.
    ///

    #[derive(Clone, Debug, Eq, PartialEq)]
    pub(in crate::nns::proposals::report) struct NnsProposalTallyWire {
        24_641 => pub(in crate::nns::proposals::report) no: u64,
        6_039_847 => pub(in crate::nns::proposals::report) yes: u64,
        338_842_564 => pub(in crate::nns::proposals::report) total: u64,
        4_174_818_006 => pub(in crate::nns::proposals::report) timestamp_seconds: u64,
    }
}

ic_platform::candid_record! {
    ///
    /// NnsProposalInfo
    ///
    /// Candid NNS governance proposal row returned by governance.
    ///

    #[derive(Clone, Debug, Eq, PartialEq)]
    pub(in crate::nns::proposals::report) struct NnsProposalInfo {
        23_515 => pub(in crate::nns::proposals::report) id: Option<GovernanceProposalId>,
        100_394_802 => pub(in crate::nns::proposals::report) status: i32,
        338_645_423 => pub(in crate::nns::proposals::report) topic: i32,
        718_522_127 => pub(in crate::nns::proposals::report) ballots: Vec<(u64, NnsGovernanceBallot)>,
        1_120_297_033 => pub(in crate::nns::proposals::report) proposal_timestamp_seconds: u64,
        1_138_543_385 => pub(in crate::nns::proposals::report) reward_event_round: u64,
        1_380_048_431 => pub(in crate::nns::proposals::report) deadline_timestamp_seconds: Option<u64>,
        1_453_869_204 => pub(in crate::nns::proposals::report) failed_timestamp_seconds: u64,
        1_659_864_270 => pub(in crate::nns::proposals::report) reject_cost_e8s: u64,
        2_084_260_468 => pub(in crate::nns::proposals::report) latest_tally: Option<NnsProposalTallyWire>,
        2_102_687_177 => pub(in crate::nns::proposals::report) total_potential_voting_power: Option<u64>,
        2_139_208_002 => pub(in crate::nns::proposals::report) reward_status: i32,
        2_756_235_859 => pub(in crate::nns::proposals::report) decided_timestamp_seconds: u64,
        3_000_310_834 => pub(in crate::nns::proposals::report) proposal: Option<NnsProposal>,
        3_000_311_732 => pub(in crate::nns::proposals::report) proposer: Option<NnsGovernanceNeuronId>,
        4_133_454_822 => pub(in crate::nns::proposals::report) executed_timestamp_seconds: u64,
    }
}