Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
053a8ab
use upstream pay module
dhirajs0 Feb 4, 2026
830b2e3
fix: remove local pay moduel deps
dhirajs0 Feb 4, 2026
7e7a72c
fix : remove local pay module implementation
dhirajs0 Feb 4, 2026
36a3f4b
feat: multi-asset-bounties added to KAH
dhirajs0 Feb 4, 2026
f763d3d
dep: add create multi asset bounties
dhirajs0 Feb 4, 2026
16a09eb
fix: clippy
dhirajs0 Feb 6, 2026
2dc6808
fix: fmt and clippy
dhirajs0 Feb 6, 2026
36c8c91
bump spec version of KAH
dhirajs0 Feb 6, 2026
8966f2c
fix: add cargo.lock
dhirajs0 Feb 6, 2026
12b77ce
fix: taplo and zepter
dhirajs0 Feb 6, 2026
e98be38
feat: add multi asset bounties pallet to assset hub polkadot
dhirajs0 Feb 9, 2026
26ba824
fix: reused existing constants from bounties pallet
dhirajs0 Feb 11, 2026
651124a
fix: use local bounty account derivation with prefix mbt and mcb
dhirajs0 Feb 11, 2026
9955392
fix: zepter
dhirajs0 Feb 11, 2026
414965a
docs: update CHANGELOG for multi-asset bounties and local pay removal
dhirajs0 Feb 20, 2026
59d2ba5
Update from ggwpez running command 'bench --runtime asset-hub-kusama …
actions-user Feb 21, 2026
0ed0e67
Update from ggwpez running command 'bench --runtime asset-hub-polkado…
actions-user Feb 21, 2026
c803729
Merge branch 'main' into dhiraj-add-multi-asset-bounties-and-upgrade-…
sigurpol Feb 23, 2026
e3bec5d
Merge branch 'main' into dhiraj-add-multi-asset-bounties-and-upgrade-…
sigurpol Feb 23, 2026
37638b5
Merge branch 'main' into dhiraj-add-multi-asset-bounties-and-upgrade-…
dhirajs0 Feb 23, 2026
cb2d77e
Merge branch 'main' into dhiraj-add-multi-asset-bounties-and-upgrade-…
dhirajs0 Feb 24, 2026
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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

