diff --git a/pallets/xcmp-queue/src/benchmarking.rs b/pallets/xcmp-queue/src/benchmarking.rs
index 5d34d499dbe..5ac78bee763 100644
--- a/pallets/xcmp-queue/src/benchmarking.rs
+++ b/pallets/xcmp-queue/src/benchmarking.rs
@@ -22,7 +22,7 @@ use frame_system::RawOrigin;
benchmarks! {
set_config_with_u32 {}: update_resume_threshold(RawOrigin::Root, 100)
- set_config_with_weight {}: update_weight_restrict_decay(RawOrigin::Root, 3_000_000)
+ set_config_with_weight {}: update_weight_restrict_decay(RawOrigin::Root, Weight::from_ref_time(3_000_000))
}
impl_benchmark_test_suite!(Pallet, crate::mock::new_test_ext(), crate::mock::Test);
diff --git a/parachains/runtimes/assets/statemine/src/lib.rs b/parachains/runtimes/assets/statemine/src/lib.rs
index c2051108e73..fdec9c6ff38 100644
--- a/parachains/runtimes/assets/statemine/src/lib.rs
+++ b/parachains/runtimes/assets/statemine/src/lib.rs
@@ -672,6 +672,7 @@ mod benches {
[pallet_collator_selection, CollatorSelection]
[cumulus_pallet_xcmp_queue, XcmpQueue]
// XCM
+ [pallet_xcm, PolkadotXcm]
// NOTE: Make sure you point to the individual modules below.
[pallet_xcm_benchmarks::fungible, XcmBalances]
[pallet_xcm_benchmarks::generic, XcmGeneric]
@@ -859,7 +860,7 @@ impl_runtime_apis! {
impl cumulus_pallet_session_benchmarking::Config for Runtime {}
use xcm::latest::prelude::*;
- use xcm_config::{KsmLocation, MaxAssetsIntoHolding};
+ use xcm_config::{LocalCheckAccount, KsmLocation, MaxAssetsIntoHolding};
use pallet_xcm_benchmarks::asset_instance_from;
impl pallet_xcm_benchmarks::Config for Runtime {
@@ -908,7 +909,7 @@ impl_runtime_apis! {
impl pallet_xcm_benchmarks::fungible::Config for Runtime {
type TransactAsset = Balances;
- type CheckedAccount = CheckedAccount;
+ type CheckedAccount = LocalCheckAccount;
type TrustedTeleporter = TrustedTeleporter;
fn get_multi_asset() -> MultiAsset {
diff --git a/parachains/runtimes/assets/statemine/src/weights/mod.rs b/parachains/runtimes/assets/statemine/src/weights/mod.rs
index 080584f2cfa..5dd6ffd662e 100644
--- a/parachains/runtimes/assets/statemine/src/weights/mod.rs
+++ b/parachains/runtimes/assets/statemine/src/weights/mod.rs
@@ -11,6 +11,7 @@ pub mod pallet_session;
pub mod pallet_timestamp;
pub mod pallet_uniques;
pub mod pallet_utility;
+pub mod pallet_xcm;
pub mod paritydb_weights;
pub mod rocksdb_weights;
pub mod xcm;
diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_xcm.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_xcm.rs
new file mode 100644
index 00000000000..49dffce4223
--- /dev/null
+++ b/parachains/runtimes/assets/statemine/src/weights/pallet_xcm.rs
@@ -0,0 +1,117 @@
+// Copyright 2021 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus. If not, see .
+
+//! Autogenerated weights for `pallet_xcm`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2022-12-08, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024
+
+// Executed Command:
+// /home/benchbot/cargo_target_dir/production/polkadot-parachain
+// benchmark
+// pallet
+// --steps=50
+// --repeat=20
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
+// --pallet=pallet_xcm
+// --chain=statemine-dev
+// --header=./file_header.txt
+// --output=./parachains/runtimes/assets/statemine/src/weights/
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+
+use frame_support::{traits::Get, weights::Weight};
+use sp_std::marker::PhantomData;
+
+/// Weight functions for `pallet_xcm`.
+pub struct WeightInfo(PhantomData);
+impl pallet_xcm::WeightInfo for WeightInfo {
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ fn send() -> Weight {
+ // Minimum execution time: 25_562 nanoseconds.
+ Weight::from_ref_time(26_177_000)
+ .saturating_add(T::DbWeight::get().reads(5))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ // Storage: ParachainInfo ParachainId (r:1 w:0)
+ fn teleport_assets() -> Weight {
+ // Minimum execution time: 31_555 nanoseconds.
+ Weight::from_ref_time(32_297_000)
+ .saturating_add(T::DbWeight::get().reads(1))
+ }
+ // Storage: ParachainInfo ParachainId (r:1 w:0)
+ fn reserve_transfer_assets() -> Weight {
+ // Minimum execution time: 24_516 nanoseconds.
+ Weight::from_ref_time(25_126_000)
+ .saturating_add(T::DbWeight::get().reads(1))
+ }
+ // Storage: Benchmark Override (r:0 w:0)
+ fn execute() -> Weight {
+ // Minimum execution time: 18_446_744_073_709_551 nanoseconds.
+ Weight::from_ref_time(18_446_744_073_709_551_000)
+ }
+ // Storage: PolkadotXcm SupportedVersion (r:0 w:1)
+ fn force_xcm_version() -> Weight {
+ // Minimum execution time: 14_521 nanoseconds.
+ Weight::from_ref_time(14_865_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm SafeXcmVersion (r:0 w:1)
+ fn force_default_xcm_version() -> Weight {
+ // Minimum execution time: 4_325 nanoseconds.
+ Weight::from_ref_time(4_578_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm QueryCounter (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_subscribe_version_notify() -> Weight {
+ // Minimum execution time: 29_836 nanoseconds.
+ Weight::from_ref_time(30_213_000)
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_unsubscribe_version_notify() -> Weight {
+ // Minimum execution time: 31_333 nanoseconds.
+ Weight::from_ref_time(31_808_000)
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+}
diff --git a/parachains/runtimes/assets/statemine/src/weights/xcm/mod.rs b/parachains/runtimes/assets/statemine/src/weights/xcm/mod.rs
index eddabcd1dc1..d38e1c62e51 100644
--- a/parachains/runtimes/assets/statemine/src/weights/xcm/mod.rs
+++ b/parachains/runtimes/assets/statemine/src/weights/xcm/mod.rs
@@ -53,7 +53,8 @@ impl XcmWeightInfo for StatemineXcmWeight {
}
// Currently there is no trusted reserve
fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight {
- Weight::MAX
+ // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974
+ Weight::from_ref_time(1_000_000_000 as u64)
}
fn receive_teleported_asset(assets: &MultiAssets) -> Weight {
assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset())
diff --git a/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
index 76c40db7914..192173926fa 100644
--- a/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
+++ b/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
@@ -18,23 +18,23 @@
//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-09-30, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-12-08, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024
// Executed Command:
-// ./artifacts/polkadot-parachain
+// /home/benchbot/cargo_target_dir/production/polkadot-parachain
// benchmark
// pallet
-// --template=./templates/xcm-bench-template.hbs
-// --chain=statemine-dev
+// --steps=50
+// --repeat=20
+// --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
// --pallet=pallet_xcm_benchmarks::generic
-// --extrinsic=*
-// --steps=50
-// --repeat=20
-// --json
+// --chain=statemine-dev
// --header=./file_header.txt
// --template=./templates/xcm-bench-template.hbs
// --output=./parachains/runtimes/assets/statemine/src/weights/xcm/
@@ -56,38 +56,40 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_holding() -> Weight {
- Weight::from_ref_time(1_303_495_000 as u64)
+ Weight::from_ref_time(1_007_454_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn buy_execution() -> Weight {
- Weight::from_ref_time(8_667_000 as u64)
+ Weight::from_ref_time(8_069_000 as u64)
}
// Storage: PolkadotXcm Queries (r:1 w:0)
pub(crate) fn query_response() -> Weight {
- Weight::from_ref_time(19_292_000 as u64)
+ Weight::from_ref_time(17_719_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
}
+ // Storage: Session NextKeys (r:1 w:0)
pub(crate) fn transact() -> Weight {
- Weight::from_ref_time(37_996_000 as u64)
+ Weight::from_ref_time(15_102_000 as u64)
+ .saturating_add(T::DbWeight::get().reads(1 as u64))
}
pub(crate) fn refund_surplus() -> Weight {
- Weight::from_ref_time(9_076_000 as u64)
+ Weight::from_ref_time(8_103_000 as u64)
}
pub(crate) fn set_error_handler() -> Weight {
- Weight::from_ref_time(6_410_000 as u64)
+ Weight::from_ref_time(5_803_000 as u64)
}
pub(crate) fn set_appendix() -> Weight {
- Weight::from_ref_time(6_412_000 as u64)
+ Weight::from_ref_time(5_761_000 as u64)
}
pub(crate) fn clear_error() -> Weight {
- Weight::from_ref_time(6_311_000 as u64)
+ Weight::from_ref_time(5_665_000 as u64)
}
pub(crate) fn descend_origin() -> Weight {
- Weight::from_ref_time(7_355_000 as u64)
+ Weight::from_ref_time(6_640_000 as u64)
}
pub(crate) fn clear_origin() -> Weight {
- Weight::from_ref_time(6_389_000 as u64)
+ Weight::from_ref_time(5_832_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -96,18 +98,18 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_error() -> Weight {
- Weight::from_ref_time(23_020_000 as u64)
+ Weight::from_ref_time(21_808_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: PolkadotXcm AssetTraps (r:1 w:1)
pub(crate) fn claim_asset() -> Weight {
- Weight::from_ref_time(13_613_000 as u64)
+ Weight::from_ref_time(21_743_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
pub(crate) fn trap() -> Weight {
- Weight::from_ref_time(6_457_000 as u64)
+ Weight::from_ref_time(5_793_000 as u64)
}
// Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -116,13 +118,13 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn subscribe_version() -> Weight {
- Weight::from_ref_time(31_677_000 as u64)
+ Weight::from_ref_time(27_736_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(3 as u64))
}
// Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1)
pub(crate) fn unsubscribe_version() -> Weight {
- Weight::from_ref_time(9_613_000 as u64)
+ Weight::from_ref_time(7_913_000 as u64)
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
@@ -132,21 +134,21 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn initiate_reserve_withdraw() -> Weight {
- Weight::from_ref_time(1_588_580_000 as u64)
+ Weight::from_ref_time(1_181_673_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn burn_asset() -> Weight {
- Weight::from_ref_time(497_452_000 as u64)
+ Weight::from_ref_time(415_651_000 as u64)
}
pub(crate) fn expect_asset() -> Weight {
- Weight::from_ref_time(38_502_000 as u64)
+ Weight::from_ref_time(38_939_000 as u64)
}
pub(crate) fn expect_origin() -> Weight {
- Weight::from_ref_time(6_427_000 as u64)
+ Weight::from_ref_time(5_918_000 as u64)
}
pub(crate) fn expect_error() -> Weight {
- Weight::from_ref_time(6_303_000 as u64)
+ Weight::from_ref_time(5_829_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -155,12 +157,12 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn query_pallet() -> Weight {
- Weight::from_ref_time(25_510_000 as u64)
+ Weight::from_ref_time(24_557_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn expect_pallet() -> Weight {
- Weight::from_ref_time(7_909_000 as u64)
+ Weight::from_ref_time(7_407_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -169,21 +171,23 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_transact_status() -> Weight {
- Weight::from_ref_time(22_949_000 as u64)
+ Weight::from_ref_time(21_839_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn clear_transact_status() -> Weight {
- Weight::from_ref_time(6_491_000 as u64)
+ Weight::from_ref_time(5_796_000 as u64)
}
pub(crate) fn set_topic() -> Weight {
- Weight::from_ref_time(6_527_000 as u64)
+ Weight::from_ref_time(5_808_000 as u64)
}
pub(crate) fn clear_topic() -> Weight {
- Weight::from_ref_time(6_440_000 as u64)
+ Weight::from_ref_time(5_790_000 as u64)
}
pub(crate) fn set_fees_mode() -> Weight {
- Weight::from_ref_time(6_426_000 as u64)
+ Weight::from_ref_time(5_774_000 as u64)
+ }
+ pub(crate) fn unpaid_execution() -> Weight {
+ Weight::from_ref_time(5_930_000 as u64)
}
- pub(crate) fn unpaid_execution() -> Weight { Weight::from_ref_time(3_111_000 as u64) }
}
diff --git a/parachains/runtimes/assets/statemine/src/xcm_config.rs b/parachains/runtimes/assets/statemine/src/xcm_config.rs
index 7584547de66..70e60530a45 100644
--- a/parachains/runtimes/assets/statemine/src/xcm_config.rs
+++ b/parachains/runtimes/assets/statemine/src/xcm_config.rs
@@ -36,9 +36,10 @@ use xcm_builder::{
AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom,
AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex,
ConvertedConcreteId, CurrencyAdapter, EnsureXcmOrigin, FungiblesAdapter, IsConcrete, LocalMint,
- NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative,
- SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32,
- SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds,
+ MintLocation, NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative,
+ SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative,
+ SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents,
+ WeightInfoBounds,
};
use xcm_executor::{
traits::{JustTry, WithOriginFilter},
@@ -54,6 +55,8 @@ parameter_types! {
pub AssetsPalletLocation: MultiLocation =
PalletInstance(::index() as u8).into();
pub CheckingAccount: AccountId = PolkadotXcm::check_account();
+ /// The check account that is allowed to mint assets locally.
+ pub LocalCheckAccount: (AccountId, MintLocation) = (CheckingAccount::get(), MintLocation::Local);
}
/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used
@@ -362,8 +365,7 @@ impl pallet_xcm::Config for Runtime {
type TrustedLockers = ();
type SovereignAccountOf = LocationToAccountId;
type MaxLockers = ConstU32<8>;
- // FIXME: Replace with benchmarked weight info
- type WeightInfo = pallet_xcm::TestWeightInfo;
+ type WeightInfo = crate::weights::pallet_xcm::WeightInfo;
#[cfg(feature = "runtime-benchmarks")]
type ReachableDest = ReachableDest;
}
diff --git a/parachains/runtimes/assets/statemint/src/lib.rs b/parachains/runtimes/assets/statemint/src/lib.rs
index 453516b45ad..a33d64abb76 100644
--- a/parachains/runtimes/assets/statemint/src/lib.rs
+++ b/parachains/runtimes/assets/statemint/src/lib.rs
@@ -685,6 +685,7 @@ mod benches {
[pallet_collator_selection, CollatorSelection]
[cumulus_pallet_xcmp_queue, XcmpQueue]
// XCM
+ [pallet_xcm, PolkadotXcm]
// NOTE: Make sure you point to the individual modules below.
[pallet_xcm_benchmarks::fungible, XcmBalances]
[pallet_xcm_benchmarks::generic, XcmGeneric]
@@ -872,7 +873,7 @@ impl_runtime_apis! {
impl cumulus_pallet_session_benchmarking::Config for Runtime {}
use xcm::latest::prelude::*;
- use xcm_config::{DotLocation, MaxAssetsIntoHolding};
+ use xcm_config::{DotLocation, LocalCheckAccount, MaxAssetsIntoHolding};
use pallet_xcm_benchmarks::asset_instance_from;
impl pallet_xcm_benchmarks::Config for Runtime {
@@ -920,7 +921,7 @@ impl_runtime_apis! {
impl pallet_xcm_benchmarks::fungible::Config for Runtime {
type TransactAsset = Balances;
- type CheckedAccount = CheckedAccount;
+ type CheckedAccount = LocalCheckAccount;
type TrustedTeleporter = TrustedTeleporter;
fn get_multi_asset() -> MultiAsset {
diff --git a/parachains/runtimes/assets/statemint/src/weights/mod.rs b/parachains/runtimes/assets/statemint/src/weights/mod.rs
index 080584f2cfa..5dd6ffd662e 100644
--- a/parachains/runtimes/assets/statemint/src/weights/mod.rs
+++ b/parachains/runtimes/assets/statemint/src/weights/mod.rs
@@ -11,6 +11,7 @@ pub mod pallet_session;
pub mod pallet_timestamp;
pub mod pallet_uniques;
pub mod pallet_utility;
+pub mod pallet_xcm;
pub mod paritydb_weights;
pub mod rocksdb_weights;
pub mod xcm;
diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_xcm.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_xcm.rs
new file mode 100644
index 00000000000..df19ab323ca
--- /dev/null
+++ b/parachains/runtimes/assets/statemint/src/weights/pallet_xcm.rs
@@ -0,0 +1,117 @@
+// Copyright 2021 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus. If not, see .
+
+//! Autogenerated weights for `pallet_xcm`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2022-12-08, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024
+
+// Executed Command:
+// /home/benchbot/cargo_target_dir/production/polkadot-parachain
+// benchmark
+// pallet
+// --steps=50
+// --repeat=20
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
+// --pallet=pallet_xcm
+// --chain=statemint-dev
+// --header=./file_header.txt
+// --output=./parachains/runtimes/assets/statemint/src/weights/
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+
+use frame_support::{traits::Get, weights::Weight};
+use sp_std::marker::PhantomData;
+
+/// Weight functions for `pallet_xcm`.
+pub struct WeightInfo(PhantomData);
+impl pallet_xcm::WeightInfo for WeightInfo {
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ fn send() -> Weight {
+ // Minimum execution time: 25_514 nanoseconds.
+ Weight::from_ref_time(26_283_000)
+ .saturating_add(T::DbWeight::get().reads(5))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ // Storage: ParachainInfo ParachainId (r:1 w:0)
+ fn teleport_assets() -> Weight {
+ // Minimum execution time: 32_293 nanoseconds.
+ Weight::from_ref_time(33_089_000)
+ .saturating_add(T::DbWeight::get().reads(1))
+ }
+ // Storage: ParachainInfo ParachainId (r:1 w:0)
+ fn reserve_transfer_assets() -> Weight {
+ // Minimum execution time: 24_544 nanoseconds.
+ Weight::from_ref_time(24_953_000)
+ .saturating_add(T::DbWeight::get().reads(1))
+ }
+ // Storage: Benchmark Override (r:0 w:0)
+ fn execute() -> Weight {
+ // Minimum execution time: 18_446_744_073_709_551 nanoseconds.
+ Weight::from_ref_time(18_446_744_073_709_551_000)
+ }
+ // Storage: PolkadotXcm SupportedVersion (r:0 w:1)
+ fn force_xcm_version() -> Weight {
+ // Minimum execution time: 14_894 nanoseconds.
+ Weight::from_ref_time(15_309_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm SafeXcmVersion (r:0 w:1)
+ fn force_default_xcm_version() -> Weight {
+ // Minimum execution time: 4_351 nanoseconds.
+ Weight::from_ref_time(4_503_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm QueryCounter (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_subscribe_version_notify() -> Weight {
+ // Minimum execution time: 30_102 nanoseconds.
+ Weight::from_ref_time(30_938_000)
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_unsubscribe_version_notify() -> Weight {
+ // Minimum execution time: 31_133 nanoseconds.
+ Weight::from_ref_time(31_540_000)
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+}
diff --git a/parachains/runtimes/assets/statemint/src/weights/xcm/mod.rs b/parachains/runtimes/assets/statemint/src/weights/xcm/mod.rs
index b1a84cb9ccb..ed48d433170 100644
--- a/parachains/runtimes/assets/statemint/src/weights/xcm/mod.rs
+++ b/parachains/runtimes/assets/statemint/src/weights/xcm/mod.rs
@@ -53,7 +53,8 @@ impl XcmWeightInfo for StatemintXcmWeight {
}
// Currently there is no trusted reserve
fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight {
- Weight::MAX
+ // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974
+ Weight::from_ref_time(1_000_000_000 as u64)
}
fn receive_teleported_asset(assets: &MultiAssets) -> Weight {
assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset())
diff --git a/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
index 79066a2b9e5..7ff13672a6d 100644
--- a/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
+++ b/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
@@ -18,23 +18,23 @@
//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-09-30, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-12-08, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024
// Executed Command:
-// ./artifacts/polkadot-parachain
+// /home/benchbot/cargo_target_dir/production/polkadot-parachain
// benchmark
// pallet
-// --template=./templates/xcm-bench-template.hbs
-// --chain=statemint-dev
+// --steps=50
+// --repeat=20
+// --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
// --pallet=pallet_xcm_benchmarks::generic
-// --extrinsic=*
-// --steps=50
-// --repeat=20
-// --json
+// --chain=statemint-dev
// --header=./file_header.txt
// --template=./templates/xcm-bench-template.hbs
// --output=./parachains/runtimes/assets/statemint/src/weights/xcm/
@@ -56,38 +56,40 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_holding() -> Weight {
- Weight::from_ref_time(1_305_689_000 as u64)
+ Weight::from_ref_time(997_603_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn buy_execution() -> Weight {
- Weight::from_ref_time(8_843_000 as u64)
+ Weight::from_ref_time(8_032_000 as u64)
}
// Storage: PolkadotXcm Queries (r:1 w:0)
pub(crate) fn query_response() -> Weight {
- Weight::from_ref_time(19_216_000 as u64)
+ Weight::from_ref_time(18_256_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
}
+ // Storage: Session NextKeys (r:1 w:0)
pub(crate) fn transact() -> Weight {
- Weight::from_ref_time(22_708_000 as u64)
+ Weight::from_ref_time(15_436_000 as u64)
+ .saturating_add(T::DbWeight::get().reads(1 as u64))
}
pub(crate) fn refund_surplus() -> Weight {
- Weight::from_ref_time(9_040_000 as u64)
+ Weight::from_ref_time(8_689_000 as u64)
}
pub(crate) fn set_error_handler() -> Weight {
- Weight::from_ref_time(6_222_000 as u64)
+ Weight::from_ref_time(5_977_000 as u64)
}
pub(crate) fn set_appendix() -> Weight {
- Weight::from_ref_time(6_411_000 as u64)
+ Weight::from_ref_time(5_988_000 as u64)
}
pub(crate) fn clear_error() -> Weight {
- Weight::from_ref_time(6_222_000 as u64)
+ Weight::from_ref_time(5_933_000 as u64)
}
pub(crate) fn descend_origin() -> Weight {
- Weight::from_ref_time(7_112_000 as u64)
+ Weight::from_ref_time(7_105_000 as u64)
}
pub(crate) fn clear_origin() -> Weight {
- Weight::from_ref_time(6_340_000 as u64)
+ Weight::from_ref_time(6_047_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -96,18 +98,18 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_error() -> Weight {
- Weight::from_ref_time(22_943_000 as u64)
+ Weight::from_ref_time(22_105_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: PolkadotXcm AssetTraps (r:1 w:1)
pub(crate) fn claim_asset() -> Weight {
- Weight::from_ref_time(13_178_000 as u64)
+ Weight::from_ref_time(21_843_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
pub(crate) fn trap() -> Weight {
- Weight::from_ref_time(6_333_000 as u64)
+ Weight::from_ref_time(6_099_000 as u64)
}
// Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -116,13 +118,13 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn subscribe_version() -> Weight {
- Weight::from_ref_time(31_798_000 as u64)
+ Weight::from_ref_time(28_520_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(3 as u64))
}
// Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1)
pub(crate) fn unsubscribe_version() -> Weight {
- Weight::from_ref_time(9_728_000 as u64)
+ Weight::from_ref_time(8_113_000 as u64)
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
@@ -132,21 +134,21 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn initiate_reserve_withdraw() -> Weight {
- Weight::from_ref_time(1_583_652_000 as u64)
+ Weight::from_ref_time(1_226_787_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn burn_asset() -> Weight {
- Weight::from_ref_time(497_448_000 as u64)
+ Weight::from_ref_time(417_404_000 as u64)
}
pub(crate) fn expect_asset() -> Weight {
- Weight::from_ref_time(38_383_000 as u64)
+ Weight::from_ref_time(38_060_000 as u64)
}
pub(crate) fn expect_origin() -> Weight {
- Weight::from_ref_time(6_308_000 as u64)
+ Weight::from_ref_time(6_034_000 as u64)
}
pub(crate) fn expect_error() -> Weight {
- Weight::from_ref_time(6_327_000 as u64)
+ Weight::from_ref_time(5_967_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -155,12 +157,12 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn query_pallet() -> Weight {
- Weight::from_ref_time(26_011_000 as u64)
+ Weight::from_ref_time(24_608_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn expect_pallet() -> Weight {
- Weight::from_ref_time(8_008_000 as u64)
+ Weight::from_ref_time(7_574_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -169,21 +171,23 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_transact_status() -> Weight {
- Weight::from_ref_time(22_963_000 as u64)
+ Weight::from_ref_time(22_429_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn clear_transact_status() -> Weight {
- Weight::from_ref_time(6_378_000 as u64)
+ Weight::from_ref_time(5_928_000 as u64)
}
pub(crate) fn set_topic() -> Weight {
- Weight::from_ref_time(6_313_000 as u64)
+ Weight::from_ref_time(5_911_000 as u64)
}
pub(crate) fn clear_topic() -> Weight {
- Weight::from_ref_time(6_324_000 as u64)
+ Weight::from_ref_time(5_844_000 as u64)
}
pub(crate) fn set_fees_mode() -> Weight {
- Weight::from_ref_time(6_336_000 as u64)
+ Weight::from_ref_time(5_881_000 as u64)
+ }
+ pub(crate) fn unpaid_execution() -> Weight {
+ Weight::from_ref_time(6_052_000 as u64)
}
- pub(crate) fn unpaid_execution() -> Weight { Weight::from_ref_time(3_111_000 as u64) }
}
diff --git a/parachains/runtimes/assets/statemint/src/xcm_config.rs b/parachains/runtimes/assets/statemint/src/xcm_config.rs
index 22b95110ee5..84a6131828b 100644
--- a/parachains/runtimes/assets/statemint/src/xcm_config.rs
+++ b/parachains/runtimes/assets/statemint/src/xcm_config.rs
@@ -36,9 +36,10 @@ use xcm_builder::{
AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom,
AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex,
ConvertedConcreteId, CurrencyAdapter, EnsureXcmOrigin, FungiblesAdapter, IsConcrete, LocalMint,
- NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative,
- SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32,
- SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds,
+ MintLocation, NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative,
+ SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative,
+ SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents,
+ WeightInfoBounds,
};
use xcm_executor::{
traits::{JustTry, WithOriginFilter},
@@ -54,6 +55,8 @@ parameter_types! {
pub AssetsPalletLocation: MultiLocation =
PalletInstance(::index() as u8).into();
pub CheckingAccount: AccountId = PolkadotXcm::check_account();
+ /// The check account that is allowed to mint assets locally.
+ pub LocalCheckAccount: (AccountId, MintLocation) = (CheckingAccount::get(), MintLocation::Local);
}
/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used
@@ -361,8 +364,7 @@ impl pallet_xcm::Config for Runtime {
type TrustedLockers = ();
type SovereignAccountOf = LocationToAccountId;
type MaxLockers = ConstU32<8>;
- // FIXME: Replace with benchmarked weight info
- type WeightInfo = pallet_xcm::TestWeightInfo;
+ type WeightInfo = crate::weights::pallet_xcm::WeightInfo;
#[cfg(feature = "runtime-benchmarks")]
type ReachableDest = ReachableDest;
}
diff --git a/parachains/runtimes/assets/westmint/src/lib.rs b/parachains/runtimes/assets/westmint/src/lib.rs
index 65a5586f116..1178885b3ad 100644
--- a/parachains/runtimes/assets/westmint/src/lib.rs
+++ b/parachains/runtimes/assets/westmint/src/lib.rs
@@ -645,6 +645,7 @@ mod benches {
[pallet_collator_selection, CollatorSelection]
[cumulus_pallet_xcmp_queue, XcmpQueue]
// XCM
+ [pallet_xcm, PolkadotXcm]
// NOTE: Make sure you point to the individual modules below.
[pallet_xcm_benchmarks::fungible, XcmBalances]
[pallet_xcm_benchmarks::generic, XcmGeneric]
@@ -831,7 +832,7 @@ impl_runtime_apis! {
impl cumulus_pallet_session_benchmarking::Config for Runtime {}
use xcm::latest::prelude::*;
- use xcm_config::{MaxAssetsIntoHolding, WestendLocation};
+ use xcm_config::{LocalCheckAccount, MaxAssetsIntoHolding, WestendLocation};
use pallet_xcm_benchmarks::asset_instance_from;
impl pallet_xcm_benchmarks::Config for Runtime {
@@ -880,7 +881,7 @@ impl_runtime_apis! {
impl pallet_xcm_benchmarks::fungible::Config for Runtime {
type TransactAsset = Balances;
- type CheckedAccount = CheckedAccount;
+ type CheckedAccount = LocalCheckAccount;
type TrustedTeleporter = TrustedTeleporter;
fn get_multi_asset() -> MultiAsset {
diff --git a/parachains/runtimes/assets/westmint/src/weights/mod.rs b/parachains/runtimes/assets/westmint/src/weights/mod.rs
index 080584f2cfa..5dd6ffd662e 100644
--- a/parachains/runtimes/assets/westmint/src/weights/mod.rs
+++ b/parachains/runtimes/assets/westmint/src/weights/mod.rs
@@ -11,6 +11,7 @@ pub mod pallet_session;
pub mod pallet_timestamp;
pub mod pallet_uniques;
pub mod pallet_utility;
+pub mod pallet_xcm;
pub mod paritydb_weights;
pub mod rocksdb_weights;
pub mod xcm;
diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_xcm.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_xcm.rs
new file mode 100644
index 00000000000..7ccd41d3d20
--- /dev/null
+++ b/parachains/runtimes/assets/westmint/src/weights/pallet_xcm.rs
@@ -0,0 +1,116 @@
+// Copyright 2021 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus. If not, see .
+
+//! Autogenerated weights for `pallet_xcm`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2022-12-08, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024
+
+// Executed Command:
+// /home/benchbot/cargo_target_dir/production/polkadot-parachain
+// benchmark
+// pallet
+// --steps=50
+// --repeat=20
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
+// --pallet=pallet_xcm
+// --chain=westmint-dev
+// --header=./file_header.txt
+// --output=./parachains/runtimes/assets/westmint/src/weights/
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+
+use frame_support::{traits::Get, weights::Weight};
+use sp_std::marker::PhantomData;
+
+/// Weight functions for `pallet_xcm`.
+pub struct WeightInfo(PhantomData);
+impl pallet_xcm::WeightInfo for WeightInfo {
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ fn send() -> Weight {
+ // Minimum execution time: 26_652 nanoseconds.
+ Weight::from_ref_time(27_278_000)
+ .saturating_add(T::DbWeight::get().reads(5))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ // Storage: ParachainInfo ParachainId (r:1 w:0)
+ fn teleport_assets() -> Weight {
+ // Minimum execution time: 32_711 nanoseconds.
+ Weight::from_ref_time(33_447_000)
+ .saturating_add(T::DbWeight::get().reads(1))
+ }
+ // Storage: ParachainInfo ParachainId (r:1 w:0)
+ fn reserve_transfer_assets() -> Weight {
+ // Minimum execution time: 24_850 nanoseconds.
+ Weight::from_ref_time(25_427_000)
+ .saturating_add(T::DbWeight::get().reads(1))
+ }
+ fn execute() -> Weight {
+ // Minimum execution time: 14_909 nanoseconds.
+ Weight::from_ref_time(15_229_000)
+ }
+ // Storage: PolkadotXcm SupportedVersion (r:0 w:1)
+ fn force_xcm_version() -> Weight {
+ // Minimum execution time: 14_930 nanoseconds.
+ Weight::from_ref_time(15_396_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm SafeXcmVersion (r:0 w:1)
+ fn force_default_xcm_version() -> Weight {
+ // Minimum execution time: 4_328 nanoseconds.
+ Weight::from_ref_time(4_510_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm QueryCounter (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_subscribe_version_notify() -> Weight {
+ // Minimum execution time: 30_943 nanoseconds.
+ Weight::from_ref_time(31_593_000)
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_unsubscribe_version_notify() -> Weight {
+ // Minimum execution time: 31_950 nanoseconds.
+ Weight::from_ref_time(32_364_000)
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+}
diff --git a/parachains/runtimes/assets/westmint/src/weights/xcm/mod.rs b/parachains/runtimes/assets/westmint/src/weights/xcm/mod.rs
index 5dfd526b7db..ee63ee3f2ad 100644
--- a/parachains/runtimes/assets/westmint/src/weights/xcm/mod.rs
+++ b/parachains/runtimes/assets/westmint/src/weights/xcm/mod.rs
@@ -53,7 +53,8 @@ impl XcmWeightInfo for WestmintXcmWeight {
}
// Currently there is no trusted reserve
fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight {
- Weight::MAX
+ // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974
+ Weight::from_ref_time(1_000_000_000 as u64)
}
fn receive_teleported_asset(assets: &MultiAssets) -> Weight {
assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset())
diff --git a/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
index e6f01884049..3587e720f51 100644
--- a/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
+++ b/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs
@@ -18,23 +18,23 @@
//! Autogenerated weights for `pallet_xcm_benchmarks::generic`
//!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-09-30, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! DATE: 2022-12-08, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024
// Executed Command:
-// ./artifacts/polkadot-parachain
+// /home/benchbot/cargo_target_dir/production/polkadot-parachain
// benchmark
// pallet
-// --template=./templates/xcm-bench-template.hbs
-// --chain=westmint-dev
+// --steps=50
+// --repeat=20
+// --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
// --pallet=pallet_xcm_benchmarks::generic
-// --extrinsic=*
-// --steps=50
-// --repeat=20
-// --json
+// --chain=westmint-dev
// --header=./file_header.txt
// --template=./templates/xcm-bench-template.hbs
// --output=./parachains/runtimes/assets/westmint/src/weights/xcm/
@@ -56,38 +56,40 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_holding() -> Weight {
- Weight::from_ref_time(1_324_853_000 as u64)
+ Weight::from_ref_time(1_021_862_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn buy_execution() -> Weight {
- Weight::from_ref_time(8_533_000 as u64)
+ Weight::from_ref_time(7_993_000 as u64)
}
// Storage: PolkadotXcm Queries (r:1 w:0)
pub(crate) fn query_response() -> Weight {
- Weight::from_ref_time(19_435_000 as u64)
+ Weight::from_ref_time(18_053_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
}
+ // Storage: Session NextKeys (r:1 w:0)
pub(crate) fn transact() -> Weight {
- Weight::from_ref_time(22_656_000 as u64)
+ Weight::from_ref_time(15_191_000 as u64)
+ .saturating_add(T::DbWeight::get().reads(1 as u64))
}
pub(crate) fn refund_surplus() -> Weight {
- Weight::from_ref_time(8_900_000 as u64)
+ Weight::from_ref_time(8_307_000 as u64)
}
pub(crate) fn set_error_handler() -> Weight {
- Weight::from_ref_time(6_255_000 as u64)
+ Weight::from_ref_time(5_916_000 as u64)
}
pub(crate) fn set_appendix() -> Weight {
- Weight::from_ref_time(6_268_000 as u64)
+ Weight::from_ref_time(5_943_000 as u64)
}
pub(crate) fn clear_error() -> Weight {
- Weight::from_ref_time(6_304_000 as u64)
+ Weight::from_ref_time(6_024_000 as u64)
}
pub(crate) fn descend_origin() -> Weight {
- Weight::from_ref_time(7_279_000 as u64)
+ Weight::from_ref_time(6_608_000 as u64)
}
pub(crate) fn clear_origin() -> Weight {
- Weight::from_ref_time(6_297_000 as u64)
+ Weight::from_ref_time(5_885_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -96,18 +98,18 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_error() -> Weight {
- Weight::from_ref_time(23_025_000 as u64)
+ Weight::from_ref_time(21_690_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
// Storage: PolkadotXcm AssetTraps (r:1 w:1)
pub(crate) fn claim_asset() -> Weight {
- Weight::from_ref_time(13_001_000 as u64)
+ Weight::from_ref_time(21_761_000 as u64)
.saturating_add(T::DbWeight::get().reads(1 as u64))
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
pub(crate) fn trap() -> Weight {
- Weight::from_ref_time(6_266_000 as u64)
+ Weight::from_ref_time(5_854_000 as u64)
}
// Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -116,13 +118,13 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn subscribe_version() -> Weight {
- Weight::from_ref_time(31_348_000 as u64)
+ Weight::from_ref_time(27_989_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(3 as u64))
}
// Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1)
pub(crate) fn unsubscribe_version() -> Weight {
- Weight::from_ref_time(9_534_000 as u64)
+ Weight::from_ref_time(7_971_000 as u64)
.saturating_add(T::DbWeight::get().writes(1 as u64))
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
@@ -132,21 +134,21 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn initiate_reserve_withdraw() -> Weight {
- Weight::from_ref_time(1_558_814_000 as u64)
+ Weight::from_ref_time(1_228_949_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn burn_asset() -> Weight {
- Weight::from_ref_time(496_802_000 as u64)
+ Weight::from_ref_time(416_374_000 as u64)
}
pub(crate) fn expect_asset() -> Weight {
- Weight::from_ref_time(38_299_000 as u64)
+ Weight::from_ref_time(38_018_000 as u64)
}
pub(crate) fn expect_origin() -> Weight {
- Weight::from_ref_time(6_354_000 as u64)
+ Weight::from_ref_time(5_996_000 as u64)
}
pub(crate) fn expect_error() -> Weight {
- Weight::from_ref_time(6_234_000 as u64)
+ Weight::from_ref_time(5_922_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -155,12 +157,12 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn query_pallet() -> Weight {
- Weight::from_ref_time(25_150_000 as u64)
+ Weight::from_ref_time(24_130_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn expect_pallet() -> Weight {
- Weight::from_ref_time(7_969_000 as u64)
+ Weight::from_ref_time(7_238_000 as u64)
}
// Storage: ParachainInfo ParachainId (r:1 w:0)
// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
@@ -169,21 +171,23 @@ impl WeightInfo {
// Storage: ParachainSystem HostConfiguration (r:1 w:0)
// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
pub(crate) fn report_transact_status() -> Weight {
- Weight::from_ref_time(23_099_000 as u64)
+ Weight::from_ref_time(21_209_000 as u64)
.saturating_add(T::DbWeight::get().reads(6 as u64))
.saturating_add(T::DbWeight::get().writes(2 as u64))
}
pub(crate) fn clear_transact_status() -> Weight {
- Weight::from_ref_time(6_366_000 as u64)
+ Weight::from_ref_time(5_810_000 as u64)
}
pub(crate) fn set_topic() -> Weight {
- Weight::from_ref_time(6_422_000 as u64)
+ Weight::from_ref_time(5_876_000 as u64)
}
pub(crate) fn clear_topic() -> Weight {
- Weight::from_ref_time(6_405_000 as u64)
+ Weight::from_ref_time(5_793_000 as u64)
}
pub(crate) fn set_fees_mode() -> Weight {
- Weight::from_ref_time(6_392_000 as u64)
+ Weight::from_ref_time(5_902_000 as u64)
+ }
+ pub(crate) fn unpaid_execution() -> Weight {
+ Weight::from_ref_time(6_092_000 as u64)
}
- pub(crate) fn unpaid_execution() -> Weight { Weight::from_ref_time(3_111_000 as u64) }
}
diff --git a/parachains/runtimes/assets/westmint/src/xcm_config.rs b/parachains/runtimes/assets/westmint/src/xcm_config.rs
index 638085a5d3a..41d0f901cb0 100644
--- a/parachains/runtimes/assets/westmint/src/xcm_config.rs
+++ b/parachains/runtimes/assets/westmint/src/xcm_config.rs
@@ -36,9 +36,10 @@ use xcm_builder::{
AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom,
AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex,
ConvertedConcreteId, CurrencyAdapter, EnsureXcmOrigin, FungiblesAdapter, IsConcrete, LocalMint,
- NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative,
- SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32,
- SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds,
+ MintLocation, NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative,
+ SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative,
+ SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents,
+ WeightInfoBounds,
};
use xcm_executor::{
traits::{JustTry, WithOriginFilter},
@@ -54,6 +55,8 @@ parameter_types! {
pub AssetsPalletLocation: MultiLocation =
PalletInstance(::index() as u8).into();
pub CheckingAccount: AccountId = PolkadotXcm::check_account();
+ /// The check account that is allowed to mint assets locally.
+ pub LocalCheckAccount: (AccountId, MintLocation) = (CheckingAccount::get(), MintLocation::Local);
}
/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used
@@ -352,8 +355,7 @@ impl pallet_xcm::Config for Runtime {
type TrustedLockers = ();
type SovereignAccountOf = LocationToAccountId;
type MaxLockers = ConstU32<8>;
- // FIXME: Replace with benchmarked weight info
- type WeightInfo = pallet_xcm::TestWeightInfo;
+ type WeightInfo = crate::weights::pallet_xcm::WeightInfo;
#[cfg(feature = "runtime-benchmarks")]
type ReachableDest = ReachableDest;
}
diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs
index 705bbfda9e5..7fa2fc6154e 100644
--- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs
+++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs
@@ -440,6 +440,7 @@ mod benches {
[pallet_timestamp, Timestamp]
[pallet_collator_selection, CollatorSelection]
[cumulus_pallet_xcmp_queue, XcmpQueue]
+ [pallet_xcm, PolkadotXcm]
);
}
diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs
index 56c03468aa7..9652048d249 100644
--- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs
+++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs
@@ -27,6 +27,7 @@ pub mod pallet_multisig;
pub mod pallet_session;
pub mod pallet_timestamp;
pub mod pallet_utility;
+pub mod pallet_xcm;
pub mod paritydb_weights;
pub mod rocksdb_weights;
diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs
new file mode 100644
index 00000000000..cd24496f035
--- /dev/null
+++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs
@@ -0,0 +1,116 @@
+// Copyright 2021 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus. If not, see .
+
+//! Autogenerated weights for `pallet_xcm`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2022-12-11, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024
+
+// Executed Command:
+// /home/benchbot/cargo_target_dir/production/polkadot-parachain
+// benchmark
+// pallet
+// --steps=50
+// --repeat=20
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
+// --pallet=pallet_xcm
+// --chain=bridge-hub-kusama-dev
+// --header=./file_header.txt
+// --output=./parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+
+use frame_support::{traits::Get, weights::Weight};
+use sp_std::marker::PhantomData;
+
+/// Weight functions for `pallet_xcm`.
+pub struct WeightInfo(PhantomData);
+impl pallet_xcm::WeightInfo for WeightInfo {
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ fn send() -> Weight {
+ // Minimum execution time: 26_345 nanoseconds.
+ Weight::from_ref_time(26_996_000)
+ .saturating_add(T::DbWeight::get().reads(5))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ // Storage: ParachainInfo ParachainId (r:1 w:0)
+ fn teleport_assets() -> Weight {
+ // Minimum execution time: 32_889 nanoseconds.
+ Weight::from_ref_time(33_380_000)
+ .saturating_add(T::DbWeight::get().reads(1))
+ }
+ // Storage: Benchmark Override (r:0 w:0)
+ fn reserve_transfer_assets() -> Weight {
+ // Minimum execution time: 18_446_744_073_709_551 nanoseconds.
+ Weight::from_ref_time(18_446_744_073_709_551_000)
+ }
+ // Storage: Benchmark Override (r:0 w:0)
+ fn execute() -> Weight {
+ // Minimum execution time: 18_446_744_073_709_551 nanoseconds.
+ Weight::from_ref_time(18_446_744_073_709_551_000)
+ }
+ // Storage: PolkadotXcm SupportedVersion (r:0 w:1)
+ fn force_xcm_version() -> Weight {
+ // Minimum execution time: 14_707 nanoseconds.
+ Weight::from_ref_time(14_851_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm SafeXcmVersion (r:0 w:1)
+ fn force_default_xcm_version() -> Weight {
+ // Minimum execution time: 4_465 nanoseconds.
+ Weight::from_ref_time(4_580_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm QueryCounter (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_subscribe_version_notify() -> Weight {
+ // Minimum execution time: 30_482 nanoseconds.
+ Weight::from_ref_time(31_091_000)
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_unsubscribe_version_notify() -> Weight {
+ // Minimum execution time: 31_341 nanoseconds.
+ Weight::from_ref_time(31_876_000)
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+}
diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs
index 947ab24f127..3d96de89721 100644
--- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs
+++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs
@@ -246,7 +246,7 @@ impl pallet_xcm::Config for Runtime {
type TrustedLockers = ();
type SovereignAccountOf = LocationToAccountId;
type MaxLockers = ConstU32<8>;
- type WeightInfo = pallet_xcm::TestWeightInfo;
+ type WeightInfo = crate::weights::pallet_xcm::WeightInfo;
#[cfg(feature = "runtime-benchmarks")]
type ReachableDest = ReachableDest;
}
diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs
index 26590d912ca..d7f59ecff30 100644
--- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs
+++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs
@@ -469,6 +469,7 @@ mod benches {
[pallet_timestamp, Timestamp]
[pallet_collator_selection, CollatorSelection]
[cumulus_pallet_xcmp_queue, XcmpQueue]
+ [pallet_xcm, PolkadotXcm]
);
}
diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs
index 56c03468aa7..9652048d249 100644
--- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs
+++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs
@@ -27,6 +27,7 @@ pub mod pallet_multisig;
pub mod pallet_session;
pub mod pallet_timestamp;
pub mod pallet_utility;
+pub mod pallet_xcm;
pub mod paritydb_weights;
pub mod rocksdb_weights;
diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs
new file mode 100644
index 00000000000..de92cd8c026
--- /dev/null
+++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs
@@ -0,0 +1,116 @@
+// Copyright 2021 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus. If not, see .
+
+//! Autogenerated weights for `pallet_xcm`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2022-12-11, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024
+
+// Executed Command:
+// /home/benchbot/cargo_target_dir/production/polkadot-parachain
+// benchmark
+// pallet
+// --steps=50
+// --repeat=20
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
+// --pallet=pallet_xcm
+// --chain=bridge-hub-rococo-dev
+// --header=./file_header.txt
+// --output=./parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+
+use frame_support::{traits::Get, weights::Weight};
+use sp_std::marker::PhantomData;
+
+/// Weight functions for `pallet_xcm`.
+pub struct WeightInfo(PhantomData);
+impl pallet_xcm::WeightInfo for WeightInfo {
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ fn send() -> Weight {
+ // Minimum execution time: 26_277 nanoseconds.
+ Weight::from_ref_time(27_202_000)
+ .saturating_add(T::DbWeight::get().reads(5))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ // Storage: ParachainInfo ParachainId (r:1 w:0)
+ fn teleport_assets() -> Weight {
+ // Minimum execution time: 32_941 nanoseconds.
+ Weight::from_ref_time(33_458_000)
+ .saturating_add(T::DbWeight::get().reads(1))
+ }
+ // Storage: Benchmark Override (r:0 w:0)
+ fn reserve_transfer_assets() -> Weight {
+ // Minimum execution time: 18_446_744_073_709_551 nanoseconds.
+ Weight::from_ref_time(18_446_744_073_709_551_000)
+ }
+ // Storage: Benchmark Override (r:0 w:0)
+ fn execute() -> Weight {
+ // Minimum execution time: 18_446_744_073_709_551 nanoseconds.
+ Weight::from_ref_time(18_446_744_073_709_551_000)
+ }
+ // Storage: PolkadotXcm SupportedVersion (r:0 w:1)
+ fn force_xcm_version() -> Weight {
+ // Minimum execution time: 14_836 nanoseconds.
+ Weight::from_ref_time(15_261_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm SafeXcmVersion (r:0 w:1)
+ fn force_default_xcm_version() -> Weight {
+ // Minimum execution time: 4_373 nanoseconds.
+ Weight::from_ref_time(4_537_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm QueryCounter (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_subscribe_version_notify() -> Weight {
+ // Minimum execution time: 30_536 nanoseconds.
+ Weight::from_ref_time(31_384_000)
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_unsubscribe_version_notify() -> Weight {
+ // Minimum execution time: 31_667 nanoseconds.
+ Weight::from_ref_time(32_335_000)
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+}
diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs
index bb6f9ff1ad2..d79564ea2ea 100644
--- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs
+++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs
@@ -242,7 +242,7 @@ impl pallet_xcm::Config for Runtime {
type TrustedLockers = ();
type SovereignAccountOf = LocationToAccountId;
type MaxLockers = ConstU32<8>;
- type WeightInfo = pallet_xcm::TestWeightInfo;
+ type WeightInfo = crate::weights::pallet_xcm::WeightInfo;
#[cfg(feature = "runtime-benchmarks")]
type ReachableDest = ReachableDest;
}
diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs b/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs
index a329f80e39e..3ae7ef27580 100644
--- a/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs
+++ b/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs
@@ -587,6 +587,7 @@ mod benches {
[cumulus_pallet_xcmp_queue, XcmpQueue]
[pallet_alliance, Alliance]
[pallet_collective, AllianceMotion]
+ [pallet_xcm, PolkadotXcm]
);
}
diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs
index bf736022ca7..76fbc081bc5 100644
--- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs
+++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs
@@ -11,6 +11,7 @@ pub mod pallet_proxy;
pub mod pallet_session;
pub mod pallet_timestamp;
pub mod pallet_utility;
+pub mod pallet_xcm;
pub mod paritydb_weights;
pub mod rocksdb_weights;
diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs
new file mode 100644
index 00000000000..ea7701e2016
--- /dev/null
+++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs
@@ -0,0 +1,116 @@
+// Copyright 2021 Parity Technologies (UK) Ltd.
+// This file is part of Cumulus.
+
+// Cumulus 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.
+
+// Cumulus 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 Cumulus. If not, see .
+
+//! Autogenerated weights for `pallet_xcm`
+//!
+//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
+//! DATE: 2022-12-11, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]`
+//! HOSTNAME: `bm3`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz`
+//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024
+
+// Executed Command:
+// /home/benchbot/cargo_target_dir/production/polkadot-parachain
+// benchmark
+// pallet
+// --steps=50
+// --repeat=20
+// --extrinsic=*
+// --execution=wasm
+// --wasm-execution=compiled
+// --heap-pages=4096
+// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/cumulus/.git/.artifacts/bench.json
+// --pallet=pallet_xcm
+// --chain=collectives-polkadot-dev
+// --header=./file_header.txt
+// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/
+
+#![cfg_attr(rustfmt, rustfmt_skip)]
+#![allow(unused_parens)]
+#![allow(unused_imports)]
+
+use frame_support::{traits::Get, weights::Weight};
+use sp_std::marker::PhantomData;
+
+/// Weight functions for `pallet_xcm`.
+pub struct WeightInfo(PhantomData);
+impl pallet_xcm::WeightInfo for WeightInfo {
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ fn send() -> Weight {
+ // Minimum execution time: 25_986 nanoseconds.
+ Weight::from_ref_time(26_603_000)
+ .saturating_add(T::DbWeight::get().reads(5))
+ .saturating_add(T::DbWeight::get().writes(2))
+ }
+ // Storage: ParachainInfo ParachainId (r:1 w:0)
+ fn teleport_assets() -> Weight {
+ // Minimum execution time: 32_738 nanoseconds.
+ Weight::from_ref_time(33_574_000)
+ .saturating_add(T::DbWeight::get().reads(1))
+ }
+ // Storage: Benchmark Override (r:0 w:0)
+ fn reserve_transfer_assets() -> Weight {
+ // Minimum execution time: 18_446_744_073_709_551 nanoseconds.
+ Weight::from_ref_time(18_446_744_073_709_551_000)
+ }
+ // Storage: Benchmark Override (r:0 w:0)
+ fn execute() -> Weight {
+ // Minimum execution time: 18_446_744_073_709_551 nanoseconds.
+ Weight::from_ref_time(18_446_744_073_709_551_000)
+ }
+ // Storage: PolkadotXcm SupportedVersion (r:0 w:1)
+ fn force_xcm_version() -> Weight {
+ // Minimum execution time: 14_431 nanoseconds.
+ Weight::from_ref_time(14_923_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm SafeXcmVersion (r:0 w:1)
+ fn force_default_xcm_version() -> Weight {
+ // Minimum execution time: 4_413 nanoseconds.
+ Weight::from_ref_time(4_640_000)
+ .saturating_add(T::DbWeight::get().writes(1))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm QueryCounter (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_subscribe_version_notify() -> Weight {
+ // Minimum execution time: 30_293 nanoseconds.
+ Weight::from_ref_time(30_769_000)
+ .saturating_add(T::DbWeight::get().reads(7))
+ .saturating_add(T::DbWeight::get().writes(5))
+ }
+ // Storage: PolkadotXcm VersionNotifiers (r:1 w:1)
+ // Storage: PolkadotXcm SupportedVersion (r:1 w:0)
+ // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
+ // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
+ // Storage: ParachainSystem HostConfiguration (r:1 w:0)
+ // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
+ // Storage: PolkadotXcm Queries (r:0 w:1)
+ fn force_unsubscribe_version_notify() -> Weight {
+ // Minimum execution time: 31_044 nanoseconds.
+ Weight::from_ref_time(31_600_000)
+ .saturating_add(T::DbWeight::get().reads(6))
+ .saturating_add(T::DbWeight::get().writes(4))
+ }
+}
diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs b/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs
index f776297d69d..a06a5524c11 100644
--- a/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs
+++ b/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs
@@ -267,8 +267,7 @@ impl pallet_xcm::Config for Runtime {
type TrustedLockers = ();
type SovereignAccountOf = LocationToAccountId;
type MaxLockers = ConstU32<8>;
- // FIXME: Replace with benchmarked weight info
- type WeightInfo = pallet_xcm::TestWeightInfo;
+ type WeightInfo = crate::weights::pallet_xcm::WeightInfo;
#[cfg(feature = "runtime-benchmarks")]
type ReachableDest = ReachableDest;
}
diff --git a/parachains/runtimes/contracts/contracts-rococo/src/lib.rs b/parachains/runtimes/contracts/contracts-rococo/src/lib.rs
index ce18548d005..85208f94946 100644
--- a/parachains/runtimes/contracts/contracts-rococo/src/lib.rs
+++ b/parachains/runtimes/contracts/contracts-rococo/src/lib.rs
@@ -99,7 +99,6 @@ pub type CheckedExtrinsic = generic::CheckedExtrinsic,
- pallet_balances::migration::MigrateToTrackInactive,
);
/// Executive: handles dispatch to the various modules.
@@ -385,6 +384,7 @@ mod benches {
[pallet_timestamp, Timestamp]
[pallet_collator_selection, CollatorSelection]
[pallet_contracts, Contracts]
+ [pallet_xcm, PolkadotXcm]
);
}
diff --git a/parachains/runtimes/testing/rococo-parachain/Cargo.toml b/parachains/runtimes/testing/rococo-parachain/Cargo.toml
index a50349c4f3d..7bb3361d32a 100644
--- a/parachains/runtimes/testing/rococo-parachain/Cargo.toml
+++ b/parachains/runtimes/testing/rococo-parachain/Cargo.toml
@@ -103,4 +103,5 @@ std = [
runtime-benchmarks = [
"frame-benchmarking/runtime-benchmarks",
"pallet-assets/runtime-benchmarks",
+ "pallet-xcm/runtime-benchmarks",
]