Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Open Tech Committee #2028

Merged
merged 29 commits into from
Jan 17, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
4f78055
add gov2 tech committee
nbaztec Jan 4, 2023
3295474
integrate gov2 tech committee
nbaztec Jan 4, 2023
d709400
adapt params
nbaztec Jan 5, 2023
b063f98
add to precompiles
nbaztec Jan 5, 2023
e505e88
lint
nbaztec Jan 5, 2023
e15b1ad
lint
nbaztec Jan 5, 2023
05903b0
Increase motion duration to match voting period
Jan 12, 2023
c3f28e6
Merge branch 'master' into nish-gov2-committee
librelois Jan 12, 2023
51d5183
update evm proxy filter
librelois Jan 12, 2023
b553489
Add cautionary comments on proxy filters
librelois Jan 12, 2023
1addcc7
fix rust tests
librelois Jan 12, 2023
a56c401
fmt
librelois Jan 12, 2023
7ebb0dc
update evm filter any
librelois Jan 12, 2023
64de59f
change precompile address (to let rooms to other opengov precompiles)
librelois Jan 12, 2023
403d9d9
add OpenTechCommittee to moonriver
nbaztec Jan 16, 2023
b8d8060
add council files
nbaztec Jan 16, 2023
32b4519
use consistent indices
nbaztec Jan 16, 2023
4d91a0b
fix test
nbaztec Jan 16, 2023
ac3f199
Merge branch 'master' into nish-gov2-committee
nbaztec Jan 17, 2023
14d9e81
Update runtime/moonriver/src/governance/councils.rs
nbaztec Jan 17, 2023
68bdade
fmt
nbaztec Jan 17, 2023
a558e29
bump
nbaztec Jan 17, 2023
19372ca
Update runtime/moonbase/src/lib.rs
nbaztec Jan 17, 2023
d914d15
fix regression
nbaztec Jan 17, 2023
ae11d99
Merge branch 'master' into nish-gov2-committee
nbaztec Jan 17, 2023
f355885
fmt
nbaztec Jan 17, 2023
81222f8
fix typo
nbaztec Jan 17, 2023
ad5e55f
fix import
nbaztec Jan 17, 2023
b4ccb5c
fix build
nbaztec Jan 17, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 16 additions & 3 deletions node/service/src/chain_spec/moonbase.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,10 @@ use moonbase_runtime::{
currency::UNIT, AccountId, AuthorFilterConfig, AuthorMappingConfig, Balance, BalancesConfig,
CouncilCollectiveConfig, CrowdloanRewardsConfig, DemocracyConfig, EVMConfig, EligibilityValue,
EthereumChainIdConfig, EthereumConfig, GenesisAccount, GenesisConfig, InflationInfo,
MaintenanceModeConfig, ParachainInfoConfig, ParachainStakingConfig, PolkadotXcmConfig,
Precompiles, Range, SudoConfig, SystemConfig, TechCommitteeCollectiveConfig,
TransactionPaymentConfig, TreasuryCouncilCollectiveConfig, HOURS, WASM_BINARY,
MaintenanceModeConfig, OpenTechCommitteeCollectiveConfig, ParachainInfoConfig,
ParachainStakingConfig, PolkadotXcmConfig, Precompiles, Range, SudoConfig, SystemConfig,
TechCommitteeCollectiveConfig, TransactionPaymentConfig, TreasuryCouncilCollectiveConfig,
HOURS, WASM_BINARY,
};
use nimbus_primitives::NimbusId;
use pallet_transaction_payment::Multiplier;
Expand Down Expand Up @@ -68,6 +69,8 @@ pub fn development_chain_spec(mnemonic: Option<String>, num_accounts: Option<u32
vec![accounts[0], accounts[1]],
// Treasury Council members: Baltathar, Charleth and Dorothy
vec![accounts[1], accounts[2], accounts[3]],
// Open Tech committee members: Alith and Baltathar
vec![accounts[0], accounts[1]],
// Collator Candidate: Alice -> Alith
vec![(
accounts[0],
Expand Down Expand Up @@ -136,6 +139,11 @@ pub fn get_chain_spec(para_id: ParaId) -> ChainSpec {
AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")),
AccountId::from(hex!("773539d4Ac0e786233D90A233654ccEE26a613D9")),
],
// Open Tech committee members: Alith and Baltathar
vec![
AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")),
AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")),
],
// Collator Candidates
vec![
// Alice -> Alith
Expand Down Expand Up @@ -225,6 +233,7 @@ pub fn testnet_genesis(
council_members: Vec<AccountId>,
tech_comittee_members: Vec<AccountId>,
treasury_council_members: Vec<AccountId>,
open_tech_committee_members: Vec<AccountId>,
candidates: Vec<(AccountId, NimbusId, Balance)>,
delegations: Vec<(AccountId, AccountId, Balance, Percent)>,
endowed_accounts: Vec<AccountId>,
Expand Down Expand Up @@ -304,6 +313,10 @@ pub fn testnet_genesis(
phantom: Default::default(),
members: treasury_council_members,
},
open_tech_committee_collective: OpenTechCommitteeCollectiveConfig {
phantom: Default::default(),
members: open_tech_committee_members,
},
author_filter: AuthorFilterConfig {
eligible_count: EligibilityValue::new_unchecked(50),
},
Expand Down
19 changes: 16 additions & 3 deletions node/service/src/chain_spec/moonriver.rs
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,10 @@ use moonriver_runtime::{
currency::MOVR, AccountId, AuthorFilterConfig, AuthorMappingConfig, Balance, BalancesConfig,
CouncilCollectiveConfig, CrowdloanRewardsConfig, DemocracyConfig, EVMConfig,
EthereumChainIdConfig, EthereumConfig, GenesisAccount, GenesisConfig, InflationInfo,
MaintenanceModeConfig, ParachainInfoConfig, ParachainStakingConfig, PolkadotXcmConfig,
Precompiles, Range, SystemConfig, TechCommitteeCollectiveConfig, TransactionPaymentConfig,
TreasuryCouncilCollectiveConfig, HOURS, WASM_BINARY,
MaintenanceModeConfig, OpenTechCommitteeCollectiveConfig, ParachainInfoConfig,
ParachainStakingConfig, PolkadotXcmConfig, Precompiles, Range, SystemConfig,
TechCommitteeCollectiveConfig, TransactionPaymentConfig, TreasuryCouncilCollectiveConfig,
HOURS, WASM_BINARY,
};
use nimbus_primitives::NimbusId;
use pallet_transaction_payment::Multiplier;
Expand Down Expand Up @@ -66,6 +67,8 @@ pub fn development_chain_spec(mnemonic: Option<String>, num_accounts: Option<u32
vec![accounts[0], accounts[1]],
// Treasury Council members: Baltathar, Charleth and Dorothy
vec![accounts[1], accounts[2], accounts[3]],
// Open Tech committee members: Alith and Baltathar
vec![accounts[0], accounts[1]],
// Collator Candidate: Alice -> Alith
vec![(
AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")),
Expand Down Expand Up @@ -132,6 +135,11 @@ pub fn get_chain_spec(para_id: ParaId) -> ChainSpec {
AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")),
AccountId::from(hex!("773539d4Ac0e786233D90A233654ccEE26a613D9")),
],
// Open Tech committee members: Alith and Baltathar
vec![
AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")),
AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")),
],
// Collator Candidates
vec![
// Alice -> Alith
Expand Down Expand Up @@ -220,6 +228,7 @@ pub fn testnet_genesis(
council_members: Vec<AccountId>,
tech_comittee_members: Vec<AccountId>,
treasury_council_members: Vec<AccountId>,
open_tech_committee_members: Vec<AccountId>,
candidates: Vec<(AccountId, NimbusId, Balance)>,
delegations: Vec<(AccountId, AccountId, Balance, Percent)>,
endowed_accounts: Vec<AccountId>,
Expand Down Expand Up @@ -296,6 +305,10 @@ pub fn testnet_genesis(
phantom: Default::default(),
members: treasury_council_members,
},
open_tech_committee_collective: OpenTechCommitteeCollectiveConfig {
phantom: Default::default(),
members: open_tech_committee_members,
},
author_filter: AuthorFilterConfig {
eligible_count: EligibilityValue::new_unchecked(50),
},
Expand Down
7 changes: 6 additions & 1 deletion node/service/src/chain_spec/test_spec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ pub fn staking_spec(para_id: ParaId) -> ChainSpec {
AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")),
AccountId::from(hex!("773539d4Ac0e786233D90A233654ccEE26a613D9")),
],
// Council members: Alith and Baltathar
// Tech Committee members: Alith and Baltathar
vec![
AccountId::from(hex!("6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b")),
AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")),
Expand All @@ -51,6 +51,11 @@ pub fn staking_spec(para_id: ParaId) -> ChainSpec {
AccountId::from(hex!("798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc")),
AccountId::from(hex!("773539d4Ac0e786233D90A233654ccEE26a613D9")),
],
// Open Tech Committee members: Alith and Baltathar
vec![
AccountId::from(hex!("6Be02d1d3665660d22FF9624b7BE0551ee1Ac91b")),
AccountId::from(hex!("3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0")),
],
// Collators
vec![
(
Expand Down
1 change: 1 addition & 0 deletions node/service/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1314,6 +1314,7 @@ mod tests {
vec![],
vec![],
vec![],
vec![],
1000 * UNIT,
ParaId::new(0),
0,
Expand Down
18 changes: 17 additions & 1 deletion runtime/moonbase/src/governance/councils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@
// You should have received a copy of the GNU General Public License
// along with Moonbeam. If not, see <http://www.gnu.org/licenses/>.

//! Councils for Gov1
//! Councils for Gov1 and Gov2

use super::*;

pub type CouncilInstance = pallet_collective::Instance1;
pub type TechCommitteeInstance = pallet_collective::Instance2;
pub type TreasuryCouncilInstance = pallet_collective::Instance3;
pub type OpenTechCommitteeInstance = pallet_collective::Instance4;

impl pallet_collective::Config<CouncilInstance> for Runtime {
type RuntimeOrigin = RuntimeOrigin;
Expand Down Expand Up @@ -66,3 +67,18 @@ impl pallet_collective::Config<TreasuryCouncilInstance> for Runtime {
type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote;
type WeightInfo = pallet_collective::weights::SubstrateWeight<Runtime>;
}

impl pallet_collective::Config<OpenTechCommitteeInstance> for Runtime {
type RuntimeOrigin = RuntimeOrigin;
type RuntimeEvent = RuntimeEvent;
type Proposal = RuntimeCall;
/// The maximum amount of time (in blocks) for technical committee members to vote on motions.
/// Motions may end in fewer blocks if enough votes are cast to determine the result.
type MotionDuration = ConstU32<{ 14 * DAYS }>;
/// The maximum number of proposals that can be open in the technical committee at once.
type MaxProposals = ConstU32<100>;
/// The maximum number of technical committee members.
type MaxMembers = ConstU32<100>;
type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote;
type WeightInfo = pallet_collective::weights::SubstrateWeight<Runtime>;
}
6 changes: 3 additions & 3 deletions runtime/moonbase/src/governance/referenda.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,9 @@ impl pallet_whitelist::Config for Runtime {
MapSuccess<
pallet_collective::EnsureProportionAtLeast<
Self::AccountId,
TechCommitteeInstance,
2,
3,
OpenTechCommitteeInstance,
5,
9,
>,
Replace<ConstU16<6>>,
>,
Expand Down
10 changes: 8 additions & 2 deletions runtime/moonbase/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ use sp_version::RuntimeVersion;
use nimbus_primitives::CanAuthor;

mod precompiles;
use precompiles::PrecompileName;
pub use precompiles::{
MoonbasePrecompiles, FOREIGN_ASSET_PRECOMPILE_ADDRESS_PREFIX,
LOCAL_ASSET_PRECOMPILE_ADDRESS_PREFIX,
Expand Down Expand Up @@ -805,11 +806,13 @@ fn is_governance_precompile(precompile_name: &precompiles::PrecompileName) -> bo
PrecompileName::DemocracyPrecompile
| PrecompileName::CouncilInstance
| PrecompileName::TechCommitteeInstance
| PrecompileName::TreasuryCouncilInstance,
| PrecompileName::TreasuryCouncilInstance
| PrecompileName::OpenTechCommitteeInstance,
)
}

use precompiles::PrecompileName;
// Be careful: Each time this filter is modified, the substrate filter must also be modified
// consistently.
impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType {
fn is_evm_proxy_call_allowed(
&self,
Expand Down Expand Up @@ -893,6 +896,7 @@ impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType {
}
}

// Be careful: Each time this filter is modified, the EVM filter must also be modified consistently.
impl InstanceFilter<RuntimeCall> for ProxyType {
fn filter(&self, c: &RuntimeCall) -> bool {
match self {
Expand Down Expand Up @@ -1301,6 +1305,8 @@ construct_runtime! {
Origins: governance::custom_origins::{Origin} = 43,
Preimage: pallet_preimage::{Pallet, Call, Storage, Event<T>} = 44,
Whitelist: pallet_whitelist::{Pallet, Call, Storage, Event<T>} = 45,
OpenTechCommitteeCollective:
pallet_collective::<Instance4>::{Pallet, Call, Storage, Event<T>, Origin<T>, Config<T>} = 46,
}
}

Expand Down
3 changes: 2 additions & 1 deletion runtime/moonbase/src/precompiles.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
use crate::{
asset_config::{ForeignAssetInstance, LocalAssetInstance},
xcm_config::XcmExecutorConfig,
CouncilInstance, TechCommitteeInstance, TreasuryCouncilInstance,
CouncilInstance, OpenTechCommitteeInstance, TechCommitteeInstance, TreasuryCouncilInstance,
};
use frame_support::parameter_types;
use moonbeam_relay_encoder::westend::WestendEncoder;
Expand Down Expand Up @@ -118,6 +118,7 @@ type MoonbasePrecompilesAt<R> = (
PrecompileAt<AddressU64<2062>, CollectivePrecompile<R, CouncilInstance>>,
PrecompileAt<AddressU64<2063>, CollectivePrecompile<R, TechCommitteeInstance>>,
PrecompileAt<AddressU64<2064>, CollectivePrecompile<R, TreasuryCouncilInstance>>,
PrecompileAt<AddressU64<2068>, CollectivePrecompile<R, OpenTechCommitteeInstance>>,
);

/// The PrecompileSet installed in the Moonbase runtime.
Expand Down
12 changes: 11 additions & 1 deletion runtime/moonbase/tests/integration_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,9 @@ fn verify_pallet_prefixes() {
is_pallet_prefix::<moonbase_runtime::CouncilCollective>("CouncilCollective");
is_pallet_prefix::<moonbase_runtime::TechCommitteeCollective>("TechCommitteeCollective");
is_pallet_prefix::<moonbase_runtime::Treasury>("Treasury");
is_pallet_prefix::<moonbase_runtime::OpenTechCommitteeCollective>(
"OpenTechCommitteeCollective",
);
is_pallet_prefix::<moonbase_runtime::AuthorInherent>("AuthorInherent");
is_pallet_prefix::<moonbase_runtime::AuthorFilter>("AuthorFilter");
is_pallet_prefix::<moonbase_runtime::CrowdloanRewards>("CrowdloanRewards");
Expand Down Expand Up @@ -304,6 +307,12 @@ fn test_collectives_storage_item_prefixes() {
{
assert_eq!(pallet_name, b"TreasuryCouncilCollective".to_vec());
}

for StorageInfo { pallet_name, .. } in
<moonbase_runtime::OpenTechCommitteeCollective as StorageInfoTrait>::storage_info()
{
assert_eq!(pallet_name, b"OpenTechCommitteeCollective".to_vec());
}
}

#[test]
Expand Down Expand Up @@ -354,6 +363,7 @@ fn verify_pallet_indices() {
is_pallet_index::<moonbase_runtime::EthereumXcm>(38);
is_pallet_index::<moonbase_runtime::Randomness>(39);
is_pallet_index::<moonbase_runtime::TreasuryCouncilCollective>(40);
is_pallet_index::<moonbase_runtime::OpenTechCommitteeCollective>(46);
}

#[test]
Expand Down Expand Up @@ -2936,7 +2946,7 @@ fn precompile_existence() {
let precompiles = Precompiles::new();
let precompile_addresses: std::collections::BTreeSet<_> = vec![
1, 2, 3, 4, 5, 6, 7, 8, 9, 1024, 1026, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055,
2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064,
2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2068,
]
.into_iter()
.map(H160::from_low_u64_be)
Expand Down
18 changes: 17 additions & 1 deletion runtime/moonriver/src/governance/councils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@
// You should have received a copy of the GNU General Public License
// along with Moonbeam. If not, see <http://www.gnu.org/licenses/>.

//! Councils for Gov1
//! Councils for Gov1 and Gov2

use super::*;

pub type CouncilInstance = pallet_collective::Instance1;
pub type TechCommitteeInstance = pallet_collective::Instance2;
pub type TreasuryCouncilInstance = pallet_collective::Instance3;
pub type OpenTechCommitteeInstance = pallet_collective::Instance4;

impl pallet_collective::Config<CouncilInstance> for Runtime {
type RuntimeOrigin = RuntimeOrigin;
Expand Down Expand Up @@ -66,3 +67,18 @@ impl pallet_collective::Config<TreasuryCouncilInstance> for Runtime {
type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote;
type WeightInfo = pallet_collective::weights::SubstrateWeight<Runtime>;
}

impl pallet_collective::Config<OpenTechCommitteeInstance> for Runtime {
type RuntimeOrigin = RuntimeOrigin;
type RuntimeEvent = RuntimeEvent;
type Proposal = RuntimeCall;
/// The maximum amount of time (in blocks) for technical committee members to vote on motions.
/// Motions may end in fewer blocks if enough votes are cast to determine the result.
type MotionDuration = ConstU32<{ 14 * DAYS }>;
/// The maximum number of proposals that can be open in the technical committee at once.
type MaxProposals = ConstU32<100>;
/// The maximum number of technical committee members.
type MaxMembers = ConstU32<100>;
type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote;
type WeightInfo = pallet_collective::weights::SubstrateWeight<Runtime>;
}
4 changes: 4 additions & 0 deletions runtime/moonriver/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ pub mod governance;
pub mod xcm_config;
use governance::councils::*;

pub use governance::councils::*;

/// MOVR, the native token, uses 18 decimals of precision.
pub mod currency {
use super::Balance;
Expand Down Expand Up @@ -1162,6 +1164,8 @@ construct_runtime! {
pallet_collective::<Instance2>::{Pallet, Call, Storage, Event<T>, Origin<T>, Config<T>} = 71,
TreasuryCouncilCollective:
pallet_collective::<Instance3>::{Pallet, Call, Storage, Event<T>, Origin<T>, Config<T>} = 72,
OpenTechCommitteeCollective:
pallet_collective::<Instance4>::{Pallet, Call, Storage, Event<T>, Origin<T>, Config<T>} = 73,

// Treasury stuff.
Treasury: pallet_treasury::{Pallet, Storage, Config, Event<T>, Call} = 80,
Expand Down
3 changes: 2 additions & 1 deletion runtime/moonriver/src/precompiles.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
use crate::{
asset_config::{ForeignAssetInstance, LocalAssetInstance},
xcm_config::XcmExecutorConfig,
CouncilInstance, TechCommitteeInstance, TreasuryCouncilInstance,
CouncilInstance, OpenTechCommitteeInstance, TechCommitteeInstance, TreasuryCouncilInstance,
};
use frame_support::parameter_types;
use moonbeam_relay_encoder::kusama::KusamaEncoder;
Expand Down Expand Up @@ -128,6 +128,7 @@ pub type MoonriverPrecompiles<R> = PrecompileSetBuilder<
PrecompileAt<AddressU64<2062>, CollectivePrecompile<R, CouncilInstance>>,
PrecompileAt<AddressU64<2063>, CollectivePrecompile<R, TechCommitteeInstance>>,
PrecompileAt<AddressU64<2064>, CollectivePrecompile<R, TreasuryCouncilInstance>>,
PrecompileAt<AddressU64<2068>, CollectivePrecompile<R, OpenTechCommitteeInstance>>,
),
>,
// Prefixed precompile sets (XC20)
Expand Down
12 changes: 11 additions & 1 deletion runtime/moonriver/tests/integration_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,9 @@ fn verify_pallet_prefixes() {
is_pallet_prefix::<moonriver_runtime::Democracy>("Democracy");
is_pallet_prefix::<moonriver_runtime::CouncilCollective>("CouncilCollective");
is_pallet_prefix::<moonriver_runtime::TechCommitteeCollective>("TechCommitteeCollective");
is_pallet_prefix::<moonriver_runtime::OpenTechCommitteeCollective>(
"OpenTechCommitteeCollective",
);
is_pallet_prefix::<moonriver_runtime::Treasury>("Treasury");
is_pallet_prefix::<moonriver_runtime::AuthorInherent>("AuthorInherent");
is_pallet_prefix::<moonriver_runtime::AuthorFilter>("AuthorFilter");
Expand Down Expand Up @@ -250,6 +253,12 @@ fn test_collectives_storage_item_prefixes() {
{
assert_eq!(pallet_name, b"TechCommitteeCollective".to_vec());
}

for StorageInfo { pallet_name, .. } in
<moonriver_runtime::OpenTechCommitteeCollective as StorageInfoTrait>::storage_info()
{
assert_eq!(pallet_name, b"OpenTechCommitteeCollective".to_vec());
}
}

#[test]
Expand Down Expand Up @@ -293,6 +302,7 @@ fn verify_pallet_indices() {
is_pallet_index::<moonriver_runtime::CouncilCollective>(70);
is_pallet_index::<moonriver_runtime::TechCommitteeCollective>(71);
is_pallet_index::<moonriver_runtime::TreasuryCouncilCollective>(72);
is_pallet_index::<moonriver_runtime::OpenTechCommitteeCollective>(73);
// Treasury
is_pallet_index::<moonriver_runtime::Treasury>(80);
// Crowdloan
Expand Down Expand Up @@ -2738,7 +2748,7 @@ fn precompile_existence() {
let precompiles = Precompiles::new();
let precompile_addresses: std::collections::BTreeSet<_> = vec![
1, 2, 3, 4, 5, 6, 7, 8, 9, 1024, 1026, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055,
2056, 2057, 2058, 2060, 2062, 2063, 2064,
2056, 2057, 2058, 2060, 2062, 2063, 2064, 2068,
]
.into_iter()
.map(H160::from_low_u64_be)
Expand Down