use crate::nns::governance::{GovernanceError, GovernanceProposalId, NnsGovernanceNeuronId};
use serde::Deserialize;
pub(in crate::nns::neuron::report) struct GetNeuronIndexRequestWire {
pub(in crate::nns::neuron::report) exclusive_start_neuron_id: Option<NnsGovernanceNeuronId>,
pub(in crate::nns::neuron::report) page_size: Option<u32>,
}
ic_platform::candid_record!(GetNeuronIndexRequestWire {
307_110_897 => page_size: Option<u32>,
459_113_833 => exclusive_start_neuron_id: Option<NnsGovernanceNeuronId>
});
pub(in crate::nns::neuron::report) type GetNeuronIndexResultWire =
Result<NeuronIndexDataWire, GovernanceError>;
pub(in crate::nns::neuron::report) type GetNeuronInfoResultWire =
Result<NeuronInfoWire, GovernanceError>;
#[derive(Deserialize)]
pub(in crate::nns::neuron::report) struct NeuronIndexDataWire {
pub(in crate::nns::neuron::report) neurons: Vec<NeuronInfoWire>,
}
ic_platform::candid_record!(NeuronIndexDataWire {
3_923_068_064 => neurons: Vec<NeuronInfoWire>
});
#[derive(Deserialize)]
pub(in crate::nns::neuron::report) struct NeuronInfoWire {
pub(in crate::nns::neuron::report) id: Option<NnsGovernanceNeuronId>,
pub(in crate::nns::neuron::report) dissolve_delay_seconds: u64,
pub(in crate::nns::neuron::report) recent_ballots: Vec<BallotInfoWire>,
pub(in crate::nns::neuron::report) neuron_type: Option<i32>,
pub(in crate::nns::neuron::report) created_timestamp_seconds: u64,
pub(in crate::nns::neuron::report) state: i32,
pub(in crate::nns::neuron::report) stake_e8s: u64,
pub(in crate::nns::neuron::report) joined_community_fund_timestamp_seconds: Option<u64>,
pub(in crate::nns::neuron::report) retrieved_at_timestamp_seconds: u64,
pub(in crate::nns::neuron::report) visibility: Option<i32>,
pub(in crate::nns::neuron::report) known_neuron_data: Option<KnownNeuronDataWire>,
pub(in crate::nns::neuron::report) age_seconds: u64,
pub(in crate::nns::neuron::report) voting_power: u64,
pub(in crate::nns::neuron::report) voting_power_refreshed_timestamp_seconds: Option<u64>,
pub(in crate::nns::neuron::report) deciding_voting_power: Option<u64>,
pub(in crate::nns::neuron::report) potential_voting_power: Option<u64>,
pub(in crate::nns::neuron::report) eight_year_gang_bonus_base_e8s: Option<u64>,
pub(in crate::nns::neuron::report) staked_maturity_e8s_equivalent: Option<u64>,
}
ic_platform::candid_record!(NeuronInfoWire {
23_515 => id: Option<NnsGovernanceNeuronId>,
41_099_906 => staked_maturity_e8s_equivalent: Option<u64>,
303_619_573 => dissolve_delay_seconds: u64,
349_671_467 => recent_ballots: Vec<BallotInfoWire>,
437_059_007 => voting_power_refreshed_timestamp_seconds: Option<u64>,
489_181_550 => potential_voting_power: Option<u64>,
552_168_774 => neuron_type: Option<i32>,
1_186_874_375 => deciding_voting_power: Option<u64>,
1_392_680_831 => created_timestamp_seconds: u64,
2_215_343_633 => state: i32,
2_645_568_795 => stake_e8s: u64,
2_878_748_008 => joined_community_fund_timestamp_seconds: Option<u64>,
2_948_898_284 => eight_year_gang_bonus_base_e8s: Option<u64>,
3_433_024_449 => retrieved_at_timestamp_seconds: u64,
3_540_889_042 => visibility: Option<i32>,
3_746_161_594 => known_neuron_data: Option<KnownNeuronDataWire>,
3_871_395_629 => voting_power: u64,
4_290_862_015 => age_seconds: u64
});
#[derive(Deserialize)]
pub(in crate::nns::neuron::report) struct BallotInfoWire {
pub(in crate::nns::neuron::report) vote: i32,
pub(in crate::nns::neuron::report) proposal_id: Option<GovernanceProposalId>,
}
ic_platform::candid_record!(BallotInfoWire {
1_314_114_794 => vote: i32,
2_744_746_248 => proposal_id: Option<GovernanceProposalId>
});
#[derive(Deserialize)]
pub(in crate::nns::neuron::report) struct KnownNeuronDataWire {
pub(in crate::nns::neuron::report) name: String,
pub(in crate::nns::neuron::report) description: Option<String>,
pub(in crate::nns::neuron::report) links: Option<Vec<String>>,
}
ic_platform::candid_record!(KnownNeuronDataWire {
1_224_700_491 => name: String,
1_595_738_364 => description: Option<String>,
1_963_057_977 => links: Option<Vec<String>>
});
#[cfg(all(test, feature = "nns-host"))]
mod tests;