- Add `pallet-assets` on Polkadot People to support HOLLAR (and more assets in the future) ([polkadot-fellows/runtimes/pull/962](https://github.com/polkadot-fellows/runtimes/pull/962))
- Encointer: add pallets `offline-payment` and `reputation-rings` and fixes ([polkadot-fellows/runtimes/pull/1082](https://github.com/polkadot-fellows/runtimes/pull/1082))
- Add `pallet_multi_asset_bounties` pallet to Asset Hub Kusama and Asset Hub Polkadot for multi-asset bounty support ([#1070](https://github.com/polkadot-fellows/runtimes/pull/1070))

### Changed

- Remove local pay module in favor of upstream implementation ([#1070](https://github.com/polkadot-fellows/runtimes/pull/1070))
- Update Kusama submission deposit to 3.333KSM as per [ref 588](https://kusama.subsquare.io/referenda/558)
- Re-add StakingOperator proxy type and allow Staking proxy to add/remove a StakingOperator [#1033](https://github.com/polkadot-fellows/runtimes/pull/1033)
- Fix check-migration(asset-hub-polkadot) CI job [#1057](https://github.com/polkadot-fellows/runtimes/pull/1057)
Expand Down
9 changes: 3 additions & 6 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,7 @@ pallet-insecure-randomness-collective-flip = { version = "33.0.0", default-featu
pallet-membership = { version = "45.0.0", default-features = false }
pallet-message-queue = { version = "48.0.0", default-features = false }
pallet-mmr = { version = "45.0.0", default-features = false }
pallet-multi-asset-bounties = { version = "0.2.1", default-features = false }
pallet-multisig = { version = "45.0.0", default-features = false }
pallet-nft-fractionalization = { version = "29.0.0", default-features = false }
pallet-nfts = { version = "39.0.0", default-features = false }
Expand Down
12 changes: 10 additions & 2 deletions system-parachains/asset-hubs/asset-hub-kusama/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ bp-bridge-hub-kusama = { workspace = true }
bp-bridge-hub-polkadot = { workspace = true }
kusama-runtime-constants = { workspace = true }
system-parachains-constants = { workspace = true }
system-parachains-common = { workspace = true }
system-parachains-common = { workspace = true, features = ["multi-asset-bounties"] }
pallet-remote-proxy = { workspace = true }

# Substrate
Expand Down Expand Up @@ -56,6 +56,7 @@ pallet-indices = { workspace = true }
pallet-message-queue = { workspace = true }
pallet-migrations = { workspace = true }
pallet-multisig = { workspace = true }
pallet-multi-asset-bounties = { workspace = true }
pallet-nomination-pools = { workspace = true }
pallet-nft-fractionalization = { workspace = true }
pallet-nfts = { workspace = true }
Expand Down Expand Up @@ -198,6 +199,7 @@ runtime-benchmarks = [
"pallet-indices/runtime-benchmarks",
"pallet-message-queue/runtime-benchmarks",
"pallet-migrations/runtime-benchmarks",
"pallet-multi-asset-bounties/runtime-benchmarks",
"pallet-multisig/runtime-benchmarks",
"pallet-nft-fractionalization/runtime-benchmarks",
"pallet-nfts/runtime-benchmarks",
Expand Down Expand Up @@ -277,6 +279,7 @@ try-runtime = [
"pallet-indices/try-runtime",
"pallet-message-queue/try-runtime",
"pallet-migrations/try-runtime",
"pallet-multi-asset-bounties/try-runtime",
"pallet-multisig/try-runtime",
"pallet-nft-fractionalization/try-runtime",
"pallet-nfts/try-runtime",
Expand Down Expand Up @@ -365,6 +368,7 @@ std = [
"pallet-indices/std",
"pallet-message-queue/std",
"pallet-migrations/std",
"pallet-multi-asset-bounties/std",
"pallet-multisig/std",
"pallet-nft-fractionalization/std",
"pallet-nfts-runtime-api/std",
Expand Down Expand Up @@ -441,4 +445,8 @@ metadata-hash = ["substrate-wasm-builder?/metadata-hash"]
# A feature that should be enabled when the runtime should be built for on-chain
# deployment. This will disable stuff that shouldn't be part of the on-chain wasm
# to make it smaller, like logging for example.
on-chain-release-build = ["kusama-ahm", "metadata-hash", "sp-api/disable-logging"]
on-chain-release-build = [
"kusama-ahm",
"metadata-hash",
"sp-api/disable-logging",
]
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ pub fn call_allowed_status(
Bounties(..) => OFF,
ChildBounties(..) => OFF,
Claims(..) => OFF,
MultiAssetBounties(..) => OFF,
CollatorSelection(..) => ON, // Why?
ConvictionVoting(..) => OFF,
CumulusXcm(..) => OFF, /* Empty call enum, see https://github.com/paritytech/polkadot-sdk/issues/8222 */
Expand Down Expand Up @@ -172,6 +173,7 @@ pub fn call_allowed_before_migration(
// Governance disabled before migration starts.
Bounties(..) => OFF,
ChildBounties(..) => OFF,
MultiAssetBounties(..) => OFF,
ConvictionVoting(..) => OFF,
Referenda(..) => OFF,
Treasury(..) => OFF,
Expand Down
4 changes: 4 additions & 0 deletions system-parachains/asset-hubs/asset-hub-kusama/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -654,6 +654,7 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
RuntimeCall::Treasury(..) |
RuntimeCall::Bounties(..) |
RuntimeCall::ChildBounties(..) |
RuntimeCall::MultiAssetBounties(..) |
RuntimeCall::ConvictionVoting(..) |
RuntimeCall::Referenda(..) |
// Not on AH RuntimeCall::FellowshipCollective(..) |
Expand Down Expand Up @@ -690,6 +691,7 @@ impl InstanceFilter<RuntimeCall> for ProxyType {
RuntimeCall::Bounties(..) |
RuntimeCall::Utility(..) |
RuntimeCall::ChildBounties(..) |
RuntimeCall::MultiAssetBounties(..) |
// OpenGov calls
RuntimeCall::ConvictionVoting(..) |
RuntimeCall::Referenda(..) |
Expand Down Expand Up @@ -1693,6 +1695,7 @@ construct_runtime!(
Bounties: pallet_bounties = 95,
ChildBounties: pallet_child_bounties = 96,
AssetRate: pallet_asset_rate = 97,
MultiAssetBounties: pallet_multi_asset_bounties = 98,

// Asset Hub Migration in the 250s
AhOps: pallet_ah_ops = 254,
Expand Down Expand Up @@ -1902,6 +1905,7 @@ mod benches {
[pallet_whitelist, Whitelist]
[pallet_bounties, Bounties]
[pallet_child_bounties, ChildBounties]
[pallet_multi_asset_bounties, MultiAssetBounties]
[pallet_asset_rate, AssetRate]
[pallet_ah_migrator, AhMigrator]
[pallet_indices, Indices]
Expand Down
63 changes: 59 additions & 4 deletions system-parachains/asset-hubs/asset-hub-kusama/src/treasury.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@ use super::*;

use crate::governance::{Treasurer, TreasurySpender};
use frame_support::traits::{
tokens::UnityOrOuterConversion, Currency, FromContains, Get, OnUnbalanced,
fungible::HoldConsideration, tokens::UnityOrOuterConversion, Currency, FromContains, Get,
OnUnbalanced,
};
use parachains_common::pay::VersionedLocatableAccount;
use parachains_common::pay::{AccountIdToLocalLocation, LocalPay, VersionedLocatableAccount};
use polkadot_runtime_common::impls::{ContainsParts, VersionedLocatableAsset};
use scale_info::TypeInfo;
use sp_runtime::traits::IdentityLookup;
Expand All @@ -38,7 +39,7 @@ parameter_types! {
pub TreasuryAccount: AccountId = Treasury::account_id();
}

pub type TreasuryPaymaster = system_parachains_common::pay::LocalPay<
pub type TreasuryPaymaster = parachains_common::pay::LocalPay<
NativeAndAssets,
TreasuryAccount,
xcm_config::LocationToAccountId,
Expand Down Expand Up @@ -113,7 +114,7 @@ impl pallet_treasury::Config for Runtime {
type BalanceConverter = AssetRateWithNative;
type PayoutPeriod = PayoutSpendPeriod;
#[cfg(feature = "runtime-benchmarks")]
type BenchmarkHelper = system_parachains_common::pay::benchmarks::LocalPayArguments<
type BenchmarkHelper = parachains_common::pay::benchmarks::LocalPayArguments<
xcm_config::TrustBackedAssetsPalletIndex,
>;
type BlockNumberProvider = RelaychainDataProvider<Runtime>;
Expand Down Expand Up @@ -162,6 +163,60 @@ impl pallet_child_bounties::Config for Runtime {
type WeightInfo = weights::pallet_child_bounties::WeightInfo<Runtime>;
}

parameter_types! {
pub const MultiAssetCuratorHoldReason: RuntimeHoldReason =
RuntimeHoldReason::MultiAssetBounties(pallet_multi_asset_bounties::HoldReason::CuratorDeposit);
}

impl pallet_multi_asset_bounties::Config for Runtime {
type Balance = Balance;
type RejectOrigin = EitherOfDiverse<EnsureRoot<AccountId>, Treasurer>;
type SpendOrigin = TreasurySpender;
type AssetKind = VersionedLocatableAsset;
type Beneficiary = VersionedLocatableAccount;
type BeneficiaryLookup = IdentityLookup<Self::Beneficiary>;
type BountyValueMinimum = BountyValueMinimum;
type ChildBountyValueMinimum = ChildBountyValueMinimum;
type MaxActiveChildBountyCount = MaxActiveChildBountyCount;
type WeightInfo = weights::pallet_multi_asset_bounties::WeightInfo<Runtime>;
type FundingSource = pallet_multi_asset_bounties::PalletIdAsFundingSource<
TreasuryPalletId,
Runtime,
AccountIdToLocalLocation,
>;
type BountySource =
system_parachains_common::multi_asset_bounty_sources::MultiAssetBountySourceFromPalletId<
TreasuryPalletId,
Runtime,
AccountIdToLocalLocation,
>;
type ChildBountySource =
system_parachains_common::multi_asset_bounty_sources::MultiAssetChildBountySourceFromPalletId<
TreasuryPalletId,
Runtime,
AccountIdToLocalLocation,
>;
type Paymaster = LocalPay<NativeAndAssets, AccountId, xcm_config::LocationToAccountId>;
type BalanceConverter = AssetRateWithNative;
type Preimages = Preimage;
type Consideration = HoldConsideration<
AccountId,
Balances,
MultiAssetCuratorHoldReason,
pallet_multi_asset_bounties::CuratorDepositAmount<
CuratorDepositMultiplier,
CuratorDepositMin,
CuratorDepositMax,
Balance,
>,
Balance,
>;
#[cfg(feature = "runtime-benchmarks")]
type BenchmarkHelper = parachains_common::pay::benchmarks::LocalPayWithSourceArguments<
xcm_config::TrustBackedAssetsPalletIndex,
>;
}

/// The [frame_support::traits::tokens::ConversionFromAssetBalance] implementation provided by the
/// `AssetRate` pallet instance.
///
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading