Add claim_assets extrinsic to pallet-xcm (#3403)

If an XCM execution fails or ends with leftover assets, these will be
trapped.
In order to claim them, a custom XCM has to be executed, with the
`ClaimAsset` instruction.
However, arbitrary XCM execution is not allowed everywhere yet and XCM
itself is still not easy enough to use for users out there with trapped
assets.
This new extrinsic in `pallet-xcm` will allow these users to easily
claim their assets, without concerning themselves with writing arbitrary
XCMs.

Part of fixing https://github.com/paritytech/polkadot-sdk/issues/3495

---------

Co-authored-by: command-bot <>
Co-authored-by: Adrian Catangiu <adrian@parity.io>
This commit is contained in:
Francisco Aguirre
2024-03-01 08:31:48 +01:00
committed by GitHub
parent c0e52a9ed6
commit 650886683d
29 changed files with 1521 additions and 1063 deletions
@@ -1454,6 +1454,13 @@ impl_runtime_apis! {
}); });
Some((assets, fee_index as u32, dest, verify)) Some((assets, fee_index as u32, dest, verify))
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
impl XcmBridgeHubRouterConfig<ToWestendXcmRouterInstance> for Runtime { impl XcmBridgeHubRouterConfig<ToWestendXcmRouterInstance> for Runtime {
@@ -16,10 +16,10 @@
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2023-12-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-r43aesjn-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-rococo-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
@@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `145` // Measured: `145`
// Estimated: `3610` // Estimated: `3610`
// Minimum execution time: 25_003_000 picoseconds. // Minimum execution time: 22_136_000 picoseconds.
Weight::from_parts(25_800_000, 0) Weight::from_parts(22_518_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -90,8 +90,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `145` // Measured: `145`
// Estimated: `3610` // Estimated: `3610`
// Minimum execution time: 88_832_000 picoseconds. // Minimum execution time: 92_277_000 picoseconds.
Weight::from_parts(90_491_000, 0) Weight::from_parts(94_843_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -118,8 +118,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `400` // Measured: `400`
// Estimated: `6196` // Estimated: `6196`
// Minimum execution time: 138_911_000 picoseconds. // Minimum execution time: 120_110_000 picoseconds.
Weight::from_parts(142_483_000, 0) Weight::from_parts(122_968_000, 0)
.saturating_add(Weight::from_parts(0, 6196)) .saturating_add(Weight::from_parts(0, 6196))
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(9))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
@@ -148,8 +148,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `496` // Measured: `496`
// Estimated: `6208` // Estimated: `6208`
// Minimum execution time: 146_932_000 picoseconds. // Minimum execution time: 143_116_000 picoseconds.
Weight::from_parts(153_200_000, 0) Weight::from_parts(147_355_000, 0)
.saturating_add(Weight::from_parts(0, 6208)) .saturating_add(Weight::from_parts(0, 6208))
.saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads(12))
.saturating_add(T::DbWeight::get().writes(7)) .saturating_add(T::DbWeight::get().writes(7))
@@ -170,8 +170,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 7_081_000 picoseconds. // Minimum execution time: 6_517_000 picoseconds.
Weight::from_parts(7_397_000, 0) Weight::from_parts(6_756_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -181,8 +181,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_007_000 picoseconds. // Minimum execution time: 1_894_000 picoseconds.
Weight::from_parts(2_183_000, 0) Weight::from_parts(2_024_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -208,8 +208,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `145` // Measured: `145`
// Estimated: `3610` // Estimated: `3610`
// Minimum execution time: 28_790_000 picoseconds. // Minimum execution time: 27_314_000 picoseconds.
Weight::from_parts(29_767_000, 0) Weight::from_parts(28_787_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
@@ -234,8 +234,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `363` // Measured: `363`
// Estimated: `3828` // Estimated: `3828`
// Minimum execution time: 30_951_000 picoseconds. // Minimum execution time: 29_840_000 picoseconds.
Weight::from_parts(31_804_000, 0) Weight::from_parts(30_589_000, 0)
.saturating_add(Weight::from_parts(0, 3828)) .saturating_add(Weight::from_parts(0, 3828))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
@@ -246,45 +246,45 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_164_000 picoseconds. // Minimum execution time: 1_893_000 picoseconds.
Weight::from_parts(2_311_000, 0) Weight::from_parts(2_017_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `162` // Measured: `159`
// Estimated: `11052` // Estimated: `13524`
// Minimum execution time: 16_906_000 picoseconds. // Minimum execution time: 19_211_000 picoseconds.
Weight::from_parts(17_612_000, 0) Weight::from_parts(19_552_000, 0)
.saturating_add(Weight::from_parts(0, 11052)) .saturating_add(Weight::from_parts(0, 13524))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `166` // Measured: `163`
// Estimated: `11056` // Estimated: `13528`
// Minimum execution time: 17_443_000 picoseconds. // Minimum execution time: 19_177_000 picoseconds.
Weight::from_parts(18_032_000, 0) Weight::from_parts(19_704_000, 0)
.saturating_add(Weight::from_parts(0, 11056)) .saturating_add(Weight::from_parts(0, 13528))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `173`
// Estimated: `13538` // Estimated: `16013`
// Minimum execution time: 18_992_000 picoseconds. // Minimum execution time: 20_449_000 picoseconds.
Weight::from_parts(19_464_000, 0) Weight::from_parts(21_075_000, 0)
.saturating_add(Weight::from_parts(0, 13538)) .saturating_add(Weight::from_parts(0, 16013))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -304,36 +304,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `212` // Measured: `212`
// Estimated: `6152` // Estimated: `6152`
// Minimum execution time: 28_011_000 picoseconds. // Minimum execution time: 26_578_000 picoseconds.
Weight::from_parts(28_716_000, 0) Weight::from_parts(27_545_000, 0)
.saturating_add(Weight::from_parts(0, 6152)) .saturating_add(Weight::from_parts(0, 6152))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `206` // Measured: `206`
// Estimated: `8621` // Estimated: `11096`
// Minimum execution time: 9_533_000 picoseconds. // Minimum execution time: 11_646_000 picoseconds.
Weight::from_parts(9_856_000, 0) Weight::from_parts(11_944_000, 0)
.saturating_add(Weight::from_parts(0, 8621)) .saturating_add(Weight::from_parts(0, 11096))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `170`
// Estimated: `11063` // Estimated: `13535`
// Minimum execution time: 17_628_000 picoseconds. // Minimum execution time: 19_301_000 picoseconds.
Weight::from_parts(18_146_000, 0) Weight::from_parts(19_664_000, 0)
.saturating_add(Weight::from_parts(0, 11063)) .saturating_add(Weight::from_parts(0, 13535))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
/// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
@@ -349,12 +349,12 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `215` // Measured: `212`
// Estimated: `11105` // Estimated: `13577`
// Minimum execution time: 34_877_000 picoseconds. // Minimum execution time: 35_715_000 picoseconds.
Weight::from_parts(35_607_000, 0) Weight::from_parts(36_915_000, 0)
.saturating_add(Weight::from_parts(0, 11105)) .saturating_add(Weight::from_parts(0, 13577))
.saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().reads(11))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
@@ -365,8 +365,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `103` // Measured: `103`
// Estimated: `1588` // Estimated: `1588`
// Minimum execution time: 5_370_000 picoseconds. // Minimum execution time: 4_871_000 picoseconds.
Weight::from_parts(5_616_000, 0) Weight::from_parts(5_066_000, 0)
.saturating_add(Weight::from_parts(0, 1588)) .saturating_add(Weight::from_parts(0, 1588))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -377,10 +377,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7740` // Measured: `7740`
// Estimated: `11205` // Estimated: `11205`
// Minimum execution time: 26_820_000 picoseconds. // Minimum execution time: 25_150_000 picoseconds.
Weight::from_parts(27_143_000, 0) Weight::from_parts(26_119_000, 0)
.saturating_add(Weight::from_parts(0, 11205)) .saturating_add(Weight::from_parts(0, 11205))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `160`
// Estimated: `3625`
// Minimum execution time: 38_248_000 picoseconds.
Weight::from_parts(39_122_000, 0)
.saturating_add(Weight::from_parts(0, 3625))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -1526,6 +1526,13 @@ impl_runtime_apis! {
}); });
Some((assets, fee_index as u32, dest, verify)) Some((assets, fee_index as u32, dest, verify))
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
use pallet_xcm_bridge_hub_router::benchmarking::{ use pallet_xcm_bridge_hub_router::benchmarking::{
@@ -16,10 +16,10 @@
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2023-12-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-r43aesjn-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-westend-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-westend-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
@@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `145` // Measured: `145`
// Estimated: `3610` // Estimated: `3610`
// Minimum execution time: 25_482_000 picoseconds. // Minimum execution time: 21_630_000 picoseconds.
Weight::from_parts(26_622_000, 0) Weight::from_parts(22_306_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -90,8 +90,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `145` // Measured: `145`
// Estimated: `3610` // Estimated: `3610`
// Minimum execution time: 87_319_000 picoseconds. // Minimum execution time: 91_802_000 picoseconds.
Weight::from_parts(89_764_000, 0) Weight::from_parts(93_672_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -118,8 +118,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `367` // Measured: `367`
// Estimated: `6196` // Estimated: `6196`
// Minimum execution time: 139_133_000 picoseconds. // Minimum execution time: 118_930_000 picoseconds.
Weight::from_parts(141_507_000, 0) Weight::from_parts(122_306_000, 0)
.saturating_add(Weight::from_parts(0, 6196)) .saturating_add(Weight::from_parts(0, 6196))
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(9))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
@@ -148,8 +148,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `496` // Measured: `496`
// Estimated: `6208` // Estimated: `6208`
// Minimum execution time: 144_241_000 picoseconds. // Minimum execution time: 140_527_000 picoseconds.
Weight::from_parts(149_709_000, 0) Weight::from_parts(144_501_000, 0)
.saturating_add(Weight::from_parts(0, 6208)) .saturating_add(Weight::from_parts(0, 6208))
.saturating_add(T::DbWeight::get().reads(12)) .saturating_add(T::DbWeight::get().reads(12))
.saturating_add(T::DbWeight::get().writes(7)) .saturating_add(T::DbWeight::get().writes(7))
@@ -158,8 +158,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 10_392_000 picoseconds. // Minimum execution time: 7_556_000 picoseconds.
Weight::from_parts(10_779_000, 0) Weight::from_parts(7_798_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
/// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1) /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1)
@@ -168,8 +168,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 7_088_000 picoseconds. // Minimum execution time: 6_373_000 picoseconds.
Weight::from_parts(7_257_000, 0) Weight::from_parts(6_603_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -179,8 +179,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_095_000 picoseconds. // Minimum execution time: 1_941_000 picoseconds.
Weight::from_parts(2_136_000, 0) Weight::from_parts(2_088_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -206,8 +206,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `145` // Measured: `145`
// Estimated: `3610` // Estimated: `3610`
// Minimum execution time: 28_728_000 picoseconds. // Minimum execution time: 27_080_000 picoseconds.
Weight::from_parts(29_349_000, 0) Weight::from_parts(27_820_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
@@ -232,8 +232,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `363` // Measured: `363`
// Estimated: `3828` // Estimated: `3828`
// Minimum execution time: 30_605_000 picoseconds. // Minimum execution time: 28_850_000 picoseconds.
Weight::from_parts(31_477_000, 0) Weight::from_parts(29_506_000, 0)
.saturating_add(Weight::from_parts(0, 3828)) .saturating_add(Weight::from_parts(0, 3828))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
@@ -244,45 +244,45 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_137_000 picoseconds. // Minimum execution time: 2_033_000 picoseconds.
Weight::from_parts(2_303_000, 0) Weight::from_parts(2_201_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `162` // Measured: `159`
// Estimated: `11052` // Estimated: `13524`
// Minimum execution time: 16_719_000 picoseconds. // Minimum execution time: 18_844_000 picoseconds.
Weight::from_parts(17_329_000, 0) Weight::from_parts(19_197_000, 0)
.saturating_add(Weight::from_parts(0, 11052)) .saturating_add(Weight::from_parts(0, 13524))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `166` // Measured: `163`
// Estimated: `11056` // Estimated: `13528`
// Minimum execution time: 16_687_000 picoseconds. // Minimum execution time: 18_940_000 picoseconds.
Weight::from_parts(17_405_000, 0) Weight::from_parts(19_450_000, 0)
.saturating_add(Weight::from_parts(0, 11056)) .saturating_add(Weight::from_parts(0, 13528))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `173`
// Estimated: `13538` // Estimated: `16013`
// Minimum execution time: 18_751_000 picoseconds. // Minimum execution time: 20_521_000 picoseconds.
Weight::from_parts(19_130_000, 0) Weight::from_parts(21_076_000, 0)
.saturating_add(Weight::from_parts(0, 13538)) .saturating_add(Weight::from_parts(0, 16013))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -302,36 +302,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `212` // Measured: `212`
// Estimated: `6152` // Estimated: `6152`
// Minimum execution time: 27_189_000 picoseconds. // Minimum execution time: 26_007_000 picoseconds.
Weight::from_parts(27_760_000, 0) Weight::from_parts(26_448_000, 0)
.saturating_add(Weight::from_parts(0, 6152)) .saturating_add(Weight::from_parts(0, 6152))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `206` // Measured: `206`
// Estimated: `8621` // Estimated: `11096`
// Minimum execution time: 9_307_000 picoseconds. // Minimum execution time: 11_584_000 picoseconds.
Weight::from_parts(9_691_000, 0) Weight::from_parts(12_080_000, 0)
.saturating_add(Weight::from_parts(0, 8621)) .saturating_add(Weight::from_parts(0, 11096))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `170`
// Estimated: `11063` // Estimated: `13535`
// Minimum execution time: 17_607_000 picoseconds. // Minimum execution time: 19_157_000 picoseconds.
Weight::from_parts(18_090_000, 0) Weight::from_parts(19_513_000, 0)
.saturating_add(Weight::from_parts(0, 11063)) .saturating_add(Weight::from_parts(0, 13535))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
/// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
@@ -347,12 +347,12 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `215` // Measured: `212`
// Estimated: `11105` // Estimated: `13577`
// Minimum execution time: 34_322_000 picoseconds. // Minimum execution time: 34_878_000 picoseconds.
Weight::from_parts(35_754_000, 0) Weight::from_parts(35_623_000, 0)
.saturating_add(Weight::from_parts(0, 11105)) .saturating_add(Weight::from_parts(0, 13577))
.saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().reads(11))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
@@ -363,8 +363,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `103` // Measured: `103`
// Estimated: `1588` // Estimated: `1588`
// Minimum execution time: 4_513_000 picoseconds. // Minimum execution time: 3_900_000 picoseconds.
Weight::from_parts(4_754_000, 0) Weight::from_parts(4_161_000, 0)
.saturating_add(Weight::from_parts(0, 1588)) .saturating_add(Weight::from_parts(0, 1588))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -375,10 +375,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7740` // Measured: `7740`
// Estimated: `11205` // Estimated: `11205`
// Minimum execution time: 27_860_000 picoseconds. // Minimum execution time: 25_731_000 picoseconds.
Weight::from_parts(28_279_000, 0) Weight::from_parts(26_160_000, 0)
.saturating_add(Weight::from_parts(0, 11205)) .saturating_add(Weight::from_parts(0, 11205))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `160`
// Estimated: `3625`
// Minimum execution time: 37_251_000 picoseconds.
Weight::from_parts(38_075_000, 0)
.saturating_add(Weight::from_parts(0, 3625))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -1148,6 +1148,13 @@ impl_runtime_apis! {
dest dest
) )
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
use xcm::latest::prelude::*; use xcm::latest::prelude::*;
@@ -16,10 +16,10 @@
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2023-12-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-r43aesjn-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-rococo-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
@@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `38` // Measured: `38`
// Estimated: `3503` // Estimated: `3503`
// Minimum execution time: 23_683_000 picoseconds. // Minimum execution time: 18_513_000 picoseconds.
Weight::from_parts(24_199_000, 0) Weight::from_parts(19_156_000, 0)
.saturating_add(Weight::from_parts(0, 3503)) .saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -90,8 +90,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `70` // Measured: `70`
// Estimated: `3593` // Estimated: `3593`
// Minimum execution time: 89_524_000 picoseconds. // Minimum execution time: 88_096_000 picoseconds.
Weight::from_parts(91_401_000, 0) Weight::from_parts(89_732_000, 0)
.saturating_add(Weight::from_parts(0, 3593)) .saturating_add(Weight::from_parts(0, 3593))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -126,8 +126,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `70` // Measured: `70`
// Estimated: `3593` // Estimated: `3593`
// Minimum execution time: 91_890_000 picoseconds. // Minimum execution time: 88_239_000 picoseconds.
Weight::from_parts(93_460_000, 0) Weight::from_parts(89_729_000, 0)
.saturating_add(Weight::from_parts(0, 3593)) .saturating_add(Weight::from_parts(0, 3593))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -148,8 +148,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 7_152_000 picoseconds. // Minimum execution time: 5_955_000 picoseconds.
Weight::from_parts(7_355_000, 0) Weight::from_parts(6_266_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -159,8 +159,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_081_000 picoseconds. // Minimum execution time: 1_868_000 picoseconds.
Weight::from_parts(2_258_000, 0) Weight::from_parts(1_961_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -186,8 +186,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `38` // Measured: `38`
// Estimated: `3503` // Estimated: `3503`
// Minimum execution time: 28_067_000 picoseconds. // Minimum execution time: 24_388_000 picoseconds.
Weight::from_parts(28_693_000, 0) Weight::from_parts(25_072_000, 0)
.saturating_add(Weight::from_parts(0, 3503)) .saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
@@ -212,8 +212,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `255` // Measured: `255`
// Estimated: `3720` // Estimated: `3720`
// Minimum execution time: 30_420_000 picoseconds. // Minimum execution time: 26_762_000 picoseconds.
Weight::from_parts(31_373_000, 0) Weight::from_parts(27_631_000, 0)
.saturating_add(Weight::from_parts(0, 3720)) .saturating_add(Weight::from_parts(0, 3720))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
@@ -224,45 +224,45 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_087_000 picoseconds. // Minimum execution time: 1_856_000 picoseconds.
Weight::from_parts(2_243_000, 0) Weight::from_parts(2_033_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `95` // Measured: `89`
// Estimated: `10985` // Estimated: `13454`
// Minimum execution time: 15_142_000 picoseconds. // Minimum execution time: 17_718_000 picoseconds.
Weight::from_parts(15_598_000, 0) Weight::from_parts(18_208_000, 0)
.saturating_add(Weight::from_parts(0, 10985)) .saturating_add(Weight::from_parts(0, 13454))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `99` // Measured: `93`
// Estimated: `10989` // Estimated: `13458`
// Minimum execution time: 15_041_000 picoseconds. // Minimum execution time: 17_597_000 picoseconds.
Weight::from_parts(15_493_000, 0) Weight::from_parts(18_090_000, 0)
.saturating_add(Weight::from_parts(0, 10989)) .saturating_add(Weight::from_parts(0, 13458))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `13471` // Estimated: `15946`
// Minimum execution time: 16_624_000 picoseconds. // Minimum execution time: 19_533_000 picoseconds.
Weight::from_parts(17_031_000, 0) Weight::from_parts(20_164_000, 0)
.saturating_add(Weight::from_parts(0, 13471)) .saturating_add(Weight::from_parts(0, 15946))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -282,36 +282,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `6046` // Estimated: `6046`
// Minimum execution time: 26_398_000 picoseconds. // Minimum execution time: 24_958_000 picoseconds.
Weight::from_parts(26_847_000, 0) Weight::from_parts(25_628_000, 0)
.saturating_add(Weight::from_parts(0, 6046)) .saturating_add(Weight::from_parts(0, 6046))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `136` // Measured: `136`
// Estimated: `8551` // Estimated: `11026`
// Minimum execution time: 8_741_000 picoseconds. // Minimum execution time: 12_209_000 picoseconds.
Weight::from_parts(8_954_000, 0) Weight::from_parts(12_612_000, 0)
.saturating_add(Weight::from_parts(0, 8551)) .saturating_add(Weight::from_parts(0, 11026))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `100`
// Estimated: `10996` // Estimated: `13465`
// Minimum execution time: 15_306_000 picoseconds. // Minimum execution time: 17_844_000 picoseconds.
Weight::from_parts(15_760_000, 0) Weight::from_parts(18_266_000, 0)
.saturating_add(Weight::from_parts(0, 10996)) .saturating_add(Weight::from_parts(0, 13465))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
/// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
@@ -327,12 +327,12 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `112` // Measured: `106`
// Estimated: `11002` // Estimated: `13471`
// Minimum execution time: 33_127_000 picoseconds. // Minimum execution time: 34_131_000 picoseconds.
Weight::from_parts(33_938_000, 0) Weight::from_parts(34_766_000, 0)
.saturating_add(Weight::from_parts(0, 11002)) .saturating_add(Weight::from_parts(0, 13471))
.saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().reads(11))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
@@ -343,8 +343,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `32` // Measured: `32`
// Estimated: `1517` // Estimated: `1517`
// Minimum execution time: 4_290_000 picoseconds. // Minimum execution time: 3_525_000 picoseconds.
Weight::from_parts(4_450_000, 0) Weight::from_parts(3_724_000, 0)
.saturating_add(Weight::from_parts(0, 1517)) .saturating_add(Weight::from_parts(0, 1517))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -355,10 +355,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7669` // Measured: `7669`
// Estimated: `11134` // Estimated: `11134`
// Minimum execution time: 26_408_000 picoseconds. // Minimum execution time: 24_975_000 picoseconds.
Weight::from_parts(26_900_000, 0) Weight::from_parts(25_517_000, 0)
.saturating_add(Weight::from_parts(0, 11134)) .saturating_add(Weight::from_parts(0, 11134))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `90`
// Estimated: `3555`
// Minimum execution time: 33_761_000 picoseconds.
Weight::from_parts(34_674_000, 0)
.saturating_add(Weight::from_parts(0, 3555))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -843,6 +843,13 @@ impl_runtime_apis! {
dest dest
) )
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
use xcm::latest::prelude::*; use xcm::latest::prelude::*;
@@ -16,10 +16,10 @@
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2023-12-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-r43aesjn-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-westend-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
@@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `38` // Measured: `38`
// Estimated: `3503` // Estimated: `3503`
// Minimum execution time: 23_219_000 picoseconds. // Minimum execution time: 19_527_000 picoseconds.
Weight::from_parts(23_818_000, 0) Weight::from_parts(19_839_000, 0)
.saturating_add(Weight::from_parts(0, 3503)) .saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -88,10 +88,10 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn teleport_assets() -> Weight { fn teleport_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `70` // Measured: `107`
// Estimated: `3593` // Estimated: `3593`
// Minimum execution time: 90_120_000 picoseconds. // Minimum execution time: 90_938_000 picoseconds.
Weight::from_parts(92_545_000, 0) Weight::from_parts(92_822_000, 0)
.saturating_add(Weight::from_parts(0, 3593)) .saturating_add(Weight::from_parts(0, 3593))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -124,10 +124,10 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn transfer_assets() -> Weight { fn transfer_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `70` // Measured: `107`
// Estimated: `3593` // Estimated: `3593`
// Minimum execution time: 91_339_000 picoseconds. // Minimum execution time: 90_133_000 picoseconds.
Weight::from_parts(93_204_000, 0) Weight::from_parts(92_308_000, 0)
.saturating_add(Weight::from_parts(0, 3593)) .saturating_add(Weight::from_parts(0, 3593))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -148,8 +148,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 6_976_000 picoseconds. // Minimum execution time: 6_205_000 picoseconds.
Weight::from_parts(7_284_000, 0) Weight::from_parts(6_595_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -159,8 +159,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_044_000 picoseconds. // Minimum execution time: 1_927_000 picoseconds.
Weight::from_parts(2_223_000, 0) Weight::from_parts(2_062_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -186,8 +186,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `38` // Measured: `38`
// Estimated: `3503` // Estimated: `3503`
// Minimum execution time: 27_778_000 picoseconds. // Minimum execution time: 25_078_000 picoseconds.
Weight::from_parts(28_318_000, 0) Weight::from_parts(25_782_000, 0)
.saturating_add(Weight::from_parts(0, 3503)) .saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
@@ -212,8 +212,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `255` // Measured: `255`
// Estimated: `3720` // Estimated: `3720`
// Minimum execution time: 30_446_000 picoseconds. // Minimum execution time: 28_188_000 picoseconds.
Weight::from_parts(31_925_000, 0) Weight::from_parts(28_826_000, 0)
.saturating_add(Weight::from_parts(0, 3720)) .saturating_add(Weight::from_parts(0, 3720))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
@@ -224,45 +224,45 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_037_000 picoseconds. // Minimum execution time: 1_886_000 picoseconds.
Weight::from_parts(2_211_000, 0) Weight::from_parts(1_991_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `95` // Measured: `89`
// Estimated: `10985` // Estimated: `13454`
// Minimum execution time: 15_620_000 picoseconds. // Minimum execution time: 17_443_000 picoseconds.
Weight::from_parts(15_984_000, 0) Weight::from_parts(17_964_000, 0)
.saturating_add(Weight::from_parts(0, 10985)) .saturating_add(Weight::from_parts(0, 13454))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `99` // Measured: `93`
// Estimated: `10989` // Estimated: `13458`
// Minimum execution time: 15_689_000 picoseconds. // Minimum execution time: 17_357_000 picoseconds.
Weight::from_parts(16_093_000, 0) Weight::from_parts(18_006_000, 0)
.saturating_add(Weight::from_parts(0, 10989)) .saturating_add(Weight::from_parts(0, 13458))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `13471` // Estimated: `15946`
// Minimum execution time: 16_946_000 picoseconds. // Minimum execution time: 18_838_000 picoseconds.
Weight::from_parts(17_192_000, 0) Weight::from_parts(19_688_000, 0)
.saturating_add(Weight::from_parts(0, 13471)) .saturating_add(Weight::from_parts(0, 15946))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -282,36 +282,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `6046` // Estimated: `6046`
// Minimum execution time: 27_164_000 picoseconds. // Minimum execution time: 25_517_000 picoseconds.
Weight::from_parts(27_760_000, 0) Weight::from_parts(26_131_000, 0)
.saturating_add(Weight::from_parts(0, 6046)) .saturating_add(Weight::from_parts(0, 6046))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `136` // Measured: `136`
// Estimated: `8551` // Estimated: `11026`
// Minimum execution time: 8_689_000 picoseconds. // Minimum execution time: 11_587_000 picoseconds.
Weight::from_parts(8_874_000, 0) Weight::from_parts(11_963_000, 0)
.saturating_add(Weight::from_parts(0, 8551)) .saturating_add(Weight::from_parts(0, 11026))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `100`
// Estimated: `10996` // Estimated: `13465`
// Minimum execution time: 15_944_000 picoseconds. // Minimum execution time: 17_490_000 picoseconds.
Weight::from_parts(16_381_000, 0) Weight::from_parts(18_160_000, 0)
.saturating_add(Weight::from_parts(0, 10996)) .saturating_add(Weight::from_parts(0, 13465))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
/// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
@@ -327,12 +327,12 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `112` // Measured: `106`
// Estimated: `11002` // Estimated: `13471`
// Minimum execution time: 33_826_000 picoseconds. // Minimum execution time: 34_088_000 picoseconds.
Weight::from_parts(34_784_000, 0) Weight::from_parts(34_598_000, 0)
.saturating_add(Weight::from_parts(0, 11002)) .saturating_add(Weight::from_parts(0, 13471))
.saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().reads(11))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
@@ -343,8 +343,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `32` // Measured: `32`
// Estimated: `1517` // Estimated: `1517`
// Minimum execution time: 4_257_000 picoseconds. // Minimum execution time: 3_566_000 picoseconds.
Weight::from_parts(4_383_000, 0) Weight::from_parts(3_754_000, 0)
.saturating_add(Weight::from_parts(0, 1517)) .saturating_add(Weight::from_parts(0, 1517))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -355,10 +355,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7669` // Measured: `7669`
// Estimated: `11134` // Estimated: `11134`
// Minimum execution time: 26_924_000 picoseconds. // Minimum execution time: 25_078_000 picoseconds.
Weight::from_parts(27_455_000, 0) Weight::from_parts(25_477_000, 0)
.saturating_add(Weight::from_parts(0, 11134)) .saturating_add(Weight::from_parts(0, 11134))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `90`
// Estimated: `3555`
// Minimum execution time: 34_661_000 picoseconds.
Weight::from_parts(35_411_000, 0)
.saturating_add(Weight::from_parts(0, 3555))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -1032,6 +1032,13 @@ impl_runtime_apis! {
dest dest
) )
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
let whitelist: Vec<TrackedStorageKey> = vec![ let whitelist: Vec<TrackedStorageKey> = vec![
@@ -16,10 +16,10 @@
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2023-12-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-r43aesjn-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
@@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `145` // Measured: `145`
// Estimated: `3610` // Estimated: `3610`
// Minimum execution time: 24_540_000 picoseconds. // Minimum execution time: 21_813_000 picoseconds.
Weight::from_parts(25_439_000, 0) Weight::from_parts(22_332_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -90,8 +90,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `214` // Measured: `214`
// Estimated: `3679` // Estimated: `3679`
// Minimum execution time: 86_614_000 picoseconds. // Minimum execution time: 93_243_000 picoseconds.
Weight::from_parts(88_884_000, 0) Weight::from_parts(95_650_000, 0)
.saturating_add(Weight::from_parts(0, 3679)) .saturating_add(Weight::from_parts(0, 3679))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -126,8 +126,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `214` // Measured: `214`
// Estimated: `3679` // Estimated: `3679`
// Minimum execution time: 87_915_000 picoseconds. // Minimum execution time: 96_199_000 picoseconds.
Weight::from_parts(90_219_000, 0) Weight::from_parts(98_620_000, 0)
.saturating_add(Weight::from_parts(0, 3679)) .saturating_add(Weight::from_parts(0, 3679))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -148,8 +148,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 6_872_000 picoseconds. // Minimum execution time: 6_442_000 picoseconds.
Weight::from_parts(7_110_000, 0) Weight::from_parts(6_682_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -159,8 +159,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_009_000 picoseconds. // Minimum execution time: 1_833_000 picoseconds.
Weight::from_parts(2_163_000, 0) Weight::from_parts(1_973_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -186,8 +186,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `145` // Measured: `145`
// Estimated: `3610` // Estimated: `3610`
// Minimum execution time: 28_858_000 picoseconds. // Minimum execution time: 27_318_000 picoseconds.
Weight::from_parts(29_355_000, 0) Weight::from_parts(28_224_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
@@ -212,8 +212,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `363` // Measured: `363`
// Estimated: `3828` // Estimated: `3828`
// Minimum execution time: 30_598_000 picoseconds. // Minimum execution time: 29_070_000 picoseconds.
Weight::from_parts(31_168_000, 0) Weight::from_parts(30_205_000, 0)
.saturating_add(Weight::from_parts(0, 3828)) .saturating_add(Weight::from_parts(0, 3828))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
@@ -224,45 +224,45 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_090_000 picoseconds. // Minimum execution time: 1_904_000 picoseconds.
Weight::from_parts(2_253_000, 0) Weight::from_parts(2_033_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `162` // Measured: `159`
// Estimated: `11052` // Estimated: `13524`
// Minimum execution time: 16_133_000 picoseconds. // Minimum execution time: 18_348_000 picoseconds.
Weight::from_parts(16_433_000, 0) Weight::from_parts(18_853_000, 0)
.saturating_add(Weight::from_parts(0, 11052)) .saturating_add(Weight::from_parts(0, 13524))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `166` // Measured: `163`
// Estimated: `11056` // Estimated: `13528`
// Minimum execution time: 16_012_000 picoseconds. // Minimum execution time: 17_964_000 picoseconds.
Weight::from_parts(16_449_000, 0) Weight::from_parts(18_548_000, 0)
.saturating_add(Weight::from_parts(0, 11056)) .saturating_add(Weight::from_parts(0, 13528))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `173`
// Estimated: `13538` // Estimated: `16013`
// Minimum execution time: 17_922_000 picoseconds. // Minimum execution time: 19_708_000 picoseconds.
Weight::from_parts(18_426_000, 0) Weight::from_parts(20_157_000, 0)
.saturating_add(Weight::from_parts(0, 13538)) .saturating_add(Weight::from_parts(0, 16013))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -282,36 +282,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `212` // Measured: `212`
// Estimated: `6152` // Estimated: `6152`
// Minimum execution time: 27_280_000 picoseconds. // Minimum execution time: 26_632_000 picoseconds.
Weight::from_parts(28_026_000, 0) Weight::from_parts(27_314_000, 0)
.saturating_add(Weight::from_parts(0, 6152)) .saturating_add(Weight::from_parts(0, 6152))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `206` // Measured: `206`
// Estimated: `8621` // Estimated: `11096`
// Minimum execution time: 9_387_000 picoseconds. // Minimum execution time: 11_929_000 picoseconds.
Weight::from_parts(9_644_000, 0) Weight::from_parts(12_304_000, 0)
.saturating_add(Weight::from_parts(0, 8621)) .saturating_add(Weight::from_parts(0, 11096))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `170`
// Estimated: `11063` // Estimated: `13535`
// Minimum execution time: 16_649_000 picoseconds. // Minimum execution time: 18_599_000 picoseconds.
Weight::from_parts(17_025_000, 0) Weight::from_parts(19_195_000, 0)
.saturating_add(Weight::from_parts(0, 11063)) .saturating_add(Weight::from_parts(0, 13535))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0) /// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
/// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
@@ -327,12 +327,12 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `215` // Measured: `212`
// Estimated: `11105` // Estimated: `13577`
// Minimum execution time: 34_355_000 picoseconds. // Minimum execution time: 35_524_000 picoseconds.
Weight::from_parts(35_295_000, 0) Weight::from_parts(36_272_000, 0)
.saturating_add(Weight::from_parts(0, 11105)) .saturating_add(Weight::from_parts(0, 13577))
.saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().reads(11))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
@@ -343,8 +343,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `103` // Measured: `103`
// Estimated: `1588` // Estimated: `1588`
// Minimum execution time: 4_527_000 picoseconds. // Minimum execution time: 4_044_000 picoseconds.
Weight::from_parts(4_699_000, 0) Weight::from_parts(4_238_000, 0)
.saturating_add(Weight::from_parts(0, 1588)) .saturating_add(Weight::from_parts(0, 1588))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -355,10 +355,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7740` // Measured: `7740`
// Estimated: `11205` // Estimated: `11205`
// Minimum execution time: 27_011_000 picoseconds. // Minimum execution time: 25_741_000 picoseconds.
Weight::from_parts(27_398_000, 0) Weight::from_parts(26_301_000, 0)
.saturating_add(Weight::from_parts(0, 11205)) .saturating_add(Weight::from_parts(0, 11205))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `160`
// Estimated: `3625`
// Minimum execution time: 35_925_000 picoseconds.
Weight::from_parts(36_978_000, 0)
.saturating_add(Weight::from_parts(0, 3625))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -764,6 +764,13 @@ impl_runtime_apis! {
dest dest
) )
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(EXISTENTIAL_DEPOSIT),
}
}
} }
let whitelist: Vec<TrackedStorageKey> = vec![ let whitelist: Vec<TrackedStorageKey> = vec![
@@ -740,6 +740,13 @@ impl_runtime_apis! {
// Reserve transfers are disabled // Reserve transfers are disabled
None None
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
parameter_types! { parameter_types! {
@@ -16,26 +16,24 @@
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2024-01-12, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-j8vvqcjr-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-rococo-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-rococo-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=coretime-rococo-dev
// --wasm-execution=compiled
// --pallet=pallet_xcm
// --no-storage-info
// --no-median-slopes
// --no-min-squares
// --extrinsic=*
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --json // --extrinsic=*
// --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=coretime-rococo-dev
// --header=./cumulus/file_header.txt // --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/ // --output=./cumulus/parachains/runtimes/coretime/coretime-rococo/src/weights/
@@ -64,8 +62,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `74` // Measured: `74`
// Estimated: `3539` // Estimated: `3539`
// Minimum execution time: 22_669_000 picoseconds. // Minimum execution time: 35_051_000 picoseconds.
Weight::from_parts(23_227_000, 0) Weight::from_parts(35_200_000, 0)
.saturating_add(Weight::from_parts(0, 3539)) .saturating_add(Weight::from_parts(0, 3539))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -86,8 +84,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `3571` // Estimated: `3571`
// Minimum execution time: 64_486_000 picoseconds. // Minimum execution time: 56_235_000 picoseconds.
Weight::from_parts(65_247_000, 0) Weight::from_parts(58_178_000, 0)
.saturating_add(Weight::from_parts(0, 3571)) .saturating_add(Weight::from_parts(0, 3571))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -128,8 +126,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 7_020_000 picoseconds. // Minimum execution time: 6_226_000 picoseconds.
Weight::from_parts(7_300_000, 0) Weight::from_parts(6_403_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -139,8 +137,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_022_000 picoseconds. // Minimum execution time: 2_020_000 picoseconds.
Weight::from_parts(2_141_000, 0) Weight::from_parts(2_100_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -164,8 +162,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `74` // Measured: `74`
// Estimated: `3539` // Estimated: `3539`
// Minimum execution time: 26_893_000 picoseconds. // Minimum execution time: 24_387_000 picoseconds.
Weight::from_parts(27_497_000, 0) Weight::from_parts(24_814_000, 0)
.saturating_add(Weight::from_parts(0, 3539)) .saturating_add(Weight::from_parts(0, 3539))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
@@ -188,8 +186,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `292` // Measured: `292`
// Estimated: `3757` // Estimated: `3757`
// Minimum execution time: 29_673_000 picoseconds. // Minimum execution time: 27_039_000 picoseconds.
Weight::from_parts(30_693_000, 0) Weight::from_parts(27_693_000, 0)
.saturating_add(Weight::from_parts(0, 3757)) .saturating_add(Weight::from_parts(0, 3757))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
@@ -200,45 +198,45 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 1_990_000 picoseconds. // Minimum execution time: 1_920_000 picoseconds.
Weight::from_parts(2_105_000, 0) Weight::from_parts(2_082_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2) /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `95` // Measured: `89`
// Estimated: `10985` // Estimated: `13454`
// Minimum execution time: 14_819_000 picoseconds. // Minimum execution time: 17_141_000 picoseconds.
Weight::from_parts(15_180_000, 0) Weight::from_parts(17_500_000, 0)
.saturating_add(Weight::from_parts(0, 10985)) .saturating_add(Weight::from_parts(0, 13454))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `99` // Measured: `93`
// Estimated: `10989` // Estimated: `13458`
// Minimum execution time: 14_935_000 picoseconds. // Minimum execution time: 17_074_000 picoseconds.
Weight::from_parts(15_335_000, 0) Weight::from_parts(17_431_000, 0)
.saturating_add(Weight::from_parts(0, 10989)) .saturating_add(Weight::from_parts(0, 13458))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `13471` // Estimated: `15946`
// Minimum execution time: 16_278_000 picoseconds. // Minimum execution time: 19_139_000 picoseconds.
Weight::from_parts(16_553_000, 0) Weight::from_parts(19_474_000, 0)
.saturating_add(Weight::from_parts(0, 13471)) .saturating_add(Weight::from_parts(0, 15946))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -256,36 +254,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `142` // Measured: `142`
// Estimated: `6082` // Estimated: `6082`
// Minimum execution time: 26_360_000 picoseconds. // Minimum execution time: 24_346_000 picoseconds.
Weight::from_parts(26_868_000, 0) Weight::from_parts(25_318_000, 0)
.saturating_add(Weight::from_parts(0, 6082)) .saturating_add(Weight::from_parts(0, 6082))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `136` // Measured: `136`
// Estimated: `8551` // Estimated: `11026`
// Minimum execution time: 8_615_000 picoseconds. // Minimum execution time: 11_777_000 picoseconds.
Weight::from_parts(8_903_000, 0) Weight::from_parts(12_051_000, 0)
.saturating_add(Weight::from_parts(0, 8551)) .saturating_add(Weight::from_parts(0, 11026))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `100`
// Estimated: `10996` // Estimated: `13465`
// Minimum execution time: 15_284_000 picoseconds. // Minimum execution time: 17_538_000 picoseconds.
Weight::from_parts(15_504_000, 0) Weight::from_parts(17_832_000, 0)
.saturating_add(Weight::from_parts(0, 10996)) .saturating_add(Weight::from_parts(0, 13465))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -299,12 +297,12 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `148` // Measured: `142`
// Estimated: `11038` // Estimated: `13507`
// Minimum execution time: 32_675_000 picoseconds. // Minimum execution time: 33_623_000 picoseconds.
Weight::from_parts(33_816_000, 0) Weight::from_parts(34_186_000, 0)
.saturating_add(Weight::from_parts(0, 11038)) .saturating_add(Weight::from_parts(0, 13507))
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(10))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
@@ -315,8 +313,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `32` // Measured: `32`
// Estimated: `1517` // Estimated: `1517`
// Minimum execution time: 4_058_000 picoseconds. // Minimum execution time: 3_363_000 picoseconds.
Weight::from_parts(4_170_000, 0) Weight::from_parts(3_511_000, 0)
.saturating_add(Weight::from_parts(0, 1517)) .saturating_add(Weight::from_parts(0, 1517))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -327,10 +325,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7669` // Measured: `7669`
// Estimated: `11134` // Estimated: `11134`
// Minimum execution time: 25_375_000 picoseconds. // Minimum execution time: 23_969_000 picoseconds.
Weight::from_parts(26_026_000, 0) Weight::from_parts(24_347_000, 0)
.saturating_add(Weight::from_parts(0, 11134)) .saturating_add(Weight::from_parts(0, 11134))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `90`
// Estimated: `3555`
// Minimum execution time: 34_071_000 picoseconds.
Weight::from_parts(35_031_000, 0)
.saturating_add(Weight::from_parts(0, 3555))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -731,6 +731,13 @@ impl_runtime_apis! {
// Reserve transfers are disabled // Reserve transfers are disabled
None None
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
parameter_types! { parameter_types! {
@@ -17,25 +17,23 @@
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2024-02-08, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-westend-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("coretime-westend-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=coretime-westend-dev
// --wasm-execution=compiled
// --pallet=pallet_xcm
// --no-storage-info
// --no-median-slopes
// --no-min-squares
// --extrinsic=*
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --json // --extrinsic=*
// --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=coretime-westend-dev
// --header=./cumulus/file_header.txt // --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/ // --output=./cumulus/parachains/runtimes/coretime/coretime-westend/src/weights/
@@ -64,8 +62,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `74` // Measured: `74`
// Estimated: `3539` // Estimated: `3539`
// Minimum execution time: 17_946_000 picoseconds. // Minimum execution time: 18_410_000 picoseconds.
Weight::from_parts(18_398_000, 0) Weight::from_parts(18_657_000, 0)
.saturating_add(Weight::from_parts(0, 3539)) .saturating_add(Weight::from_parts(0, 3539))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -86,8 +84,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `3571` // Estimated: `3571`
// Minimum execution time: 47_982_000 picoseconds. // Minimum execution time: 56_616_000 picoseconds.
Weight::from_parts(49_215_000, 0) Weight::from_parts(57_751_000, 0)
.saturating_add(Weight::from_parts(0, 3571)) .saturating_add(Weight::from_parts(0, 3571))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -128,8 +126,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 6_042_000 picoseconds. // Minimum execution time: 6_014_000 picoseconds.
Weight::from_parts(6_257_000, 0) Weight::from_parts(6_412_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -139,8 +137,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 1_845_000 picoseconds. // Minimum execution time: 1_844_000 picoseconds.
Weight::from_parts(1_993_000, 0) Weight::from_parts(1_957_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -164,8 +162,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `74` // Measured: `74`
// Estimated: `3539` // Estimated: `3539`
// Minimum execution time: 24_062_000 picoseconds. // Minimum execution time: 24_067_000 picoseconds.
Weight::from_parts(24_666_000, 0) Weight::from_parts(24_553_000, 0)
.saturating_add(Weight::from_parts(0, 3539)) .saturating_add(Weight::from_parts(0, 3539))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
@@ -188,8 +186,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `292` // Measured: `292`
// Estimated: `3757` // Estimated: `3757`
// Minimum execution time: 26_486_000 picoseconds. // Minimum execution time: 27_023_000 picoseconds.
Weight::from_parts(27_528_000, 0) Weight::from_parts(27_620_000, 0)
.saturating_add(Weight::from_parts(0, 3757)) .saturating_add(Weight::from_parts(0, 3757))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
@@ -200,8 +198,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 1_881_000 picoseconds. // Minimum execution time: 1_866_000 picoseconds.
Weight::from_parts(2_008_000, 0) Weight::from_parts(1_984_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -211,8 +209,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `89` // Measured: `89`
// Estimated: `13454` // Estimated: `13454`
// Minimum execution time: 15_971_000 picoseconds. // Minimum execution time: 16_425_000 picoseconds.
Weight::from_parts(16_455_000, 0) Weight::from_parts(16_680_000, 0)
.saturating_add(Weight::from_parts(0, 13454)) .saturating_add(Weight::from_parts(0, 13454))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -223,8 +221,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `93` // Measured: `93`
// Estimated: `13458` // Estimated: `13458`
// Minimum execution time: 16_603_000 picoseconds. // Minimum execution time: 16_171_000 picoseconds.
Weight::from_parts(17_037_000, 0) Weight::from_parts(16_564_000, 0)
.saturating_add(Weight::from_parts(0, 13458)) .saturating_add(Weight::from_parts(0, 13458))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -235,8 +233,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `15946` // Estimated: `15946`
// Minimum execution time: 17_821_000 picoseconds. // Minimum execution time: 17_785_000 picoseconds.
Weight::from_parts(18_200_000, 0) Weight::from_parts(18_123_000, 0)
.saturating_add(Weight::from_parts(0, 15946)) .saturating_add(Weight::from_parts(0, 15946))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
} }
@@ -256,8 +254,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `142` // Measured: `142`
// Estimated: `6082` // Estimated: `6082`
// Minimum execution time: 23_878_000 picoseconds. // Minimum execution time: 23_903_000 picoseconds.
Weight::from_parts(24_721_000, 0) Weight::from_parts(24_769_000, 0)
.saturating_add(Weight::from_parts(0, 6082)) .saturating_add(Weight::from_parts(0, 6082))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -268,8 +266,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `136` // Measured: `136`
// Estimated: `11026` // Estimated: `11026`
// Minimum execution time: 10_566_000 picoseconds. // Minimum execution time: 10_617_000 picoseconds.
Weight::from_parts(11_053_000, 0) Weight::from_parts(10_843_000, 0)
.saturating_add(Weight::from_parts(0, 11026)) .saturating_add(Weight::from_parts(0, 11026))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
} }
@@ -279,8 +277,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `100` // Measured: `100`
// Estimated: `13465` // Estimated: `13465`
// Minimum execution time: 16_020_000 picoseconds. // Minimum execution time: 16_656_000 picoseconds.
Weight::from_parts(16_619_000, 0) Weight::from_parts(17_106_000, 0)
.saturating_add(Weight::from_parts(0, 13465)) .saturating_add(Weight::from_parts(0, 13465))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -301,8 +299,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `142` // Measured: `142`
// Estimated: `13507` // Estimated: `13507`
// Minimum execution time: 32_136_000 picoseconds. // Minimum execution time: 31_721_000 picoseconds.
Weight::from_parts(32_610_000, 0) Weight::from_parts(32_547_000, 0)
.saturating_add(Weight::from_parts(0, 13507)) .saturating_add(Weight::from_parts(0, 13507))
.saturating_add(T::DbWeight::get().reads(10)) .saturating_add(T::DbWeight::get().reads(10))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
@@ -315,8 +313,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `32` // Measured: `32`
// Estimated: `1517` // Estimated: `1517`
// Minimum execution time: 3_336_000 picoseconds. // Minimum execution time: 3_439_000 picoseconds.
Weight::from_parts(3_434_000, 0) Weight::from_parts(3_619_000, 0)
.saturating_add(Weight::from_parts(0, 1517)) .saturating_add(Weight::from_parts(0, 1517))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -327,10 +325,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7669` // Measured: `7669`
// Estimated: `11134` // Estimated: `11134`
// Minimum execution time: 23_977_000 picoseconds. // Minimum execution time: 24_657_000 picoseconds.
Weight::from_parts(24_413_000, 0) Weight::from_parts(24_971_000, 0)
.saturating_add(Weight::from_parts(0, 11134)) .saturating_add(Weight::from_parts(0, 11134))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `90`
// Estimated: `3555`
// Minimum execution time: 34_028_000 picoseconds.
Weight::from_parts(34_697_000, 0)
.saturating_add(Weight::from_parts(0, 3555))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -710,6 +710,13 @@ impl_runtime_apis! {
fn reserve_transferable_asset_and_dest() -> Option<(Asset, Location)> { fn reserve_transferable_asset_and_dest() -> Option<(Asset, Location)> {
None None
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
use xcm::latest::prelude::*; use xcm::latest::prelude::*;
@@ -1,40 +1,41 @@
// Copyright (C) Parity Technologies (UK) Ltd. // Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: Apache-2.0 // This file is part of Cumulus.
// Licensed under the Apache License, Version 2.0 (the "License"); // Cumulus is free software: you can redistribute it and/or modify
// you may not use this file except in compliance with the License. // it under the terms of the GNU General Public License as published by
// You may obtain a copy of the License at // the Free Software Foundation, either version 3 of the License, or
// // (at your option) any later version.
// http://www.apache.org/licenses/LICENSE-2.0
// // Cumulus is distributed in the hope that it will be useful,
// Unless required by applicable law or agreed to in writing, software // but WITHOUT ANY WARRANTY; without even the implied warranty of
// distributed under the License is distributed on an "AS IS" BASIS, // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // GNU General Public License for more details.
// See the License for the specific language governing permissions and
// limitations under the License. // You should have received a copy of the GNU General Public License
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2023-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("people-kusama-dev"), DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("people-rococo-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./artifacts/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=people-kusama-dev
// --execution=wasm
// --wasm-execution=compiled
// --pallet=pallet_xcm
// --extrinsic=*
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --json // --extrinsic=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./cumulus/parachains/runtimes/people/people-kusama/src/weights/pallet_xcm.rs // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=people-rococo-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/people/people-rococo/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -47,57 +48,6 @@ use core::marker::PhantomData;
/// Weight functions for `pallet_xcm`. /// Weight functions for `pallet_xcm`.
pub struct WeightInfo<T>(PhantomData<T>); pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> { impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured)
fn send() -> Weight {
// Proof Size summary in bytes:
// Measured: `38`
// Estimated: `3503`
// Minimum execution time: 25_931_000 picoseconds.
Weight::from_parts(26_340_000, 0)
.saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: ParachainInfo ParachainId (r:1 w:0)
/// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
fn teleport_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `32`
// Estimated: `1489`
// Minimum execution time: 25_691_000 picoseconds.
Weight::from_parts(25_971_000, 0)
.saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1))
}
/// Storage: Benchmark Override (r:0 w:0)
/// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured)
fn reserve_transfer_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
Weight::from_parts(18_446_744_073_709_551_000, 0)
.saturating_add(Weight::from_parts(0, 0))
}
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
/// Storage: `Assets::Asset` (r:1 w:1)
/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
/// Storage: `Assets::Account` (r:2 w:2)
/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
/// Storage: `System::Account` (r:2 w:2)
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
/// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
/// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
@@ -108,18 +58,60 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn send() -> Weight {
// Proof Size summary in bytes:
// Measured: `38`
// Estimated: `3503`
// Minimum execution time: 17_830_000 picoseconds.
Weight::from_parts(18_411_000, 0)
.saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn teleport_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `70`
// Estimated: `3535`
// Minimum execution time: 55_456_000 picoseconds.
Weight::from_parts(56_808_000, 0)
.saturating_add(Weight::from_parts(0, 3535))
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `Benchmark::Override` (r:0 w:0)
/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn reserve_transfer_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
Weight::from_parts(18_446_744_073_709_551_000, 0)
.saturating_add(Weight::from_parts(0, 0))
}
/// Storage: `Benchmark::Override` (r:0 w:0)
/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn transfer_assets() -> Weight { fn transfer_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `496` // Measured: `0`
// Estimated: `6208` // Estimated: `0`
// Minimum execution time: 146_932_000 picoseconds. // Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
Weight::from_parts(153_200_000, 0) Weight::from_parts(18_446_744_073_709_551_000, 0)
.saturating_add(Weight::from_parts(0, 6208)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().reads(12))
.saturating_add(T::DbWeight::get().writes(7))
} }
/// Storage: Benchmark Override (r:0 w:0) /// Storage: `Benchmark::Override` (r:0 w:0)
/// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn execute() -> Weight { fn execute() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
@@ -128,189 +120,189 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
Weight::from_parts(18_446_744_073_709_551_000, 0) Weight::from_parts(18_446_744_073_709_551_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
/// Storage: PolkadotXcm SupportedVersion (r:0 w:1) /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_xcm_version() -> Weight { fn force_xcm_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 9_572_000 picoseconds. // Minimum execution time: 5_996_000 picoseconds.
Weight::from_parts(9_924_000, 0) Weight::from_parts(6_154_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn force_default_xcm_version() -> Weight { fn force_default_xcm_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_997_000 picoseconds. // Minimum execution time: 1_768_000 picoseconds.
Weight::from_parts(3_136_000, 0) Weight::from_parts(1_914_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm QueryCounter (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
/// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm Queries (r:0 w:1) /// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_subscribe_version_notify() -> Weight { fn force_subscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `38` // Measured: `38`
// Estimated: `3503` // Estimated: `3503`
// Minimum execution time: 30_271_000 picoseconds. // Minimum execution time: 24_120_000 picoseconds.
Weight::from_parts(30_819_000, 0) Weight::from_parts(24_745_000, 0)
.saturating_add(Weight::from_parts(0, 3503)) .saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
} }
/// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm Queries (r:0 w:1) /// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_unsubscribe_version_notify() -> Weight { fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `220` // Measured: `255`
// Estimated: `3685` // Estimated: `3720`
// Minimum execution time: 32_302_000 picoseconds. // Minimum execution time: 26_630_000 picoseconds.
Weight::from_parts(32_807_000, 0) Weight::from_parts(27_289_000, 0)
.saturating_add(Weight::from_parts(0, 3685)) .saturating_add(Weight::from_parts(0, 3720))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: PolkadotXcm XcmExecutionSuspended (r:0 w:1) /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1)
/// Proof Skipped: PolkadotXcm XcmExecutionSuspended (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn force_suspension() -> Weight { fn force_suspension() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_960_000 picoseconds. // Minimum execution time: 1_821_000 picoseconds.
Weight::from_parts(3_094_000, 0) Weight::from_parts(1_946_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: PolkadotXcm SupportedVersion (r:4 w:2) /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `95` // Measured: `89`
// Estimated: `10985` // Estimated: `13454`
// Minimum execution time: 14_877_000 picoseconds. // Minimum execution time: 16_586_000 picoseconds.
Weight::from_parts(15_296_000, 0) Weight::from_parts(16_977_000, 0)
.saturating_add(Weight::from_parts(0, 10985)) .saturating_add(Weight::from_parts(0, 13454))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
/// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `99` // Measured: `93`
// Estimated: `10989` // Estimated: `13458`
// Minimum execution time: 14_835_000 picoseconds. // Minimum execution time: 16_923_000 picoseconds.
Weight::from_parts(15_115_000, 0) Weight::from_parts(17_415_000, 0)
.saturating_add(Weight::from_parts(0, 10989)) .saturating_add(Weight::from_parts(0, 13458))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `13471` // Estimated: `15946`
// Minimum execution time: 15_368_000 picoseconds. // Minimum execution time: 18_596_000 picoseconds.
Weight::from_parts(15_596_000, 0) Weight::from_parts(18_823_000, 0)
.saturating_add(Weight::from_parts(0, 13471)) .saturating_add(Weight::from_parts(0, 15946))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn notify_current_targets() -> Weight { fn notify_current_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `6046` // Estimated: `6046`
// Minimum execution time: 28_025_000 picoseconds. // Minimum execution time: 23_817_000 picoseconds.
Weight::from_parts(28_524_000, 0) Weight::from_parts(24_520_000, 0)
.saturating_add(Weight::from_parts(0, 6046)) .saturating_add(Weight::from_parts(0, 6046))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `136` // Measured: `136`
// Estimated: `8551` // Estimated: `11026`
// Minimum execution time: 8_166_000 picoseconds. // Minimum execution time: 11_042_000 picoseconds.
Weight::from_parts(8_314_000, 0) Weight::from_parts(11_578_000, 0)
.saturating_add(Weight::from_parts(0, 8551)) .saturating_add(Weight::from_parts(0, 11026))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `100`
// Estimated: `10996` // Estimated: `13465`
// Minimum execution time: 14_871_000 picoseconds. // Minimum execution time: 17_306_000 picoseconds.
Weight::from_parts(15_374_000, 0) Weight::from_parts(17_817_000, 0)
.saturating_add(Weight::from_parts(0, 10996)) .saturating_add(Weight::from_parts(0, 13465))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `112` // Measured: `106`
// Estimated: `11002` // Estimated: `13471`
// Minimum execution time: 33_611_000 picoseconds. // Minimum execution time: 32_141_000 picoseconds.
Weight::from_parts(34_008_000, 0) Weight::from_parts(32_954_000, 0)
.saturating_add(Weight::from_parts(0, 11002)) .saturating_add(Weight::from_parts(0, 13471))
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(10))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
@@ -319,11 +311,11 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight { fn new_query() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `103` // Measured: `32`
// Estimated: `1588` // Estimated: `1517`
// Minimum execution time: 5_496_000 picoseconds. // Minimum execution time: 3_410_000 picoseconds.
Weight::from_parts(5_652_000, 0) Weight::from_parts(3_556_000, 0)
.saturating_add(Weight::from_parts(0, 1588)) .saturating_add(Weight::from_parts(0, 1517))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
@@ -331,11 +323,23 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight { fn take_response() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7740` // Measured: `7669`
// Estimated: `11205` // Estimated: `11134`
// Minimum execution time: 26_140_000 picoseconds. // Minimum execution time: 25_021_000 picoseconds.
Weight::from_parts(26_824_000, 0) Weight::from_parts(25_240_000, 0)
.saturating_add(Weight::from_parts(0, 11205)) .saturating_add(Weight::from_parts(0, 11134))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `90`
// Estimated: `3555`
// Minimum execution time: 33_801_000 picoseconds.
Weight::from_parts(34_655_000, 0)
.saturating_add(Weight::from_parts(0, 3555))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -710,6 +710,13 @@ impl_runtime_apis! {
fn reserve_transferable_asset_and_dest() -> Option<(Asset, Location)> { fn reserve_transferable_asset_and_dest() -> Option<(Asset, Location)> {
None None
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::parent()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
use xcm::latest::prelude::*; use xcm::latest::prelude::*;
@@ -1,40 +1,41 @@
// Copyright (C) Parity Technologies (UK) Ltd. // Copyright (C) Parity Technologies (UK) Ltd.
// SPDX-License-Identifier: Apache-2.0 // This file is part of Cumulus.
// Licensed under the Apache License, Version 2.0 (the "License"); // Cumulus is free software: you can redistribute it and/or modify
// you may not use this file except in compliance with the License. // it under the terms of the GNU General Public License as published by
// You may obtain a copy of the License at // the Free Software Foundation, either version 3 of the License, or
// // (at your option) any later version.
// http://www.apache.org/licenses/LICENSE-2.0
// // Cumulus is distributed in the hope that it will be useful,
// Unless required by applicable law or agreed to in writing, software // but WITHOUT ANY WARRANTY; without even the implied warranty of
// distributed under the License is distributed on an "AS IS" BASIS, // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // GNU General Public License for more details.
// See the License for the specific language governing permissions and
// limitations under the License. // You should have received a copy of the GNU General Public License
// along with Cumulus. If not, see <http://www.gnu.org/licenses/>.
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2023-05-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("people-polkadot-dev"), DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("people-westend-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./artifacts/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=people-polkadot-dev
// --execution=wasm
// --wasm-execution=compiled
// --pallet=pallet_xcm
// --extrinsic=*
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --json // --extrinsic=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./cumulus/parachains/runtimes/people/people-polkadot/src/weights/pallet_xcm.rs // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=people-westend-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/people/people-westend/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -47,57 +48,6 @@ use core::marker::PhantomData;
/// Weight functions for `pallet_xcm`. /// Weight functions for `pallet_xcm`.
pub struct WeightInfo<T>(PhantomData<T>); pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> { impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured)
fn send() -> Weight {
// Proof Size summary in bytes:
// Measured: `38`
// Estimated: `3503`
// Minimum execution time: 25_783_000 picoseconds.
Weight::from_parts(26_398_000, 0)
.saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: ParachainInfo ParachainId (r:1 w:0)
/// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen)
fn teleport_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `32`
// Estimated: `1489`
// Minimum execution time: 25_511_000 picoseconds.
Weight::from_parts(26_120_000, 0)
.saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1))
}
/// Storage: Benchmark Override (r:0 w:0)
/// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured)
fn reserve_transfer_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
Weight::from_parts(18_446_744_073_709_551_000, 0)
.saturating_add(Weight::from_parts(0, 0))
}
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
/// Storage: `Assets::Asset` (r:1 w:1)
/// Proof: `Assets::Asset` (`max_values`: None, `max_size`: Some(210), added: 2685, mode: `MaxEncodedLen`)
/// Storage: `Assets::Account` (r:2 w:2)
/// Proof: `Assets::Account` (`max_values`: None, `max_size`: Some(134), added: 2609, mode: `MaxEncodedLen`)
/// Storage: `System::Account` (r:2 w:2)
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
/// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
/// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
@@ -108,18 +58,60 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn send() -> Weight {
// Proof Size summary in bytes:
// Measured: `38`
// Estimated: `3503`
// Minimum execution time: 17_856_000 picoseconds.
Weight::from_parts(18_473_000, 0)
.saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
/// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn teleport_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `70`
// Estimated: `3535`
// Minimum execution time: 56_112_000 picoseconds.
Weight::from_parts(57_287_000, 0)
.saturating_add(Weight::from_parts(0, 3535))
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `Benchmark::Override` (r:0 w:0)
/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn reserve_transfer_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `0`
// Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
Weight::from_parts(18_446_744_073_709_551_000, 0)
.saturating_add(Weight::from_parts(0, 0))
}
/// Storage: `Benchmark::Override` (r:0 w:0)
/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn transfer_assets() -> Weight { fn transfer_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `496` // Measured: `0`
// Estimated: `6208` // Estimated: `0`
// Minimum execution time: 146_932_000 picoseconds. // Minimum execution time: 18_446_744_073_709_551_000 picoseconds.
Weight::from_parts(153_200_000, 0) Weight::from_parts(18_446_744_073_709_551_000, 0)
.saturating_add(Weight::from_parts(0, 6208)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().reads(12))
.saturating_add(T::DbWeight::get().writes(7))
} }
/// Storage: Benchmark Override (r:0 w:0) /// Storage: `Benchmark::Override` (r:0 w:0)
/// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn execute() -> Weight { fn execute() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
@@ -128,189 +120,189 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
Weight::from_parts(18_446_744_073_709_551_000, 0) Weight::from_parts(18_446_744_073_709_551_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
/// Storage: PolkadotXcm SupportedVersion (r:0 w:1) /// Storage: `PolkadotXcm::SupportedVersion` (r:0 w:1)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_xcm_version() -> Weight { fn force_xcm_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 9_707_000 picoseconds. // Minimum execution time: 6_186_000 picoseconds.
Weight::from_parts(9_874_000, 0) Weight::from_parts(6_420_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:0 w:1)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn force_default_xcm_version() -> Weight { fn force_default_xcm_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 3_073_000 picoseconds. // Minimum execution time: 1_824_000 picoseconds.
Weight::from_parts(3_183_000, 0) Weight::from_parts(1_999_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm QueryCounter (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
/// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm Queries (r:0 w:1) /// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_subscribe_version_notify() -> Weight { fn force_subscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `38` // Measured: `38`
// Estimated: `3503` // Estimated: `3503`
// Minimum execution time: 30_999_000 picoseconds. // Minimum execution time: 23_833_000 picoseconds.
Weight::from_parts(31_641_000, 0) Weight::from_parts(24_636_000, 0)
.saturating_add(Weight::from_parts(0, 3503)) .saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
} }
/// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) /// Storage: `PolkadotXcm::VersionNotifiers` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm Queries (r:0 w:1) /// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_unsubscribe_version_notify() -> Weight { fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `220` // Measured: `255`
// Estimated: `3685` // Estimated: `3720`
// Minimum execution time: 33_036_000 picoseconds. // Minimum execution time: 26_557_000 picoseconds.
Weight::from_parts(33_596_000, 0) Weight::from_parts(27_275_000, 0)
.saturating_add(Weight::from_parts(0, 3685)) .saturating_add(Weight::from_parts(0, 3720))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: PolkadotXcm XcmExecutionSuspended (r:0 w:1) /// Storage: `PolkadotXcm::XcmExecutionSuspended` (r:0 w:1)
/// Proof Skipped: PolkadotXcm XcmExecutionSuspended (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::XcmExecutionSuspended` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn force_suspension() -> Weight { fn force_suspension() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 3_035_000 picoseconds. // Minimum execution time: 1_921_000 picoseconds.
Weight::from_parts(3_154_000, 0) Weight::from_parts(2_040_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: PolkadotXcm SupportedVersion (r:4 w:2) /// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `95` // Measured: `89`
// Estimated: `10985` // Estimated: `13454`
// Minimum execution time: 14_805_000 picoseconds. // Minimum execution time: 16_832_000 picoseconds.
Weight::from_parts(15_120_000, 0) Weight::from_parts(17_312_000, 0)
.saturating_add(Weight::from_parts(0, 10985)) .saturating_add(Weight::from_parts(0, 13454))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
/// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `99` // Measured: `93`
// Estimated: `10989` // Estimated: `13458`
// Minimum execution time: 14_572_000 picoseconds. // Minimum execution time: 16_687_000 picoseconds.
Weight::from_parts(14_909_000, 0) Weight::from_parts(17_123_000, 0)
.saturating_add(Weight::from_parts(0, 10989)) .saturating_add(Weight::from_parts(0, 13458))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `13471` // Estimated: `15946`
// Minimum execution time: 15_341_000 picoseconds. // Minimum execution time: 18_164_000 picoseconds.
Weight::from_parts(15_708_000, 0) Weight::from_parts(18_580_000, 0)
.saturating_add(Weight::from_parts(0, 13471)) .saturating_add(Weight::from_parts(0, 15946))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn notify_current_targets() -> Weight { fn notify_current_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `106`
// Estimated: `6046` // Estimated: `6046`
// Minimum execution time: 27_840_000 picoseconds. // Minimum execution time: 23_577_000 picoseconds.
Weight::from_parts(28_248_000, 0) Weight::from_parts(24_324_000, 0)
.saturating_add(Weight::from_parts(0, 6046)) .saturating_add(Weight::from_parts(0, 6046))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(7))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `136` // Measured: `136`
// Estimated: `8551` // Estimated: `11026`
// Minimum execution time: 8_245_000 picoseconds. // Minimum execution time: 11_014_000 picoseconds.
Weight::from_parts(8_523_000, 0) Weight::from_parts(11_223_000, 0)
.saturating_add(Weight::from_parts(0, 8551)) .saturating_add(Weight::from_parts(0, 11026))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `106` // Measured: `100`
// Estimated: `10996` // Estimated: `13465`
// Minimum execution time: 14_780_000 picoseconds. // Minimum execution time: 16_887_000 picoseconds.
Weight::from_parts(15_173_000, 0) Weight::from_parts(17_361_000, 0)
.saturating_add(Weight::from_parts(0, 10996)) .saturating_add(Weight::from_parts(0, 13465))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
/// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SupportedVersion (r:1 w:0) /// Storage: `PolkadotXcm::SupportedVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) /// Storage: `PolkadotXcm::VersionDiscoveryQueue` (r:1 w:1)
/// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::VersionDiscoveryQueue` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) /// Storage: `PolkadotXcm::SafeXcmVersion` (r:1 w:0)
/// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `PolkadotXcm::SafeXcmVersion` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem HostConfiguration (r:1 w:0) /// Storage: `ParachainSystem::HostConfiguration` (r:1 w:0)
/// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::HostConfiguration` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) /// Storage: `ParachainSystem::PendingUpwardMessages` (r:1 w:1)
/// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `112` // Measured: `106`
// Estimated: `11002` // Estimated: `13471`
// Minimum execution time: 33_422_000 picoseconds. // Minimum execution time: 31_705_000 picoseconds.
Weight::from_parts(34_076_000, 0) Weight::from_parts(32_166_000, 0)
.saturating_add(Weight::from_parts(0, 11002)) .saturating_add(Weight::from_parts(0, 13471))
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(10))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1) /// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
@@ -319,11 +311,11 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight { fn new_query() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `103` // Measured: `32`
// Estimated: `1588` // Estimated: `1517`
// Minimum execution time: 5_496_000 picoseconds. // Minimum execution time: 3_568_000 picoseconds.
Weight::from_parts(5_652_000, 0) Weight::from_parts(3_669_000, 0)
.saturating_add(Weight::from_parts(0, 1588)) .saturating_add(Weight::from_parts(0, 1517))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
@@ -331,11 +323,23 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight { fn take_response() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7740` // Measured: `7669`
// Estimated: `11205` // Estimated: `11134`
// Minimum execution time: 26_140_000 picoseconds. // Minimum execution time: 24_823_000 picoseconds.
Weight::from_parts(26_824_000, 0) Weight::from_parts(25_344_000, 0)
.saturating_add(Weight::from_parts(0, 11205)) .saturating_add(Weight::from_parts(0, 11134))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `90`
// Estimated: `3555`
// Minimum execution time: 34_516_000 picoseconds.
Weight::from_parts(35_478_000, 0)
.saturating_add(Weight::from_parts(0, 3555))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
+7
View File
@@ -2336,6 +2336,13 @@ sp_api::impl_runtime_apis! {
dest dest
) )
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::here()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
impl pallet_xcm_benchmarks::Config for Runtime { impl pallet_xcm_benchmarks::Config for Runtime {
type XcmConfig = XcmConfig; type XcmConfig = XcmConfig;
+141 -89
View File
@@ -16,10 +16,10 @@
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
@@ -48,10 +48,6 @@ use core::marker::PhantomData;
/// Weight functions for `pallet_xcm`. /// Weight functions for `pallet_xcm`.
pub struct WeightInfo<T>(PhantomData<T>); pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> { impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
fn transfer_assets() -> Weight {
// TODO: run benchmarks
Weight::zero()
}
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
@@ -62,36 +58,80 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn send() -> Weight { fn send() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `142` // Measured: `180`
// Estimated: `3607` // Estimated: `3645`
// Minimum execution time: 27_328_000 picoseconds. // Minimum execution time: 25_043_000 picoseconds.
Weight::from_parts(27_976_000, 0) Weight::from_parts(25_682_000, 0)
.saturating_add(Weight::from_parts(0, 3607)) .saturating_add(Weight::from_parts(0, 3645))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `System::Account` (r:1 w:1)
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn teleport_assets() -> Weight { fn teleport_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `180`
// Estimated: `0` // Estimated: `3645`
// Minimum execution time: 16_280_000 picoseconds. // Minimum execution time: 107_570_000 picoseconds.
Weight::from_parts(16_904_000, 0) Weight::from_parts(109_878_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 3645))
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: `System::Account` (r:1 w:1)
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn reserve_transfer_assets() -> Weight { fn reserve_transfer_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `232`
// Estimated: `0` // Estimated: `3697`
// Minimum execution time: 15_869_000 picoseconds. // Minimum execution time: 106_341_000 picoseconds.
Weight::from_parts(16_264_000, 0) Weight::from_parts(109_135_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 3697))
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(3))
}
/// Storage: `System::Account` (r:1 w:1)
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn transfer_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `180`
// Estimated: `3645`
// Minimum execution time: 108_372_000 picoseconds.
Weight::from_parts(112_890_000, 0)
.saturating_add(Weight::from_parts(0, 3645))
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(3))
} }
fn execute() -> Weight { fn execute() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 6_923_000 picoseconds. // Minimum execution time: 6_957_000 picoseconds.
Weight::from_parts(7_432_000, 0) Weight::from_parts(7_417_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
/// Storage: `XcmPallet::SupportedVersion` (r:0 w:1) /// Storage: `XcmPallet::SupportedVersion` (r:0 w:1)
@@ -100,8 +140,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 7_333_000 picoseconds. // Minimum execution time: 7_053_000 picoseconds.
Weight::from_parts(7_566_000, 0) Weight::from_parts(7_462_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -109,8 +149,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_219_000 picoseconds. // Minimum execution time: 1_918_000 picoseconds.
Weight::from_parts(2_375_000, 0) Weight::from_parts(2_037_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
/// Storage: `XcmPallet::VersionNotifiers` (r:1 w:1) /// Storage: `XcmPallet::VersionNotifiers` (r:1 w:1)
@@ -129,11 +169,11 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_subscribe_version_notify() -> Weight { fn force_subscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `142` // Measured: `180`
// Estimated: `3607` // Estimated: `3645`
// Minimum execution time: 30_650_000 picoseconds. // Minimum execution time: 30_417_000 picoseconds.
Weight::from_parts(31_683_000, 0) Weight::from_parts(31_191_000, 0)
.saturating_add(Weight::from_parts(0, 3607)) .saturating_add(Weight::from_parts(0, 3645))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
} }
@@ -151,11 +191,11 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_unsubscribe_version_notify() -> Weight { fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `322` // Measured: `360`
// Estimated: `3787` // Estimated: `3825`
// Minimum execution time: 37_666_000 picoseconds. // Minimum execution time: 36_666_000 picoseconds.
Weight::from_parts(38_920_000, 0) Weight::from_parts(37_779_000, 0)
.saturating_add(Weight::from_parts(0, 3787)) .saturating_add(Weight::from_parts(0, 3825))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
@@ -165,45 +205,45 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_244_000 picoseconds. // Minimum execution time: 1_869_000 picoseconds.
Weight::from_parts(2_425_000, 0) Weight::from_parts(2_003_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `XcmPallet::SupportedVersion` (r:4 w:2) /// Storage: `XcmPallet::SupportedVersion` (r:5 w:2)
/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `26` // Measured: `22`
// Estimated: `10916` // Estimated: `13387`
// Minimum execution time: 14_710_000 picoseconds. // Minimum execution time: 16_188_000 picoseconds.
Weight::from_parts(15_156_000, 0) Weight::from_parts(16_435_000, 0)
.saturating_add(Weight::from_parts(0, 10916)) .saturating_add(Weight::from_parts(0, 13387))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `XcmPallet::VersionNotifiers` (r:4 w:2) /// Storage: `XcmPallet::VersionNotifiers` (r:5 w:2)
/// Proof: `XcmPallet::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `30` // Measured: `26`
// Estimated: `10920` // Estimated: `13391`
// Minimum execution time: 14_630_000 picoseconds. // Minimum execution time: 16_431_000 picoseconds.
Weight::from_parts(15_290_000, 0) Weight::from_parts(16_935_000, 0)
.saturating_add(Weight::from_parts(0, 10920)) .saturating_add(Weight::from_parts(0, 13391))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:5 w:0) /// Storage: `XcmPallet::VersionNotifyTargets` (r:6 w:0)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `40` // Measured: `40`
// Estimated: `13405` // Estimated: `15880`
// Minimum execution time: 16_686_000 picoseconds. // Minimum execution time: 18_460_000 picoseconds.
Weight::from_parts(17_332_000, 0) Weight::from_parts(18_885_000, 0)
.saturating_add(Weight::from_parts(0, 13405)) .saturating_add(Weight::from_parts(0, 15880))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:2 w:1) /// Storage: `XcmPallet::VersionNotifyTargets` (r:2 w:1)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -217,38 +257,38 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_current_targets() -> Weight { fn notify_current_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `178` // Measured: `216`
// Estimated: `6118` // Estimated: `6156`
// Minimum execution time: 30_180_000 picoseconds. // Minimum execution time: 29_623_000 picoseconds.
Weight::from_parts(31_351_000, 0) Weight::from_parts(30_661_000, 0)
.saturating_add(Weight::from_parts(0, 6118)) .saturating_add(Weight::from_parts(0, 6156))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:3 w:0) /// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:0)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `69` // Measured: `69`
// Estimated: `8484` // Estimated: `10959`
// Minimum execution time: 9_624_000 picoseconds. // Minimum execution time: 12_043_000 picoseconds.
Weight::from_parts(10_029_000, 0) Weight::from_parts(12_360_000, 0)
.saturating_add(Weight::from_parts(0, 8484)) .saturating_add(Weight::from_parts(0, 10959))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:2) /// Storage: `XcmPallet::VersionNotifyTargets` (r:5 w:2)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `37` // Measured: `33`
// Estimated: `10927` // Estimated: `13398`
// Minimum execution time: 15_139_000 picoseconds. // Minimum execution time: 16_511_000 picoseconds.
Weight::from_parts(15_575_000, 0) Weight::from_parts(17_011_000, 0)
.saturating_add(Weight::from_parts(0, 10927)) .saturating_add(Weight::from_parts(0, 13398))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:2) /// Storage: `XcmPallet::VersionNotifyTargets` (r:5 w:2)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -260,12 +300,12 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `182` // Measured: `216`
// Estimated: `11072` // Estimated: `13581`
// Minimum execution time: 37_871_000 picoseconds. // Minimum execution time: 39_041_000 picoseconds.
Weight::from_parts(38_940_000, 0) Weight::from_parts(39_883_000, 0)
.saturating_add(Weight::from_parts(0, 11072)) .saturating_add(Weight::from_parts(0, 13581))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(9))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `XcmPallet::QueryCounter` (r:1 w:1) /// Storage: `XcmPallet::QueryCounter` (r:1 w:1)
@@ -276,8 +316,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `1485` // Estimated: `1485`
// Minimum execution time: 2_732_000 picoseconds. // Minimum execution time: 2_030_000 picoseconds.
Weight::from_parts(2_892_000, 0) Weight::from_parts(2_150_000, 0)
.saturating_add(Weight::from_parts(0, 1485)) .saturating_add(Weight::from_parts(0, 1485))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -288,10 +328,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7576` // Measured: `7576`
// Estimated: `11041` // Estimated: `11041`
// Minimum execution time: 23_813_000 picoseconds. // Minimum execution time: 22_615_000 picoseconds.
Weight::from_parts(24_201_000, 0) Weight::from_parts(23_008_000, 0)
.saturating_add(Weight::from_parts(0, 11041)) .saturating_add(Weight::from_parts(0, 11041))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `XcmPallet::AssetTraps` (r:1 w:1)
/// Proof: `XcmPallet::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `23`
// Estimated: `3488`
// Minimum execution time: 34_438_000 picoseconds.
Weight::from_parts(35_514_000, 0)
.saturating_add(Weight::from_parts(0, 3488))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
+7
View File
@@ -2412,6 +2412,13 @@ sp_api::impl_runtime_apis! {
dest dest
) )
} }
fn get_asset() -> Asset {
Asset {
id: AssetId(Location::here()),
fun: Fungible(ExistentialDeposit::get()),
}
}
} }
impl frame_system_benchmarking::Config for Runtime {} impl frame_system_benchmarking::Config for Runtime {}
impl pallet_nomination_pools_benchmarking::Config for Runtime {} impl pallet_nomination_pools_benchmarking::Config for Runtime {}
@@ -16,26 +16,24 @@
//! Autogenerated weights for `pallet_xcm` //! Autogenerated weights for `pallet_xcm`
//! //!
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
//! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("westend-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot // target/production/polkadot
// benchmark // benchmark
// pallet // pallet
// --chain=westend-dev
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --no-storage-info
// --no-median-slopes
// --no-min-squares
// --pallet=pallet_xcm
// --extrinsic=* // --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled // --wasm-execution=compiled
// --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=westend-dev
// --header=./polkadot/file_header.txt // --header=./polkadot/file_header.txt
// --output=./polkadot/runtime/westend/src/weights/ // --output=./polkadot/runtime/westend/src/weights/
@@ -50,10 +48,6 @@ use core::marker::PhantomData;
/// Weight functions for `pallet_xcm`. /// Weight functions for `pallet_xcm`.
pub struct WeightInfo<T>(PhantomData<T>); pub struct WeightInfo<T>(PhantomData<T>);
impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> { impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
fn transfer_assets() -> Weight {
// TODO: run benchmarks
Weight::zero()
}
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
@@ -64,29 +58,73 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn send() -> Weight { fn send() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `109` // Measured: `147`
// Estimated: `3574` // Estimated: `3612`
// Minimum execution time: 28_098_000 picoseconds. // Minimum execution time: 25_725_000 picoseconds.
Weight::from_parts(28_887_000, 0) Weight::from_parts(26_174_000, 0)
.saturating_add(Weight::from_parts(0, 3574)) .saturating_add(Weight::from_parts(0, 3612))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `System::Account` (r:2 w:2)
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn teleport_assets() -> Weight { fn teleport_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `250`
// Estimated: `0` // Estimated: `6196`
// Minimum execution time: 17_609_000 picoseconds. // Minimum execution time: 113_140_000 picoseconds.
Weight::from_parts(18_000_000, 0) Weight::from_parts(116_204_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 6196))
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `System::Account` (r:2 w:2)
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn reserve_transfer_assets() -> Weight { fn reserve_transfer_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `302`
// Estimated: `0` // Estimated: `6196`
// Minimum execution time: 17_007_000 picoseconds. // Minimum execution time: 108_571_000 picoseconds.
Weight::from_parts(17_471_000, 0) Weight::from_parts(110_650_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 6196))
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4))
}
/// Storage: `System::Account` (r:2 w:2)
/// Proof: `System::Account` (`max_values`: None, `max_size`: Some(128), added: 2603, mode: `MaxEncodedLen`)
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn transfer_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `250`
// Estimated: `6196`
// Minimum execution time: 111_836_000 picoseconds.
Weight::from_parts(114_435_000, 0)
.saturating_add(Weight::from_parts(0, 6196))
.saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `Benchmark::Override` (r:0 w:0) /// Storage: `Benchmark::Override` (r:0 w:0)
/// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Benchmark::Override` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -104,8 +142,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 7_444_000 picoseconds. // Minimum execution time: 7_160_000 picoseconds.
Weight::from_parts(7_671_000, 0) Weight::from_parts(7_477_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
@@ -113,8 +151,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_126_000 picoseconds. // Minimum execution time: 1_934_000 picoseconds.
Weight::from_parts(2_253_000, 0) Weight::from_parts(2_053_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
/// Storage: `XcmPallet::VersionNotifiers` (r:1 w:1) /// Storage: `XcmPallet::VersionNotifiers` (r:1 w:1)
@@ -133,11 +171,11 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_subscribe_version_notify() -> Weight { fn force_subscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `109` // Measured: `147`
// Estimated: `3574` // Estimated: `3612`
// Minimum execution time: 31_318_000 picoseconds. // Minimum execution time: 31_123_000 picoseconds.
Weight::from_parts(32_413_000, 0) Weight::from_parts(31_798_000, 0)
.saturating_add(Weight::from_parts(0, 3574)) .saturating_add(Weight::from_parts(0, 3612))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
} }
@@ -155,11 +193,11 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_unsubscribe_version_notify() -> Weight { fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `289` // Measured: `327`
// Estimated: `3754` // Estimated: `3792`
// Minimum execution time: 35_282_000 picoseconds. // Minimum execution time: 35_175_000 picoseconds.
Weight::from_parts(35_969_000, 0) Weight::from_parts(36_098_000, 0)
.saturating_add(Weight::from_parts(0, 3754)) .saturating_add(Weight::from_parts(0, 3792))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
@@ -169,45 +207,45 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_247_000 picoseconds. // Minimum execution time: 1_974_000 picoseconds.
Weight::from_parts(2_381_000, 0) Weight::from_parts(2_096_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `XcmPallet::SupportedVersion` (r:4 w:2) /// Storage: `XcmPallet::SupportedVersion` (r:5 w:2)
/// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_supported_version() -> Weight { fn migrate_supported_version() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `26` // Measured: `22`
// Estimated: `10916` // Estimated: `13387`
// Minimum execution time: 14_512_000 picoseconds. // Minimum execution time: 16_626_000 picoseconds.
Weight::from_parts(15_042_000, 0) Weight::from_parts(17_170_000, 0)
.saturating_add(Weight::from_parts(0, 10916)) .saturating_add(Weight::from_parts(0, 13387))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `XcmPallet::VersionNotifiers` (r:4 w:2) /// Storage: `XcmPallet::VersionNotifiers` (r:5 w:2)
/// Proof: `XcmPallet::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notifiers() -> Weight { fn migrate_version_notifiers() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `30` // Measured: `26`
// Estimated: `10920` // Estimated: `13391`
// Minimum execution time: 14_659_000 picoseconds. // Minimum execution time: 16_937_000 picoseconds.
Weight::from_parts(15_164_000, 0) Weight::from_parts(17_447_000, 0)
.saturating_add(Weight::from_parts(0, 10920)) .saturating_add(Weight::from_parts(0, 13391))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:5 w:0) /// Storage: `XcmPallet::VersionNotifyTargets` (r:6 w:0)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn already_notified_target() -> Weight { fn already_notified_target() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `40` // Measured: `40`
// Estimated: `13405` // Estimated: `15880`
// Minimum execution time: 16_261_000 picoseconds. // Minimum execution time: 19_157_000 picoseconds.
Weight::from_parts(16_986_000, 0) Weight::from_parts(19_659_000, 0)
.saturating_add(Weight::from_parts(0, 13405)) .saturating_add(Weight::from_parts(0, 15880))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:2 w:1) /// Storage: `XcmPallet::VersionNotifyTargets` (r:2 w:1)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -221,38 +259,38 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_current_targets() -> Weight { fn notify_current_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `145` // Measured: `183`
// Estimated: `6085` // Estimated: `6123`
// Minimum execution time: 30_539_000 picoseconds. // Minimum execution time: 30_699_000 picoseconds.
Weight::from_parts(31_117_000, 0) Weight::from_parts(31_537_000, 0)
.saturating_add(Weight::from_parts(0, 6085)) .saturating_add(Weight::from_parts(0, 6123))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:3 w:0) /// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:0)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn notify_target_migration_fail() -> Weight { fn notify_target_migration_fail() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `69` // Measured: `69`
// Estimated: `8484` // Estimated: `10959`
// Minimum execution time: 9_463_000 picoseconds. // Minimum execution time: 12_303_000 picoseconds.
Weight::from_parts(9_728_000, 0) Weight::from_parts(12_670_000, 0)
.saturating_add(Weight::from_parts(0, 8484)) .saturating_add(Weight::from_parts(0, 10959))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(4))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:2) /// Storage: `XcmPallet::VersionNotifyTargets` (r:5 w:2)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_version_notify_targets() -> Weight { fn migrate_version_notify_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `37` // Measured: `33`
// Estimated: `10927` // Estimated: `13398`
// Minimum execution time: 15_169_000 picoseconds. // Minimum execution time: 17_129_000 picoseconds.
Weight::from_parts(15_694_000, 0) Weight::from_parts(17_668_000, 0)
.saturating_add(Weight::from_parts(0, 10927)) .saturating_add(Weight::from_parts(0, 13398))
.saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:2) /// Storage: `XcmPallet::VersionNotifyTargets` (r:5 w:2)
/// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
@@ -264,12 +302,12 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `149` // Measured: `183`
// Estimated: `11039` // Estimated: `13548`
// Minimum execution time: 37_549_000 picoseconds. // Minimum execution time: 39_960_000 picoseconds.
Weight::from_parts(38_203_000, 0) Weight::from_parts(41_068_000, 0)
.saturating_add(Weight::from_parts(0, 11039)) .saturating_add(Weight::from_parts(0, 13548))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(9))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `XcmPallet::QueryCounter` (r:1 w:1) /// Storage: `XcmPallet::QueryCounter` (r:1 w:1)
@@ -280,8 +318,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `1485` // Estimated: `1485`
// Minimum execution time: 2_947_000 picoseconds. // Minimum execution time: 2_333_000 picoseconds.
Weight::from_parts(3_117_000, 0) Weight::from_parts(2_504_000, 0)
.saturating_add(Weight::from_parts(0, 1485)) .saturating_add(Weight::from_parts(0, 1485))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -292,10 +330,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `7576` // Measured: `7576`
// Estimated: `11041` // Estimated: `11041`
// Minimum execution time: 24_595_000 picoseconds. // Minimum execution time: 22_932_000 picoseconds.
Weight::from_parts(24_907_000, 0) Weight::from_parts(23_307_000, 0)
.saturating_add(Weight::from_parts(0, 11041)) .saturating_add(Weight::from_parts(0, 11041))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
} }
/// Storage: `XcmPallet::AssetTraps` (r:1 w:1)
/// Proof: `XcmPallet::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn claim_assets() -> Weight {
// Proof Size summary in bytes:
// Measured: `23`
// Estimated: `3488`
// Minimum execution time: 34_558_000 picoseconds.
Weight::from_parts(35_299_000, 0)
.saturating_add(Weight::from_parts(0, 3488))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
+20 -1
View File
@@ -79,6 +79,13 @@ pub trait Config: crate::Config {
fn set_up_complex_asset_transfer() -> Option<(Assets, u32, Location, Box<dyn FnOnce()>)> { fn set_up_complex_asset_transfer() -> Option<(Assets, u32, Location, Box<dyn FnOnce()>)> {
None None
} }
/// Gets an asset that can be handled by the AssetTransactor.
///
/// Used only in benchmarks.
///
/// Used, for example, in the benchmark for `claim_assets`.
fn get_asset() -> Asset;
} }
benchmarks! { benchmarks! {
@@ -341,11 +348,23 @@ benchmarks! {
u32::MAX, u32::MAX,
).unwrap()).collect::<Vec<_>>(); ).unwrap()).collect::<Vec<_>>();
crate::Pallet::<T>::expect_response(query_id, Response::PalletsInfo(infos.try_into().unwrap())); crate::Pallet::<T>::expect_response(query_id, Response::PalletsInfo(infos.try_into().unwrap()));
}: { }: {
<crate::Pallet::<T> as QueryHandler>::take_response(query_id); <crate::Pallet::<T> as QueryHandler>::take_response(query_id);
} }
claim_assets {
let claim_origin = RawOrigin::Signed(whitelisted_caller());
let claim_location = T::ExecuteXcmOrigin::try_origin(claim_origin.clone().into()).map_err(|_| BenchmarkError::Override(BenchmarkResult::from_weight(Weight::MAX)))?;
let asset: Asset = T::get_asset();
// Trap assets for claiming later
crate::Pallet::<T>::drop_assets(
&claim_location,
asset.clone().into(),
&XcmContext { origin: None, message_id: [0u8; 32], topic: None }
);
let versioned_assets = VersionedAssets::V4(asset.into());
}: _<RuntimeOrigin<T>>(claim_origin.into(), Box::new(versioned_assets), Box::new(VersionedLocation::V4(claim_location)))
impl_benchmark_test_suite!( impl_benchmark_test_suite!(
Pallet, Pallet,
crate::mock::new_test_ext_with_balances(Vec::new()), crate::mock::new_test_ext_with_balances(Vec::new()),
+63
View File
@@ -85,6 +85,7 @@ pub trait WeightInfo {
fn migrate_and_notify_old_targets() -> Weight; fn migrate_and_notify_old_targets() -> Weight;
fn new_query() -> Weight; fn new_query() -> Weight;
fn take_response() -> Weight; fn take_response() -> Weight;
fn claim_assets() -> Weight;
} }
/// fallback implementation /// fallback implementation
@@ -165,6 +166,10 @@ impl WeightInfo for TestWeightInfo {
fn take_response() -> Weight { fn take_response() -> Weight {
Weight::from_parts(100_000_000, 0) Weight::from_parts(100_000_000, 0)
} }
fn claim_assets() -> Weight {
Weight::from_parts(100_000_000, 0)
}
} }
#[frame_support::pallet] #[frame_support::pallet]
@@ -1386,6 +1391,64 @@ pub mod pallet {
weight_limit, weight_limit,
) )
} }
/// Claims assets trapped on this pallet because of leftover assets during XCM execution.
///
/// - `origin`: Anyone can call this extrinsic.
/// - `assets`: The exact assets that were trapped. Use the version to specify what version
/// was the latest when they were trapped.
/// - `beneficiary`: The location/account where the claimed assets will be deposited.
#[pallet::call_index(12)]
#[pallet::weight({
let assets_version = assets.identify_version();
let maybe_assets: Result<Assets, ()> = (*assets.clone()).try_into();
let maybe_beneficiary: Result<Location, ()> = (*beneficiary.clone()).try_into();
match (maybe_assets, maybe_beneficiary) {
(Ok(assets), Ok(beneficiary)) => {
let ticket: Location = GeneralIndex(assets_version as u128).into();
let mut message = Xcm(vec![
ClaimAsset { assets: assets.clone(), ticket },
DepositAsset { assets: AllCounted(assets.len() as u32).into(), beneficiary },
]);
T::Weigher::weight(&mut message).map_or(Weight::MAX, |w| T::WeightInfo::claim_assets().saturating_add(w))
}
_ => Weight::MAX
}
})]
pub fn claim_assets(
origin: OriginFor<T>,
assets: Box<VersionedAssets>,
beneficiary: Box<VersionedLocation>,
) -> DispatchResult {
let origin_location = T::ExecuteXcmOrigin::ensure_origin(origin)?;
log::debug!(target: "xcm::pallet_xcm::claim_assets", "origin: {:?}, assets: {:?}, beneficiary: {:?}", origin_location, assets, beneficiary);
// Extract version from `assets`.
let assets_version = assets.identify_version();
let assets: Assets = (*assets).try_into().map_err(|()| Error::<T>::BadVersion)?;
let number_of_assets = assets.len() as u32;
let beneficiary: Location =
(*beneficiary).try_into().map_err(|()| Error::<T>::BadVersion)?;
let ticket: Location = GeneralIndex(assets_version as u128).into();
let mut message = Xcm(vec![
ClaimAsset { assets, ticket },
DepositAsset { assets: AllCounted(number_of_assets).into(), beneficiary },
]);
let weight =
T::Weigher::weight(&mut message).map_err(|()| Error::<T>::UnweighableMessage)?;
let mut hash = message.using_encoded(sp_io::hashing::blake2_256);
let outcome = T::XcmExecutor::prepare_and_execute(
origin_location,
message,
&mut hash,
weight,
weight,
);
outcome.ensure_complete().map_err(|error| {
log::error!(target: "xcm::pallet_xcm::claim_assets", "XCM execution failed with error: {:?}", error);
Error::<T>::LocalExecutionIncomplete
})?;
Ok(())
}
} }
} }
+5 -1
View File
@@ -172,7 +172,7 @@ impl SendXcm for TestSendXcm {
msg: &mut Option<Xcm<()>>, msg: &mut Option<Xcm<()>>,
) -> SendResult<(Location, Xcm<()>)> { ) -> SendResult<(Location, Xcm<()>)> {
if FAIL_SEND_XCM.with(|q| *q.borrow()) { if FAIL_SEND_XCM.with(|q| *q.borrow()) {
return Err(SendError::Transport("Intentional send failure used in tests")) return Err(SendError::Transport("Intentional send failure used in tests"));
} }
let pair = (dest.take().unwrap(), msg.take().unwrap()); let pair = (dest.take().unwrap(), msg.take().unwrap());
Ok((pair, Assets::new())) Ok((pair, Assets::new()))
@@ -654,6 +654,10 @@ impl super::benchmarking::Config for Test {
}); });
Some((assets, fee_index as u32, dest, verify)) Some((assets, fee_index as u32, dest, verify))
} }
fn get_asset() -> Asset {
Asset { id: AssetId(Location::here()), fun: Fungible(ExistentialDeposit::get()) }
}
} }
pub(crate) fn last_event() -> RuntimeEvent { pub(crate) fn last_event() -> RuntimeEvent {
+51
View File
@@ -467,6 +467,57 @@ fn trapped_assets_can_be_claimed() {
}); });
} }
// Like `trapped_assets_can_be_claimed` but using the `claim_assets` extrinsic.
#[test]
fn claim_assets_works() {
let balances = vec![(ALICE, INITIAL_BALANCE)];
new_test_ext_with_balances(balances).execute_with(|| {
// First trap some assets.
let trapping_program =
Xcm::builder_unsafe().withdraw_asset((Here, SEND_AMOUNT).into()).build();
// Even though assets are trapped, the extrinsic returns success.
assert_ok!(XcmPallet::execute(
RuntimeOrigin::signed(ALICE),
Box::new(VersionedXcm::V4(trapping_program)),
BaseXcmWeight::get() * 2,
));
assert_eq!(Balances::total_balance(&ALICE), INITIAL_BALANCE - SEND_AMOUNT);
// Expected `AssetsTrapped` event info.
let source: Location = Junction::AccountId32 { network: None, id: ALICE.into() }.into();
let versioned_assets = VersionedAssets::V4(Assets::from((Here, SEND_AMOUNT)));
let hash = BlakeTwo256::hash_of(&(source.clone(), versioned_assets.clone()));
// Assets were indeed trapped.
assert_eq!(
last_events(2),
vec![
RuntimeEvent::XcmPallet(crate::Event::AssetsTrapped {
hash,
origin: source,
assets: versioned_assets
}),
RuntimeEvent::XcmPallet(crate::Event::Attempted {
outcome: Outcome::Complete { used: BaseXcmWeight::get() * 1 }
})
],
);
let trapped = AssetTraps::<Test>::iter().collect::<Vec<_>>();
assert_eq!(trapped, vec![(hash, 1)]);
// Now claim them with the extrinsic.
assert_ok!(XcmPallet::claim_assets(
RuntimeOrigin::signed(ALICE),
Box::new(VersionedAssets::V4((Here, SEND_AMOUNT).into())),
Box::new(VersionedLocation::V4(
AccountId32 { network: None, id: ALICE.clone().into() }.into()
)),
));
assert_eq!(Balances::total_balance(&ALICE), INITIAL_BALANCE);
assert_eq!(AssetTraps::<Test>::iter().collect::<Vec<_>>(), vec![]);
});
}
/// Test failure to complete execution reverts intermediate side-effects. /// Test failure to complete execution reverts intermediate side-effects.
/// ///
/// XCM program will withdraw and deposit some assets, then fail execution of a further withdraw. /// XCM program will withdraw and deposit some assets, then fail execution of a further withdraw.
+28 -3
View File
@@ -165,6 +165,15 @@ macro_rules! versioned_type {
<$v3>::max_encoded_len() <$v3>::max_encoded_len()
} }
} }
impl IdentifyVersion for $n {
fn identify_version(&self) -> Version {
use $n::*;
match self {
V3(_) => v3::VERSION,
V4(_) => v4::VERSION,
}
}
}
}; };
($(#[$attr:meta])* pub enum $n:ident { ($(#[$attr:meta])* pub enum $n:ident {
@@ -287,6 +296,16 @@ macro_rules! versioned_type {
<$v3>::max_encoded_len() <$v3>::max_encoded_len()
} }
} }
impl IdentifyVersion for $n {
fn identify_version(&self) -> Version {
use $n::*;
match self {
V2(_) => v2::VERSION,
V3(_) => v3::VERSION,
V4(_) => v4::VERSION,
}
}
}
}; };
} }
@@ -493,6 +512,12 @@ pub trait WrapVersion {
) -> Result<VersionedXcm<RuntimeCall>, ()>; ) -> Result<VersionedXcm<RuntimeCall>, ()>;
} }
/// Used to get the version out of a versioned type.
// TODO(XCMv5): This could be `GetVersion` and we change the current one to `GetVersionFor`.
pub trait IdentifyVersion {
fn identify_version(&self) -> Version;
}
/// Check and return the `Version` that should be used for the `Xcm` datum for the destination /// Check and return the `Version` that should be used for the `Xcm` datum for the destination
/// `Location`, which will interpret it. /// `Location`, which will interpret it.
pub trait GetVersion { pub trait GetVersion {
@@ -572,9 +597,9 @@ pub type AlwaysLts = AlwaysV4;
pub mod prelude { pub mod prelude {
pub use super::{ pub use super::{
latest::prelude::*, AlwaysLatest, AlwaysLts, AlwaysV2, AlwaysV3, AlwaysV4, GetVersion, latest::prelude::*, AlwaysLatest, AlwaysLts, AlwaysV2, AlwaysV3, AlwaysV4, GetVersion,
IntoVersion, Unsupported, Version as XcmVersion, VersionedAsset, VersionedAssetId, IdentifyVersion, IntoVersion, Unsupported, Version as XcmVersion, VersionedAsset,
VersionedAssets, VersionedInteriorLocation, VersionedLocation, VersionedResponse, VersionedAssetId, VersionedAssets, VersionedInteriorLocation, VersionedLocation,
VersionedXcm, WrapVersion, VersionedResponse, VersionedXcm, WrapVersion,
}; };
} }
+22
View File
@@ -0,0 +1,22 @@
# Schema: Polkadot SDK PRDoc Schema (prdoc) v1.0.0
# See doc at https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/prdoc/schema_user.json
title: "Add `claim_assets` extrinsic to `pallet-xcm`"
doc:
- audience: Runtime User
description: |
There's a new extrinsic in `pallet-xcm` for claiming assets.
This means that if your assets ever get trapped while teleporting or doing reserve asset transfers,
you can easily claim them by calling this new extrinsic.
- audience: Runtime Dev
description: |
There's a new extrinsic in `pallet-xcm` that needs a new configuration item for its benchmarks.
It's a simple function in `pallet_xcm::benchmarking::Config`, `get_asset`, that returns a valid asset
handled by the AssetTransactor of the chain.
If you're already using `pallet-xcm-benchmarks`, then you already have this function there and can
just copy and paste it.
crates:
- name: pallet-xcm
- name: staging-xcm