From 4f780551909a12cbb275b7ff66ab7445cabc7138 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Wed, 4 Jan 2023 14:23:39 +0100 Subject: [PATCH 01/26] add gov2 tech committee --- runtime/moonbase/src/governance/councils.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/runtime/moonbase/src/governance/councils.rs b/runtime/moonbase/src/governance/councils.rs index 7c915525e9..59867ca7a3 100644 --- a/runtime/moonbase/src/governance/councils.rs +++ b/runtime/moonbase/src/governance/councils.rs @@ -21,6 +21,7 @@ use super::*; pub type CouncilInstance = pallet_collective::Instance1; pub type TechCommitteeInstance = pallet_collective::Instance2; pub type TreasuryCouncilInstance = pallet_collective::Instance3; +pub type Gov2TechCommitteeInstance = pallet_collective::Instance4; impl pallet_collective::Config for Runtime { type RuntimeOrigin = RuntimeOrigin; @@ -66,3 +67,18 @@ impl pallet_collective::Config for Runtime { type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; type WeightInfo = pallet_collective::weights::SubstrateWeight; } + +impl pallet_collective::Config 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<{ 3 * 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; +} From 32954747e77a671db441313ceaf60da245822df2 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Wed, 4 Jan 2023 14:33:22 +0100 Subject: [PATCH 02/26] integrate gov2 tech committee --- runtime/moonbase/src/governance/councils.rs | 2 +- runtime/moonbase/src/governance/referenda.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/moonbase/src/governance/councils.rs b/runtime/moonbase/src/governance/councils.rs index 59867ca7a3..cb481ce0fa 100644 --- a/runtime/moonbase/src/governance/councils.rs +++ b/runtime/moonbase/src/governance/councils.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . -//! Councils for Gov1 +//! Councils for Gov1 and Gov2 use super::*; diff --git a/runtime/moonbase/src/governance/referenda.rs b/runtime/moonbase/src/governance/referenda.rs index d6b7f1ff9b..acdea6b824 100644 --- a/runtime/moonbase/src/governance/referenda.rs +++ b/runtime/moonbase/src/governance/referenda.rs @@ -63,7 +63,7 @@ impl pallet_whitelist::Config for Runtime { MapSuccess< pallet_collective::EnsureProportionAtLeast< Self::AccountId, - TechCommitteeInstance, + Gov2TechCommitteeInstance, 2, 3, >, From d7094007c03a1e693ae1ac5b3e2e407cdbe60026 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Thu, 5 Jan 2023 17:25:45 +0100 Subject: [PATCH 03/26] adapt params --- runtime/moonbase/src/governance/councils.rs | 4 ++-- runtime/moonbase/src/governance/referenda.rs | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/runtime/moonbase/src/governance/councils.rs b/runtime/moonbase/src/governance/councils.rs index cb481ce0fa..6f8d754564 100644 --- a/runtime/moonbase/src/governance/councils.rs +++ b/runtime/moonbase/src/governance/councils.rs @@ -21,7 +21,7 @@ use super::*; pub type CouncilInstance = pallet_collective::Instance1; pub type TechCommitteeInstance = pallet_collective::Instance2; pub type TreasuryCouncilInstance = pallet_collective::Instance3; -pub type Gov2TechCommitteeInstance = pallet_collective::Instance4; +pub type OpenTechCommitteeInstance = pallet_collective::Instance4; impl pallet_collective::Config for Runtime { type RuntimeOrigin = RuntimeOrigin; @@ -68,7 +68,7 @@ impl pallet_collective::Config for Runtime { type WeightInfo = pallet_collective::weights::SubstrateWeight; } -impl pallet_collective::Config for Runtime { +impl pallet_collective::Config for Runtime { type RuntimeOrigin = RuntimeOrigin; type RuntimeEvent = RuntimeEvent; type Proposal = RuntimeCall; diff --git a/runtime/moonbase/src/governance/referenda.rs b/runtime/moonbase/src/governance/referenda.rs index acdea6b824..25b5b5dd72 100644 --- a/runtime/moonbase/src/governance/referenda.rs +++ b/runtime/moonbase/src/governance/referenda.rs @@ -63,9 +63,9 @@ impl pallet_whitelist::Config for Runtime { MapSuccess< pallet_collective::EnsureProportionAtLeast< Self::AccountId, - Gov2TechCommitteeInstance, - 2, - 3, + OpenTechCommitteeInstance, + 5, + 9, >, Replace>, >, From b063f9854ba0b72f9cb06d90a15fe3fc7fb1635b Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Thu, 5 Jan 2023 17:47:22 +0100 Subject: [PATCH 04/26] add to precompiles --- node/service/src/chain_spec/moonbase.rs | 18 +++++++++++++++--- node/service/src/chain_spec/test_spec.rs | 7 ++++++- runtime/moonbase/src/lib.rs | 1 + runtime/moonbase/src/precompiles.rs | 3 ++- runtime/moonbase/tests/integration_test.rs | 10 ++++++++++ 5 files changed, 34 insertions(+), 5 deletions(-) diff --git a/node/service/src/chain_spec/moonbase.rs b/node/service/src/chain_spec/moonbase.rs index ef57970c4a..48bf8f9bed 100644 --- a/node/service/src/chain_spec/moonbase.rs +++ b/node/service/src/chain_spec/moonbase.rs @@ -28,9 +28,9 @@ 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, - TreasuryCouncilCollectiveConfig, HOURS, WASM_BINARY, + MaintenanceModeConfig, OpenTechCommitteeCollectiveConfig, ParachainInfoConfig, + ParachainStakingConfig, PolkadotXcmConfig, Precompiles, Range, SudoConfig, SystemConfig, + TechCommitteeCollectiveConfig, TreasuryCouncilCollectiveConfig, HOURS, WASM_BINARY, }; use nimbus_primitives::NimbusId; use sc_service::ChainType; @@ -67,6 +67,8 @@ pub fn development_chain_spec(mnemonic: Option, num_accounts: Option Alith vec![( accounts[0], @@ -135,6 +137,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 @@ -224,6 +231,7 @@ pub fn testnet_genesis( council_members: Vec, tech_comittee_members: Vec, treasury_council_members: Vec, + open_tech_committee_members: Vec, candidates: Vec<(AccountId, NimbusId, Balance)>, delegations: Vec<(AccountId, AccountId, Balance, Percent)>, endowed_accounts: Vec, @@ -303,6 +311,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), }, diff --git a/node/service/src/chain_spec/test_spec.rs b/node/service/src/chain_spec/test_spec.rs index 0fc8e940a3..4f5e643b5e 100644 --- a/node/service/src/chain_spec/test_spec.rs +++ b/node/service/src/chain_spec/test_spec.rs @@ -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")), @@ -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![ ( diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index fde5a04ba2..d502e12301 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -1172,6 +1172,7 @@ construct_runtime! { Origins: pallet_custom_origins::{Origin} = 43, Preimage: pallet_preimage::{Pallet, Call, Storage, Event} = 44, Whitelist: pallet_whitelist::{Pallet, Call, Storage, Event} = 45, + OpenTechCommitteeCollective: pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 46, } } diff --git a/runtime/moonbase/src/precompiles.rs b/runtime/moonbase/src/precompiles.rs index 51fcf743ec..c16dcd16c2 100644 --- a/runtime/moonbase/src/precompiles.rs +++ b/runtime/moonbase/src/precompiles.rs @@ -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; @@ -131,6 +131,7 @@ pub type MoonbasePrecompiles = PrecompileSetBuilder< PrecompileAt, CollectivePrecompile>, PrecompileAt, CollectivePrecompile>, PrecompileAt, CollectivePrecompile>, + PrecompileAt, CollectivePrecompile>, ), >, // Prefixed precompile sets (XC20) diff --git a/runtime/moonbase/tests/integration_test.rs b/runtime/moonbase/tests/integration_test.rs index fc1041fae8..c8f765eb5c 100644 --- a/runtime/moonbase/tests/integration_test.rs +++ b/runtime/moonbase/tests/integration_test.rs @@ -157,6 +157,9 @@ fn verify_pallet_prefixes() { is_pallet_prefix::("CouncilCollective"); is_pallet_prefix::("TechCommitteeCollective"); is_pallet_prefix::("Treasury"); + is_pallet_prefix::( + "OpenTechCommitteeCollective", + ); is_pallet_prefix::("AuthorInherent"); is_pallet_prefix::("AuthorFilter"); is_pallet_prefix::("CrowdloanRewards"); @@ -304,6 +307,12 @@ fn test_collectives_storage_item_prefixes() { { assert_eq!(pallet_name, b"TreasuryCouncilCollective".to_vec()); } + + for StorageInfo { pallet_name, .. } in + ::storage_info() + { + assert_eq!(pallet_name, b"OpenTechCommitteeCollective".to_vec()); + } } #[test] @@ -354,6 +363,7 @@ fn verify_pallet_indices() { is_pallet_index::(38); is_pallet_index::(39); is_pallet_index::(40); + is_pallet_index::(46); } #[test] From e505e88c2d14c27240b8e2c1352a60c1866dbcd8 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Thu, 5 Jan 2023 17:49:15 +0100 Subject: [PATCH 05/26] lint --- runtime/moonbase/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index d502e12301..2ae2e26330 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -1172,7 +1172,8 @@ construct_runtime! { Origins: pallet_custom_origins::{Origin} = 43, Preimage: pallet_preimage::{Pallet, Call, Storage, Event} = 44, Whitelist: pallet_whitelist::{Pallet, Call, Storage, Event} = 45, - OpenTechCommitteeCollective: pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 46, + OpenTechCommitteeCollective: + pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 46, } } From e15b1adb30f9a2b8600ca5b94ddea59c5a1e3733 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Thu, 5 Jan 2023 17:55:01 +0100 Subject: [PATCH 06/26] lint --- runtime/moonbase/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index 2ae2e26330..0b4ecb4d5e 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -1172,7 +1172,7 @@ construct_runtime! { Origins: pallet_custom_origins::{Origin} = 43, Preimage: pallet_preimage::{Pallet, Call, Storage, Event} = 44, Whitelist: pallet_whitelist::{Pallet, Call, Storage, Event} = 45, - OpenTechCommitteeCollective: + OpenTechCommitteeCollective: pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 46, } } From 05903b09da41643169975132580682fe30d07039 Mon Sep 17 00:00:00 2001 From: Alan Sapede Date: Thu, 12 Jan 2023 09:18:08 +0100 Subject: [PATCH 07/26] Increase motion duration to match voting period --- runtime/moonbase/src/governance/councils.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/moonbase/src/governance/councils.rs b/runtime/moonbase/src/governance/councils.rs index 6f8d754564..8e9bb13ce7 100644 --- a/runtime/moonbase/src/governance/councils.rs +++ b/runtime/moonbase/src/governance/councils.rs @@ -74,7 +74,7 @@ impl pallet_collective::Config for Runtime { 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<{ 3 * DAYS }>; + 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. From 51d5183efd3e04aa3d0d517acaf66bd1339bd69f Mon Sep 17 00:00:00 2001 From: librelois Date: Thu, 12 Jan 2023 09:51:59 +0100 Subject: [PATCH 08/26] update evm proxy filter --- runtime/moonbase/src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index 75cd9eb46d..e35c0e4c3c 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -831,6 +831,7 @@ impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType { | PrecompileName::CouncilInstance | PrecompileName::TechCommitteeInstance | PrecompileName::TreasuryCouncilInstance + | PrecompileName::OpenTechCommitteeInstance ) ) } @@ -843,6 +844,7 @@ impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType { | PrecompileName::CouncilInstance | PrecompileName::TechCommitteeInstance | PrecompileName::TreasuryCouncilInstance + | PrecompileName::OpenTechCommitteeInstance ) ) } From b5534898faf2361aa71a828ffbbb0aa586b576e0 Mon Sep 17 00:00:00 2001 From: librelois Date: Thu, 12 Jan 2023 10:00:45 +0100 Subject: [PATCH 09/26] Add cautionary comments on proxy filters --- runtime/moonbase/src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index e35c0e4c3c..9a03168193 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -780,7 +780,8 @@ impl Default for ProxyType { } } -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 { // TODO: add opengov precompiles fn is_evm_proxy_call_allowed( @@ -789,6 +790,7 @@ impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType { recipient_has_code: bool, ) -> bool { use pallet_evm::PrecompileSet as _; + use precompiles::PrecompileName; match self { ProxyType::Any => { // @@ -879,6 +881,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 for ProxyType { fn filter(&self, c: &RuntimeCall) -> bool { match self { From 1addcc7dcbad8f9e54b3691bd0c8057a79d43b25 Mon Sep 17 00:00:00 2001 From: librelois Date: Thu, 12 Jan 2023 10:27:53 +0100 Subject: [PATCH 10/26] fix rust tests --- node/service/src/lib.rs | 1 + runtime/moonbase/tests/integration_test.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/node/service/src/lib.rs b/node/service/src/lib.rs index da9137ccf2..c537bc8aa6 100644 --- a/node/service/src/lib.rs +++ b/node/service/src/lib.rs @@ -1314,6 +1314,7 @@ mod tests { vec![], vec![], vec![], + vec![], 1000 * UNIT, ParaId::new(0), 0, diff --git a/runtime/moonbase/tests/integration_test.rs b/runtime/moonbase/tests/integration_test.rs index c8f765eb5c..f38a497c30 100644 --- a/runtime/moonbase/tests/integration_test.rs +++ b/runtime/moonbase/tests/integration_test.rs @@ -2922,7 +2922,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, 2065 ] .into_iter() .map(H160::from_low_u64_be) From a56c4018873ad237d2a250db5d43ab1033eefbc7 Mon Sep 17 00:00:00 2001 From: librelois Date: Thu, 12 Jan 2023 10:31:25 +0100 Subject: [PATCH 11/26] fmt --- runtime/moonbase/tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/moonbase/tests/integration_test.rs b/runtime/moonbase/tests/integration_test.rs index f38a497c30..6f7c41064e 100644 --- a/runtime/moonbase/tests/integration_test.rs +++ b/runtime/moonbase/tests/integration_test.rs @@ -2922,7 +2922,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, 2065 + 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, ] .into_iter() .map(H160::from_low_u64_be) From 7ebb0dcc2f99be9e20b6b951ddb7f2007f355b86 Mon Sep 17 00:00:00 2001 From: librelois Date: Thu, 12 Jan 2023 11:11:41 +0100 Subject: [PATCH 12/26] update evm filter any --- runtime/moonbase/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index 9a03168193..cac8055527 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -805,7 +805,8 @@ impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType { | PrecompileName::ParachainStakingPrecompile | PrecompileName::CouncilInstance | PrecompileName::TechCommitteeInstance - | PrecompileName::TreasuryCouncilInstance, + | PrecompileName::TreasuryCouncilInstance + | PrecompileName::OpenTechCommitteeInstance, ) => true, // All non-whitelisted precompiles are forbidden Some(_) => false, From 64de59fe356584b31a0b34c932af8b07ba4c172b Mon Sep 17 00:00:00 2001 From: librelois Date: Thu, 12 Jan 2023 11:34:37 +0100 Subject: [PATCH 13/26] change precompile address (to let rooms to other opengov precompiles) --- runtime/moonbase/src/precompiles.rs | 2 +- runtime/moonbase/tests/integration_test.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/moonbase/src/precompiles.rs b/runtime/moonbase/src/precompiles.rs index d79d58c8d2..bf385e2635 100644 --- a/runtime/moonbase/src/precompiles.rs +++ b/runtime/moonbase/src/precompiles.rs @@ -118,7 +118,7 @@ type MoonbasePrecompilesAt = ( PrecompileAt, CollectivePrecompile>, PrecompileAt, CollectivePrecompile>, PrecompileAt, CollectivePrecompile>, - PrecompileAt, CollectivePrecompile>, + PrecompileAt, CollectivePrecompile>, ); /// The PrecompileSet installed in the Moonbase runtime. diff --git a/runtime/moonbase/tests/integration_test.rs b/runtime/moonbase/tests/integration_test.rs index 6f7c41064e..ec7257e619 100644 --- a/runtime/moonbase/tests/integration_test.rs +++ b/runtime/moonbase/tests/integration_test.rs @@ -2922,7 +2922,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, 2065, + 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2068, ] .into_iter() .map(H160::from_low_u64_be) From 403d9d9af006f48d32e42f4d7169f9ad9f9a7142 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Mon, 16 Jan 2023 11:07:52 +0100 Subject: [PATCH 14/26] add OpenTechCommittee to moonriver --- node/service/src/chain_spec/moonriver.rs | 18 +++++++++++++++--- runtime/moonriver/src/lib.rs | 5 +++++ runtime/moonriver/src/precompiles.rs | 3 ++- runtime/moonriver/tests/integration_test.rs | 10 ++++++++++ 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/node/service/src/chain_spec/moonriver.rs b/node/service/src/chain_spec/moonriver.rs index 250ccd5d8e..e33fa82a21 100644 --- a/node/service/src/chain_spec/moonriver.rs +++ b/node/service/src/chain_spec/moonriver.rs @@ -29,9 +29,9 @@ 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, - TreasuryCouncilCollectiveConfig, HOURS, WASM_BINARY, + MaintenanceModeConfig, OpenTechCommitteeCollectiveConfig, ParachainInfoConfig, + ParachainStakingConfig, PolkadotXcmConfig, Precompiles, Range, SystemConfig, + TechCommitteeCollectiveConfig, TreasuryCouncilCollectiveConfig, HOURS, WASM_BINARY, }; use nimbus_primitives::NimbusId; use sc_service::ChainType; @@ -65,6 +65,8 @@ pub fn development_chain_spec(mnemonic: Option, num_accounts: Option Alith vec![( AccountId::from(hex!("f24FF3a9CF04c71Dbc94D0b566f7A27B94566cac")), @@ -131,6 +133,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 @@ -219,6 +226,7 @@ pub fn testnet_genesis( council_members: Vec, tech_comittee_members: Vec, treasury_council_members: Vec, + open_tech_committee_members: Vec, candidates: Vec<(AccountId, NimbusId, Balance)>, delegations: Vec<(AccountId, AccountId, Balance, Percent)>, endowed_accounts: Vec, @@ -295,6 +303,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), }, diff --git a/runtime/moonriver/src/lib.rs b/runtime/moonriver/src/lib.rs index ce12ef4518..e50b06a18d 100644 --- a/runtime/moonriver/src/lib.rs +++ b/runtime/moonriver/src/lib.rs @@ -106,8 +106,11 @@ pub use sp_runtime::BuildStorage; pub type Precompiles = MoonriverPrecompiles; pub mod asset_config; +pub mod governance; pub mod xcm_config; +pub use governance::councils::*; + /// MOVR, the native token, uses 18 decimals of precision. pub mod currency { use super::Balance; @@ -1229,6 +1232,8 @@ construct_runtime! { ProxyGenesisCompanion: pallet_proxy_genesis_companion::{Pallet, Config} = 35, // Sudo was previously index 40 + OpenTechCommitteeCollective: + pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 46, // Ethereum compatibility EthereumChainId: pallet_ethereum_chain_id::{Pallet, Storage, Config} = 50, diff --git a/runtime/moonriver/src/precompiles.rs b/runtime/moonriver/src/precompiles.rs index 38e579663b..11258a3fa7 100644 --- a/runtime/moonriver/src/precompiles.rs +++ b/runtime/moonriver/src/precompiles.rs @@ -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; @@ -128,6 +128,7 @@ pub type MoonriverPrecompiles = PrecompileSetBuilder< PrecompileAt, CollectivePrecompile>, PrecompileAt, CollectivePrecompile>, PrecompileAt, CollectivePrecompile>, + PrecompileAt, CollectivePrecompile>, ), >, // Prefixed precompile sets (XC20) diff --git a/runtime/moonriver/tests/integration_test.rs b/runtime/moonriver/tests/integration_test.rs index 05f2172c06..fc12d35e41 100644 --- a/runtime/moonriver/tests/integration_test.rs +++ b/runtime/moonriver/tests/integration_test.rs @@ -125,6 +125,9 @@ fn verify_pallet_prefixes() { is_pallet_prefix::("Democracy"); is_pallet_prefix::("CouncilCollective"); is_pallet_prefix::("TechCommitteeCollective"); + is_pallet_prefix::( + "OpenTechCommitteeCollective", + ); is_pallet_prefix::("Treasury"); is_pallet_prefix::("AuthorInherent"); is_pallet_prefix::("AuthorFilter"); @@ -254,6 +257,12 @@ fn test_collectives_storage_item_prefixes() { { assert_eq!(pallet_name, b"TechCommitteeCollective".to_vec()); } + + for StorageInfo { pallet_name, .. } in + ::storage_info() + { + assert_eq!(pallet_name, b"OpenTechCommitteeCollective".to_vec()); + } } #[test] @@ -286,6 +295,7 @@ fn verify_pallet_indices() { is_pallet_index::(33); is_pallet_index::(34); is_pallet_index::(35); + is_pallet_index::(46); // Ethereum compatibility is_pallet_index::(50); is_pallet_index::(51); From b8d8060580768c0b7f7a4abf7309091e6921cb98 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Mon, 16 Jan 2023 11:17:20 +0100 Subject: [PATCH 15/26] add council files --- runtime/moonriver/src/governance/councils.rs | 36 ++++++++++++++++++++ runtime/moonriver/src/governance/mod.rs | 21 ++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 runtime/moonriver/src/governance/councils.rs create mode 100644 runtime/moonriver/src/governance/mod.rs diff --git a/runtime/moonriver/src/governance/councils.rs b/runtime/moonriver/src/governance/councils.rs new file mode 100644 index 0000000000..a56d76c7a2 --- /dev/null +++ b/runtime/moonriver/src/governance/councils.rs @@ -0,0 +1,36 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Moonbeam is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Moonbeam. If not, see . + +//! Councils for Gov2 + +use super::*; + +pub type OpenTechCommitteeInstance = pallet_collective::Instance4; + +impl pallet_collective::Config 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; +} diff --git a/runtime/moonriver/src/governance/mod.rs b/runtime/moonriver/src/governance/mod.rs new file mode 100644 index 0000000000..d342e2cc60 --- /dev/null +++ b/runtime/moonriver/src/governance/mod.rs @@ -0,0 +1,21 @@ +// Copyright 2019-2022 PureStake Inc. +// This file is part of Moonbeam. + +// Moonbeam is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Moonbeam is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Moonbeam. If not, see . + +//! Governance configurations + +pub mod councils; + +use super::*; From 32b4519e0f6ef2804c495bb8fd61be202d1702ab Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Mon, 16 Jan 2023 11:46:15 +0100 Subject: [PATCH 16/26] use consistent indices --- runtime/moonriver/src/lib.rs | 4 ++-- runtime/moonriver/tests/integration_test.rs | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/runtime/moonriver/src/lib.rs b/runtime/moonriver/src/lib.rs index e50b06a18d..291277a839 100644 --- a/runtime/moonriver/src/lib.rs +++ b/runtime/moonriver/src/lib.rs @@ -1232,8 +1232,6 @@ construct_runtime! { ProxyGenesisCompanion: pallet_proxy_genesis_companion::{Pallet, Config} = 35, // Sudo was previously index 40 - OpenTechCommitteeCollective: - pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 46, // Ethereum compatibility EthereumChainId: pallet_ethereum_chain_id::{Pallet, Storage, Config} = 50, @@ -1252,6 +1250,8 @@ construct_runtime! { pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 71, TreasuryCouncilCollective: pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 72, + OpenTechCommitteeCollective: + pallet_collective::::{Pallet, Call, Storage, Event, Origin, Config} = 73, // Treasury stuff. Treasury: pallet_treasury::{Pallet, Storage, Config, Event, Call} = 80, diff --git a/runtime/moonriver/tests/integration_test.rs b/runtime/moonriver/tests/integration_test.rs index fc12d35e41..9a2a550dc1 100644 --- a/runtime/moonriver/tests/integration_test.rs +++ b/runtime/moonriver/tests/integration_test.rs @@ -295,7 +295,6 @@ fn verify_pallet_indices() { is_pallet_index::(33); is_pallet_index::(34); is_pallet_index::(35); - is_pallet_index::(46); // Ethereum compatibility is_pallet_index::(50); is_pallet_index::(51); @@ -307,6 +306,7 @@ fn verify_pallet_indices() { is_pallet_index::(70); is_pallet_index::(71); is_pallet_index::(72); + is_pallet_index::(73); // Treasury is_pallet_index::(80); // Crowdloan From 4d91a0bd4462629673968b4c365fb27123337b37 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Mon, 16 Jan 2023 12:05:09 +0100 Subject: [PATCH 17/26] fix test --- runtime/moonriver/tests/integration_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/moonriver/tests/integration_test.rs b/runtime/moonriver/tests/integration_test.rs index 9a2a550dc1..3c396ff4fb 100644 --- a/runtime/moonriver/tests/integration_test.rs +++ b/runtime/moonriver/tests/integration_test.rs @@ -2779,7 +2779,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) From 14d9e811c8e05f17a750b1c9535eef40e8fdbcce Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Tue, 17 Jan 2023 16:14:34 +0100 Subject: [PATCH 18/26] Update runtime/moonriver/src/governance/councils.rs --- runtime/moonriver/src/governance/councils.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/runtime/moonriver/src/governance/councils.rs b/runtime/moonriver/src/governance/councils.rs index b9fcf210e1..ab87343ed0 100644 --- a/runtime/moonriver/src/governance/councils.rs +++ b/runtime/moonriver/src/governance/councils.rs @@ -14,7 +14,6 @@ // You should have received a copy of the GNU General Public License // along with Moonbeam. If not, see . - //! Councils for Gov1 and Gov2 use super::*; From 68bdadef42364abb576f40e62ad6b5407969aa50 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Tue, 17 Jan 2023 16:15:18 +0100 Subject: [PATCH 19/26] fmt --- runtime/moonriver/src/governance/councils.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runtime/moonriver/src/governance/councils.rs b/runtime/moonriver/src/governance/councils.rs index ab87343ed0..8e9bb13ce7 100644 --- a/runtime/moonriver/src/governance/councils.rs +++ b/runtime/moonriver/src/governance/councils.rs @@ -74,8 +74,8 @@ impl pallet_collective::Config for Runtime { 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 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>; From a558e2910a4bc64dea1247deeffb2e02c0315857 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Tue, 17 Jan 2023 17:03:05 +0100 Subject: [PATCH 20/26] bump From 19372cad5f1b368ea3fc8ca93cc27699543a8a3a Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Tue, 17 Jan 2023 17:43:51 +0100 Subject: [PATCH 21/26] Update runtime/moonbase/src/lib.rs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Éloïs --- runtime/moonbase/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index 1f37bc4787..6d6f623fe3 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -799,7 +799,6 @@ fn is_governance_precompile(precompile_name: &precompiles::PrecompileName) -> bo ) } -use precompiles::PrecompileName; // Be careful: Each time this filter is modified, the substrate filter must also be modified // consistently. From d914d15e8d0cfd4c74b0eb9204a72fe5986e3a79 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Tue, 17 Jan 2023 17:45:59 +0100 Subject: [PATCH 22/26] fix regression --- runtime/moonbase/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index 6d6f623fe3..25bcd3d520 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -796,10 +796,10 @@ fn is_governance_precompile(precompile_name: &precompiles::PrecompileName) -> bo | PrecompileName::CouncilInstance | PrecompileName::TechCommitteeInstance | PrecompileName::TreasuryCouncilInstance, + | PrecompileName::OpenTechCommitteeInstance, ) } - // Be careful: Each time this filter is modified, the substrate filter must also be modified // consistently. impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType { From f355885098c0a38053cb5d891bc6cae1f536cb85 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Tue, 17 Jan 2023 18:17:40 +0100 Subject: [PATCH 23/26] fmt --- node/service/src/chain_spec/moonbase.rs | 7 ++++--- node/service/src/chain_spec/moonriver.rs | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/node/service/src/chain_spec/moonbase.rs b/node/service/src/chain_spec/moonbase.rs index bffaa8f931..ea4e35c3a5 100644 --- a/node/service/src/chain_spec/moonbase.rs +++ b/node/service/src/chain_spec/moonbase.rs @@ -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, OpenTechCommitteeCollectiveConfig, 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; diff --git a/node/service/src/chain_spec/moonriver.rs b/node/service/src/chain_spec/moonriver.rs index e562645db1..e145b3baae 100644 --- a/node/service/src/chain_spec/moonriver.rs +++ b/node/service/src/chain_spec/moonriver.rs @@ -29,9 +29,10 @@ use moonriver_runtime::{ currency::MOVR, AccountId, AuthorFilterConfig, AuthorMappingConfig, Balance, BalancesConfig, CouncilCollectiveConfig, CrowdloanRewardsConfig, DemocracyConfig, EVMConfig, EthereumChainIdConfig, EthereumConfig, GenesisAccount, GenesisConfig, InflationInfo, - MaintenanceModeConfig, OpenTechCommitteeCollectiveConfig, 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; From 81222f8e9019168a882b5b5c2e6a67412932539f Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Tue, 17 Jan 2023 18:18:29 +0100 Subject: [PATCH 24/26] fix typo --- runtime/moonbase/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index f9928dcbf2..e5a2cdbc1e 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -805,7 +805,7 @@ fn is_governance_precompile(precompile_name: &precompiles::PrecompileName) -> bo PrecompileName::DemocracyPrecompile | PrecompileName::CouncilInstance | PrecompileName::TechCommitteeInstance - | PrecompileName::TreasuryCouncilInstance, + | PrecompileName::TreasuryCouncilInstance | PrecompileName::OpenTechCommitteeInstance, ) } From ad5e55f4da9d6e835a924b4b8419c73d9e2583ad Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Tue, 17 Jan 2023 19:26:31 +0100 Subject: [PATCH 25/26] fix import --- runtime/moonbase/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index e5a2cdbc1e..454182a874 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -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, From b4ccb5c729964d0dedd1b6a3ccaf4b3f0da3f761 Mon Sep 17 00:00:00 2001 From: Nisheeth Barthwal Date: Tue, 17 Jan 2023 19:46:25 +0100 Subject: [PATCH 26/26] fix build --- runtime/moonbase/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/runtime/moonbase/src/lib.rs b/runtime/moonbase/src/lib.rs index 454182a874..7617359b1e 100644 --- a/runtime/moonbase/src/lib.rs +++ b/runtime/moonbase/src/lib.rs @@ -820,7 +820,6 @@ impl pallet_evm_precompile_proxy::EvmProxyCallFilter for ProxyType { recipient_has_code: bool, ) -> bool { use pallet_evm::PrecompileSet as _; - use precompiles::PrecompileName; match self { ProxyType::Any => { match PrecompileName::from_address(call.to.0) {