From 6fe16416470ddb99c5ce102e83270a5b7c17c33f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Andr=C3=A9s=20Dorado=20Su=C3=A1rez?= Date: Sat, 22 Feb 2025 13:23:32 -0500 Subject: [PATCH] change(pallet-referenda): create const function that helps construct `StringLike` to reduce changes in tracks definitions --- .../src/ambassador/tracks.rs | 22 ++++----- .../src/fellowship/tracks.rs | 46 +++++++++---------- .../rococo/src/governance/fellowship.rs | 22 ++++----- .../runtime/rococo/src/governance/tracks.rs | 33 +++++++------ .../runtime/westend/src/governance/tracks.rs | 33 +++++++------ substrate/bin/node/runtime/src/lib.rs | 5 +- substrate/frame/referenda/src/lib.rs | 9 ++-- substrate/frame/referenda/src/mock.rs | 8 ++-- substrate/frame/referenda/src/types.rs | 12 +++-- 9 files changed, 98 insertions(+), 92 deletions(-) diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs index c1f37795820f..7b91b0ed83a4 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/ambassador/tracks.rs @@ -17,7 +17,8 @@ use super::Origin; use crate::{Balance, BlockNumber, RuntimeOrigin, DAYS, DOLLARS, HOURS}; -use sp_runtime::{str_array as s, Perbill}; +use sp_runtime::Perbill; +use pallet_referenda::string_like_track_name as s; use sp_std::borrow::Cow; /// Referendum `TrackId` type. @@ -51,12 +52,11 @@ impl pallet_referenda::TracksInfo for TracksInfo { fn tracks( ) -> impl Iterator>> { - use pallet_referenda::StringLike; static DATA: [pallet_referenda::Track; 9] = [ pallet_referenda::Track { id: constants::AMBASSADOR_TIER_1, info: pallet_referenda::TrackInfo { - name: StringLike(s("ambassador tier 1")), + name: s("ambassador tier 1"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, @@ -78,7 +78,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: constants::AMBASSADOR_TIER_2, info: pallet_referenda::TrackInfo { - name: StringLike(s("ambassador tier 2")), + name: s("ambassador tier 2"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, @@ -100,7 +100,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: constants::SENIOR_AMBASSADOR_TIER_3, info: pallet_referenda::TrackInfo { - name: StringLike(s("senior ambassador tier 3")), + name: s("senior ambassador tier 3"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, @@ -122,7 +122,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: constants::SENIOR_AMBASSADOR_TIER_4, info: pallet_referenda::TrackInfo { - name: StringLike(s("senior ambassador tier 4")), + name: s("senior ambassador tier 4"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, @@ -144,7 +144,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: constants::HEAD_AMBASSADOR_TIER_5, info: pallet_referenda::TrackInfo { - name: StringLike(s("head ambassador tier 5")), + name: s("head ambassador tier 5"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, @@ -166,7 +166,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: constants::HEAD_AMBASSADOR_TIER_6, info: pallet_referenda::TrackInfo { - name: StringLike(s("head ambassador tier 6")), + name: s("head ambassador tier 6"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, @@ -188,7 +188,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: constants::HEAD_AMBASSADOR_TIER_7, info: pallet_referenda::TrackInfo { - name: StringLike(s("head ambassador tier 7")), + name: s("head ambassador tier 7"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, @@ -210,7 +210,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: constants::MASTER_AMBASSADOR_TIER_8, info: pallet_referenda::TrackInfo { - name: StringLike(s("master ambassador tier 8")), + name: s("master ambassador tier 8"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, @@ -232,7 +232,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: constants::MASTER_AMBASSADOR_TIER_9, info: pallet_referenda::TrackInfo { - name: StringLike(s("master ambassador tier 9")), + name: s("master ambassador tier 9"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 24 * HOURS, diff --git a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs index 49a38a5416a7..9fd63ce0dffb 100644 --- a/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs +++ b/cumulus/parachains/runtimes/collectives/collectives-westend/src/fellowship/tracks.rs @@ -18,7 +18,8 @@ use crate::{Balance, BlockNumber, RuntimeOrigin, DAYS, DOLLARS, HOURS, MINUTES}; use pallet_ranked_collective::Rank; -use sp_runtime::{str_array as s, traits::Convert, Perbill}; +use sp_runtime::{traits::Convert, Perbill}; +use pallet_referenda::string_like_track_name as s; use sp_std::borrow::Cow; /// Referendum `TrackId` type. @@ -120,12 +121,11 @@ impl pallet_referenda::TracksInfo for TracksInfo { ) -> impl Iterator>> { use constants as tracks; - use pallet_referenda::StringLike; static DATA: [pallet_referenda::Track; 21] = [ pallet_referenda::Track { id: tracks::MEMBERS, info: pallet_referenda::TrackInfo { - name: StringLike(s("members")), + name: s("members"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, @@ -147,7 +147,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::PROFICIENTS, info: pallet_referenda::TrackInfo { - name: StringLike(s("proficient members")), + name: s("proficient members"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, @@ -169,7 +169,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::FELLOWS, info: pallet_referenda::TrackInfo { - name: StringLike(s("fellows")), + name: s("fellows"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, @@ -191,7 +191,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::ARCHITECTS, info: pallet_referenda::TrackInfo { - name: StringLike(s("architects")), + name: s("architects"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, @@ -213,7 +213,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::ARCHITECTS_ADEPT, info: pallet_referenda::TrackInfo { - name: StringLike(s("architects adept")), + name: s("architects adept"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, @@ -235,7 +235,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::GRAND_ARCHITECTS, info: pallet_referenda::TrackInfo { - name: StringLike(s("grand architects")), + name: s("grand architects"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, @@ -257,7 +257,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::MASTERS, info: pallet_referenda::TrackInfo { - name: StringLike(s("masters")), + name: s("masters"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, @@ -279,7 +279,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::MASTERS_CONSTANT, info: pallet_referenda::TrackInfo { - name: StringLike(s("masters constant")), + name: s("masters constant"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, @@ -301,7 +301,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::GRAND_MASTERS, info: pallet_referenda::TrackInfo { - name: StringLike(s("grand masters")), + name: s("grand masters"), max_deciding: 10, decision_deposit: 5 * DOLLARS, prepare_period: 30 * MINUTES, @@ -323,7 +323,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::RETAIN_AT_1DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("retain at I Dan")), + name: s("retain at I Dan"), max_deciding: RETAIN_MAX_DECIDING, decision_deposit: RETAIN_DECISION_DEPOSIT, prepare_period: RETAIN_PREPARE_PERIOD, @@ -337,7 +337,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::RETAIN_AT_2DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("retain at II Dan")), + name: s("retain at II Dan"), max_deciding: RETAIN_MAX_DECIDING, decision_deposit: RETAIN_DECISION_DEPOSIT, prepare_period: RETAIN_PREPARE_PERIOD, @@ -351,7 +351,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::RETAIN_AT_3DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("retain at III Dan")), + name: s("retain at III Dan"), max_deciding: RETAIN_MAX_DECIDING, decision_deposit: RETAIN_DECISION_DEPOSIT, prepare_period: RETAIN_PREPARE_PERIOD, @@ -365,7 +365,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::RETAIN_AT_4DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("retain at IV Dan")), + name: s("retain at IV Dan"), max_deciding: RETAIN_MAX_DECIDING, decision_deposit: RETAIN_DECISION_DEPOSIT, prepare_period: RETAIN_PREPARE_PERIOD, @@ -379,7 +379,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::RETAIN_AT_5DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("retain at V Dan")), + name: s("retain at V Dan"), max_deciding: RETAIN_MAX_DECIDING, decision_deposit: RETAIN_DECISION_DEPOSIT, prepare_period: RETAIN_PREPARE_PERIOD, @@ -393,7 +393,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::RETAIN_AT_6DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("retain at VI Dan")), + name: s("retain at VI Dan"), max_deciding: RETAIN_MAX_DECIDING, decision_deposit: RETAIN_DECISION_DEPOSIT, prepare_period: RETAIN_PREPARE_PERIOD, @@ -407,7 +407,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::PROMOTE_TO_1DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("promote to I Dan")), + name: s("promote to I Dan"), max_deciding: PROMOTE_MAX_DECIDING, decision_deposit: PROMOTE_DECISION_DEPOSIT, prepare_period: PROMOTE_PREPARE_PERIOD, @@ -421,7 +421,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::PROMOTE_TO_2DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("promote to II Dan")), + name: s("promote to II Dan"), max_deciding: PROMOTE_MAX_DECIDING, decision_deposit: PROMOTE_DECISION_DEPOSIT, prepare_period: PROMOTE_PREPARE_PERIOD, @@ -435,7 +435,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::PROMOTE_TO_3DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("promote to III Dan")), + name: s("promote to III Dan"), max_deciding: PROMOTE_MAX_DECIDING, decision_deposit: PROMOTE_DECISION_DEPOSIT, prepare_period: PROMOTE_PREPARE_PERIOD, @@ -449,7 +449,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::PROMOTE_TO_4DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("promote to IV Dan")), + name: s("promote to IV Dan"), max_deciding: PROMOTE_MAX_DECIDING, decision_deposit: PROMOTE_DECISION_DEPOSIT, prepare_period: PROMOTE_PREPARE_PERIOD, @@ -463,7 +463,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::PROMOTE_TO_5DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("promote to V Dan")), + name: s("promote to V Dan"), max_deciding: PROMOTE_MAX_DECIDING, decision_deposit: PROMOTE_DECISION_DEPOSIT, prepare_period: PROMOTE_PREPARE_PERIOD, @@ -477,7 +477,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { pallet_referenda::Track { id: tracks::PROMOTE_TO_6DAN, info: pallet_referenda::TrackInfo { - name: StringLike(s("promote to VI Dan")), + name: s("promote to VI Dan"), max_deciding: PROMOTE_MAX_DECIDING, decision_deposit: PROMOTE_DECISION_DEPOSIT, prepare_period: PROMOTE_PREPARE_PERIOD, diff --git a/polkadot/runtime/rococo/src/governance/fellowship.rs b/polkadot/runtime/rococo/src/governance/fellowship.rs index 7fc11dad2ddb..aaab4fe38a47 100644 --- a/polkadot/runtime/rococo/src/governance/fellowship.rs +++ b/polkadot/runtime/rococo/src/governance/fellowship.rs @@ -18,7 +18,7 @@ use alloc::borrow::Cow; use frame_support::traits::{MapSuccess, TryMapSuccess}; -use pallet_referenda::{StringLike, Track, TrackInfo}; +use pallet_referenda::{string_like_track_name as s, Track, TrackInfo}; use sp_runtime::{ str_array as s, traits::{CheckedReduceBy, ConstU16, Replace, ReplaceWithDefault}, @@ -43,7 +43,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 0u16, info: TrackInfo { - name: StringLike(s("candidates")), + name: s("candidates"), max_deciding: 10, decision_deposit: 100 * 3 * CENTS, prepare_period: 30 * MINUTES, @@ -65,7 +65,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 1u16, info: TrackInfo { - name: StringLike(s("members")), + name: s("members"), max_deciding: 10, decision_deposit: 10 * 3 * CENTS, prepare_period: 30 * MINUTES, @@ -87,7 +87,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 2u16, info: TrackInfo { - name: StringLike(s("proficients")), + name: s("proficients"), max_deciding: 10, decision_deposit: 10 * 3 * CENTS, prepare_period: 30 * MINUTES, @@ -109,7 +109,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 3u16, info: TrackInfo { - name: StringLike(s("fellows")), + name: s("fellows"), max_deciding: 10, decision_deposit: 10 * 3 * CENTS, prepare_period: 30 * MINUTES, @@ -131,7 +131,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 4u16, info: TrackInfo { - name: StringLike(s("senior fellows")), + name: s("senior fellows"), max_deciding: 10, decision_deposit: 10 * 3 * CENTS, prepare_period: 30 * MINUTES, @@ -153,7 +153,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 5u16, info: TrackInfo { - name: StringLike(s("experts")), + name: s("experts"), max_deciding: 10, decision_deposit: 1 * 3 * CENTS, prepare_period: 30 * MINUTES, @@ -175,7 +175,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 6u16, info: TrackInfo { - name: StringLike(s("senior experts")), + name: s("senior experts"), max_deciding: 10, decision_deposit: 1 * 3 * CENTS, prepare_period: 30 * MINUTES, @@ -197,7 +197,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 7u16, info: TrackInfo { - name: StringLike(s("masters")), + name: s("masters"), max_deciding: 10, decision_deposit: 1 * 3 * CENTS, prepare_period: 30 * MINUTES, @@ -219,7 +219,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 8u16, info: TrackInfo { - name: StringLike(s("senior masters")), + name: s("senior masters"), max_deciding: 10, decision_deposit: 1 * 3 * CENTS, prepare_period: 30 * MINUTES, @@ -241,7 +241,7 @@ impl pallet_referenda::TracksInfo for TracksInfo { Track { id: 9u16, info: TrackInfo { - name: StringLike(s("grand masters")), + name: s("grand masters"), max_deciding: 10, decision_deposit: 1 * 3 * CENTS, prepare_period: 30 * MINUTES, diff --git a/polkadot/runtime/rococo/src/governance/tracks.rs b/polkadot/runtime/rococo/src/governance/tracks.rs index fb2f64f675dc..3686c90eabbf 100644 --- a/polkadot/runtime/rococo/src/governance/tracks.rs +++ b/polkadot/runtime/rococo/src/governance/tracks.rs @@ -19,7 +19,7 @@ use super::*; use alloc::borrow::Cow; -use sp_runtime::str_array as s; +use pallet_referenda::string_like_track_name as s; const fn percent(x: i32) -> sp_arithmetic::FixedI64 { sp_arithmetic::FixedI64::from_rational(x as u128, 100) @@ -68,12 +68,11 @@ const APP_WHITELISTED_CALLER: Curve = const SUP_WHITELISTED_CALLER: Curve = Curve::make_reciprocal(1, 28, percent(20), percent(5), percent(50)); -use pallet_referenda::StringLike; const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 0, info: pallet_referenda::TrackInfo { - name: StringLike(s("root")), + name: s("root"), max_deciding: 1, decision_deposit: 100 * GRAND, prepare_period: 8 * MINUTES, @@ -87,7 +86,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 1, info: pallet_referenda::TrackInfo { - name: StringLike(s("whitelisted_caller")), + name: s("whitelisted_caller"), max_deciding: 100, decision_deposit: 10 * GRAND, prepare_period: 6 * MINUTES, @@ -101,7 +100,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 10, info: pallet_referenda::TrackInfo { - name: StringLike(s("staking_admin")), + name: s("staking_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -115,7 +114,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 11, info: pallet_referenda::TrackInfo { - name: StringLike(s("treasurer")), + name: s("treasurer"), max_deciding: 10, decision_deposit: 1 * GRAND, prepare_period: 8 * MINUTES, @@ -129,7 +128,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 12, info: pallet_referenda::TrackInfo { - name: StringLike(s("lease_admin")), + name: s("lease_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -143,7 +142,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 13, info: pallet_referenda::TrackInfo { - name: StringLike(s("fellowship_admin")), + name: s("fellowship_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -157,7 +156,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 14, info: pallet_referenda::TrackInfo { - name: StringLike(s("general_admin")), + name: s("general_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -171,7 +170,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 15, info: pallet_referenda::TrackInfo { - name: StringLike(s("auction_admin")), + name: s("auction_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -185,7 +184,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 20, info: pallet_referenda::TrackInfo { - name: StringLike(s("referendum_canceller")), + name: s("referendum_canceller"), max_deciding: 1_000, decision_deposit: 10 * GRAND, prepare_period: 8 * MINUTES, @@ -199,7 +198,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 21, info: pallet_referenda::TrackInfo { - name: StringLike(s("referendum_killer")), + name: s("referendum_killer"), max_deciding: 1_000, decision_deposit: 50 * GRAND, prepare_period: 8 * MINUTES, @@ -213,7 +212,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 30, info: pallet_referenda::TrackInfo { - name: StringLike(s("small_tipper")), + name: s("small_tipper"), max_deciding: 200, decision_deposit: 1 * 3 * CENTS, prepare_period: 1 * MINUTES, @@ -227,7 +226,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 31, info: pallet_referenda::TrackInfo { - name: StringLike(s("big_tipper")), + name: s("big_tipper"), max_deciding: 100, decision_deposit: 10 * 3 * CENTS, prepare_period: 4 * MINUTES, @@ -241,7 +240,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 32, info: pallet_referenda::TrackInfo { - name: StringLike(s("small_spender")), + name: s("small_spender"), max_deciding: 50, decision_deposit: 100 * 3 * CENTS, prepare_period: 10 * MINUTES, @@ -255,7 +254,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 33, info: pallet_referenda::TrackInfo { - name: StringLike(s("medium_spender")), + name: s("medium_spender"), max_deciding: 50, decision_deposit: 200 * 3 * CENTS, prepare_period: 10 * MINUTES, @@ -269,7 +268,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 34, info: pallet_referenda::TrackInfo { - name: StringLike(s("big_spender")), + name: s("big_spender"), max_deciding: 50, decision_deposit: 400 * 3 * CENTS, prepare_period: 10 * MINUTES, diff --git a/polkadot/runtime/westend/src/governance/tracks.rs b/polkadot/runtime/westend/src/governance/tracks.rs index fb2f64f675dc..3686c90eabbf 100644 --- a/polkadot/runtime/westend/src/governance/tracks.rs +++ b/polkadot/runtime/westend/src/governance/tracks.rs @@ -19,7 +19,7 @@ use super::*; use alloc::borrow::Cow; -use sp_runtime::str_array as s; +use pallet_referenda::string_like_track_name as s; const fn percent(x: i32) -> sp_arithmetic::FixedI64 { sp_arithmetic::FixedI64::from_rational(x as u128, 100) @@ -68,12 +68,11 @@ const APP_WHITELISTED_CALLER: Curve = const SUP_WHITELISTED_CALLER: Curve = Curve::make_reciprocal(1, 28, percent(20), percent(5), percent(50)); -use pallet_referenda::StringLike; const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 0, info: pallet_referenda::TrackInfo { - name: StringLike(s("root")), + name: s("root"), max_deciding: 1, decision_deposit: 100 * GRAND, prepare_period: 8 * MINUTES, @@ -87,7 +86,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 1, info: pallet_referenda::TrackInfo { - name: StringLike(s("whitelisted_caller")), + name: s("whitelisted_caller"), max_deciding: 100, decision_deposit: 10 * GRAND, prepare_period: 6 * MINUTES, @@ -101,7 +100,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 10, info: pallet_referenda::TrackInfo { - name: StringLike(s("staking_admin")), + name: s("staking_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -115,7 +114,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 11, info: pallet_referenda::TrackInfo { - name: StringLike(s("treasurer")), + name: s("treasurer"), max_deciding: 10, decision_deposit: 1 * GRAND, prepare_period: 8 * MINUTES, @@ -129,7 +128,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 12, info: pallet_referenda::TrackInfo { - name: StringLike(s("lease_admin")), + name: s("lease_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -143,7 +142,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 13, info: pallet_referenda::TrackInfo { - name: StringLike(s("fellowship_admin")), + name: s("fellowship_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -157,7 +156,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 14, info: pallet_referenda::TrackInfo { - name: StringLike(s("general_admin")), + name: s("general_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -171,7 +170,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 15, info: pallet_referenda::TrackInfo { - name: StringLike(s("auction_admin")), + name: s("auction_admin"), max_deciding: 10, decision_deposit: 5 * GRAND, prepare_period: 8 * MINUTES, @@ -185,7 +184,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 20, info: pallet_referenda::TrackInfo { - name: StringLike(s("referendum_canceller")), + name: s("referendum_canceller"), max_deciding: 1_000, decision_deposit: 10 * GRAND, prepare_period: 8 * MINUTES, @@ -199,7 +198,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 21, info: pallet_referenda::TrackInfo { - name: StringLike(s("referendum_killer")), + name: s("referendum_killer"), max_deciding: 1_000, decision_deposit: 50 * GRAND, prepare_period: 8 * MINUTES, @@ -213,7 +212,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 30, info: pallet_referenda::TrackInfo { - name: StringLike(s("small_tipper")), + name: s("small_tipper"), max_deciding: 200, decision_deposit: 1 * 3 * CENTS, prepare_period: 1 * MINUTES, @@ -227,7 +226,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 31, info: pallet_referenda::TrackInfo { - name: StringLike(s("big_tipper")), + name: s("big_tipper"), max_deciding: 100, decision_deposit: 10 * 3 * CENTS, prepare_period: 4 * MINUTES, @@ -241,7 +240,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 32, info: pallet_referenda::TrackInfo { - name: StringLike(s("small_spender")), + name: s("small_spender"), max_deciding: 50, decision_deposit: 100 * 3 * CENTS, prepare_period: 10 * MINUTES, @@ -255,7 +254,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 33, info: pallet_referenda::TrackInfo { - name: StringLike(s("medium_spender")), + name: s("medium_spender"), max_deciding: 50, decision_deposit: 200 * 3 * CENTS, prepare_period: 10 * MINUTES, @@ -269,7 +268,7 @@ const TRACKS_DATA: [pallet_referenda::Track; 15] = [ pallet_referenda::Track { id: 34, info: pallet_referenda::TrackInfo { - name: StringLike(s("big_spender")), + name: s("big_spender"), max_deciding: 50, decision_deposit: 400 * 3 * CENTS, prepare_period: 10 * MINUTES, diff --git a/substrate/bin/node/runtime/src/lib.rs b/substrate/bin/node/runtime/src/lib.rs index 4f09d31ae2e7..0409880c9e9f 100644 --- a/substrate/bin/node/runtime/src/lib.rs +++ b/substrate/bin/node/runtime/src/lib.rs @@ -96,6 +96,7 @@ use pallet_broker::TaskId; pub use pallet_transaction_payment::{CurrencyAdapter, Multiplier, TargetedFeeAdjustment}; use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo}; use pallet_tx_pause::RuntimeCallNameOf; +use pallet_referenda::string_like_track_name as s; use sp_api::impl_runtime_apis; use sp_authority_discovery::AuthorityId as AuthorityDiscoveryId; use sp_consensus_beefy::{ @@ -107,7 +108,7 @@ use sp_core::{crypto::KeyTypeId, OpaqueMetadata, H160}; use sp_inherents::{CheckInherentsResult, InherentData}; use sp_runtime::{ curve::PiecewiseLinear, - generic, impl_opaque_keys, str_array as s, + generic, impl_opaque_keys, traits::{ self, AccountIdConversion, BlakeTwo256, Block as BlockT, Bounded, ConvertInto, MaybeConvert, NumberFor, OpaqueKeys, SaturatedConversion, StaticLookup, @@ -2648,7 +2649,7 @@ pub mod dynamic_params { > = BoundedVec::truncate_from(vec![pallet_referenda::Track { id: 0u16, info: pallet_referenda::TrackInfo { - name: pallet_referenda::StringLike(s("root")), + name: s("root"), max_deciding: 1, decision_deposit: 10, prepare_period: 4, diff --git a/substrate/frame/referenda/src/lib.rs b/substrate/frame/referenda/src/lib.rs index 4566cea8adb5..2dfdf1d13107 100644 --- a/substrate/frame/referenda/src/lib.rs +++ b/substrate/frame/referenda/src/lib.rs @@ -97,10 +97,11 @@ use self::branch::{BeginDecidingBranch, OneFewerDecidingBranch, ServiceBranch}; pub use self::{ pallet::*, types::{ - BalanceOf, BlockNumberFor, BoundedCallOf, CallOf, Curve, DecidingStatus, DecidingStatusOf, - Deposit, InsertSorted, NegativeImbalanceOf, PalletsOriginOf, ReferendumIndex, - ReferendumInfo, ReferendumInfoOf, ReferendumStatus, ReferendumStatusOf, ScheduleAddressOf, - StringLike, TallyOf, Track, TrackIdOf, TrackInfo, TrackInfoOf, TracksInfo, VotesOf, + string_like_track_name, BalanceOf, BlockNumberFor, BoundedCallOf, CallOf, Curve, + DecidingStatus, DecidingStatusOf, Deposit, InsertSorted, NegativeImbalanceOf, + PalletsOriginOf, ReferendumIndex, ReferendumInfo, ReferendumInfoOf, ReferendumStatus, + ReferendumStatusOf, ScheduleAddressOf, StringLike, TallyOf, Track, TrackIdOf, TrackInfo, + TrackInfoOf, TracksInfo, VotesOf, }, weights::WeightInfo, }; diff --git a/substrate/frame/referenda/src/mock.rs b/substrate/frame/referenda/src/mock.rs index 46ba51dd0927..a4ddbb973718 100644 --- a/substrate/frame/referenda/src/mock.rs +++ b/substrate/frame/referenda/src/mock.rs @@ -29,8 +29,8 @@ use frame_support::{ weights::Weight, }; use frame_system::{EnsureRoot, EnsureSignedBy}; +use pallet_referenda::string_like_track_name as s; use sp_runtime::{ - str_array as s, traits::{BlakeTwo256, Hash}, BuildStorage, DispatchResult, Perbill, }; @@ -111,7 +111,7 @@ impl TracksInfo for TestTracksInfo { Track { id: 0u8, info: TrackInfo { - name: StringLike(s("root")), + name: s("root"), max_deciding: 1, decision_deposit: 10, prepare_period: 4, @@ -133,7 +133,7 @@ impl TracksInfo for TestTracksInfo { Track { id: 1u8, info: TrackInfo { - name: StringLike(s("none")), + name: s("none"), max_deciding: 3, decision_deposit: 1, prepare_period: 2, @@ -155,7 +155,7 @@ impl TracksInfo for TestTracksInfo { Track { id: 2u8, info: TrackInfo { - name: StringLike(s("none")), + name: s("none"), max_deciding: 3, decision_deposit: 1, prepare_period: 2, diff --git a/substrate/frame/referenda/src/types.rs b/substrate/frame/referenda/src/types.rs index 0557864a5b5e..2942ca4d08b7 100644 --- a/substrate/frame/referenda/src/types.rs +++ b/substrate/frame/referenda/src/types.rs @@ -118,6 +118,12 @@ pub struct Deposit { pub const DEFAULT_MAX_TRACK_NAME_LEN: usize = 25; +#[inline] +pub const fn string_like_track_name(name: &str) -> StringLike { + use sp_runtime::str_array as s; + StringLike(s(name)) +} + #[derive(Clone, Eq, PartialEq, Debug)] pub struct StringLike(pub [u8; N]); @@ -156,7 +162,7 @@ impl Decode for StringLike { } } -impl DecodeWithMemTracking for StringLike {} +impl DecodeWithMemTracking for StringLike {} /// Detailed information about the configuration of a referenda track #[derive( @@ -781,7 +787,7 @@ mod tests { Track { id: 1u8, info: TrackInfo { - name: StringLike(s("root")), + name: string_like_track_name("root"), max_deciding: 1, decision_deposit: 10, prepare_period: 4, @@ -803,7 +809,7 @@ mod tests { Track { id: 0u8, info: TrackInfo { - name: StringLike(s("none")), + name: string_like_track_name("none"), max_deciding: 3, decision_deposit: 1, prepare_period: 2,