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

Introduce XcmFeesToAccount fee manager #1234

Merged
merged 153 commits into from
Oct 18, 2023
Merged
Show file tree
Hide file tree
Changes from 126 commits
Commits
Show all changes
153 commits
Select commit Hold shift + click to select a range
b862137
Introduce XcmFeesToAccount fee manager
KiChjang Apr 4, 2023
b1ca17e
Put system parachain IDs into consts
KiChjang Apr 4, 2023
fa6e6e2
Fixes
KiChjang Apr 4, 2023
48d3a18
Remove XcmFeesToAccount config for Westend
KiChjang Apr 4, 2023
cdc288a
Include Encointer as a system parachain
KiChjang Apr 4, 2023
dc48ba3
Emit warning when deposit_asset fails
KiChjang Apr 5, 2023
1299ad9
Add comment on what happens when deposit_asset errors
KiChjang Apr 5, 2023
8d7a422
Fixes
KiChjang Apr 5, 2023
6f1eaac
Move SystemParachains to constants
KiChjang Apr 6, 2023
24c560e
Fixes
KiChjang Apr 6, 2023
72b8af5
cargo fmt
KiChjang Apr 7, 2023
655b864
Added BridgeHubs constants (#7053)
bkontur Apr 12, 2023
a89c6c2
Add SystemParachain type to Westmint
KiChjang Apr 13, 2023
9512b45
Waive fee handling during benchmarking
KiChjang Apr 28, 2023
e06740f
Fixes
KiChjang Apr 28, 2023
13226de
Fixes
KiChjang Apr 28, 2023
2fee6e5
Rename to ASSET_HUB_ID
KiChjang Jun 22, 2023
758b977
Rename all asset parachains to AssetHub
KiChjang Jun 22, 2023
3a9bcb8
Fixes
KiChjang Aug 28, 2023
298ab71
Send xcm fees to local treaury
gilescope Apr 5, 2023
13f9577
should not include self
gilescope Apr 5, 2023
898645c
Add collectives and contracts.
gilescope Apr 5, 2023
53dfe45
Less error-prone specifying of system parachains
gilescope Apr 7, 2023
58ce029
Typo fix
KiChjang Aug 29, 2023
8853c4a
Fixes
KiChjang Aug 29, 2023
bb36077
Test for `pallet_xcm::reserve_transfer_assets` with paid XcmRouter
bkontur Aug 7, 2023
0681ffd
Fix another assert
bkontur Aug 7, 2023
58fa19f
Potential fix?
bkontur Aug 7, 2023
e07bc53
Even easier
bkontur Aug 7, 2023
d57a819
Potential fix for `fn respond(`
bkontur Aug 7, 2023
3027720
`set_router_fee_for_destination` inside `new_test_ext`
bkontur Aug 7, 2023
7179f08
Added TestPaidForPara3000SendXcm to test
bkontur Aug 8, 2023
9c26367
TODO: remove dependency of `is_waived` on `runtime-benchmarks`
bkontur Aug 8, 2023
510ebc7
Fixed benchmarks to be `FeeManager/XcmFeesToAccount` aware
bkontur Aug 9, 2023
3d372ba
Extract logic to common place to be reused by different runtimes (rel…
bkontur Aug 13, 2023
db595f9
Fix rococo xcm benchmarks
bkontur Aug 14, 2023
2f64173
".git/.scripts/commands/fmt/fmt.sh"
Aug 16, 2023
caa703c
Nits
bkontur Aug 16, 2023
2f0161e
Update polkadot/xcm/xcm-builder/tests/scenarios.rs
KiChjang Aug 29, 2023
b3a62f7
Merge branch 'master' into kckyeung/xcm-fees-manager
KiChjang Aug 29, 2023
84cf8ce
Fixes
KiChjang Aug 29, 2023
78357aa
Improve docs
KiChjang Aug 29, 2023
a9a3f7e
Doc link
KiChjang Aug 29, 2023
a343a07
cargo fmt
KiChjang Aug 29, 2023
680b321
Implement FeeTracker on the XCMP queue pallet
KiChjang Aug 30, 2023
abf8764
Merge remote-tracking branch 'origin/master' into kckyeung/xcm-fees-m…
KiChjang Sep 9, 2023
4a9a309
Fixes
KiChjang Sep 9, 2023
42c80f1
Formatting
KiChjang Sep 9, 2023
760fb9b
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 13, 2023
8ceea34
Add default DeliveryHelper for system parachains
franciscoaguirre Sep 13, 2023
d0df126
Typo
KiChjang Sep 14, 2023
ca69936
Create DeliveryHelper for reserve chains
KiChjang Sep 14, 2023
6469962
Fixes
KiChjang Sep 14, 2023
d29d3a1
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 15, 2023
4f98070
Fix teleports_for_foreign_assets_works test
franciscoaguirre Sep 15, 2023
af68790
Fix teleports_for_native_asset_works
franciscoaguirre Sep 15, 2023
0ccb348
Fix some clippy issues
franciscoaguirre Sep 15, 2023
2748e68
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 15, 2023
8a81521
Fix faulty import
franciscoaguirre Sep 15, 2023
0fd77b7
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 16, 2023
cd4d023
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 18, 2023
678effb
Fix topic issue in tests
franciscoaguirre Sep 18, 2023
36b5833
Fix topic issue in another test
franciscoaguirre Sep 18, 2023
1d439b9
Stop asserting the expected message
franciscoaguirre Sep 18, 2023
6c0e859
Remove unnecessary mut
franciscoaguirre Sep 18, 2023
51a35fb
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 18, 2023
1a20dbb
".git/.scripts/commands/fmt/fmt.sh"
Sep 18, 2023
56383d7
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 25, 2023
ed5fd90
Fix asset-hub-kusama-integration-tests tests
franciscoaguirre Sep 26, 2023
1cfec49
Fix asset-hub-westend-integration-tests tests
franciscoaguirre Sep 26, 2023
59eb4fb
Fix asset-hub-polkadot-integration-tests tests
franciscoaguirre Sep 26, 2023
1e37646
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 26, 2023
b1b7ce8
Refactor xcm helper to a common crate
franciscoaguirre Sep 26, 2023
a71219a
Fix feature propagation
franciscoaguirre Sep 26, 2023
c4fe1ac
".git/.scripts/commands/fmt/fmt.sh"
Sep 26, 2023
f94fc1d
Fix feature propagation for std
franciscoaguirre Sep 26, 2023
b555e59
Fixes
franciscoaguirre Sep 26, 2023
79d8020
Format features
franciscoaguirre Sep 26, 2023
64afc86
".git/.scripts/commands/fmt/fmt.sh"
Sep 26, 2023
797ef39
Fix tests with runtime-benchmarks
franciscoaguirre Sep 26, 2023
7e85258
Fix pallet-xcm tests
franciscoaguirre Sep 26, 2023
6e089e3
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 27, 2023
792f197
Fix polkadot-collectives and bridge-hub-rococo tests
franciscoaguirre Sep 27, 2023
73f2731
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 27, 2023
0c5980f
Fix license issue
franciscoaguirre Sep 27, 2023
72718fd
Remove dbg
franciscoaguirre Sep 27, 2023
3af7624
Change xcm delivery fee helpers to work with UMP
franciscoaguirre Sep 27, 2023
33746fc
Remove remnant from UMP branch
franciscoaguirre Sep 27, 2023
231f548
Remove remnant from UMP branch
franciscoaguirre Sep 27, 2023
36fd612
Fix collectives tests
franciscoaguirre Sep 27, 2023
8d525f7
Wrong constants module being imported
franciscoaguirre Sep 27, 2023
fb4ff56
Add SetFeesMode to expected message in PayOverXcm tests
franciscoaguirre Sep 27, 2023
65c0fc6
Fix ambiguous trait calls
franciscoaguirre Sep 27, 2023
268fa71
Updated lock
franciscoaguirre Sep 27, 2023
ce3d091
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 27, 2023
eecbb12
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 27, 2023
fce81f1
".git/.scripts/commands/fmt/fmt.sh"
Sep 27, 2023
37cd57a
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 27, 2023
fc97690
Remove conflict
franciscoaguirre Sep 27, 2023
a28be66
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 27, 2023
fe48b31
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 28, 2023
4141b93
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 29, 2023
598516e
Add missing import
franciscoaguirre Sep 29, 2023
b9697b6
Remove polkadot and kusama constants
franciscoaguirre Sep 29, 2023
a38ee4c
Remove hardcoded constant
franciscoaguirre Sep 29, 2023
cd11b32
Fix CI
franciscoaguirre Sep 29, 2023
4f5759a
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Sep 29, 2023
df2ff2d
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 2, 2023
29f8003
Address feedback
franciscoaguirre Oct 2, 2023
ec36b49
".git/.scripts/commands/fmt/fmt.sh"
Oct 2, 2023
7329a72
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 3, 2023
6355068
Default FeeManager shouldn't waive fees
franciscoaguirre Oct 4, 2023
9fd00c2
Remove changes to polkadot and kusama system parachains
franciscoaguirre Oct 4, 2023
e30bae6
Update lockfile
franciscoaguirre Oct 4, 2023
d95d13c
Fix emulated tests
franciscoaguirre Oct 5, 2023
842c78b
Tackle no delivery fees scenario in runtime tests
franciscoaguirre Oct 6, 2023
e7e5729
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 9, 2023
1fd76fa
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 10, 2023
53efd8f
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 11, 2023
b062437
Format features
franciscoaguirre Oct 11, 2023
c1c4805
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 11, 2023
b79b016
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 11, 2023
18bcdec
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 12, 2023
73ad0fc
Add UMP pricing (#1556)
franciscoaguirre Oct 12, 2023
9a8e138
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 12, 2023
c7043b8
Merge branch 'master' into kckyeung/xcm-fees-manager
kianenigma Oct 13, 2023
3bd7e28
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 13, 2023
9f0843c
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 17, 2023
97aab4d
Add tests for XCMP and UMP delivery fees
franciscoaguirre Oct 17, 2023
7f4d6d9
Remove an expect
franciscoaguirre Oct 17, 2023
1e187c5
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 17, 2023
5b427bb
Add missing import
franciscoaguirre Oct 17, 2023
fad641e
Remove unused import
franciscoaguirre Oct 17, 2023
6a93770
Move warn to trace
franciscoaguirre Oct 17, 2023
45b9245
".git/.scripts/commands/fmt/fmt.sh"
Oct 17, 2023
5737b62
Add prdoc
franciscoaguirre Oct 17, 2023
96fd58e
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 18, 2023
9c1fced
Fix function call outside of externalities
franciscoaguirre Oct 18, 2023
4e075cf
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 18, 2023
ff3cf19
Fix rococo bridge hub test
franciscoaguirre Oct 18, 2023
dde8475
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 18, 2023
794a52d
Remove 'Here' from waived locations
franciscoaguirre Oct 18, 2023
237d25d
Fix test
franciscoaguirre Oct 18, 2023
4686838
Add XcmFeesToAccount to westend runtime
franciscoaguirre Oct 18, 2023
6a75e67
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 18, 2023
bf9e431
".git/.scripts/commands/fmt/fmt.sh"
Oct 18, 2023
74bb3e0
Add delivery fees to asset hub rococo tests
franciscoaguirre Oct 18, 2023
997a426
".git/.scripts/commands/fmt/fmt.sh"
Oct 18, 2023
4df9871
Merge branch 'master' into kckyeung/xcm-fees-manager
franciscoaguirre Oct 18, 2023
ffcd09f
Fix rococo benchmarks
franciscoaguirre Oct 18, 2023
b24cc02
Fix asset hub rococo bridge test for now
franciscoaguirre Oct 18, 2023
a4e332f
Use derive impl for balances in mock
franciscoaguirre Oct 18, 2023
f3a5ce6
".git/.scripts/commands/fmt/fmt.sh"
Oct 18, 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
15 changes: 15 additions & 0 deletions Cargo.lock

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

4 changes: 4 additions & 0 deletions cumulus/pallets/parachain-system/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ sp-version = { path = "../../../substrate/primitives/version", default-features

# Polkadot
polkadot-parachain-primitives = { path = "../../../polkadot/parachain", default-features = false, features = [ "wasm-api" ]}
polkadot-runtime-parachains = { path = "../../../polkadot/runtime/parachains", default-features = false }
xcm = { package = "staging-xcm", path = "../../../polkadot/xcm", default-features = false}

# Cumulus
Expand Down Expand Up @@ -63,6 +64,7 @@ std = [
"frame-system/std",
"log/std",
"polkadot-parachain-primitives/std",
"polkadot-runtime-parachains/std",
"scale-info/std",
"sp-core/std",
"sp-externalities/std",
Expand All @@ -80,12 +82,14 @@ runtime-benchmarks = [
"frame-support/runtime-benchmarks",
"frame-system/runtime-benchmarks",
"polkadot-parachain-primitives/runtime-benchmarks",
"polkadot-runtime-parachains/runtime-benchmarks",
"sp-runtime/runtime-benchmarks",
]

try-runtime = [
"frame-support/try-runtime",
"frame-system/try-runtime",
"polkadot-runtime-parachains/try-runtime",
"sp-runtime/try-runtime",
]

Expand Down
90 changes: 87 additions & 3 deletions cumulus/pallets/parachain-system/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,15 @@ use frame_support::{
};
use frame_system::{ensure_none, ensure_root, pallet_prelude::HeaderFor};
use polkadot_parachain_primitives::primitives::RelayChainBlockNumber;
use polkadot_runtime_parachains::FeeTracker;
use scale_info::TypeInfo;
use sp_runtime::{
traits::{Block as BlockT, BlockNumberProvider, Hash},
transaction_validity::{
InvalidTransaction, TransactionLongevity, TransactionSource, TransactionValidity,
ValidTransaction,
},
DispatchError, RuntimeDebug,
DispatchError, FixedU128, RuntimeDebug, Saturating,
};
use sp_std::{cmp, collections::btree_map::BTreeMap, prelude::*};
use xcm::latest::XcmHash;
Expand Down Expand Up @@ -177,6 +178,20 @@ where
check_version: bool,
}

pub mod ump_constants {
use super::FixedU128;

/// `host_config.max_upward_queue_size / THRESHOLD_FACTOR` is the threshold after which delivery
/// starts getting exponentially more expensive.
/// `2` means the price starts to increase when queue is half full.
pub const THRESHOLD_FACTOR: u32 = 2;
/// The base number the delivery fee factor gets multiplied by every time it is increased.
/// Also the number it gets divided by when decreased.
pub const EXPONENTIAL_FEE_BASE: FixedU128 = FixedU128::from_rational(105, 100); // 1.05
/// The base number message size in KB is multiplied by before increasing the fee factor.
pub const MESSAGE_SIZE_FEE_BASE: FixedU128 = FixedU128::from_rational(1, 1000); // 0.001
}

#[frame_support::pallet]
pub mod pallet {
use super::*;
Expand Down Expand Up @@ -240,6 +255,9 @@ pub mod pallet {

#[pallet::hooks]
impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {
/// Handles actually sending upward messages by moving them from `PendingUpwardMessages` to
/// `UpwardMessages`. Decreases the delivery fee factor if after sending messages, the queue
/// total size is less than the threshold (see [`ump_constants::THRESHOLD_FACTOR`]).
fn on_finalize(_: BlockNumberFor<T>) {
<DidSetValidationCode<T>>::kill();
<UpgradeRestrictionSignal<T>>::kill();
Expand Down Expand Up @@ -326,6 +344,17 @@ pub mod pallet {
UpwardMessages::<T>::put(&up[..num as usize]);
*up = up.split_off(num as usize);

// If the total size of the pending messages is less than the threshold,
// we decrease the fee factor, since the queue is less congested.
// This makes delivery of new messages cheaper.
let threshold = host_config
.max_upward_queue_size
.saturating_div(ump_constants::THRESHOLD_FACTOR);
let remaining_total_size: usize = up.iter().map(UpwardMessage::len).sum();
if remaining_total_size <= threshold as usize {
Self::decrease_fee_factor(());
}

(num, total_size)
});

Expand Down Expand Up @@ -721,7 +750,7 @@ pub mod pallet {
StorageValue<_, Vec<Ancestor<T::Hash>>, ValueQuery>;

/// Storage field that keeps track of bandwidth used by the unincluded segment along with the
/// latest the latest HRMP watermark. Used for limiting the acceptance of new blocks with
/// latest HRMP watermark. Used for limiting the acceptance of new blocks with
/// respect to relay chain constraints.
#[pallet::storage]
pub(super) type AggregatedUnincludedSegment<T: Config> =
Expand Down Expand Up @@ -860,6 +889,17 @@ pub mod pallet {
pub(super) type PendingUpwardMessages<T: Config> =
StorageValue<_, Vec<UpwardMessage>, ValueQuery>;

/// Initialization value for the delivery fee factor for UMP.
#[pallet::type_value]
pub fn UpwardInitialDeliveryFeeFactor() -> FixedU128 {
FixedU128::from_u32(1)
}

/// The factor to multiply the base delivery fee by for UMP.
#[pallet::storage]
pub(super) type UpwardDeliveryFeeFactor<T: Config> =
StorageValue<_, FixedU128, ValueQuery, UpwardInitialDeliveryFeeFactor>;

/// The number of HRMP messages we observed in `on_initialize` and thus used that number for
/// announcing the weight of `on_initialize` and `on_finalize`.
#[pallet::storage]
Expand Down Expand Up @@ -976,6 +1016,31 @@ impl<T: Config> Pallet<T> {
}
}

impl<T: Config> FeeTracker for Pallet<T> {
type Id = ();

fn get_fee_factor(_: Self::Id) -> FixedU128 {
UpwardDeliveryFeeFactor::<T>::get()
}

fn increase_fee_factor(_: Self::Id, message_size_factor: FixedU128) -> FixedU128 {
<UpwardDeliveryFeeFactor<T>>::mutate(|f| {
*f = f.saturating_mul(
ump_constants::EXPONENTIAL_FEE_BASE.saturating_add(message_size_factor),
);
*f
})
}

fn decrease_fee_factor(_: Self::Id) -> FixedU128 {
<UpwardDeliveryFeeFactor<T>>::mutate(|f| {
*f =
UpwardInitialDeliveryFeeFactor::get().max(*f / ump_constants::EXPONENTIAL_FEE_BASE);
*f
})
}
}

impl<T: Config> GetChannelInfo for Pallet<T> {
fn get_channel_status(id: ParaId) -> ChannelStatus {
// Note, that we are using `relevant_messaging_state` which may be from the previous
Expand Down Expand Up @@ -1468,7 +1533,13 @@ impl<T: Config> frame_system::SetCode<T> for ParachainSetCode<T> {
}

impl<T: Config> Pallet<T> {
/// Puts a message in the `PendingUpwardMessages` storage item.
/// The message will be later sent in `on_finalize`.
/// Checks host configuration to see if message is too big.
/// Increases the delivery fee factor if the queue is sufficiently (see
/// [`ump_constants::THRESHOLD_FACTOR`]) congested.
pub fn send_upward_message(message: UpwardMessage) -> Result<(u32, XcmHash), MessageSendError> {
let message_len = message.len();
// Check if the message fits into the relay-chain constraints.
//
// Note, that we are using `host_configuration` here which may be from the previous
Expand All @@ -1482,9 +1553,21 @@ impl<T: Config> Pallet<T> {
//
// However, changing this setting is expected to be rare.
if let Some(cfg) = Self::host_configuration() {
if message.len() > cfg.max_upward_message_size as usize {
if message_len > cfg.max_upward_message_size as usize {
return Err(MessageSendError::TooBig)
}
let threshold =
cfg.max_upward_queue_size.saturating_div(ump_constants::THRESHOLD_FACTOR);
// We check the threshold against total size and not number of messages since messages
// could be big or small.
let pending_messages = PendingUpwardMessages::<T>::get();
let total_size: usize = pending_messages.iter().map(UpwardMessage::len).sum();
if total_size > threshold as usize {
// We increase the fee factor by a factor based on the new message's size in KB
let message_size_factor = FixedU128::from((message_len / 1024) as u128)
.saturating_mul(ump_constants::MESSAGE_SIZE_FEE_BASE);
Self::increase_fee_factor((), message_size_factor);
}
} else {
// This storage field should carry over from the previous block. So if it's None
// then it must be that this is an edge-case where a message is attempted to be
Expand All @@ -1496,6 +1579,7 @@ impl<T: Config> Pallet<T> {
//
// Thus fall through here.
};

<PendingUpwardMessages<T>>::append(message.clone());

// The relay ump does not use using_encoded
Expand Down
10 changes: 7 additions & 3 deletions cumulus/pallets/xcmp-queue/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,10 @@ sp-runtime = { path = "../../../substrate/primitives/runtime", default-features
sp-std = { path = "../../../substrate/primitives/std", default-features = false}

# Polkadot
polkadot-runtime-common = { path = "../../../polkadot/runtime/common", default-features = false}
xcm = { package = "staging-xcm", path = "../../../polkadot/xcm", default-features = false}
xcm-executor = { package = "staging-xcm-executor", path = "../../../polkadot/xcm/xcm-executor", default-features = false}
polkadot-runtime-common = { path = "../../../polkadot/runtime/common", default-features = false }
polkadot-runtime-parachains = { path = "../../../polkadot/runtime/parachains", default-features = false }
xcm = { package = "staging-xcm", path = "../../../polkadot/xcm", default-features = false }
xcm-executor = { package = "staging-xcm-executor", path = "../../../polkadot/xcm/xcm-executor", default-features = false }

# Cumulus
cumulus-primitives-core = { path = "../../primitives/core", default-features = false }
Expand Down Expand Up @@ -50,6 +51,7 @@ std = [
"frame-system/std",
"log/std",
"polkadot-runtime-common/std",
"polkadot-runtime-parachains/std",
"scale-info/std",
"sp-io/std",
"sp-runtime/std",
Expand All @@ -65,6 +67,7 @@ runtime-benchmarks = [
"frame-system/runtime-benchmarks",
"pallet-balances/runtime-benchmarks",
"polkadot-runtime-common/runtime-benchmarks",
"polkadot-runtime-parachains/runtime-benchmarks",
"sp-runtime/runtime-benchmarks",
"xcm-builder/runtime-benchmarks",
"xcm-executor/runtime-benchmarks",
Expand All @@ -75,5 +78,6 @@ try-runtime = [
"frame-system/try-runtime",
"pallet-balances/try-runtime",
"polkadot-runtime-common/try-runtime",
"polkadot-runtime-parachains/try-runtime",
"sp-runtime/try-runtime",
]
Loading