Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- [#8021](https://github.com/paritytech/polkadot-sdk/pull/8021): XCMP: use batching when enqueuing inbound messages
This PR implements batching for the XCMP inbound enqueueing logic, which leads to an about ~75x performance improvement for that specific code.
- [#9202](https://github.com/paritytech/polkadot-sdk/pull/9202): `apply_authorized_force_set_current_code` does not need to consume the whole block
- Proxy type `NonTranfer`: Use a whitelist of calls and remove some not useful calls from the whitelist ([polkadot-fellows/runtimes/pull/646](https://github.com/polkadot-fellows/runtimes/pull/646))
- Add Snowbridge V2 pallets, to enable Snowbridge V2 bridging: [polkadot-fellows/runtimes/pull/796](https://github.com/polkadot-fellows/runtimes/pull/796))

## [1.6.1] 24.06.2025
Expand Down
20 changes: 13 additions & 7 deletions system-parachains/asset-hubs/asset-hub-kusama/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -549,16 +549,22 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
fn filter(&self, c: &RuntimeCall) -> bool {
match self {
ProxyType::Any => true,
ProxyType::NonTransfer => !matches!(
ProxyType::NonTransfer => matches!(

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This conflicts with the changes in the call filter of the asset hub migration... can we please pause doing refactors until AHM is done.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, you're right, sorry about that Oli!

c,
RuntimeCall::Balances { .. } |
RuntimeCall::Assets { .. } |
RuntimeCall::NftFractionalization { .. } |
RuntimeCall::Nfts { .. } |
RuntimeCall::Uniques { .. } |
RuntimeCall::System(_) |
RuntimeCall::ParachainSystem(_) |
RuntimeCall::Timestamp(_) |
// We allow calling `vest` and merging vesting schedules, but obviously not
// vested transfers.
RuntimeCall::Vesting(pallet_vesting::Call::vested_transfer { .. })
RuntimeCall::Vesting(pallet_vesting::Call::vest { .. }) |
RuntimeCall::Vesting(pallet_vesting::Call::vest_other { .. }) |
RuntimeCall::Vesting(pallet_vesting::Call::merge_schedules { .. }) |
RuntimeCall::CollatorSelection(_) |
RuntimeCall::Session(_) |
RuntimeCall::Utility(_) |
RuntimeCall::Multisig(_) |
RuntimeCall::Proxy(_) |
RuntimeCall::RemoteProxyRelayChain(_)
),
ProxyType::CancelProxy => matches!(
c,
Expand Down
18 changes: 12 additions & 6 deletions system-parachains/asset-hubs/asset-hub-polkadot/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -499,15 +499,21 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
fn filter(&self, c: &RuntimeCall) -> bool {
match self {
ProxyType::Any => true,
ProxyType::NonTransfer => !matches!(
ProxyType::NonTransfer => matches!(
c,
RuntimeCall::Balances { .. } |
RuntimeCall::Assets { .. } |
RuntimeCall::Nfts { .. } |
RuntimeCall::Uniques { .. } |
RuntimeCall::System(_) |
RuntimeCall::ParachainSystem(_) |
RuntimeCall::Timestamp(_) |
// We allow calling `vest` and merging vesting schedules, but obviously not
// vested transfers.
RuntimeCall::Vesting(pallet_vesting::Call::vested_transfer { .. })
RuntimeCall::Vesting(pallet_vesting::Call::vest { .. }) |
RuntimeCall::Vesting(pallet_vesting::Call::vest_other { .. }) |
RuntimeCall::Vesting(pallet_vesting::Call::merge_schedules { .. }) |
RuntimeCall::CollatorSelection(_) |
RuntimeCall::Session(_) |
RuntimeCall::Utility(_) |
RuntimeCall::Multisig(_) |
RuntimeCall::Proxy(_)
),
ProxyType::CancelProxy => matches!(
c,
Expand Down
25 changes: 24 additions & 1 deletion system-parachains/collectives/collectives-polkadot/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,30 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
fn filter(&self, c: &RuntimeCall) -> bool {
match self {
ProxyType::Any => true,
ProxyType::NonTransfer => !matches!(c, RuntimeCall::Balances { .. }),
ProxyType::NonTransfer => matches!(
c,
RuntimeCall::System(_) |
RuntimeCall::ParachainSystem(_) |
RuntimeCall::Timestamp(_) |
RuntimeCall::CollatorSelection(_) |
RuntimeCall::Session(_) |
RuntimeCall::Utility(_) |
RuntimeCall::Multisig(_) |
RuntimeCall::Proxy(_) |
RuntimeCall::Preimage(_) |
RuntimeCall::Alliance(_) |
RuntimeCall::AllianceMotion(_) |
RuntimeCall::FellowshipCollective(_) |
RuntimeCall::FellowshipReferenda(_) |
RuntimeCall::FellowshipCore(_) |
RuntimeCall::FellowshipSalary(_) |
RuntimeCall::FellowshipTreasury(_) |
RuntimeCall::AmbassadorCollective(_) |
RuntimeCall::AmbassadorReferenda(_) |
RuntimeCall::AmbassadorCore(_) |
RuntimeCall::AmbassadorSalary(_) |
RuntimeCall::AmbassadorTreasury(_)
),
ProxyType::CancelProxy => matches!(
c,
RuntimeCall::Proxy(pallet_proxy::Call::reject_announcement { .. }) |
Expand Down
28 changes: 17 additions & 11 deletions system-parachains/coretime/coretime-kusama/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -533,18 +533,24 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
fn filter(&self, c: &RuntimeCall) -> bool {
match self {
ProxyType::Any => true,
ProxyType::NonTransfer => !matches!(
ProxyType::NonTransfer => matches!(
c,
RuntimeCall::Balances { .. } |
// `purchase`, `renew`, `transfer` and `purchase_credit` are pretty self explanatory.
RuntimeCall::Broker(pallet_broker::Call::purchase { .. }) |
RuntimeCall::Broker(pallet_broker::Call::renew { .. }) |
RuntimeCall::Broker(pallet_broker::Call::transfer { .. }) |
RuntimeCall::Broker(pallet_broker::Call::purchase_credit { .. }) |
// `pool` doesn't transfer, but it defines the account to be paid for contributions
RuntimeCall::Broker(pallet_broker::Call::pool { .. }) |
// `assign` is essentially a transfer of a region NFT
RuntimeCall::Broker(pallet_broker::Call::assign { .. })
RuntimeCall::System(_) |
RuntimeCall::ParachainSystem(_) |
RuntimeCall::Timestamp(_) |
RuntimeCall::CollatorSelection(_) |
RuntimeCall::Session(_) |
RuntimeCall::Utility(_) |
RuntimeCall::Multisig(_) |
RuntimeCall::Proxy(_) |
// We don't allow `purchase`, `renew`, `transfer`, `purchase_credit`,
// `pool` doesn't transfer, but it defines the account to be paid for contributions,
// `assign` is essentially a transfer of a region NFT.
RuntimeCall::Broker(pallet_broker::Call::claim_revenue { .. }) |
RuntimeCall::Broker(pallet_broker::Call::drop_region { .. }) |
RuntimeCall::Broker(pallet_broker::Call::drop_contribution { .. }) |
RuntimeCall::Broker(pallet_broker::Call::drop_history { .. }) |
RuntimeCall::Broker(pallet_broker::Call::drop_renewal { .. })
),
ProxyType::CancelProxy => matches!(
c,
Expand Down
28 changes: 17 additions & 11 deletions system-parachains/coretime/coretime-polkadot/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -537,18 +537,24 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
fn filter(&self, c: &RuntimeCall) -> bool {
match self {
ProxyType::Any => true,
ProxyType::NonTransfer => !matches!(
ProxyType::NonTransfer => matches!(
c,
RuntimeCall::Balances { .. } |
// `purchase`, `renew`, `transfer` and `purchase_credit` are pretty self explanatory.
RuntimeCall::Broker(pallet_broker::Call::purchase { .. }) |
RuntimeCall::Broker(pallet_broker::Call::renew { .. }) |
RuntimeCall::Broker(pallet_broker::Call::transfer { .. }) |
RuntimeCall::Broker(pallet_broker::Call::purchase_credit { .. }) |
// `pool` doesn't transfer, but it defines the account to be paid for contributions
RuntimeCall::Broker(pallet_broker::Call::pool { .. }) |
// `assign` is essentially a transfer of a region NFT
RuntimeCall::Broker(pallet_broker::Call::assign { .. })
RuntimeCall::System(_) |
RuntimeCall::ParachainSystem(_) |
RuntimeCall::Timestamp(_) |
RuntimeCall::CollatorSelection(_) |
RuntimeCall::Session(_) |
RuntimeCall::Utility(_) |
RuntimeCall::Multisig(_) |
RuntimeCall::Proxy(_) |
// We don't allow `purchase`, `renew`, `transfer`, `purchase_credit`,
// `pool` doesn't transfer, but it defines the account to be paid for contributions,
// `assign` is essentially a transfer of a region NFT.
RuntimeCall::Broker(pallet_broker::Call::claim_revenue { .. }) |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes done 48b9837

RuntimeCall::Broker(pallet_broker::Call::drop_region { .. }) |
RuntimeCall::Broker(pallet_broker::Call::drop_contribution { .. }) |
RuntimeCall::Broker(pallet_broker::Call::drop_history { .. }) |
RuntimeCall::Broker(pallet_broker::Call::drop_renewal { .. })
),
ProxyType::CancelProxy => matches!(
c,
Expand Down
22 changes: 20 additions & 2 deletions system-parachains/encointer/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,26 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
fn filter(&self, c: &RuntimeCall) -> bool {
match self {
ProxyType::Any => true,
ProxyType::NonTransfer =>
!matches!(c, RuntimeCall::Balances { .. } | RuntimeCall::EncointerBalances { .. }),
ProxyType::NonTransfer => matches!(
c,
RuntimeCall::System(_) |
RuntimeCall::ParachainSystem(_) |
RuntimeCall::Timestamp(_) |
RuntimeCall::CollatorSelection(_) |
RuntimeCall::Session(_) |
RuntimeCall::Utility(_) |
RuntimeCall::Proxy(_) |
RuntimeCall::Collective(_) |
RuntimeCall::Membership(_) |
RuntimeCall::EncointerScheduler(_) |
RuntimeCall::EncointerCeremonies(_) |
RuntimeCall::EncointerCommunities(_) |
RuntimeCall::EncointerBazaar(_) |
RuntimeCall::EncointerReputationCommitments(_) |
RuntimeCall::EncointerFaucet(_) |
RuntimeCall::EncointerDemocracy(_) |
RuntimeCall::EncointerTreasuries(_)
Comment on lines +203 to +210

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@clangenb could you verify these?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. looks good to me!

),
ProxyType::BazaarEdit => matches!(
c,
RuntimeCall::EncointerBazaar(EncointerBazaarCall::create_offering { .. }) |
Expand Down
40 changes: 32 additions & 8 deletions system-parachains/people/people-kusama/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -486,15 +486,39 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
fn filter(&self, c: &RuntimeCall) -> bool {
match self {
ProxyType::Any => true,
ProxyType::NonTransfer => !matches!(
ProxyType::NonTransfer => matches!(
c,
RuntimeCall::Balances { .. } |
// `request_judgement` puts up a deposit to transfer to a registrar
RuntimeCall::Identity(pallet_identity::Call::request_judgement { .. }) |
// `set_subs` and `add_sub` will take and repatriate deposits from the proxied
// account, should not be allowed.
RuntimeCall::Identity(pallet_identity::Call::add_sub { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_subs { .. })
RuntimeCall::System(_) |
RuntimeCall::ParachainSystem(_) |
RuntimeCall::Timestamp(_) |
RuntimeCall::CollatorSelection(_) |
RuntimeCall::Session(_) |
RuntimeCall::Utility(_) |
RuntimeCall::Multisig(_) |
RuntimeCall::Proxy(_) |
// We don't allow:
// `request_judgement` puts up a deposit to transfer to a registrar,
// `set_subs` and `add_sub` will take and repatriate deposits from the proxied
// account, should not be allowed.
RuntimeCall::Identity(pallet_identity::Call::add_registrar { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_identity { .. }) |
RuntimeCall::Identity(pallet_identity::Call::clear_identity { .. }) |
RuntimeCall::Identity(pallet_identity::Call::cancel_request { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_fee { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_account_id { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_fields { .. }) |
RuntimeCall::Identity(pallet_identity::Call::provide_judgement { .. }) |
RuntimeCall::Identity(pallet_identity::Call::kill_identity { .. }) |
RuntimeCall::Identity(pallet_identity::Call::rename_sub { .. }) |
RuntimeCall::Identity(pallet_identity::Call::remove_sub { .. }) |
RuntimeCall::Identity(pallet_identity::Call::quit_sub { .. }) |
RuntimeCall::Identity(pallet_identity::Call::add_username_authority { .. }) |
RuntimeCall::Identity(
pallet_identity::Call::remove_username_authority { .. }
) | RuntimeCall::Identity(pallet_identity::Call::set_username_for { .. }) |
RuntimeCall::Identity(pallet_identity::Call::accept_username { .. }) |
RuntimeCall::Identity(pallet_identity::Call::remove_expired_approval { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_primary_username { .. })
),
ProxyType::CancelProxy => matches!(
c,
Expand Down
40 changes: 32 additions & 8 deletions system-parachains/people/people-polkadot/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -473,15 +473,39 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
fn filter(&self, c: &RuntimeCall) -> bool {
match self {
ProxyType::Any => true,
ProxyType::NonTransfer => !matches!(
ProxyType::NonTransfer => matches!(
c,
RuntimeCall::Balances { .. } |
// `request_judgement` puts up a deposit to transfer to a registrar
RuntimeCall::Identity(pallet_identity::Call::request_judgement { .. }) |
// `set_subs` and `add_sub` will take and repatriate deposits from the proxied
// account, should not be allowed.
RuntimeCall::Identity(pallet_identity::Call::add_sub { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_subs { .. })
RuntimeCall::System(_) |
RuntimeCall::ParachainSystem(_) |
RuntimeCall::Timestamp(_) |
RuntimeCall::CollatorSelection(_) |
RuntimeCall::Session(_) |
RuntimeCall::Utility(_) |
RuntimeCall::Multisig(_) |
RuntimeCall::Proxy(_) |
// We don't allow:
// `request_judgement` puts up a deposit to transfer to a registrar,
// `set_subs` and `add_sub` will take and repatriate deposits from the proxied
// account, should not be allowed.
RuntimeCall::Identity(pallet_identity::Call::add_registrar { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_identity { .. }) |
RuntimeCall::Identity(pallet_identity::Call::clear_identity { .. }) |
RuntimeCall::Identity(pallet_identity::Call::cancel_request { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_fee { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_account_id { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_fields { .. }) |
RuntimeCall::Identity(pallet_identity::Call::provide_judgement { .. }) |
RuntimeCall::Identity(pallet_identity::Call::kill_identity { .. }) |
RuntimeCall::Identity(pallet_identity::Call::rename_sub { .. }) |
RuntimeCall::Identity(pallet_identity::Call::remove_sub { .. }) |
RuntimeCall::Identity(pallet_identity::Call::quit_sub { .. }) |
RuntimeCall::Identity(pallet_identity::Call::add_username_authority { .. }) |
RuntimeCall::Identity(
pallet_identity::Call::remove_username_authority { .. }
) | RuntimeCall::Identity(pallet_identity::Call::set_username_for { .. }) |
RuntimeCall::Identity(pallet_identity::Call::accept_username { .. }) |
RuntimeCall::Identity(pallet_identity::Call::remove_expired_approval { .. }) |
RuntimeCall::Identity(pallet_identity::Call::set_primary_username { .. })
),
ProxyType::CancelProxy => matches!(
c,
Expand Down
Loading