From 3b01b0754d6a9bfab7a98c60aa2dc4b4af77c4d8 Mon Sep 17 00:00:00 2001 From: Jason Zhu Date: Tue, 31 Mar 2026 15:27:29 -0700 Subject: [PATCH 1/3] feat(nns): Reduce neuron_minimum_dissolve_delay_to_vote_seconds to 2 weeks Per the mission70 whitepaper, reduce the minimum dissolve delay to vote from 6 months to 2 weeks. - Lower the validation bound from 3 months to 2 weeks - Migrate the value to 2 weeks during post_upgrade if it is currently higher, so the change takes effect immediately upon canister upgrade --- rs/nns/governance/src/governance.rs | 44 ++++++++++++- rs/nns/governance/src/governance/tests/mod.rs | 62 ++++++++++++++++++- rs/nns/governance/src/network_economics.rs | 2 +- .../governance/src/network_economics_tests.rs | 2 +- 4 files changed, 106 insertions(+), 4 deletions(-) diff --git a/rs/nns/governance/src/governance.rs b/rs/nns/governance/src/governance.rs index 4c5e37732aee..0ba207b3b936 100644 --- a/rs/nns/governance/src/governance.rs +++ b/rs/nns/governance/src/governance.rs @@ -1304,7 +1304,7 @@ impl Governance { cmc: Arc, mut randomness: Box, ) -> Self { - let (heap_governance_proto, maybe_rng_seed) = split_governance_proto(governance_proto); + let (mut heap_governance_proto, maybe_rng_seed) = split_governance_proto(governance_proto); // Carry over the previous rng seed to avoid race conditions in handling queued ingress // messages that may require a functioning RNG. @@ -1312,6 +1312,12 @@ impl Governance { randomness.seed_rng(rng_seed); } + // Migration: reduce neuron_minimum_dissolve_delay_to_vote_seconds to 2 weeks if it is + // currently higher, per the mission70 whitepaper. + Self::maybe_reduce_neuron_minimum_dissolve_delay_to_vote_seconds( + &mut heap_governance_proto, + ); + let mut governance = Self { heap_data: heap_governance_proto, neuron_store: NeuronStore::new_restored(), @@ -4760,6 +4766,42 @@ impl Governance { .unwrap_or(VotingPowerEconomics::DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS) } + /// Reduces `neuron_minimum_dissolve_delay_to_vote_seconds` to 2 weeks if it is currently + /// higher. This is a one-time migration that takes effect on the first post_upgrade after + /// this code is deployed. + fn maybe_reduce_neuron_minimum_dissolve_delay_to_vote_seconds( + heap_data: &mut HeapGovernanceData, + ) { + let two_weeks_seconds = 14 * ONE_DAY_SECONDS; + + let Some(voting_power_economics) = heap_data + .economics + .as_mut() + .and_then(|economics| economics.voting_power_economics.as_mut()) + else { + println!( + "{}WARNING: Cannot migrate neuron_minimum_dissolve_delay_to_vote_seconds: \ + voting_power_economics not set.", + LOG_PREFIX, + ); + return; + }; + + let current = voting_power_economics + .neuron_minimum_dissolve_delay_to_vote_seconds + .unwrap_or(VotingPowerEconomics::DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS); + + if current > two_weeks_seconds { + println!( + "{}Migrating neuron_minimum_dissolve_delay_to_vote_seconds from {} to {} \ + (2 weeks).", + LOG_PREFIX, current, two_weeks_seconds, + ); + voting_power_economics.neuron_minimum_dissolve_delay_to_vote_seconds = + Some(two_weeks_seconds); + } + } + /// The proposal id of the next proposal. fn next_proposal_id(&self) -> u64 { // Correctness is based on the following observations: diff --git a/rs/nns/governance/src/governance/tests/mod.rs b/rs/nns/governance/src/governance/tests/mod.rs index 0606e7e32400..3e4144340a0d 100644 --- a/rs/nns/governance/src/governance/tests/mod.rs +++ b/rs/nns/governance/src/governance/tests/mod.rs @@ -8,7 +8,9 @@ use crate::{ test_utils::{MockEnvironment, StubCMC, StubIcpLedger}, }; use ic_base_types::PrincipalId; -use ic_nervous_system_common::{E8, assert_is_err, assert_is_ok}; +use ic_nervous_system_common::{ + E8, ONE_DAY_SECONDS, ONE_MONTH_SECONDS, assert_is_err, assert_is_ok, +}; #[cfg(feature = "test")] use ic_nervous_system_proto::pb::v1::GlobalTimeOfDay; use ic_nns_common::pb::v1::NeuronId; @@ -1799,3 +1801,61 @@ fn test_maybe_set_eight_year_gang_bonus_base() { .unwrap(); assert_eq!(bonus, 140 * E8); } + +#[test] +fn test_post_upgrade_migrates_neuron_minimum_dissolve_delay_to_vote_seconds() { + let two_weeks_seconds = 14 * ONE_DAY_SECONDS; + + // Simulate the old production state: 6 months. + let mut heap_data = HeapGovernanceData { + economics: Some(NetworkEconomics { + voting_power_economics: Some(VotingPowerEconomics { + neuron_minimum_dissolve_delay_to_vote_seconds: Some(6 * ONE_MONTH_SECONDS), + ..VotingPowerEconomics::with_default_values() + }), + ..NetworkEconomics::with_default_values() + }), + ..Default::default() + }; + + Governance::maybe_reduce_neuron_minimum_dissolve_delay_to_vote_seconds(&mut heap_data); + + let actual = heap_data + .economics + .as_ref() + .unwrap() + .voting_power_economics + .as_ref() + .unwrap() + .neuron_minimum_dissolve_delay_to_vote_seconds; + assert_eq!(actual, Some(two_weeks_seconds)); +} + +#[test] +fn test_post_upgrade_does_not_increase_neuron_minimum_dissolve_delay_to_vote_seconds() { + let one_week_seconds = 7 * ONE_DAY_SECONDS; + + // If someone already set it lower than 2 weeks, don't increase it. + let mut heap_data = HeapGovernanceData { + economics: Some(NetworkEconomics { + voting_power_economics: Some(VotingPowerEconomics { + neuron_minimum_dissolve_delay_to_vote_seconds: Some(one_week_seconds), + ..VotingPowerEconomics::with_default_values() + }), + ..NetworkEconomics::with_default_values() + }), + ..Default::default() + }; + + Governance::maybe_reduce_neuron_minimum_dissolve_delay_to_vote_seconds(&mut heap_data); + + let actual = heap_data + .economics + .as_ref() + .unwrap() + .voting_power_economics + .as_ref() + .unwrap() + .neuron_minimum_dissolve_delay_to_vote_seconds; + assert_eq!(actual, Some(one_week_seconds)); +} diff --git a/rs/nns/governance/src/network_economics.rs b/rs/nns/governance/src/network_economics.rs index 4d7a1e697c2d..3070b4ccdc7a 100644 --- a/rs/nns/governance/src/network_economics.rs +++ b/rs/nns/governance/src/network_economics.rs @@ -285,7 +285,7 @@ impl VotingPowerEconomics { /// which originate from the time when the minimum dissolve delay to vote was an internal NNS /// constant. pub const NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS_BOUNDS: RangeInclusive = - (3 * ONE_MONTH_SECONDS)..=(6 * ONE_MONTH_SECONDS); + (14 * ONE_DAY_SECONDS)..=(6 * ONE_MONTH_SECONDS); pub const DEFAULT_START_REDUCING_VOTING_POWER_AFTER_SECONDS: u64 = 6 * ONE_MONTH_SECONDS; diff --git a/rs/nns/governance/src/network_economics_tests.rs b/rs/nns/governance/src/network_economics_tests.rs index b35ceb7e6410..a5d6757eb749 100644 --- a/rs/nns/governance/src/network_economics_tests.rs +++ b/rs/nns/governance/src/network_economics_tests.rs @@ -91,7 +91,7 @@ fn test_network_economics_with_default_values_is_valid() { #[test] fn test_neuron_minimum_dissolve_delay_to_vote_seconds_bounds() { // Define constants for better readability and maintainability - const LOWER_BOUND_SECONDS: u64 = 3 * ONE_MONTH_SECONDS; + const LOWER_BOUND_SECONDS: u64 = 14 * ONE_DAY_SECONDS; const UPPER_BOUND_SECONDS: u64 = 6 * ONE_MONTH_SECONDS; const DEFAULT_SECONDS: u64 = LOWER_BOUND_SECONDS; // Assuming default is the minimum From 213e885dbc4e102c57227297ba800048d3e9e644 Mon Sep 17 00:00:00 2001 From: Jason Zhu Date: Tue, 31 Mar 2026 16:18:55 -0700 Subject: [PATCH 2/3] address PR #9689 feedback: update default, error messages, and add panic guard - Change DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS to 2 weeks - Update validation error message from "three and six months" to "two weeks and six months" - Add panic if neuron_minimum_dissolve_delay_to_vote_seconds is unexpectedly below 2 weeks - Update test expectations for new default value --- rs/nns/governance/src/governance.rs | 7 +++++++ rs/nns/governance/src/governance/tests/mod.rs | 15 +++------------ rs/nns/governance/src/network_economics.rs | 6 +++--- rs/nns/governance/src/network_economics_tests.rs | 6 +++--- .../src/proposals/self_describing_tests.rs | 2 +- rs/nns/governance/src/voting.rs | 4 ++-- 6 files changed, 19 insertions(+), 21 deletions(-) diff --git a/rs/nns/governance/src/governance.rs b/rs/nns/governance/src/governance.rs index 0ba207b3b936..4cac80f347ad 100644 --- a/rs/nns/governance/src/governance.rs +++ b/rs/nns/governance/src/governance.rs @@ -4791,6 +4791,13 @@ impl Governance { .neuron_minimum_dissolve_delay_to_vote_seconds .unwrap_or(VotingPowerEconomics::DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS); + assert!( + current >= two_weeks_seconds, + "neuron_minimum_dissolve_delay_to_vote_seconds ({}) is unexpectedly below 2 weeks ({})", + current, + two_weeks_seconds, + ); + if current > two_weeks_seconds { println!( "{}Migrating neuron_minimum_dissolve_delay_to_vote_seconds from {} to {} \ diff --git a/rs/nns/governance/src/governance/tests/mod.rs b/rs/nns/governance/src/governance/tests/mod.rs index 3e4144340a0d..064ed60865fb 100644 --- a/rs/nns/governance/src/governance/tests/mod.rs +++ b/rs/nns/governance/src/governance/tests/mod.rs @@ -1832,10 +1832,10 @@ fn test_post_upgrade_migrates_neuron_minimum_dissolve_delay_to_vote_seconds() { } #[test] -fn test_post_upgrade_does_not_increase_neuron_minimum_dissolve_delay_to_vote_seconds() { +#[should_panic(expected = "unexpectedly below 2 weeks")] +fn test_post_upgrade_panics_if_neuron_minimum_dissolve_delay_to_vote_seconds_below_two_weeks() { let one_week_seconds = 7 * ONE_DAY_SECONDS; - // If someone already set it lower than 2 weeks, don't increase it. let mut heap_data = HeapGovernanceData { economics: Some(NetworkEconomics { voting_power_economics: Some(VotingPowerEconomics { @@ -1847,15 +1847,6 @@ fn test_post_upgrade_does_not_increase_neuron_minimum_dissolve_delay_to_vote_sec ..Default::default() }; + // Should panic because the value is below 2 weeks. Governance::maybe_reduce_neuron_minimum_dissolve_delay_to_vote_seconds(&mut heap_data); - - let actual = heap_data - .economics - .as_ref() - .unwrap() - .voting_power_economics - .as_ref() - .unwrap() - .neuron_minimum_dissolve_delay_to_vote_seconds; - assert_eq!(actual, Some(one_week_seconds)); } diff --git a/rs/nns/governance/src/network_economics.rs b/rs/nns/governance/src/network_economics.rs index 3070b4ccdc7a..4d95cf82b8cb 100644 --- a/rs/nns/governance/src/network_economics.rs +++ b/rs/nns/governance/src/network_economics.rs @@ -274,7 +274,7 @@ impl VotingPowerEconomics { /// When a proposal is created, neurons with dissolve delay (in seconds) less than /// `VotingPowerEconomics.min_dissolve_delay_seconds` receive no ballot (to be filled out) /// for that proposal. Thus, such neurons cannot vote on the proposal. - pub const DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS: u64 = 6 * ONE_MONTH_SECONDS; + pub const DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS: u64 = 14 * ONE_DAY_SECONDS; /// A proposal to set `VotingPowerEconomics.min_dissolve_delay_seconds` must specify a value /// for this field that falls within this range. Changing the lower bound of this parameter @@ -369,8 +369,8 @@ impl VotingPowerEconomics { .contains(&delay) { let defect = format!( - "neuron_minimum_dissolve_delay_to_vote_seconds ({:?}) must be between three \ - and six months.", + "neuron_minimum_dissolve_delay_to_vote_seconds ({:?}) must be between two \ + weeks and six months.", self.neuron_minimum_dissolve_delay_to_vote_seconds ); defects.push(defect); diff --git a/rs/nns/governance/src/network_economics_tests.rs b/rs/nns/governance/src/network_economics_tests.rs index a5d6757eb749..2cff6ee97240 100644 --- a/rs/nns/governance/src/network_economics_tests.rs +++ b/rs/nns/governance/src/network_economics_tests.rs @@ -93,7 +93,7 @@ fn test_neuron_minimum_dissolve_delay_to_vote_seconds_bounds() { // Define constants for better readability and maintainability const LOWER_BOUND_SECONDS: u64 = 14 * ONE_DAY_SECONDS; const UPPER_BOUND_SECONDS: u64 = 6 * ONE_MONTH_SECONDS; - const DEFAULT_SECONDS: u64 = LOWER_BOUND_SECONDS; // Assuming default is the minimum + const DEFAULT_SECONDS: u64 = LOWER_BOUND_SECONDS; // Test cases: (delay in seconds, expected result) let test_cases = [ @@ -106,14 +106,14 @@ fn test_neuron_minimum_dissolve_delay_to_vote_seconds_bounds() { ( Some(LOWER_BOUND_SECONDS - 1), Err(vec![format!( - "neuron_minimum_dissolve_delay_to_vote_seconds (Some({})) must be between three and six months.", + "neuron_minimum_dissolve_delay_to_vote_seconds (Some({})) must be between two weeks and six months.", LOWER_BOUND_SECONDS - 1 )]), ), ( Some(UPPER_BOUND_SECONDS + 1), Err(vec![format!( - "neuron_minimum_dissolve_delay_to_vote_seconds (Some({})) must be between three and six months.", + "neuron_minimum_dissolve_delay_to_vote_seconds (Some({})) must be between two weeks and six months.", UPPER_BOUND_SECONDS + 1 )]), ), diff --git a/rs/nns/governance/src/proposals/self_describing_tests.rs b/rs/nns/governance/src/proposals/self_describing_tests.rs index 7326ad25ee81..21fa160f0a4e 100644 --- a/rs/nns/governance/src/proposals/self_describing_tests.rs +++ b/rs/nns/governance/src/proposals/self_describing_tests.rs @@ -129,7 +129,7 @@ fn test_network_economics_to_self_describing_all_fields() { "clear_following_after_seconds".to_string() => SelfDescribingValue::from(2_629_800_u64), "neuron_minimum_dissolve_delay_to_vote_seconds".to_string() => - SelfDescribingValue::from(15_778_800_u64), + SelfDescribingValue::from(1_209_600_u64), }), }), ); diff --git a/rs/nns/governance/src/voting.rs b/rs/nns/governance/src/voting.rs index 5e922aa33138..11902f2036d1 100644 --- a/rs/nns/governance/src/voting.rs +++ b/rs/nns/governance/src/voting.rs @@ -869,9 +869,9 @@ mod test { ); let expected_tally = Tally { timestamp_seconds: 234, - yes: 530, + yes: 500, no: 0, - total: 636, + total: 600, }; assert_eq!( governance From 52aabd4005b2d95e63dedec1b65155999a54c518 Mon Sep 17 00:00:00 2001 From: Jason Zhu Date: Fri, 3 Apr 2026 15:23:30 -0700 Subject: [PATCH 3/3] gate minimum dissolve delay default behind mission70 feature flag Revert DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS to 6 months and gate the 2-week value behind is_mission_70_voting_rewards_enabled(). This avoids breaking tests that depend on the constant for neuron setup while still applying the new default when the flag is enabled. - Gate neuron_minimum_dissolve_delay_to_vote_seconds() fallback - Gate maybe_reduce_neuron_minimum_dissolve_delay_to_vote_seconds migration - Gate voting_power.rs min dissolve delay fallback - Migration tests explicitly enable the flag --- rs/nns/governance/src/governance.rs | 15 ++++++++++++--- rs/nns/governance/src/governance/tests/mod.rs | 2 ++ rs/nns/governance/src/network_economics.rs | 2 +- rs/nns/governance/src/network_economics_tests.rs | 2 +- .../governance/src/neuron_store/voting_power.rs | 8 +++++++- .../src/proposals/self_describing_tests.rs | 2 +- rs/nns/governance/src/voting.rs | 4 ++-- 7 files changed, 26 insertions(+), 9 deletions(-) diff --git a/rs/nns/governance/src/governance.rs b/rs/nns/governance/src/governance.rs index 4cac80f347ad..6b8895a9de63 100644 --- a/rs/nns/governance/src/governance.rs +++ b/rs/nns/governance/src/governance.rs @@ -13,8 +13,8 @@ use crate::{ HeapGovernanceData, XdrConversionRate, initialize_governance, reassemble_governance_proto, split_governance_proto, }, - is_comprehensive_neuron_list_enabled, is_neuron_follow_restrictions_enabled, - is_self_describing_proposal_actions_enabled, + is_comprehensive_neuron_list_enabled, is_mission_70_voting_rewards_enabled, + is_neuron_follow_restrictions_enabled, is_self_describing_proposal_actions_enabled, neuron::{DissolveStateAndAge, Neuron, NeuronBuilder, Visibility}, neuron_data_validation::{NeuronDataValidationSummary, NeuronDataValidator}, neuron_store::{ @@ -4761,9 +4761,14 @@ impl Governance { } pub fn neuron_minimum_dissolve_delay_to_vote_seconds(&self) -> u64 { + let default = if is_mission_70_voting_rewards_enabled() { + 14 * ONE_DAY_SECONDS + } else { + VotingPowerEconomics::DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS + }; self.voting_power_economics() .neuron_minimum_dissolve_delay_to_vote_seconds - .unwrap_or(VotingPowerEconomics::DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS) + .unwrap_or(default) } /// Reduces `neuron_minimum_dissolve_delay_to_vote_seconds` to 2 weeks if it is currently @@ -4772,6 +4777,10 @@ impl Governance { fn maybe_reduce_neuron_minimum_dissolve_delay_to_vote_seconds( heap_data: &mut HeapGovernanceData, ) { + if !is_mission_70_voting_rewards_enabled() { + return; + } + let two_weeks_seconds = 14 * ONE_DAY_SECONDS; let Some(voting_power_economics) = heap_data diff --git a/rs/nns/governance/src/governance/tests/mod.rs b/rs/nns/governance/src/governance/tests/mod.rs index 064ed60865fb..eed58a2e464b 100644 --- a/rs/nns/governance/src/governance/tests/mod.rs +++ b/rs/nns/governance/src/governance/tests/mod.rs @@ -1804,6 +1804,7 @@ fn test_maybe_set_eight_year_gang_bonus_base() { #[test] fn test_post_upgrade_migrates_neuron_minimum_dissolve_delay_to_vote_seconds() { + let _mission70 = crate::temporarily_enable_mission_70_voting_rewards(); let two_weeks_seconds = 14 * ONE_DAY_SECONDS; // Simulate the old production state: 6 months. @@ -1834,6 +1835,7 @@ fn test_post_upgrade_migrates_neuron_minimum_dissolve_delay_to_vote_seconds() { #[test] #[should_panic(expected = "unexpectedly below 2 weeks")] fn test_post_upgrade_panics_if_neuron_minimum_dissolve_delay_to_vote_seconds_below_two_weeks() { + let _mission70 = crate::temporarily_enable_mission_70_voting_rewards(); let one_week_seconds = 7 * ONE_DAY_SECONDS; let mut heap_data = HeapGovernanceData { diff --git a/rs/nns/governance/src/network_economics.rs b/rs/nns/governance/src/network_economics.rs index 4d95cf82b8cb..eafe1a9aaf52 100644 --- a/rs/nns/governance/src/network_economics.rs +++ b/rs/nns/governance/src/network_economics.rs @@ -274,7 +274,7 @@ impl VotingPowerEconomics { /// When a proposal is created, neurons with dissolve delay (in seconds) less than /// `VotingPowerEconomics.min_dissolve_delay_seconds` receive no ballot (to be filled out) /// for that proposal. Thus, such neurons cannot vote on the proposal. - pub const DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS: u64 = 14 * ONE_DAY_SECONDS; + pub const DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS: u64 = 6 * ONE_MONTH_SECONDS; /// A proposal to set `VotingPowerEconomics.min_dissolve_delay_seconds` must specify a value /// for this field that falls within this range. Changing the lower bound of this parameter diff --git a/rs/nns/governance/src/network_economics_tests.rs b/rs/nns/governance/src/network_economics_tests.rs index 2cff6ee97240..802d0e2f1678 100644 --- a/rs/nns/governance/src/network_economics_tests.rs +++ b/rs/nns/governance/src/network_economics_tests.rs @@ -93,7 +93,7 @@ fn test_neuron_minimum_dissolve_delay_to_vote_seconds_bounds() { // Define constants for better readability and maintainability const LOWER_BOUND_SECONDS: u64 = 14 * ONE_DAY_SECONDS; const UPPER_BOUND_SECONDS: u64 = 6 * ONE_MONTH_SECONDS; - const DEFAULT_SECONDS: u64 = LOWER_BOUND_SECONDS; + const DEFAULT_SECONDS: u64 = UPPER_BOUND_SECONDS; // Test cases: (delay in seconds, expected result) let test_cases = [ diff --git a/rs/nns/governance/src/neuron_store/voting_power.rs b/rs/nns/governance/src/neuron_store/voting_power.rs index b2dcc8900a28..e0d66fe064bc 100644 --- a/rs/nns/governance/src/neuron_store/voting_power.rs +++ b/rs/nns/governance/src/neuron_store/voting_power.rs @@ -3,6 +3,7 @@ use ic_nns_governance_api::Vote; use super::{NeuronStore, NeuronStoreError}; use crate::{ + is_mission_70_voting_rewards_enabled, neuron::Neuron, pb::v1::{Ballot, NeuronIdToVotingPowerMap, VotingPowerEconomics, VotingPowerTotal}, storage::neurons::NeuronSections, @@ -131,9 +132,14 @@ impl NeuronStore { let mut total_deciding_voting_power: u128 = 0; let mut total_potential_voting_power: u128 = 0; + let default_min_dissolve_delay = if is_mission_70_voting_rewards_enabled() { + 14 * ic_nervous_system_common::ONE_DAY_SECONDS + } else { + VotingPowerEconomics::DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS + }; let min_dissolve_delay_seconds = voting_power_economics .neuron_minimum_dissolve_delay_to_vote_seconds - .unwrap_or(VotingPowerEconomics::DEFAULT_NEURON_MINIMUM_DISSOLVE_DELAY_TO_VOTE_SECONDS); + .unwrap_or(default_min_dissolve_delay); let mut process_neuron = |neuron: &Neuron| { if neuron.is_inactive(now_seconds) diff --git a/rs/nns/governance/src/proposals/self_describing_tests.rs b/rs/nns/governance/src/proposals/self_describing_tests.rs index 21fa160f0a4e..7326ad25ee81 100644 --- a/rs/nns/governance/src/proposals/self_describing_tests.rs +++ b/rs/nns/governance/src/proposals/self_describing_tests.rs @@ -129,7 +129,7 @@ fn test_network_economics_to_self_describing_all_fields() { "clear_following_after_seconds".to_string() => SelfDescribingValue::from(2_629_800_u64), "neuron_minimum_dissolve_delay_to_vote_seconds".to_string() => - SelfDescribingValue::from(1_209_600_u64), + SelfDescribingValue::from(15_778_800_u64), }), }), ); diff --git a/rs/nns/governance/src/voting.rs b/rs/nns/governance/src/voting.rs index 11902f2036d1..5e922aa33138 100644 --- a/rs/nns/governance/src/voting.rs +++ b/rs/nns/governance/src/voting.rs @@ -869,9 +869,9 @@ mod test { ); let expected_tally = Tally { timestamp_seconds: 234, - yes: 500, + yes: 530, no: 0, - total: 600, + total: 636, }; assert_eq!( governance