use crate::nns::governance::{GovernanceProposalId, NnsGovernanceNeuronId};
use ic_platform::candid_codec::Reserved;
use serde::Deserialize;
#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub(in crate::nns::proposals::report) struct NnsListProposalInfoRequest {
pub(in crate::nns::proposals::report) include_reward_status: Vec<i32>,
pub(in crate::nns::proposals::report) omit_large_fields: Option<bool>,
pub(in crate::nns::proposals::report) before_proposal: Option<GovernanceProposalId>,
pub(in crate::nns::proposals::report) limit: u32,
pub(in crate::nns::proposals::report) exclude_topic: Vec<i32>,
pub(in crate::nns::proposals::report) include_all_manage_neuron_proposals: Option<bool>,
pub(in crate::nns::proposals::report) include_status: Vec<i32>,
pub(in crate::nns::proposals::report) return_self_describing_action: Option<bool>,
}
ic_platform::candid_record!(NnsListProposalInfoRequest {
591_667_337 => return_self_describing_action: Option<bool>,
1_109_138_859 => include_reward_status: Vec<i32>,
1_554_422_387 => omit_large_fields: Option<bool>,
1_581_233_970 => before_proposal: Option<GovernanceProposalId>,
1_963_007_803 => limit: u32,
2_217_932_618 => exclude_topic: Vec<i32>,
2_598_726_170 => include_all_manage_neuron_proposals: Option<bool>,
3_931_738_025 => include_status: Vec<i32>
});
#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub(in crate::nns::proposals::report) struct NnsListProposalInfoResponse {
pub(in crate::nns::proposals::report) proposal_info: Vec<NnsProposalInfo>,
}
ic_platform::candid_record!(NnsListProposalInfoResponse {
3_720_987_355 => proposal_info: Vec<NnsProposalInfo>
});
#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub(in crate::nns::proposals::report) struct NnsProposal {
pub(in crate::nns::proposals::report) url: String,
pub(in crate::nns::proposals::report) title: Option<String>,
pub(in crate::nns::proposals::report) action: Option<NnsProposalAction>,
pub(in crate::nns::proposals::report) summary: String,
}
ic_platform::candid_record!(NnsProposal {
5_843_823 => url: String,
272_307_608 => title: Option<String>,
373_701_558 => action: Option<NnsProposalAction>,
2_162_756_390 => summary: String
});
#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub(in crate::nns::proposals::report) enum NnsProposalAction {
RegisterKnownNeuron(Reserved),
DeregisterKnownNeuron(Reserved),
ManageNeuron(Reserved),
UpdateCanisterSettings(Reserved),
InstallCode(Reserved),
StopOrStartCanister(Reserved),
CreateServiceNervousSystem(Reserved),
ExecuteNnsFunction(Reserved),
RewardNodeProvider(Reserved),
OpenSnsTokenSwap(Reserved),
SetSnsTokenSwapOpenTimeWindow(Reserved),
SetDefaultFollowees(Reserved),
RewardNodeProviders(Reserved),
ManageNetworkEconomics(Reserved),
ApproveGenesisKyc(Reserved),
AddOrRemoveNodeProvider(Reserved),
Motion(Reserved),
FulfillSubnetRentalRequest(Reserved),
BlessAlternativeGuestOsVersion(Reserved),
TakeCanisterSnapshot(Reserved),
LoadCanisterSnapshot(Reserved),
CreateCanisterAndInstallCode(Reserved),
}
ic_platform::candid_variant!(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",
}
}
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub(in crate::nns::proposals::report) struct NnsGovernanceBallot {
pub(in crate::nns::proposals::report) vote: i32,
pub(in crate::nns::proposals::report) voting_power: u64,
}
ic_platform::candid_record!(NnsGovernanceBallot {
1_314_114_794 => vote: i32,
3_871_395_629 => voting_power: u64
});
#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub(in crate::nns::proposals::report) struct NnsProposalTallyWire {
pub(in crate::nns::proposals::report) no: u64,
pub(in crate::nns::proposals::report) yes: u64,
pub(in crate::nns::proposals::report) total: u64,
pub(in crate::nns::proposals::report) timestamp_seconds: u64,
}
ic_platform::candid_record!(NnsProposalTallyWire {
24_641 => no: u64,
6_039_847 => yes: u64,
338_842_564 => total: u64,
4_174_818_006 => timestamp_seconds: u64
});
#[derive(Clone, Debug, Deserialize, Eq, PartialEq)]
pub(in crate::nns::proposals::report) struct NnsProposalInfo {
pub(in crate::nns::proposals::report) id: Option<GovernanceProposalId>,
pub(in crate::nns::proposals::report) status: i32,
pub(in crate::nns::proposals::report) topic: i32,
pub(in crate::nns::proposals::report) ballots: Vec<(u64, NnsGovernanceBallot)>,
pub(in crate::nns::proposals::report) proposal_timestamp_seconds: u64,
pub(in crate::nns::proposals::report) reward_event_round: u64,
pub(in crate::nns::proposals::report) deadline_timestamp_seconds: Option<u64>,
pub(in crate::nns::proposals::report) failed_timestamp_seconds: u64,
pub(in crate::nns::proposals::report) reject_cost_e8s: u64,
pub(in crate::nns::proposals::report) latest_tally: Option<NnsProposalTallyWire>,
pub(in crate::nns::proposals::report) reward_status: i32,
pub(in crate::nns::proposals::report) decided_timestamp_seconds: u64,
pub(in crate::nns::proposals::report) proposal: Option<NnsProposal>,
pub(in crate::nns::proposals::report) proposer: Option<NnsGovernanceNeuronId>,
pub(in crate::nns::proposals::report) executed_timestamp_seconds: u64,
pub(in crate::nns::proposals::report) total_potential_voting_power: Option<u64>,
}
ic_platform::candid_record!(NnsProposalInfo {
23_515 => id: Option<GovernanceProposalId>,
100_394_802 => status: i32,
338_645_423 => topic: i32,
718_522_127 => ballots: Vec<(u64, NnsGovernanceBallot)>,
1_120_297_033 => proposal_timestamp_seconds: u64,
1_138_543_385 => reward_event_round: u64,
1_380_048_431 => deadline_timestamp_seconds: Option<u64>,
1_453_869_204 => failed_timestamp_seconds: u64,
1_659_864_270 => reject_cost_e8s: u64,
2_084_260_468 => latest_tally: Option<NnsProposalTallyWire>,
2_102_687_177 => total_potential_voting_power: Option<u64>,
2_139_208_002 => reward_status: i32,
2_756_235_859 => decided_timestamp_seconds: u64,
3_000_310_834 => proposal: Option<NnsProposal>,
3_000_311_732 => proposer: Option<NnsGovernanceNeuronId>,
4_133_454_822 => executed_timestamp_seconds: u64
});