diff --git a/.github/workflows/check-migrations.yml b/.github/workflows/check-migrations.yml index 968ff80c00..948ae5bf10 100644 --- a/.github/workflows/check-migrations.yml +++ b/.github/workflows/check-migrations.yml @@ -44,9 +44,10 @@ jobs: # if they all pass, that job will pass too. check-migrations: needs: [runtime-matrix] - continue-on-error: true runs-on: ubuntu-latest strategy: + # Ensure the other jobs continue + fail-fast: false matrix: runtime: ${{ fromJSON(needs.runtime-matrix.outputs.runtime) }} steps: diff --git a/CHANGELOG.md b/CHANGELOG.md index cd66dd5ac5..4be566851d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Location conversion tests for relays and parachains ([polkadot-fellows/runtimes#487](https://github.com/polkadot-fellows/runtimes/pull/487)) - Asset Hubs: XcmPaymentApi now returns all assets in a pool with the native token as acceptable for fee payment ([polkadot-fellows/runtimes#523](https://github.com/polkadot-fellows/runtimes/pull/523)) +- ParaRegistration proxy for Polkadot and Kusama ([polkadot-fellows/runtimes#520](https://github.com/polkadot-fellows/runtimes/pull/520)) + ### Changed - Kusama Treasury: remove funding to the Kappa Sigma Mu Society and disable burn ([polkadot-fellows/runtimes#507](https://github.com/polkadot-fellows/runtimes/pull/507)) diff --git a/Cargo.lock b/Cargo.lock index 0a80690e24..8f53a575b3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7987,9 +7987,9 @@ dependencies = [ [[package]] name = "pallet-broker" -version = "0.17.0" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3043c90106d88cb93fcf0d9b6d19418f11f44cc2b11873414aec3b46044a24ea" +checksum = "018b477d7d464c451b1d09a4ce9e792c3c65b15fd764b23da38ff9980e786065" dependencies = [ "bitvec", "frame-benchmarking", diff --git a/Cargo.toml b/Cargo.toml index d9a437eba4..258bd9e277 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -101,7 +101,7 @@ pallet-bridge-grandpa = { version = "0.18.0", default-features = false } pallet-bridge-messages = { version = "0.18.0", default-features = false } pallet-bridge-parachains = { version = "0.18.0", default-features = false } pallet-bridge-relayers = { version = "0.18.0", default-features = false } -pallet-broker = { version = "0.17.0", default-features = false } +pallet-broker = { version = "0.17.2", default-features = false } pallet-child-bounties = { version = "37.0.0", default-features = false } pallet-collator-selection = { version = "19.0.0", default-features = false } pallet-collective = { version = "38.0.0", default-features = false } diff --git a/relay/kusama/src/lib.rs b/relay/kusama/src/lib.rs index 7649d2df0f..5252cf8728 100644 --- a/relay/kusama/src/lib.rs +++ b/relay/kusama/src/lib.rs @@ -1143,6 +1143,8 @@ pub enum ProxyType { NominationPools, #[codec(index = 9)] Spokesperson, + #[codec(index = 10)] + ParaRegistration, } impl Default for ProxyType { @@ -1247,6 +1249,15 @@ impl InstanceFilter for ProxyType { RuntimeCall::System(frame_system::Call::remark { .. }) | RuntimeCall::System(frame_system::Call::remark_with_event { .. }) ), + ProxyType::ParaRegistration => matches!( + c, + RuntimeCall::Registrar(paras_registrar::Call::reserve { .. }) | + RuntimeCall::Registrar(paras_registrar::Call::register { .. }) | + RuntimeCall::Utility(pallet_utility::Call::batch { .. }) | + RuntimeCall::Utility(pallet_utility::Call::batch_all { .. }) | + RuntimeCall::Utility(pallet_utility::Call::force_batch { .. }) | + RuntimeCall::Proxy(pallet_proxy::Call::remove_proxy { .. }) + ), } } fn is_superset(&self, o: &Self) -> bool { diff --git a/relay/polkadot/src/lib.rs b/relay/polkadot/src/lib.rs index 7008b5bd75..4bd27abc7d 100644 --- a/relay/polkadot/src/lib.rs +++ b/relay/polkadot/src/lib.rs @@ -1007,6 +1007,7 @@ pub enum ProxyType { CancelProxy = 6, Auction = 7, NominationPools = 8, + ParaRegistration = 9, } #[cfg(test)] @@ -1121,6 +1122,15 @@ impl InstanceFilter for ProxyType { RuntimeCall::Registrar(..) | RuntimeCall::Slots(..) ), + ProxyType::ParaRegistration => matches!( + c, + RuntimeCall::Registrar(paras_registrar::Call::reserve { .. }) | + RuntimeCall::Registrar(paras_registrar::Call::register { .. }) | + RuntimeCall::Utility(pallet_utility::Call::batch { .. }) | + RuntimeCall::Utility(pallet_utility::Call::batch_all { .. }) | + RuntimeCall::Utility(pallet_utility::Call::force_batch { .. }) | + RuntimeCall::Proxy(pallet_proxy::Call::remove_proxy { .. }) + ), } } fn is_superset(&self, o: &Self) -> bool { diff --git a/system-parachains/coretime/coretime-kusama/src/coretime.rs b/system-parachains/coretime/coretime-kusama/src/coretime.rs index a1f861e8ff..489e0a1fc4 100644 --- a/system-parachains/coretime/coretime-kusama/src/coretime.rs +++ b/system-parachains/coretime/coretime-kusama/src/coretime.rs @@ -345,6 +345,6 @@ impl pallet_broker::Config for Runtime { type PalletId = BrokerPalletId; type AdminOrigin = EnsureRoot; type SovereignAccountOf = SovereignAccountOf; - type MaxAutoRenewals = ConstU32<0>; + type MaxAutoRenewals = ConstU32<100>; type PriceAdapter = pallet_broker::CenterTargetPrice; } diff --git a/system-parachains/coretime/coretime-kusama/src/lib.rs b/system-parachains/coretime/coretime-kusama/src/lib.rs index 5ca865cd9f..c3c4fddd8e 100644 --- a/system-parachains/coretime/coretime-kusama/src/lib.rs +++ b/system-parachains/coretime/coretime-kusama/src/lib.rs @@ -186,16 +186,10 @@ parameter_types! { /// Filter: /// - Credit purchase calls until the credit system is implemented. Otherwise, users may have chance /// of locking their funds forever on purchased credits they cannot use. -/// - Auto-renew functionality until resolution of polkadot-sdk issue [#6474](https://github.com/paritytech/polkadot-sdk/issues/6474) pub struct IsFilteredBrokerCall; impl Contains for IsFilteredBrokerCall { fn contains(c: &RuntimeCall) -> bool { - matches!( - c, - RuntimeCall::Broker(pallet_broker::Call::purchase_credit { .. }) | - RuntimeCall::Broker(pallet_broker::Call::enable_auto_renew { .. }) | - RuntimeCall::Broker(pallet_broker::Call::disable_auto_renew { .. }) - ) + matches!(c, RuntimeCall::Broker(pallet_broker::Call::purchase_credit { .. })) } } diff --git a/system-parachains/coretime/coretime-polkadot/src/coretime.rs b/system-parachains/coretime/coretime-polkadot/src/coretime.rs index 4a4e438a88..bd4bed70bf 100644 --- a/system-parachains/coretime/coretime-polkadot/src/coretime.rs +++ b/system-parachains/coretime/coretime-polkadot/src/coretime.rs @@ -348,6 +348,6 @@ impl pallet_broker::Config for Runtime { type PalletId = BrokerPalletId; type AdminOrigin = EnsureRoot; type SovereignAccountOf = SovereignAccountOf; - type MaxAutoRenewals = ConstU32<0>; + type MaxAutoRenewals = ConstU32<100>; type PriceAdapter = pallet_broker::CenterTargetPrice; } diff --git a/system-parachains/coretime/coretime-polkadot/src/lib.rs b/system-parachains/coretime/coretime-polkadot/src/lib.rs index 4588effeda..ad1fd609b4 100644 --- a/system-parachains/coretime/coretime-polkadot/src/lib.rs +++ b/system-parachains/coretime/coretime-polkadot/src/lib.rs @@ -184,16 +184,13 @@ parameter_types! { /// - Credit purchase calls until the credit system is implemented. Otherwise, users may have chance /// of locking their funds forever on purchased credits they cannot use. /// - The interlace call until the relay can support this fully -/// - Auto-renew functionality until resolution of polkadot-sdk issue [#6474](https://github.com/paritytech/polkadot-sdk/issues/6474) pub struct IsFilteredBrokerCall; impl Contains for IsFilteredBrokerCall { fn contains(c: &RuntimeCall) -> bool { matches!( c, RuntimeCall::Broker(pallet_broker::Call::purchase_credit { .. }) | - RuntimeCall::Broker(pallet_broker::Call::interlace { .. }) | - RuntimeCall::Broker(pallet_broker::Call::enable_auto_renew { .. }) | - RuntimeCall::Broker(pallet_broker::Call::disable_auto_renew { .. }) + RuntimeCall::Broker(pallet_broker::Call::interlace { .. }) ) } }