diff --git a/CHANGELOG.md b/CHANGELOG.md index 050db393b5..fd3fc3d74f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Add [Encointer](https://encointer.org) system parachain runtime, completing [RFC22](https://github.com/polkadot-fellows/RFCs/blob/main/text/ 0022-adopt-encointer-runtime.md) ([polkadot-fellows/runtimes#80](https://github.com/polkadot-fellows/runtimes/pull/80)) - Feature for enabling debug prints in the Polkadot and Kusama runtime ([polkadot-fellows/runtimes#85](https://github.com/polkadot-fellows/runtimes/pull/85)) +- Added new "Wish for Change" track ([polkadot-fellows/runtimes#184](https://github.com/polkadot-fellows/runtimes/pull/184)) ### Changed diff --git a/relay/kusama/src/governance/origins.rs b/relay/kusama/src/governance/origins.rs index c5cb035a52..0b55c0056d 100644 --- a/relay/kusama/src/governance/origins.rs +++ b/relay/kusama/src/governance/origins.rs @@ -86,6 +86,8 @@ pub mod pallet_custom_origins { Fellowship8Dan, /// Origin commanded by rank 9 of the Polkadot Fellowship and with a success of 9. Fellowship9Dan, + /// Origin for signaling that the network wishes for some change. + WishForChange, } macro_rules! decl_unit_ensures { @@ -128,6 +130,7 @@ pub mod pallet_custom_origins { ReferendumCanceller, ReferendumKiller, WhitelistedCaller, + WishForChange, FellowshipInitiates: u16 = 0, Fellows: u16 = 3, FellowshipExperts: u16 = 5, diff --git a/relay/kusama/src/governance/tracks.rs b/relay/kusama/src/governance/tracks.rs index c15a445b48..75781deff1 100644 --- a/relay/kusama/src/governance/tracks.rs +++ b/relay/kusama/src/governance/tracks.rs @@ -65,7 +65,7 @@ const APP_WHITELISTED_CALLER: Curve = const SUP_WHITELISTED_CALLER: Curve = Curve::make_reciprocal(1, 28, percent(20), percent(5), percent(50)); -const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 15] = [ +const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 16] = [ ( 0, pallet_referenda::TrackInfo { @@ -94,6 +94,20 @@ const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 15 min_support: SUP_WHITELISTED_CALLER, }, ), + ( + 2, + pallet_referenda::TrackInfo { + name: "wish_for_change", + max_deciding: 10, + decision_deposit: 20 * GRAND, + prepare_period: 2 * HOURS, + decision_period: 14 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: APP_ROOT, + min_support: SUP_ROOT, + }, + ), ( 10, pallet_referenda::TrackInfo { @@ -294,6 +308,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { } else if let Ok(custom_origin) = origins::Origin::try_from(id.clone()) { match custom_origin { origins::Origin::WhitelistedCaller => Ok(1), + origins::Origin::WishForChange => Ok(2), // General admin origins::Origin::StakingAdmin => Ok(10), origins::Origin::Treasurer => Ok(11), diff --git a/relay/polkadot/src/governance/origins.rs b/relay/polkadot/src/governance/origins.rs index 551e05e556..ac4f667d39 100644 --- a/relay/polkadot/src/governance/origins.rs +++ b/relay/polkadot/src/governance/origins.rs @@ -61,6 +61,8 @@ pub mod pallet_custom_origins { BigSpender, /// Origin able to dispatch a whitelisted call. WhitelistedCaller, + /// Origin for signaling that the network wishes for some change. + WishForChange, } macro_rules! decl_unit_ensures { @@ -103,6 +105,7 @@ pub mod pallet_custom_origins { ReferendumCanceller, ReferendumKiller, WhitelistedCaller, + WishForChange, ); macro_rules! decl_ensure { diff --git a/relay/polkadot/src/governance/tracks.rs b/relay/polkadot/src/governance/tracks.rs index 6d9f62cf22..4a167d606f 100644 --- a/relay/polkadot/src/governance/tracks.rs +++ b/relay/polkadot/src/governance/tracks.rs @@ -65,7 +65,7 @@ const APP_WHITELISTED_CALLER: Curve = const SUP_WHITELISTED_CALLER: Curve = Curve::make_reciprocal(1, 28, percent(20), percent(5), percent(50)); -const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 15] = [ +const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 16] = [ ( 0, pallet_referenda::TrackInfo { @@ -94,6 +94,20 @@ const TRACKS_DATA: [(u16, pallet_referenda::TrackInfo); 15 min_support: SUP_WHITELISTED_CALLER, }, ), + ( + 2, + pallet_referenda::TrackInfo { + name: "wish_for_change", + max_deciding: 10, + decision_deposit: 20 * GRAND, + prepare_period: 2 * HOURS, + decision_period: 28 * DAYS, + confirm_period: 24 * HOURS, + min_enactment_period: 10 * MINUTES, + min_approval: APP_ROOT, + min_support: SUP_ROOT, + }, + ), ( 10, pallet_referenda::TrackInfo { @@ -294,6 +308,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { } else if let Ok(custom_origin) = origins::Origin::try_from(id.clone()) { match custom_origin { origins::Origin::WhitelistedCaller => Ok(1), + origins::Origin::WishForChange => Ok(2), // General admin origins::Origin::StakingAdmin => Ok(10), origins::Origin::Treasurer => Ok(11),