Contracts: Add XCM traits to interface with contracts (#2086)

We are introducing a new set of `XcmController` traits (final name yet
to be determined).
These traits are implemented by `pallet-xcm` and allows other pallets,
such as `pallet_contracts`, to rely on these traits instead of tight
coupling them to `pallet-xcm`.

Using only the existing Xcm traits would mean duplicating the logic from
`pallet-xcm` in these other pallets, which we aim to avoid. Our
objective is to ensure that when these APIs are called from
`pallet-contracts`, they produce the exact same outcomes as if called
directly from `pallet-xcm`.

The other benefits is that we can also expose return values to
`pallet-contracts` instead of just calling `pallet-xcm` dispatchable and
getting a `DispatchResult` back.

See traits integration in this PR
https://github.com/paritytech/polkadot-sdk/pull/1248, where the traits
are used as follow to define and implement `pallet-contracts` Config.
```rs
// Contracts config:
pub trait Config: frame_system::Config {
  // ...

  /// A type that exposes XCM APIs, allowing contracts to interact with other parachains, and
  /// execute XCM programs.
  type Xcm: xcm_executor::traits::Controller<
	  OriginFor<Self>,
	  <Self as frame_system::Config>::RuntimeCall,
	  BlockNumberFor<Self>,
  >;
}

// implementation
impl pallet_contracts::Config for Runtime {
        // ...

	type Xcm = pallet_xcm::Pallet<Self>;
}
```

---------

Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: command-bot <>
This commit is contained in:
PG Herveou
2023-11-10 16:38:24 +01:00
committed by GitHub
parent 84ddbaf684
commit 6b7be115fd
19 changed files with 1604 additions and 913 deletions
@@ -1,42 +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 4.0.0-dev
//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-kusama-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=asset-hub-kusama-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=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./parachains/runtimes/assets/asset-hub-kusama/src/weights/ // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=asset-hub-kusama-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/assets/asset-hub-kusama/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -49,6 +48,8 @@ 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: `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)
@@ -61,12 +62,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 send() -> Weight { fn send() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `109` // Measured: `145`
// Estimated: `3574` // Estimated: `3610`
// Minimum execution time: 30_015_000 picoseconds. // Minimum execution time: 25_043_000 picoseconds.
Weight::from_parts(30_576_000, 0) Weight::from_parts(25_670_000, 0)
.saturating_add(Weight::from_parts(0, 3574)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
@@ -75,8 +76,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: `1489` // Estimated: `1489`
// Minimum execution time: 24_785_000 picoseconds. // Minimum execution time: 18_893_000 picoseconds.
Weight::from_parts(25_097_000, 0) Weight::from_parts(19_261_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
} }
@@ -86,8 +87,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: `1489` // Estimated: `1489`
// Minimum execution time: 18_561_000 picoseconds. // Minimum execution time: 14_107_000 picoseconds.
Weight::from_parts(19_121_000, 0) Weight::from_parts(14_500_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
} }
@@ -107,8 +108,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: 9_298_000 picoseconds. // Minimum execution time: 7_175_000 picoseconds.
Weight::from_parts(9_721_000, 0) Weight::from_parts(7_493_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))
} }
@@ -118,8 +119,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_912_000 picoseconds. // Minimum execution time: 2_162_000 picoseconds.
Weight::from_parts(3_262_000, 0) Weight::from_parts(2_278_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))
} }
@@ -127,6 +128,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `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: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// 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)
@@ -141,16 +144,18 @@ 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 force_subscribe_version_notify() -> Weight { fn force_subscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `109` // Measured: `145`
// Estimated: `3574` // Estimated: `3610`
// Minimum execution time: 35_127_000 picoseconds. // Minimum execution time: 29_144_000 picoseconds.
Weight::from_parts(36_317_000, 0) Weight::from_parts(30_134_000, 0)
.saturating_add(Weight::from_parts(0, 3574)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(8))
.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: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// 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)
@@ -165,12 +170,12 @@ 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 force_unsubscribe_version_notify() -> Weight { fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `326` // Measured: `363`
// Estimated: `3791` // Estimated: `3828`
// Minimum execution time: 36_634_000 picoseconds. // Minimum execution time: 31_522_000 picoseconds.
Weight::from_parts(37_983_000, 0) Weight::from_parts(32_679_000, 0)
.saturating_add(Weight::from_parts(0, 3791)) .saturating_add(Weight::from_parts(0, 3828))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(7))
.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)
@@ -179,8 +184,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_940_000 picoseconds. // Minimum execution time: 2_338_000 picoseconds.
Weight::from_parts(3_085_000, 0) Weight::from_parts(2_494_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))
} }
@@ -190,8 +195,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `162` // Measured: `162`
// Estimated: `11052` // Estimated: `11052`
// Minimum execution time: 17_400_000 picoseconds. // Minimum execution time: 17_315_000 picoseconds.
Weight::from_parts(17_759_000, 0) Weight::from_parts(17_787_000, 0)
.saturating_add(Weight::from_parts(0, 11052)) .saturating_add(Weight::from_parts(0, 11052))
.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))
@@ -202,8 +207,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `166` // Measured: `166`
// Estimated: `11056` // Estimated: `11056`
// Minimum execution time: 17_287_000 picoseconds. // Minimum execution time: 17_273_000 picoseconds.
Weight::from_parts(17_678_000, 0) Weight::from_parts(17_712_000, 0)
.saturating_add(Weight::from_parts(0, 11056)) .saturating_add(Weight::from_parts(0, 11056))
.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))
@@ -214,13 +219,15 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `173`
// Estimated: `13538` // Estimated: `13538`
// Minimum execution time: 18_941_000 picoseconds. // Minimum execution time: 18_395_000 picoseconds.
Weight::from_parts(19_285_000, 0) Weight::from_parts(19_095_000, 0)
.saturating_add(Weight::from_parts(0, 13538)) .saturating_add(Weight::from_parts(0, 13538))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// 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`)
/// 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)
@@ -233,12 +240,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 notify_current_targets() -> Weight { fn notify_current_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `176` // Measured: `212`
// Estimated: `6116` // Estimated: `6152`
// Minimum execution time: 32_668_000 picoseconds. // Minimum execution time: 27_343_000 picoseconds.
Weight::from_parts(33_533_000, 0) Weight::from_parts(28_068_000, 0)
.saturating_add(Weight::from_parts(0, 6116)) .saturating_add(Weight::from_parts(0, 6152))
.saturating_add(T::DbWeight::get().reads(7)) .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:3 w:0)
@@ -247,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: `206` // Measured: `206`
// Estimated: `8621` // Estimated: `8621`
// Minimum execution time: 9_182_000 picoseconds. // Minimum execution time: 9_156_000 picoseconds.
Weight::from_parts(9_498_000, 0) Weight::from_parts(9_552_000, 0)
.saturating_add(Weight::from_parts(0, 8621)) .saturating_add(Weight::from_parts(0, 8621))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
@@ -258,14 +265,16 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `173`
// Estimated: `11063` // Estimated: `11063`
// Minimum execution time: 17_519_000 picoseconds. // Minimum execution time: 17_454_000 picoseconds.
Weight::from_parts(17_943_000, 0) Weight::from_parts(17_831_000, 0)
.saturating_add(Weight::from_parts(0, 11063)) .saturating_add(Weight::from_parts(0, 11063))
.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: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 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)
/// 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)
@@ -278,12 +287,38 @@ 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: `179` // Measured: `215`
// Estimated: `11069` // Estimated: `11105`
// Minimum execution time: 38_680_000 picoseconds. // Minimum execution time: 34_299_000 picoseconds.
Weight::from_parts(39_984_000, 0) Weight::from_parts(35_156_000, 0)
.saturating_add(Weight::from_parts(0, 11069)) .saturating_add(Weight::from_parts(0, 11105))
.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)
/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `103`
// Estimated: `1588`
// Minimum execution time: 4_508_000 picoseconds.
Weight::from_parts(4_702_000, 0)
.saturating_add(Weight::from_parts(0, 1588))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7740`
// Estimated: `11205`
// Minimum execution time: 26_557_000 picoseconds.
Weight::from_parts(26_980_000, 0)
.saturating_add(Weight::from_parts(0, 11205))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -1,42 +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 4.0.0-dev
//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("asset-hub-polkadot-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=asset-hub-polkadot-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=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./parachains/runtimes/assets/asset-hub-polkadot/src/weights/ // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=asset-hub-polkadot-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/assets/asset-hub-polkadot/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -49,6 +48,8 @@ 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: `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)
@@ -63,10 +64,10 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `75` // Measured: `75`
// Estimated: `3540` // Estimated: `3540`
// Minimum execution time: 28_284_000 picoseconds. // Minimum execution time: 25_203_000 picoseconds.
Weight::from_parts(29_186_000, 0) Weight::from_parts(25_927_000, 0)
.saturating_add(Weight::from_parts(0, 3540)) .saturating_add(Weight::from_parts(0, 3540))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
@@ -75,8 +76,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: `1489` // Estimated: `1489`
// Minimum execution time: 24_830_000 picoseconds. // Minimum execution time: 20_113_000 picoseconds.
Weight::from_parts(26_312_000, 0) Weight::from_parts(20_439_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
} }
@@ -86,8 +87,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: `1489` // Estimated: `1489`
// Minimum execution time: 18_584_000 picoseconds. // Minimum execution time: 14_959_000 picoseconds.
Weight::from_parts(19_083_000, 0) Weight::from_parts(15_264_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
} }
@@ -107,8 +108,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: 9_415_000 picoseconds. // Minimum execution time: 7_399_000 picoseconds.
Weight::from_parts(9_821_000, 0) Weight::from_parts(7_674_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))
} }
@@ -118,8 +119,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_902_000 picoseconds. // Minimum execution time: 2_388_000 picoseconds.
Weight::from_parts(3_377_000, 0) Weight::from_parts(2_522_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))
} }
@@ -127,6 +128,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `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: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// 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)
@@ -143,14 +146,16 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `75` // Measured: `75`
// Estimated: `3540` // Estimated: `3540`
// Minimum execution time: 32_730_000 picoseconds. // Minimum execution time: 28_791_000 picoseconds.
Weight::from_parts(33_879_000, 0) Weight::from_parts(29_443_000, 0)
.saturating_add(Weight::from_parts(0, 3540)) .saturating_add(Weight::from_parts(0, 3540))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(8))
.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: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// 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)
@@ -165,12 +170,12 @@ 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 force_unsubscribe_version_notify() -> Weight { fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `257` // Measured: `292`
// Estimated: `3722` // Estimated: `3757`
// Minimum execution time: 34_053_000 picoseconds. // Minimum execution time: 30_880_000 picoseconds.
Weight::from_parts(34_506_000, 0) Weight::from_parts(31_675_000, 0)
.saturating_add(Weight::from_parts(0, 3722)) .saturating_add(Weight::from_parts(0, 3757))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(7))
.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)
@@ -179,8 +184,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_824_000 picoseconds. // Minimum execution time: 2_365_000 picoseconds.
Weight::from_parts(2_986_000, 0) Weight::from_parts(2_550_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))
} }
@@ -190,8 +195,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `129` // Measured: `129`
// Estimated: `11019` // Estimated: `11019`
// Minimum execution time: 17_011_000 picoseconds. // Minimum execution time: 17_185_000 picoseconds.
Weight::from_parts(17_488_000, 0) Weight::from_parts(17_680_000, 0)
.saturating_add(Weight::from_parts(0, 11019)) .saturating_add(Weight::from_parts(0, 11019))
.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))
@@ -202,8 +207,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `133` // Measured: `133`
// Estimated: `11023` // Estimated: `11023`
// Minimum execution time: 17_191_000 picoseconds. // Minimum execution time: 16_974_000 picoseconds.
Weight::from_parts(17_784_000, 0) Weight::from_parts(17_660_000, 0)
.saturating_add(Weight::from_parts(0, 11023)) .saturating_add(Weight::from_parts(0, 11023))
.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))
@@ -214,13 +219,15 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `140` // Measured: `140`
// Estimated: `13505` // Estimated: `13505`
// Minimum execution time: 18_625_000 picoseconds. // Minimum execution time: 18_536_000 picoseconds.
Weight::from_parts(19_177_000, 0) Weight::from_parts(19_292_000, 0)
.saturating_add(Weight::from_parts(0, 13505)) .saturating_add(Weight::from_parts(0, 13505))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// 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`)
/// 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)
@@ -235,10 +242,10 @@ 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: 30_762_000 picoseconds. // Minimum execution time: 27_368_000 picoseconds.
Weight::from_parts(31_481_000, 0) Weight::from_parts(28_161_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(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:3 w:0)
@@ -247,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: `172` // Measured: `172`
// Estimated: `8587` // Estimated: `8587`
// Minimum execution time: 9_025_000 picoseconds. // Minimum execution time: 9_553_000 picoseconds.
Weight::from_parts(9_423_000, 0) Weight::from_parts(9_899_000, 0)
.saturating_add(Weight::from_parts(0, 8587)) .saturating_add(Weight::from_parts(0, 8587))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
@@ -258,14 +265,16 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `140` // Measured: `140`
// Estimated: `11030` // Estimated: `11030`
// Minimum execution time: 17_550_000 picoseconds. // Minimum execution time: 17_445_000 picoseconds.
Weight::from_parts(17_939_000, 0) Weight::from_parts(18_206_000, 0)
.saturating_add(Weight::from_parts(0, 11030)) .saturating_add(Weight::from_parts(0, 11030))
.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: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 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)
/// 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)
@@ -280,10 +289,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `146` // Measured: `146`
// Estimated: `11036` // Estimated: `11036`
// Minimum execution time: 36_922_000 picoseconds. // Minimum execution time: 34_200_000 picoseconds.
Weight::from_parts(37_709_000, 0) Weight::from_parts(35_198_000, 0)
.saturating_add(Weight::from_parts(0, 11036)) .saturating_add(Weight::from_parts(0, 11036))
.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)
/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `69`
// Estimated: `1554`
// Minimum execution time: 4_679_000 picoseconds.
Weight::from_parts(4_841_000, 0)
.saturating_add(Weight::from_parts(0, 1554))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7706`
// Estimated: `11171`
// Minimum execution time: 27_281_000 picoseconds.
Weight::from_parts(27_694_000, 0)
.saturating_add(Weight::from_parts(0, 11171))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -17,27 +17,25 @@
//! 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 4.0.0-dev
//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: ``, 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:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=asset-hub-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=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./parachains/runtimes/assets/asset-hub-rococo/src/weights/ // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=asset-hub-rococo-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/assets/asset-hub-rococo/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -50,6 +48,8 @@ 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: `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)
@@ -62,35 +62,39 @@ 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 send() -> Weight { fn send() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `109` // Measured: `145`
// Estimated: `3574` // Estimated: `3610`
// Minimum execution time: 30_015_000 picoseconds. // Minimum execution time: 24_498_000 picoseconds.
Weight::from_parts(30_576_000, 0) Weight::from_parts(25_385_000, 0)
.saturating_add(Weight::from_parts(0, 3574)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
fn teleport_assets() -> Weight { fn teleport_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `39`
// Estimated: `1489` // Estimated: `3504`
// Minimum execution time: 24_785_000 picoseconds. // Minimum execution time: 19_746_000 picoseconds.
Weight::from_parts(25_097_000, 0) Weight::from_parts(20_535_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 3504))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(2))
} }
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
fn reserve_transfer_assets() -> Weight { fn reserve_transfer_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `39`
// Estimated: `1489` // Estimated: `3504`
// Minimum execution time: 18_561_000 picoseconds. // Minimum execution time: 15_059_000 picoseconds.
Weight::from_parts(19_121_000, 0) Weight::from_parts(15_386_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 3504))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(2))
} }
/// 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`)
@@ -108,8 +112,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: 9_298_000 picoseconds. // Minimum execution time: 7_108_000 picoseconds.
Weight::from_parts(9_721_000, 0) Weight::from_parts(7_458_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))
} }
@@ -119,8 +123,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_912_000 picoseconds. // Minimum execution time: 2_205_000 picoseconds.
Weight::from_parts(3_262_000, 0) Weight::from_parts(2_360_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))
} }
@@ -128,6 +132,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `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: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// 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)
@@ -142,16 +148,18 @@ 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 force_subscribe_version_notify() -> Weight { fn force_subscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `109` // Measured: `145`
// Estimated: `3574` // Estimated: `3610`
// Minimum execution time: 35_127_000 picoseconds. // Minimum execution time: 29_099_000 picoseconds.
Weight::from_parts(36_317_000, 0) Weight::from_parts(29_580_000, 0)
.saturating_add(Weight::from_parts(0, 3574)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(8))
.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: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// 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)
@@ -166,12 +174,12 @@ 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 force_unsubscribe_version_notify() -> Weight { fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `326` // Measured: `363`
// Estimated: `3791` // Estimated: `3828`
// Minimum execution time: 36_634_000 picoseconds. // Minimum execution time: 31_161_000 picoseconds.
Weight::from_parts(37_983_000, 0) Weight::from_parts(31_933_000, 0)
.saturating_add(Weight::from_parts(0, 3791)) .saturating_add(Weight::from_parts(0, 3828))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(7))
.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)
@@ -180,8 +188,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_940_000 picoseconds. // Minimum execution time: 2_158_000 picoseconds.
Weight::from_parts(3_085_000, 0) Weight::from_parts(2_316_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))
} }
@@ -191,8 +199,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `162` // Measured: `162`
// Estimated: `11052` // Estimated: `11052`
// Minimum execution time: 17_400_000 picoseconds. // Minimum execution time: 16_934_000 picoseconds.
Weight::from_parts(17_759_000, 0) Weight::from_parts(17_655_000, 0)
.saturating_add(Weight::from_parts(0, 11052)) .saturating_add(Weight::from_parts(0, 11052))
.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))
@@ -203,8 +211,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `166` // Measured: `166`
// Estimated: `11056` // Estimated: `11056`
// Minimum execution time: 17_287_000 picoseconds. // Minimum execution time: 17_658_000 picoseconds.
Weight::from_parts(17_678_000, 0) Weight::from_parts(17_973_000, 0)
.saturating_add(Weight::from_parts(0, 11056)) .saturating_add(Weight::from_parts(0, 11056))
.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))
@@ -215,13 +223,15 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `173`
// Estimated: `13538` // Estimated: `13538`
// Minimum execution time: 18_941_000 picoseconds. // Minimum execution time: 18_673_000 picoseconds.
Weight::from_parts(19_285_000, 0) Weight::from_parts(19_027_000, 0)
.saturating_add(Weight::from_parts(0, 13538)) .saturating_add(Weight::from_parts(0, 13538))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// 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`)
/// 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)
@@ -234,12 +244,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 notify_current_targets() -> Weight { fn notify_current_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `176` // Measured: `212`
// Estimated: `6116` // Estimated: `6152`
// Minimum execution time: 32_668_000 picoseconds. // Minimum execution time: 27_171_000 picoseconds.
Weight::from_parts(33_533_000, 0) Weight::from_parts(27_802_000, 0)
.saturating_add(Weight::from_parts(0, 6116)) .saturating_add(Weight::from_parts(0, 6152))
.saturating_add(T::DbWeight::get().reads(7)) .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:3 w:0)
@@ -248,8 +258,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `206` // Measured: `206`
// Estimated: `8621` // Estimated: `8621`
// Minimum execution time: 9_182_000 picoseconds. // Minimum execution time: 9_423_000 picoseconds.
Weight::from_parts(9_498_000, 0) Weight::from_parts(9_636_000, 0)
.saturating_add(Weight::from_parts(0, 8621)) .saturating_add(Weight::from_parts(0, 8621))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
@@ -259,14 +269,16 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `173`
// Estimated: `11063` // Estimated: `11063`
// Minimum execution time: 17_519_000 picoseconds. // Minimum execution time: 17_442_000 picoseconds.
Weight::from_parts(17_943_000, 0) Weight::from_parts(17_941_000, 0)
.saturating_add(Weight::from_parts(0, 11063)) .saturating_add(Weight::from_parts(0, 11063))
.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: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 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)
/// 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)
@@ -279,12 +291,38 @@ 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: `179` // Measured: `215`
// Estimated: `11069` // Estimated: `11105`
// Minimum execution time: 38_680_000 picoseconds. // Minimum execution time: 34_340_000 picoseconds.
Weight::from_parts(39_984_000, 0) Weight::from_parts(34_934_000, 0)
.saturating_add(Weight::from_parts(0, 11069)) .saturating_add(Weight::from_parts(0, 11105))
.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)
/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `103`
// Estimated: `1588`
// Minimum execution time: 5_496_000 picoseconds.
Weight::from_parts(5_652_000, 0)
.saturating_add(Weight::from_parts(0, 1588))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7740`
// Estimated: `11205`
// Minimum execution time: 26_140_000 picoseconds.
Weight::from_parts(26_824_000, 0)
.saturating_add(Weight::from_parts(0, 11205))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -1,42 +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 4.0.0-dev
//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: ``, 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:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=asset-hub-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=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./parachains/runtimes/assets/asset-hub-westend/src/weights/ // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=asset-hub-westend-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/assets/asset-hub-westend/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -49,6 +48,8 @@ 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: `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)
@@ -63,10 +64,10 @@ 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: 29_833_000 picoseconds. // Minimum execution time: 25_534_000 picoseconds.
Weight::from_parts(30_472_000, 0) Weight::from_parts(26_413_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
@@ -75,8 +76,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: `1489` // Estimated: `1489`
// Minimum execution time: 22_922_000 picoseconds. // Minimum execution time: 20_513_000 picoseconds.
Weight::from_parts(23_650_000, 0) Weight::from_parts(20_837_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
} }
@@ -86,8 +87,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: `1489` // Estimated: `1489`
// Minimum execution time: 17_468_000 picoseconds. // Minimum execution time: 14_977_000 picoseconds.
Weight::from_parts(18_068_000, 0) Weight::from_parts(15_207_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
} }
@@ -95,8 +96,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: 8_780_000 picoseconds. // Minimum execution time: 7_440_000 picoseconds.
Weight::from_parts(9_201_000, 0) Weight::from_parts(7_651_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)
@@ -105,8 +106,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: 8_886_000 picoseconds. // Minimum execution time: 7_253_000 picoseconds.
Weight::from_parts(9_102_000, 0) Weight::from_parts(7_584_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))
} }
@@ -116,8 +117,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_665_000 picoseconds. // Minimum execution time: 2_299_000 picoseconds.
Weight::from_parts(2_884_000, 0) Weight::from_parts(2_435_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))
} }
@@ -125,6 +126,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `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: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// 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)
@@ -141,14 +144,16 @@ 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: 34_513_000 picoseconds. // Minimum execution time: 29_440_000 picoseconds.
Weight::from_parts(36_207_000, 0) Weight::from_parts(30_675_000, 0)
.saturating_add(Weight::from_parts(0, 3610)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(8))
.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: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// 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)
@@ -165,10 +170,10 @@ 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: 35_770_000 picoseconds. // Minimum execution time: 31_876_000 picoseconds.
Weight::from_parts(36_462_000, 0) Weight::from_parts(32_588_000, 0)
.saturating_add(Weight::from_parts(0, 3828)) .saturating_add(Weight::from_parts(0, 3828))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(7))
.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)
@@ -177,8 +182,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_763_000 picoseconds. // Minimum execution time: 2_385_000 picoseconds.
Weight::from_parts(3_079_000, 0) Weight::from_parts(2_607_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))
} }
@@ -188,8 +193,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `162` // Measured: `162`
// Estimated: `11052` // Estimated: `11052`
// Minimum execution time: 17_170_000 picoseconds. // Minimum execution time: 16_927_000 picoseconds.
Weight::from_parts(17_674_000, 0) Weight::from_parts(17_554_000, 0)
.saturating_add(Weight::from_parts(0, 11052)) .saturating_add(Weight::from_parts(0, 11052))
.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))
@@ -200,8 +205,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `166` // Measured: `166`
// Estimated: `11056` // Estimated: `11056`
// Minimum execution time: 16_857_000 picoseconds. // Minimum execution time: 16_965_000 picoseconds.
Weight::from_parts(17_407_000, 0) Weight::from_parts(17_807_000, 0)
.saturating_add(Weight::from_parts(0, 11056)) .saturating_add(Weight::from_parts(0, 11056))
.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))
@@ -212,13 +217,15 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `173`
// Estimated: `13538` // Estimated: `13538`
// Minimum execution time: 19_040_000 picoseconds. // Minimum execution time: 18_763_000 picoseconds.
Weight::from_parts(19_550_000, 0) Weight::from_parts(19_359_000, 0)
.saturating_add(Weight::from_parts(0, 13538)) .saturating_add(Weight::from_parts(0, 13538))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// 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`)
/// 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)
@@ -233,10 +240,10 @@ 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: 31_623_000 picoseconds. // Minimum execution time: 27_371_000 picoseconds.
Weight::from_parts(32_646_000, 0) Weight::from_parts(28_185_000, 0)
.saturating_add(Weight::from_parts(0, 6152)) .saturating_add(Weight::from_parts(0, 6152))
.saturating_add(T::DbWeight::get().reads(7)) .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:3 w:0)
@@ -245,8 +252,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `206` // Measured: `206`
// Estimated: `8621` // Estimated: `8621`
// Minimum execution time: 9_148_000 picoseconds. // Minimum execution time: 9_165_000 picoseconds.
Weight::from_parts(9_402_000, 0) Weight::from_parts(9_539_000, 0)
.saturating_add(Weight::from_parts(0, 8621)) .saturating_add(Weight::from_parts(0, 8621))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
@@ -256,14 +263,16 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `173` // Measured: `173`
// Estimated: `11063` // Estimated: `11063`
// Minimum execution time: 17_630_000 picoseconds. // Minimum execution time: 17_384_000 picoseconds.
Weight::from_parts(17_941_000, 0) Weight::from_parts(17_777_000, 0)
.saturating_add(Weight::from_parts(0, 11063)) .saturating_add(Weight::from_parts(0, 11063))
.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: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 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)
/// 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)
@@ -278,10 +287,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `215` // Measured: `215`
// Estimated: `11105` // Estimated: `11105`
// Minimum execution time: 38_425_000 picoseconds. // Minimum execution time: 34_260_000 picoseconds.
Weight::from_parts(39_219_000, 0) Weight::from_parts(35_428_000, 0)
.saturating_add(Weight::from_parts(0, 11105)) .saturating_add(Weight::from_parts(0, 11105))
.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)
/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `103`
// Estimated: `1588`
// Minimum execution time: 4_710_000 picoseconds.
Weight::from_parts(4_900_000, 0)
.saturating_add(Weight::from_parts(0, 1588))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7740`
// Estimated: `11205`
// Minimum execution time: 26_843_000 picoseconds.
Weight::from_parts(27_404_000, 0)
.saturating_add(Weight::from_parts(0, 11205))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -1,42 +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 4.0.0-dev
//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-09, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-kusama-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=bridge-hub-kusama-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=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/ // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=bridge-hub-kusama-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -49,6 +48,8 @@ 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: `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)
@@ -63,10 +64,10 @@ 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_523_000 picoseconds. // Minimum execution time: 22_520_000 picoseconds.
Weight::from_parts(28_238_000, 0) Weight::from_parts(23_167_000, 0)
.saturating_add(Weight::from_parts(0, 3503)) .saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
@@ -75,8 +76,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: `1489` // Estimated: `1489`
// Minimum execution time: 24_139_000 picoseconds. // Minimum execution time: 19_639_000 picoseconds.
Weight::from_parts(24_806_000, 0) Weight::from_parts(20_230_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
} }
@@ -106,8 +107,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: 8_988_000 picoseconds. // Minimum execution time: 7_175_000 picoseconds.
Weight::from_parts(9_227_000, 0) Weight::from_parts(7_496_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))
} }
@@ -117,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: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_571_000 picoseconds. // Minimum execution time: 2_126_000 picoseconds.
Weight::from_parts(2_667_000, 0) Weight::from_parts(2_359_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))
} }
@@ -126,6 +127,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `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: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// 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)
@@ -142,14 +145,16 @@ 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: 33_194_000 picoseconds. // Minimum execution time: 27_229_000 picoseconds.
Weight::from_parts(34_089_000, 0) Weight::from_parts(27_673_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(8))
.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: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// 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)
@@ -166,10 +171,10 @@ 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: 35_413_000 picoseconds. // Minimum execution time: 29_812_000 picoseconds.
Weight::from_parts(36_359_000, 0) Weight::from_parts(30_649_000, 0)
.saturating_add(Weight::from_parts(0, 3720)) .saturating_add(Weight::from_parts(0, 3720))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(7))
.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)
@@ -178,8 +183,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_679_000 picoseconds. // Minimum execution time: 2_212_000 picoseconds.
Weight::from_parts(2_823_000, 0) Weight::from_parts(2_367_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))
} }
@@ -189,8 +194,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `95` // Measured: `95`
// Estimated: `10985` // Estimated: `10985`
// Minimum execution time: 15_117_000 picoseconds. // Minimum execution time: 14_768_000 picoseconds.
Weight::from_parts(15_603_000, 0) Weight::from_parts(15_036_000, 0)
.saturating_add(Weight::from_parts(0, 10985)) .saturating_add(Weight::from_parts(0, 10985))
.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))
@@ -201,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: `99` // Measured: `99`
// Estimated: `10989` // Estimated: `10989`
// Minimum execution time: 14_978_000 picoseconds. // Minimum execution time: 14_662_000 picoseconds.
Weight::from_parts(15_370_000, 0) Weight::from_parts(15_155_000, 0)
.saturating_add(Weight::from_parts(0, 10989)) .saturating_add(Weight::from_parts(0, 10989))
.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))
@@ -213,13 +218,15 @@ 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: `13471` // Estimated: `13471`
// Minimum execution time: 16_549_000 picoseconds. // Minimum execution time: 16_198_000 picoseconds.
Weight::from_parts(16_944_000, 0) Weight::from_parts(16_456_000, 0)
.saturating_add(Weight::from_parts(0, 13471)) .saturating_add(Weight::from_parts(0, 13471))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// 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`)
/// 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)
@@ -234,10 +241,10 @@ 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: 30_111_000 picoseconds. // Minimum execution time: 25_825_000 picoseconds.
Weight::from_parts(30_795_000, 0) Weight::from_parts(26_744_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(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:3 w:0)
@@ -247,7 +254,7 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Measured: `136` // Measured: `136`
// Estimated: `8551` // Estimated: `8551`
// Minimum execution time: 8_622_000 picoseconds. // Minimum execution time: 8_622_000 picoseconds.
Weight::from_parts(8_865_000, 0) Weight::from_parts(8_931_000, 0)
.saturating_add(Weight::from_parts(0, 8551)) .saturating_add(Weight::from_parts(0, 8551))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
@@ -257,14 +264,16 @@ 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: `10996` // Estimated: `10996`
// Minimum execution time: 15_194_000 picoseconds. // Minimum execution time: 15_397_000 picoseconds.
Weight::from_parts(15_646_000, 0) Weight::from_parts(15_650_000, 0)
.saturating_add(Weight::from_parts(0, 10996)) .saturating_add(Weight::from_parts(0, 10996))
.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: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 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)
/// 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)
@@ -279,10 +288,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `112` // Measured: `112`
// Estimated: `11002` // Estimated: `11002`
// Minimum execution time: 36_625_000 picoseconds. // Minimum execution time: 32_330_000 picoseconds.
Weight::from_parts(37_571_000, 0) Weight::from_parts(33_255_000, 0)
.saturating_add(Weight::from_parts(0, 11002)) .saturating_add(Weight::from_parts(0, 11002))
.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)
/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `32`
// Estimated: `1517`
// Minimum execution time: 4_142_000 picoseconds.
Weight::from_parts(4_308_000, 0)
.saturating_add(Weight::from_parts(0, 1517))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7669`
// Estimated: `11134`
// Minimum execution time: 25_814_000 picoseconds.
Weight::from_parts(26_213_000, 0)
.saturating_add(Weight::from_parts(0, 11134))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -1,42 +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 4.0.0-dev
//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("bridge-hub-polkadot-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=bridge-hub-polkadot-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=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/ // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=bridge-hub-polkadot-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -49,6 +48,8 @@ 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: `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)
@@ -63,10 +64,10 @@ 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: 25_510_000 picoseconds. // Minimum execution time: 22_442_000 picoseconds.
Weight::from_parts(25_755_000, 0) Weight::from_parts(23_346_000, 0)
.saturating_add(Weight::from_parts(0, 3503)) .saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
@@ -75,8 +76,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: `1489` // Estimated: `1489`
// Minimum execution time: 24_125_000 picoseconds. // Minimum execution time: 19_655_000 picoseconds.
Weight::from_parts(25_559_000, 0) Weight::from_parts(20_086_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
} }
@@ -106,8 +107,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: 8_625_000 picoseconds. // Minimum execution time: 6_858_000 picoseconds.
Weight::from_parts(9_232_000, 0) Weight::from_parts(7_225_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))
} }
@@ -117,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: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_690_000 picoseconds. // Minimum execution time: 2_099_000 picoseconds.
Weight::from_parts(2_906_000, 0) Weight::from_parts(2_190_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))
} }
@@ -126,6 +127,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `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: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// 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)
@@ -142,14 +145,16 @@ 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: 30_131_000 picoseconds. // Minimum execution time: 27_073_000 picoseconds.
Weight::from_parts(31_138_000, 0) Weight::from_parts(27_584_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(8))
.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: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// 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)
@@ -164,12 +169,12 @@ 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 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_411_000 picoseconds. // Minimum execution time: 29_949_000 picoseconds.
Weight::from_parts(33_009_000, 0) Weight::from_parts(30_760_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(7))
.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)
@@ -178,8 +183,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_548_000 picoseconds. // Minimum execution time: 2_192_000 picoseconds.
Weight::from_parts(2_727_000, 0) Weight::from_parts(2_276_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))
} }
@@ -189,8 +194,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `95` // Measured: `95`
// Estimated: `10985` // Estimated: `10985`
// Minimum execution time: 15_298_000 picoseconds. // Minimum execution time: 14_681_000 picoseconds.
Weight::from_parts(15_964_000, 0) Weight::from_parts(15_131_000, 0)
.saturating_add(Weight::from_parts(0, 10985)) .saturating_add(Weight::from_parts(0, 10985))
.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))
@@ -201,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: `99` // Measured: `99`
// Estimated: `10989` // Estimated: `10989`
// Minimum execution time: 14_927_000 picoseconds. // Minimum execution time: 14_523_000 picoseconds.
Weight::from_parts(15_528_000, 0) Weight::from_parts(15_113_000, 0)
.saturating_add(Weight::from_parts(0, 10989)) .saturating_add(Weight::from_parts(0, 10989))
.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))
@@ -213,13 +218,15 @@ 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: `13471` // Estimated: `13471`
// Minimum execution time: 16_409_000 picoseconds. // Minimum execution time: 15_989_000 picoseconds.
Weight::from_parts(16_960_000, 0) Weight::from_parts(16_518_000, 0)
.saturating_add(Weight::from_parts(0, 13471)) .saturating_add(Weight::from_parts(0, 13471))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// 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`)
/// 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)
@@ -234,10 +241,10 @@ 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: 28_204_000 picoseconds. // Minimum execution time: 25_127_000 picoseconds.
Weight::from_parts(28_641_000, 0) Weight::from_parts(25_773_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(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:3 w:0)
@@ -246,8 +253,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: `8551` // Estimated: `8551`
// Minimum execution time: 8_576_000 picoseconds. // Minimum execution time: 8_352_000 picoseconds.
Weight::from_parts(8_895_000, 0) Weight::from_parts(8_592_000, 0)
.saturating_add(Weight::from_parts(0, 8551)) .saturating_add(Weight::from_parts(0, 8551))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
@@ -257,14 +264,16 @@ 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: `10996` // Estimated: `10996`
// Minimum execution time: 15_263_000 picoseconds. // Minimum execution time: 14_658_000 picoseconds.
Weight::from_parts(15_726_000, 0) Weight::from_parts(15_345_000, 0)
.saturating_add(Weight::from_parts(0, 10996)) .saturating_add(Weight::from_parts(0, 10996))
.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: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 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)
/// 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)
@@ -279,10 +288,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `112` // Measured: `112`
// Estimated: `11002` // Estimated: `11002`
// Minimum execution time: 34_186_000 picoseconds. // Minimum execution time: 31_478_000 picoseconds.
Weight::from_parts(35_204_000, 0) Weight::from_parts(32_669_000, 0)
.saturating_add(Weight::from_parts(0, 11002)) .saturating_add(Weight::from_parts(0, 11002))
.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)
/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `32`
// Estimated: `1517`
// Minimum execution time: 4_066_000 picoseconds.
Weight::from_parts(4_267_000, 0)
.saturating_add(Weight::from_parts(0, 1517))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7669`
// Estimated: `11134`
// Minimum execution time: 25_260_000 picoseconds.
Weight::from_parts(25_570_000, 0)
.saturating_add(Weight::from_parts(0, 11134))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -1,42 +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 4.0.0-dev
//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: ``, 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:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=bridge-hub-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=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/ // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=bridge-hub-rococo-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -49,6 +48,8 @@ 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: `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)
@@ -63,22 +64,24 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `75` // Measured: `75`
// Estimated: `3540` // Estimated: `3540`
// Minimum execution time: 29_724_000 picoseconds. // Minimum execution time: 24_179_000 picoseconds.
Weight::from_parts(30_440_000, 0) Weight::from_parts(24_684_000, 0)
.saturating_add(Weight::from_parts(0, 3540)) .saturating_add(Weight::from_parts(0, 3540))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
/// Proof: UNKNOWN KEY `0x48297505634037ef48c848c99c0b1f1b` (r:1 w:0)
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
fn teleport_assets() -> Weight { fn teleport_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `32` // Measured: `38`
// Estimated: `1489` // Estimated: `3503`
// Minimum execution time: 26_779_000 picoseconds. // Minimum execution time: 21_093_000 picoseconds.
Weight::from_parts(27_249_000, 0) Weight::from_parts(21_523_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 3503))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(2))
} }
/// 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`)
@@ -106,8 +109,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: 9_170_000 picoseconds. // Minimum execution time: 6_938_000 picoseconds.
Weight::from_parts(9_629_000, 0) Weight::from_parts(7_243_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))
} }
@@ -117,8 +120,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_769_000 picoseconds. // Minimum execution time: 2_159_000 picoseconds.
Weight::from_parts(2_933_000, 0) Weight::from_parts(2_290_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))
} }
@@ -126,6 +129,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `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: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// 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)
@@ -142,14 +147,16 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `75` // Measured: `75`
// Estimated: `3540` // Estimated: `3540`
// Minimum execution time: 34_547_000 picoseconds. // Minimum execution time: 28_337_000 picoseconds.
Weight::from_parts(35_653_000, 0) Weight::from_parts(29_265_000, 0)
.saturating_add(Weight::from_parts(0, 3540)) .saturating_add(Weight::from_parts(0, 3540))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(8))
.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: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// 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)
@@ -166,10 +173,10 @@ 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: 36_274_000 picoseconds. // Minimum execution time: 30_599_000 picoseconds.
Weight::from_parts(37_281_000, 0) Weight::from_parts(31_272_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(7))
.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)
@@ -178,8 +185,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_749_000 picoseconds. // Minimum execution time: 2_132_000 picoseconds.
Weight::from_parts(2_917_000, 0) Weight::from_parts(2_280_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))
} }
@@ -189,8 +196,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `187` // Measured: `187`
// Estimated: `11077` // Estimated: `11077`
// Minimum execution time: 17_649_000 picoseconds. // Minimum execution time: 18_262_000 picoseconds.
Weight::from_parts(17_964_000, 0) Weight::from_parts(18_640_000, 0)
.saturating_add(Weight::from_parts(0, 11077)) .saturating_add(Weight::from_parts(0, 11077))
.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))
@@ -201,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: `191` // Measured: `191`
// Estimated: `11081` // Estimated: `11081`
// Minimum execution time: 17_551_000 picoseconds. // Minimum execution time: 18_512_000 picoseconds.
Weight::from_parts(18_176_000, 0) Weight::from_parts(18_888_000, 0)
.saturating_add(Weight::from_parts(0, 11081)) .saturating_add(Weight::from_parts(0, 11081))
.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))
@@ -213,13 +220,15 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `198` // Measured: `198`
// Estimated: `13563` // Estimated: `13563`
// Minimum execution time: 19_261_000 picoseconds. // Minimum execution time: 19_362_000 picoseconds.
Weight::from_parts(19_714_000, 0) Weight::from_parts(20_056_000, 0)
.saturating_add(Weight::from_parts(0, 13563)) .saturating_add(Weight::from_parts(0, 13563))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// 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`)
/// 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)
@@ -234,10 +243,10 @@ 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: 31_630_000 picoseconds. // Minimum execution time: 27_318_000 picoseconds.
Weight::from_parts(32_340_000, 0) Weight::from_parts(28_075_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(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:3 w:0)
@@ -246,8 +255,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `172` // Measured: `172`
// Estimated: `8587` // Estimated: `8587`
// Minimum execution time: 9_218_000 picoseconds. // Minimum execution time: 9_930_000 picoseconds.
Weight::from_parts(9_558_000, 0) Weight::from_parts(10_192_000, 0)
.saturating_add(Weight::from_parts(0, 8587)) .saturating_add(Weight::from_parts(0, 8587))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
@@ -257,14 +266,16 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `198` // Measured: `198`
// Estimated: `11088` // Estimated: `11088`
// Minimum execution time: 18_133_000 picoseconds. // Minimum execution time: 18_305_000 picoseconds.
Weight::from_parts(18_663_000, 0) Weight::from_parts(18_738_000, 0)
.saturating_add(Weight::from_parts(0, 11088)) .saturating_add(Weight::from_parts(0, 11088))
.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: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 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)
/// 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)
@@ -279,10 +290,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `204` // Measured: `204`
// Estimated: `11094` // Estimated: `11094`
// Minimum execution time: 38_878_000 picoseconds. // Minimum execution time: 34_559_000 picoseconds.
Weight::from_parts(39_779_000, 0) Weight::from_parts(35_241_000, 0)
.saturating_add(Weight::from_parts(0, 11094)) .saturating_add(Weight::from_parts(0, 11094))
.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)
/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `69`
// Estimated: `1554`
// Minimum execution time: 4_512_000 picoseconds.
Weight::from_parts(4_671_000, 0)
.saturating_add(Weight::from_parts(0, 1554))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7706`
// Estimated: `11171`
// Minimum execution time: 26_473_000 picoseconds.
Weight::from_parts(26_960_000, 0)
.saturating_add(Weight::from_parts(0, 11171))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -286,4 +286,31 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(9))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `32`
// Estimated: `1517`
// Minimum execution time: 4_142_000 picoseconds.
Weight::from_parts(4_308_000, 0)
.saturating_add(Weight::from_parts(0, 1517))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7669`
// Estimated: `11134`
// Minimum execution time: 25_814_000 picoseconds.
Weight::from_parts(26_213_000, 0)
.saturating_add(Weight::from_parts(0, 11134))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
@@ -1,42 +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 4.0.0-dev
//! DATE: 2023-07-31, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-10, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner-ynta1nyy-project-238-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: ``, WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-polkadot-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// ./target/production/polkadot-parachain // target/production/polkadot-parachain
// benchmark // benchmark
// pallet // pallet
// --chain=collectives-polkadot-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=*
// --header=./file_header.txt // --wasm-execution=compiled
// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/ // --heap-pages=4096
// --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm
// --chain=collectives-polkadot-dev
// --header=./cumulus/file_header.txt
// --output=./cumulus/parachains/runtimes/collectives/collectives-polkadot/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -49,6 +48,8 @@ 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: `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)
@@ -61,22 +62,22 @@ 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 send() -> Weight { fn send() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `111` // Measured: `145`
// Estimated: `3576` // Estimated: `3610`
// Minimum execution time: 27_795_000 picoseconds. // Minimum execution time: 25_050_000 picoseconds.
Weight::from_parts(28_215_000, 0) Weight::from_parts(26_382_000, 0)
.saturating_add(Weight::from_parts(0, 3576)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
} }
/// Storage: `ParachainInfo::ParachainId` (r:1 w:0) /// Storage: `ParachainInfo::ParachainId` (r:1 w:0)
/// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`) /// Proof: `ParachainInfo::ParachainId` (`max_values`: Some(1), `max_size`: Some(4), added: 499, mode: `MaxEncodedLen`)
fn teleport_assets() -> Weight { fn teleport_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `32` // Measured: `69`
// Estimated: `1489` // Estimated: `1489`
// Minimum execution time: 23_847_000 picoseconds. // Minimum execution time: 21_625_000 picoseconds.
Weight::from_parts(24_332_000, 0) Weight::from_parts(22_076_000, 0)
.saturating_add(Weight::from_parts(0, 1489)) .saturating_add(Weight::from_parts(0, 1489))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
} }
@@ -106,8 +107,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: 8_885_000 picoseconds. // Minimum execution time: 7_076_000 picoseconds.
Weight::from_parts(9_128_000, 0) Weight::from_parts(7_378_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))
} }
@@ -117,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: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 2_670_000 picoseconds. // Minimum execution time: 2_327_000 picoseconds.
Weight::from_parts(2_815_000, 0) Weight::from_parts(2_454_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))
} }
@@ -126,6 +127,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// Proof: `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: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// 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)
@@ -140,16 +143,18 @@ 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 force_subscribe_version_notify() -> Weight { fn force_subscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `111` // Measured: `145`
// Estimated: `3576` // Estimated: `3610`
// Minimum execution time: 32_214_000 picoseconds. // Minimum execution time: 29_080_000 picoseconds.
Weight::from_parts(32_989_000, 0) Weight::from_parts(29_886_000, 0)
.saturating_add(Weight::from_parts(0, 3576)) .saturating_add(Weight::from_parts(0, 3610))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(8))
.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: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`) /// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// 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)
@@ -164,12 +169,12 @@ 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 force_unsubscribe_version_notify() -> Weight { fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `294` // Measured: `363`
// Estimated: `3759` // Estimated: `3828`
// Minimum execution time: 33_638_000 picoseconds. // Minimum execution time: 30_746_000 picoseconds.
Weight::from_parts(34_206_000, 0) Weight::from_parts(31_631_000, 0)
.saturating_add(Weight::from_parts(0, 3759)) .saturating_add(Weight::from_parts(0, 3828))
.saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().reads(7))
.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)
@@ -178,8 +183,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_602_000 picoseconds. // Minimum execution time: 2_208_000 picoseconds.
Weight::from_parts(2_730_000, 0) Weight::from_parts(2_341_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))
} }
@@ -187,11 +192,11 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// 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: `129` // Measured: `162`
// Estimated: `11019` // Estimated: `11052`
// Minimum execution time: 16_199_000 picoseconds. // Minimum execution time: 16_239_000 picoseconds.
Weight::from_parts(16_833_000, 0) Weight::from_parts(16_881_000, 0)
.saturating_add(Weight::from_parts(0, 11019)) .saturating_add(Weight::from_parts(0, 11052))
.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))
} }
@@ -199,11 +204,11 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// 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: `133` // Measured: `166`
// Estimated: `11023` // Estimated: `11056`
// Minimum execution time: 16_561_000 picoseconds. // Minimum execution time: 16_711_000 picoseconds.
Weight::from_parts(16_872_000, 0) Weight::from_parts(16_944_000, 0)
.saturating_add(Weight::from_parts(0, 11023)) .saturating_add(Weight::from_parts(0, 11056))
.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))
} }
@@ -211,15 +216,17 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
/// 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: `140` // Measured: `173`
// Estimated: `13505` // Estimated: `13538`
// Minimum execution time: 17_812_000 picoseconds. // Minimum execution time: 18_142_000 picoseconds.
Weight::from_parts(20_036_000, 0) Weight::from_parts(18_470_000, 0)
.saturating_add(Weight::from_parts(0, 13505)) .saturating_add(Weight::from_parts(0, 13538))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// 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`)
/// 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)
@@ -232,39 +239,41 @@ 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 notify_current_targets() -> Weight { fn notify_current_targets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `178` // Measured: `212`
// Estimated: `6118` // Estimated: `6152`
// Minimum execution time: 30_153_000 picoseconds. // Minimum execution time: 27_687_000 picoseconds.
Weight::from_parts(31_366_000, 0) Weight::from_parts(28_250_000, 0)
.saturating_add(Weight::from_parts(0, 6118)) .saturating_add(Weight::from_parts(0, 6152))
.saturating_add(T::DbWeight::get().reads(7)) .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:3 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: `172` // Measured: `206`
// Estimated: `8587` // Estimated: `8621`
// Minimum execution time: 9_465_000 picoseconds. // Minimum execution time: 9_675_000 picoseconds.
Weight::from_parts(9_743_000, 0) Weight::from_parts(9_992_000, 0)
.saturating_add(Weight::from_parts(0, 8587)) .saturating_add(Weight::from_parts(0, 8621))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 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: `140` // Measured: `173`
// Estimated: `11030` // Estimated: `11063`
// Minimum execution time: 16_954_000 picoseconds. // Minimum execution time: 16_597_000 picoseconds.
Weight::from_parts(19_772_000, 0) Weight::from_parts(17_248_000, 0)
.saturating_add(Weight::from_parts(0, 11030)) .saturating_add(Weight::from_parts(0, 11063))
.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: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2) /// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 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)
/// 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)
@@ -277,12 +286,38 @@ 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: `182` // Measured: `215`
// Estimated: `11072` // Estimated: `11105`
// Minimum execution time: 37_302_000 picoseconds. // Minimum execution time: 34_649_000 picoseconds.
Weight::from_parts(38_124_000, 0) Weight::from_parts(35_475_000, 0)
.saturating_add(Weight::from_parts(0, 11072)) .saturating_add(Weight::from_parts(0, 11105))
.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)
/// Proof: `PolkadotXcm::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `PolkadotXcm::Queries` (r:0 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `103`
// Estimated: `1588`
// Minimum execution time: 4_619_000 picoseconds.
Weight::from_parts(4_756_000, 0)
.saturating_add(Weight::from_parts(0, 1588))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `PolkadotXcm::Queries` (r:1 w:1)
/// Proof: `PolkadotXcm::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7740`
// Estimated: `11205`
// Minimum execution time: 26_721_000 picoseconds.
Weight::from_parts(27_412_000, 0)
.saturating_add(Weight::from_parts(0, 11205))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
}
} }
+174 -159
View File
@@ -17,10 +17,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 4.0.0-dev
//! DATE: 2023-05-26, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("rococo-dev"), DB CACHE: 1024 //! WASM-EXECUTION: `Compiled`, CHAIN: `Some("rococo-dev")`, DB CACHE: 1024
// Executed Command: // Executed Command:
// target/production/polkadot // target/production/polkadot
@@ -29,14 +29,13 @@
// --steps=50 // --steps=50
// --repeat=20 // --repeat=20
// --extrinsic=* // --extrinsic=*
// --execution=wasm
// --wasm-execution=compiled // --wasm-execution=compiled
// --heap-pages=4096 // --heap-pages=4096
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json // --json-file=/builds/parity/mirrors/polkadot-sdk/.git/.artifacts/bench.json
// --pallet=pallet_xcm // --pallet=pallet_xcm
// --chain=rococo-dev // --chain=rococo-dev
// --header=./file_header.txt // --header=./polkadot/file_header.txt
// --output=./runtime/rococo/src/weights/ // --output=./polkadot/runtime/rococo/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -49,58 +48,56 @@ 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: Configuration ActiveConfig (r:1 w:0) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet SupportedVersion (r:1 w:0) /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
/// Proof Skipped: 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: `565` // Measured: `142`
// Estimated: `4030` // Estimated: `3607`
// Minimum execution time: 37_039_000 picoseconds. // Minimum execution time: 27_328_000 picoseconds.
Weight::from_parts(37_605_000, 0) Weight::from_parts(27_976_000, 0)
.saturating_add(Weight::from_parts(0, 4030)) .saturating_add(Weight::from_parts(0, 3607))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(2))
} }
fn teleport_assets() -> Weight { fn teleport_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 21_646_000 picoseconds. // Minimum execution time: 16_280_000 picoseconds.
Weight::from_parts(22_119_000, 0) Weight::from_parts(16_904_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
fn reserve_transfer_assets() -> Weight { fn reserve_transfer_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 21_353_000 picoseconds. // Minimum execution time: 15_869_000 picoseconds.
Weight::from_parts(21_768_000, 0) Weight::from_parts(16_264_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
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: 9_942_000 picoseconds. // Minimum execution time: 6_923_000 picoseconds.
Weight::from_parts(10_110_000, 0) Weight::from_parts(7_432_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)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::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_951_000 picoseconds. // Minimum execution time: 7_333_000 picoseconds.
Weight::from_parts(10_182_000, 0) Weight::from_parts(7_566_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))
} }
@@ -108,171 +105,189 @@ 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: 3_163_000 picoseconds. // Minimum execution time: 2_219_000 picoseconds.
Weight::from_parts(3_298_000, 0) Weight::from_parts(2_375_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)
/// Proof Skipped: XcmPallet VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet QueryCounter (r:1 w:1) /// Storage: `XcmPallet::QueryCounter` (r:1 w:1)
/// Proof Skipped: XcmPallet QueryCounter (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `XcmPallet::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: Configuration ActiveConfig (r:1 w:0) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet SupportedVersion (r:1 w:0) /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) /// Storage: `XcmPallet::Queries` (r:0 w:1)
/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet Queries (r:0 w:1)
/// Proof Skipped: 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: `565` // Measured: `142`
// Estimated: `4030` // Estimated: `3607`
// Minimum execution time: 41_207_000 picoseconds. // Minimum execution time: 30_650_000 picoseconds.
Weight::from_parts(41_879_000, 0) Weight::from_parts(31_683_000, 0)
.saturating_add(Weight::from_parts(0, 4030)) .saturating_add(Weight::from_parts(0, 3607))
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(6))
}
/// Storage: XcmPallet VersionNotifiers (r:1 w:1)
/// Proof Skipped: XcmPallet VersionNotifiers (max_values: None, max_size: None, mode: Measured)
/// Storage: Configuration ActiveConfig (r:1 w:0)
/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured)
/// Storage: XcmPallet SupportedVersion (r:1 w:0)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured)
/// Storage: XcmPallet Queries (r:0 w:1)
/// Proof Skipped: XcmPallet Queries (max_values: None, max_size: None, mode: Measured)
fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes:
// Measured: `837`
// Estimated: `4302`
// Minimum execution time: 44_763_000 picoseconds.
Weight::from_parts(45_368_000, 0)
.saturating_add(Weight::from_parts(0, 4302))
.saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(5))
} }
/// Storage: XcmPallet XcmExecutionSuspended (r:0 w:1) /// Storage: `XcmPallet::VersionNotifiers` (r:1 w:1)
/// Proof Skipped: XcmPallet XcmExecutionSuspended (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `XcmPallet::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// 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`)
/// Storage: `XcmPallet::Queries` (r:0 w:1)
/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn force_unsubscribe_version_notify() -> Weight {
// Proof Size summary in bytes:
// Measured: `322`
// Estimated: `3787`
// Minimum execution time: 37_666_000 picoseconds.
Weight::from_parts(38_920_000, 0)
.saturating_add(Weight::from_parts(0, 3787))
.saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(4))
}
/// Storage: `XcmPallet::XcmExecutionSuspended` (r:0 w:1)
/// Proof: `XcmPallet::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_089_000 picoseconds. // Minimum execution time: 2_244_000 picoseconds.
Weight::from_parts(3_246_000, 0) Weight::from_parts(2_425_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:4 w:2)
/// Proof Skipped: 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: `229` // Measured: `26`
// Estimated: `11119` // Estimated: `10916`
// Minimum execution time: 16_733_000 picoseconds. // Minimum execution time: 14_710_000 picoseconds.
Weight::from_parts(17_354_000, 0) Weight::from_parts(15_156_000, 0)
.saturating_add(Weight::from_parts(0, 11119)) .saturating_add(Weight::from_parts(0, 10916))
.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: XcmPallet VersionNotifiers (r:4 w:2) /// Storage: `XcmPallet::VersionNotifiers` (r:4 w:2)
/// Proof Skipped: 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: `233` // Measured: `30`
// Estimated: `11123` // Estimated: `10920`
// Minimum execution time: 16_959_000 picoseconds. // Minimum execution time: 14_630_000 picoseconds.
Weight::from_parts(17_306_000, 0) Weight::from_parts(15_290_000, 0)
.saturating_add(Weight::from_parts(0, 11123)) .saturating_add(Weight::from_parts(0, 10920))
.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: XcmPallet VersionNotifyTargets (r:5 w:0) /// Storage: `XcmPallet::VersionNotifyTargets` (r:5 w:0)
/// Proof Skipped: 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: `243` // Measured: `40`
// Estimated: `13608` // Estimated: `13405`
// Minimum execution time: 17_964_000 picoseconds. // Minimum execution time: 16_686_000 picoseconds.
Weight::from_parts(18_548_000, 0) Weight::from_parts(17_332_000, 0)
.saturating_add(Weight::from_parts(0, 13608)) .saturating_add(Weight::from_parts(0, 13405))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// Storage: XcmPallet VersionNotifyTargets (r:2 w:1) /// Storage: `XcmPallet::VersionNotifyTargets` (r:2 w:1)
/// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Configuration ActiveConfig (r:1 w:0) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet SupportedVersion (r:1 w:0) /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
/// Proof Skipped: 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: `635` // Measured: `178`
// Estimated: `6575` // Estimated: `6118`
// Minimum execution time: 39_436_000 picoseconds. // Minimum execution time: 30_180_000 picoseconds.
Weight::from_parts(39_669_000, 0) Weight::from_parts(31_351_000, 0)
.saturating_add(Weight::from_parts(0, 6575)) .saturating_add(Weight::from_parts(0, 6118))
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: XcmPallet VersionNotifyTargets (r:3 w:0) /// Storage: `XcmPallet::VersionNotifyTargets` (r:3 w:0)
/// Proof Skipped: 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: `272` // Measured: `69`
// Estimated: `8687` // Estimated: `8484`
// Minimum execution time: 8_991_000 picoseconds. // Minimum execution time: 9_624_000 picoseconds.
Weight::from_parts(9_248_000, 0) Weight::from_parts(10_029_000, 0)
.saturating_add(Weight::from_parts(0, 8687)) .saturating_add(Weight::from_parts(0, 8484))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
/// Storage: XcmPallet VersionNotifyTargets (r:4 w:2) /// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:2)
/// Proof Skipped: 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: `240` // Measured: `37`
// Estimated: `11130` // Estimated: `10927`
// Minimum execution time: 17_614_000 picoseconds. // Minimum execution time: 15_139_000 picoseconds.
Weight::from_parts(17_948_000, 0) Weight::from_parts(15_575_000, 0)
.saturating_add(Weight::from_parts(0, 11130)) .saturating_add(Weight::from_parts(0, 10927))
.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: XcmPallet VersionNotifyTargets (r:4 w:2) /// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:2)
/// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Configuration ActiveConfig (r:1 w:0) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof Skipped: Configuration ActiveConfig (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet SupportedVersion (r:1 w:0) /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
/// Proof Skipped: 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: `639` // Measured: `182`
// Estimated: `11529` // Estimated: `11072`
// Minimum execution time: 45_531_000 picoseconds. // Minimum execution time: 37_871_000 picoseconds.
Weight::from_parts(46_533_000, 0) Weight::from_parts(38_940_000, 0)
.saturating_add(Weight::from_parts(0, 11529)) .saturating_add(Weight::from_parts(0, 11072))
.saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(4))
}
/// Storage: `XcmPallet::QueryCounter` (r:1 w:1)
/// Proof: `XcmPallet::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::Queries` (r:0 w:1)
/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `1485`
// Minimum execution time: 2_732_000 picoseconds.
Weight::from_parts(2_892_000, 0)
.saturating_add(Weight::from_parts(0, 1485))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `XcmPallet::Queries` (r:1 w:1)
/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7576`
// Estimated: `11041`
// Minimum execution time: 23_813_000 picoseconds.
Weight::from_parts(24_201_000, 0)
.saturating_add(Weight::from_parts(0, 11041))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
} }
} }
+173 -160
View File
@@ -17,15 +17,16 @@
//! 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 4.0.0-dev
//! DATE: 2023-06-14, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` //! DATE: 2023-11-07, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
//! WORST CASE MAP SIZE: `1000000` //! WORST CASE MAP SIZE: `1000000`
//! HOSTNAME: `runner--ss9ysm1-project-163-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz` //! HOSTNAME: `runner-yprdrvc7-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
//! EXECUTION: Some(Wasm), 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-storage-info
@@ -35,12 +36,8 @@
// --extrinsic=* // --extrinsic=*
// --execution=wasm // --execution=wasm
// --wasm-execution=compiled // --wasm-execution=compiled
// --heap-pages=4096 // --header=./polkadot/file_header.txt
// --json-file=/var/lib/gitlab-runner/builds/zyw4fam_/0/parity/mirrors/polkadot/.git/.artifacts/bench.json // --output=./polkadot/runtime/westend/src/weights/
// --pallet=pallet_xcm
// --chain=westend-dev
// --header=./file_header.txt
// --output=./runtime/westend/src/weights/
#![cfg_attr(rustfmt, rustfmt_skip)] #![cfg_attr(rustfmt, rustfmt_skip)]
#![allow(unused_parens)] #![allow(unused_parens)]
@@ -53,44 +50,42 @@ 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: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet SupportedVersion (r:1 w:0) /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
/// Proof Skipped: 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: `169` // Measured: `109`
// Estimated: `3634` // Estimated: `3574`
// Minimum execution time: 33_628_000 picoseconds. // Minimum execution time: 28_098_000 picoseconds.
Weight::from_parts(34_633_000, 0) Weight::from_parts(28_887_000, 0)
.saturating_add(Weight::from_parts(0, 3634)) .saturating_add(Weight::from_parts(0, 3574))
.saturating_add(T::DbWeight::get().reads(7)) .saturating_add(T::DbWeight::get().reads(4))
.saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes(2))
} }
fn teleport_assets() -> Weight { fn teleport_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 21_535_000 picoseconds. // Minimum execution time: 17_609_000 picoseconds.
Weight::from_parts(21_936_000, 0) Weight::from_parts(18_000_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
fn reserve_transfer_assets() -> Weight { fn reserve_transfer_assets() -> Weight {
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `0` // Measured: `0`
// Estimated: `0` // Estimated: `0`
// Minimum execution time: 21_576_000 picoseconds. // Minimum execution time: 17_007_000 picoseconds.
Weight::from_parts(21_942_000, 0) Weight::from_parts(17_471_000, 0)
.saturating_add(Weight::from_parts(0, 0)) .saturating_add(Weight::from_parts(0, 0))
} }
/// 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`
@@ -99,14 +94,14 @@ 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: XcmPallet SupportedVersion (r:0 w:1) /// Storage: `XcmPallet::SupportedVersion` (r:0 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::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_764_000 picoseconds. // Minimum execution time: 7_444_000 picoseconds.
Weight::from_parts(9_927_000, 0) Weight::from_parts(7_671_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))
} }
@@ -114,171 +109,189 @@ 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_824_000 picoseconds. // Minimum execution time: 2_126_000 picoseconds.
Weight::from_parts(2_935_000, 0) Weight::from_parts(2_253_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)
/// Proof Skipped: XcmPallet VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet QueryCounter (r:1 w:1) /// Storage: `XcmPallet::QueryCounter` (r:1 w:1)
/// Proof Skipped: XcmPallet QueryCounter (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `XcmPallet::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet SupportedVersion (r:1 w:0) /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) /// Storage: `XcmPallet::Queries` (r:0 w:1)
/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet Queries (r:0 w:1)
/// Proof Skipped: 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: `169` // Measured: `109`
// Estimated: `3634` // Estimated: `3574`
// Minimum execution time: 38_436_000 picoseconds. // Minimum execution time: 31_318_000 picoseconds.
Weight::from_parts(39_300_000, 0) Weight::from_parts(32_413_000, 0)
.saturating_add(Weight::from_parts(0, 3634)) .saturating_add(Weight::from_parts(0, 3574))
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(7)) .saturating_add(T::DbWeight::get().writes(5))
} }
/// Storage: XcmPallet VersionNotifiers (r:1 w:1) /// Storage: `XcmPallet::VersionNotifiers` (r:1 w:1)
/// Proof Skipped: XcmPallet VersionNotifiers (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet SupportedVersion (r:1 w:0) /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1) /// Storage: `XcmPallet::Queries` (r:0 w:1)
/// Proof Skipped: Dmp DownwardMessageQueueHeads (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet Queries (r:0 w:1)
/// Proof Skipped: 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: `361` // Measured: `289`
// Estimated: `3826` // Estimated: `3754`
// Minimum execution time: 41_600_000 picoseconds. // Minimum execution time: 35_282_000 picoseconds.
Weight::from_parts(42_703_000, 0) Weight::from_parts(35_969_000, 0)
.saturating_add(Weight::from_parts(0, 3826)) .saturating_add(Weight::from_parts(0, 3754))
.saturating_add(T::DbWeight::get().reads(8)) .saturating_add(T::DbWeight::get().reads(5))
.saturating_add(T::DbWeight::get().writes(6)) .saturating_add(T::DbWeight::get().writes(4))
} }
/// Storage: XcmPallet XcmExecutionSuspended (r:0 w:1) /// Storage: `XcmPallet::XcmExecutionSuspended` (r:0 w:1)
/// Proof Skipped: XcmPallet XcmExecutionSuspended (max_values: Some(1), max_size: None, mode: Measured) /// Proof: `XcmPallet::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_792_000 picoseconds. // Minimum execution time: 2_247_000 picoseconds.
Weight::from_parts(2_958_000, 0) Weight::from_parts(2_381_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:4 w:2)
/// Proof Skipped: 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: `229` // Measured: `26`
// Estimated: `11119` // Estimated: `10916`
// Minimum execution time: 17_640_000 picoseconds. // Minimum execution time: 14_512_000 picoseconds.
Weight::from_parts(18_011_000, 0) Weight::from_parts(15_042_000, 0)
.saturating_add(Weight::from_parts(0, 11119)) .saturating_add(Weight::from_parts(0, 10916))
.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: XcmPallet VersionNotifiers (r:4 w:2) /// Storage: `XcmPallet::VersionNotifiers` (r:4 w:2)
/// Proof Skipped: 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: `233` // Measured: `30`
// Estimated: `11123` // Estimated: `10920`
// Minimum execution time: 17_325_000 picoseconds. // Minimum execution time: 14_659_000 picoseconds.
Weight::from_parts(17_896_000, 0) Weight::from_parts(15_164_000, 0)
.saturating_add(Weight::from_parts(0, 11123)) .saturating_add(Weight::from_parts(0, 10920))
.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: XcmPallet VersionNotifyTargets (r:5 w:0) /// Storage: `XcmPallet::VersionNotifyTargets` (r:5 w:0)
/// Proof Skipped: 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: `243` // Measured: `40`
// Estimated: `13608` // Estimated: `13405`
// Minimum execution time: 19_295_000 picoseconds. // Minimum execution time: 16_261_000 picoseconds.
Weight::from_parts(19_840_000, 0) Weight::from_parts(16_986_000, 0)
.saturating_add(Weight::from_parts(0, 13608)) .saturating_add(Weight::from_parts(0, 13405))
.saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().reads(5))
} }
/// Storage: XcmPallet VersionNotifyTargets (r:2 w:1) /// Storage: `XcmPallet::VersionNotifyTargets` (r:2 w:1)
/// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet SupportedVersion (r:1 w:0) /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
/// Proof Skipped: 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: `239` // Measured: `145`
// Estimated: `6179` // Estimated: `6085`
// Minimum execution time: 35_819_000 picoseconds. // Minimum execution time: 30_539_000 picoseconds.
Weight::from_parts(36_708_000, 0) Weight::from_parts(31_117_000, 0)
.saturating_add(Weight::from_parts(0, 6179)) .saturating_add(Weight::from_parts(0, 6085))
.saturating_add(T::DbWeight::get().reads(9)) .saturating_add(T::DbWeight::get().reads(6))
.saturating_add(T::DbWeight::get().writes(5)) .saturating_add(T::DbWeight::get().writes(3))
} }
/// Storage: XcmPallet VersionNotifyTargets (r:3 w:0) /// Storage: `XcmPallet::VersionNotifyTargets` (r:3 w:0)
/// Proof Skipped: 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: `272` // Measured: `69`
// Estimated: `8687` // Estimated: `8484`
// Minimum execution time: 9_572_000 picoseconds. // Minimum execution time: 9_463_000 picoseconds.
Weight::from_parts(9_907_000, 0) Weight::from_parts(9_728_000, 0)
.saturating_add(Weight::from_parts(0, 8687)) .saturating_add(Weight::from_parts(0, 8484))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
} }
/// Storage: XcmPallet VersionNotifyTargets (r:4 w:2) /// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:2)
/// Proof Skipped: 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: `240` // Measured: `37`
// Estimated: `11130` // Estimated: `10927`
// Minimum execution time: 17_376_000 picoseconds. // Minimum execution time: 15_169_000 picoseconds.
Weight::from_parts(17_870_000, 0) Weight::from_parts(15_694_000, 0)
.saturating_add(Weight::from_parts(0, 11130)) .saturating_add(Weight::from_parts(0, 10927))
.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: XcmPallet VersionNotifyTargets (r:4 w:2) /// Storage: `XcmPallet::VersionNotifyTargets` (r:4 w:2)
/// Proof Skipped: XcmPallet VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Storage: `Dmp::DeliveryFeeFactor` (r:1 w:0)
/// Proof Skipped: unknown `0x3a696e747261626c6f636b5f656e74726f7079` (r:1 w:1) /// Proof: `Dmp::DeliveryFeeFactor` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DeliveryFeeFactor (r:1 w:0) /// Storage: `XcmPallet::SupportedVersion` (r:1 w:0)
/// Proof Skipped: Dmp DeliveryFeeFactor (max_values: None, max_size: None, mode: Measured) /// Proof: `XcmPallet::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: XcmPallet SupportedVersion (r:1 w:0) /// Storage: `Dmp::DownwardMessageQueues` (r:1 w:1)
/// Proof Skipped: XcmPallet SupportedVersion (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueues` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueues (r:1 w:1) /// Storage: `Dmp::DownwardMessageQueueHeads` (r:1 w:1)
/// Proof Skipped: Dmp DownwardMessageQueues (max_values: None, max_size: None, mode: Measured) /// Proof: `Dmp::DownwardMessageQueueHeads` (`max_values`: None, `max_size`: None, mode: `Measured`)
/// Storage: Dmp DownwardMessageQueueHeads (r:1 w:1)
/// Proof Skipped: 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: `243` // Measured: `149`
// Estimated: `11133` // Estimated: `11039`
// Minimum execution time: 43_468_000 picoseconds. // Minimum execution time: 37_549_000 picoseconds.
Weight::from_parts(44_327_000, 0) Weight::from_parts(38_203_000, 0)
.saturating_add(Weight::from_parts(0, 11133)) .saturating_add(Weight::from_parts(0, 11039))
.saturating_add(T::DbWeight::get().reads(11)) .saturating_add(T::DbWeight::get().reads(8))
.saturating_add(T::DbWeight::get().writes(6)) .saturating_add(T::DbWeight::get().writes(4))
}
/// Storage: `XcmPallet::QueryCounter` (r:1 w:1)
/// Proof: `XcmPallet::QueryCounter` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
/// Storage: `XcmPallet::Queries` (r:0 w:1)
/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn new_query() -> Weight {
// Proof Size summary in bytes:
// Measured: `0`
// Estimated: `1485`
// Minimum execution time: 2_947_000 picoseconds.
Weight::from_parts(3_117_000, 0)
.saturating_add(Weight::from_parts(0, 1485))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(2))
}
/// Storage: `XcmPallet::Queries` (r:1 w:1)
/// Proof: `XcmPallet::Queries` (`max_values`: None, `max_size`: None, mode: `Measured`)
fn take_response() -> Weight {
// Proof Size summary in bytes:
// Measured: `7576`
// Estimated: `11041`
// Minimum execution time: 24_595_000 picoseconds.
Weight::from_parts(24_907_000, 0)
.saturating_add(Weight::from_parts(0, 11041))
.saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1))
} }
} }
+2 -1
View File
@@ -23,12 +23,12 @@ sp-std = { path = "../../../substrate/primitives/std", default-features = false}
xcm = { package = "staging-xcm", path = "..", default-features = false } xcm = { package = "staging-xcm", path = "..", default-features = false }
xcm-executor = { package = "staging-xcm-executor", path = "../xcm-executor", default-features = false } xcm-executor = { package = "staging-xcm-executor", path = "../xcm-executor", default-features = false }
xcm-builder = { package = "staging-xcm-builder", path = "../xcm-builder", default-features = false }
[dev-dependencies] [dev-dependencies]
pallet-balances = { path = "../../../substrate/frame/balances" } pallet-balances = { path = "../../../substrate/frame/balances" }
polkadot-runtime-parachains = { path = "../../runtime/parachains" } polkadot-runtime-parachains = { path = "../../runtime/parachains" }
polkadot-parachain-primitives = { path = "../../parachain" } polkadot-parachain-primitives = { path = "../../parachain" }
xcm-builder = { package = "staging-xcm-builder", path = "../xcm-builder" }
[features] [features]
default = [ "std" ] default = [ "std" ]
@@ -45,6 +45,7 @@ std = [
"sp-io/std", "sp-io/std",
"sp-runtime/std", "sp-runtime/std",
"sp-std/std", "sp-std/std",
"xcm-builder/std",
"xcm-executor/std", "xcm-executor/std",
"xcm/std", "xcm/std",
] ]
@@ -190,6 +190,33 @@ benchmarks! {
Pallet::<T>::check_xcm_version_change(VersionMigrationStage::MigrateAndNotifyOldTargets, Weight::zero()); Pallet::<T>::check_xcm_version_change(VersionMigrationStage::MigrateAndNotifyOldTargets, Weight::zero());
} }
new_query {
let responder = MultiLocation::from(Parent);
let timeout = 1u32.into();
let match_querier = MultiLocation::from(Here);
}: {
Pallet::<T>::new_query(responder, timeout, match_querier);
}
take_response {
let responder = MultiLocation::from(Parent);
let timeout = 1u32.into();
let match_querier = MultiLocation::from(Here);
let query_id = Pallet::<T>::new_query(responder, timeout, match_querier);
let infos = (0 .. xcm::v3::MaxPalletsInfo::get()).map(|_| PalletInfo::new(
u32::MAX,
(0..xcm::v3::MaxPalletNameLen::get()).map(|_| 97u8).collect::<Vec<_>>().try_into().unwrap(),
(0..xcm::v3::MaxPalletNameLen::get()).map(|_| 97u8).collect::<Vec<_>>().try_into().unwrap(),
u32::MAX,
u32::MAX,
u32::MAX,
).unwrap()).collect::<Vec<_>>();
Pallet::<T>::expect_response(query_id, Response::PalletsInfo(infos.try_into().unwrap()));
}: {
<Pallet::<T> as QueryHandler>::take_response(query_id);
}
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()),
+118 -39
View File
@@ -28,9 +28,17 @@ mod tests;
pub mod migration; pub mod migration;
use codec::{Decode, Encode, EncodeLike, MaxEncodedLen}; use codec::{Decode, Encode, EncodeLike, MaxEncodedLen};
use frame_support::traits::{ use frame_support::{
Contains, ContainsPair, Currency, Defensive, EnsureOrigin, Get, LockableCurrency, OriginTrait, dispatch::GetDispatchInfo,
pallet_prelude::*,
traits::{
Contains, ContainsPair, Currency, Defensive, EnsureOrigin, Get, LockableCurrency,
OriginTrait, WithdrawReasons,
},
PalletId,
}; };
use frame_system::pallet_prelude::{BlockNumberFor, *};
pub use pallet::*;
use scale_info::TypeInfo; use scale_info::TypeInfo;
use sp_runtime::{ use sp_runtime::{
traits::{ traits::{
@@ -41,17 +49,15 @@ use sp_runtime::{
}; };
use sp_std::{boxed::Box, marker::PhantomData, prelude::*, result::Result, vec}; use sp_std::{boxed::Box, marker::PhantomData, prelude::*, result::Result, vec};
use xcm::{latest::QueryResponseInfo, prelude::*}; use xcm::{latest::QueryResponseInfo, prelude::*};
use xcm_executor::traits::{ConvertOrigin, Properties}; use xcm_builder::{
ExecuteController, ExecuteControllerWeightInfo, QueryController, QueryControllerWeightInfo,
use frame_support::{ SendController, SendControllerWeightInfo,
dispatch::GetDispatchInfo, pallet_prelude::*, traits::WithdrawReasons, PalletId,
}; };
use frame_system::pallet_prelude::*;
pub use pallet::*;
use xcm_executor::{ use xcm_executor::{
traits::{ traits::{
CheckSuspension, ClaimAssets, ConvertLocation, DropAssets, MatchesFungible, OnResponse, CheckSuspension, ClaimAssets, ConvertLocation, ConvertOrigin, DropAssets, MatchesFungible,
QueryHandler, QueryResponseStatus, VersionChangeNotifier, WeightBounds, OnResponse, Properties, QueryHandler, QueryResponseStatus, VersionChangeNotifier,
WeightBounds,
}, },
Assets, Assets,
}; };
@@ -73,6 +79,8 @@ pub trait WeightInfo {
fn notify_target_migration_fail() -> Weight; fn notify_target_migration_fail() -> Weight;
fn migrate_version_notify_targets() -> Weight; fn migrate_version_notify_targets() -> Weight;
fn migrate_and_notify_old_targets() -> Weight; fn migrate_and_notify_old_targets() -> Weight;
fn new_query() -> Weight;
fn take_response() -> Weight;
} }
/// fallback implementation /// fallback implementation
@@ -141,6 +149,14 @@ impl WeightInfo for TestWeightInfo {
fn migrate_and_notify_old_targets() -> Weight { fn migrate_and_notify_old_targets() -> Weight {
Weight::from_parts(100_000_000, 0) Weight::from_parts(100_000_000, 0)
} }
fn new_query() -> Weight {
Weight::from_parts(100_000_000, 0)
}
fn take_response() -> Weight {
Weight::from_parts(100_000_000, 0)
}
} }
#[frame_support::pallet] #[frame_support::pallet]
@@ -267,6 +283,93 @@ pub mod pallet {
type ReachableDest: Get<Option<MultiLocation>>; type ReachableDest: Get<Option<MultiLocation>>;
} }
impl<T: Config> ExecuteControllerWeightInfo for Pallet<T> {
fn execute() -> Weight {
T::WeightInfo::execute()
}
}
impl<T: Config> ExecuteController<OriginFor<T>, <T as Config>::RuntimeCall> for Pallet<T> {
type WeightInfo = Self;
fn execute(
origin: OriginFor<T>,
message: Box<VersionedXcm<<T as Config>::RuntimeCall>>,
max_weight: Weight,
) -> Result<Outcome, DispatchError> {
let origin_location = T::ExecuteXcmOrigin::ensure_origin(origin)?;
let hash = message.using_encoded(sp_io::hashing::blake2_256);
let message = (*message).try_into().map_err(|()| Error::<T>::BadVersion)?;
let value = (origin_location, message);
ensure!(T::XcmExecuteFilter::contains(&value), Error::<T>::Filtered);
let (origin_location, message) = value;
let outcome = T::XcmExecutor::execute_xcm_in_credit(
origin_location,
message,
hash,
max_weight,
max_weight,
);
Self::deposit_event(Event::Attempted { outcome: outcome.clone() });
Ok(outcome)
}
}
impl<T: Config> SendControllerWeightInfo for Pallet<T> {
fn send() -> Weight {
T::WeightInfo::send()
}
}
impl<T: Config> SendController<OriginFor<T>> for Pallet<T> {
type WeightInfo = Self;
fn send(
origin: OriginFor<T>,
dest: Box<VersionedMultiLocation>,
message: Box<VersionedXcm<()>>,
) -> Result<XcmHash, DispatchError> {
let origin_location = T::SendXcmOrigin::ensure_origin(origin)?;
let interior: Junctions =
origin_location.try_into().map_err(|_| Error::<T>::InvalidOrigin)?;
let dest = MultiLocation::try_from(*dest).map_err(|()| Error::<T>::BadVersion)?;
let message: Xcm<()> = (*message).try_into().map_err(|()| Error::<T>::BadVersion)?;
let message_id =
Self::send_xcm(interior, dest, message.clone()).map_err(Error::<T>::from)?;
let e = Event::Sent { origin: origin_location, destination: dest, message, message_id };
Self::deposit_event(e);
Ok(message_id)
}
}
impl<T: Config> QueryControllerWeightInfo for Pallet<T> {
fn query() -> Weight {
T::WeightInfo::new_query()
}
fn take_response() -> Weight {
T::WeightInfo::take_response()
}
}
impl<T: Config> QueryController<OriginFor<T>, BlockNumberFor<T>> for Pallet<T> {
type WeightInfo = Self;
fn query(
origin: OriginFor<T>,
timeout: BlockNumberFor<T>,
match_querier: VersionedMultiLocation,
) -> Result<Self::QueryId, DispatchError> {
let responder = <T as Config>::ExecuteXcmOrigin::ensure_origin(origin)?;
let query_id = <Self as QueryHandler>::new_query(
responder,
timeout,
MultiLocation::try_from(match_querier)
.map_err(|_| Into::<DispatchError>::into(Error::<T>::BadVersion))?,
);
Ok(query_id)
}
}
#[pallet::event] #[pallet::event]
#[pallet::generate_deposit(pub(super) fn deposit_event)] #[pallet::generate_deposit(pub(super) fn deposit_event)]
pub enum Event<T: Config> { pub enum Event<T: Config> {
@@ -771,16 +874,7 @@ pub mod pallet {
dest: Box<VersionedMultiLocation>, dest: Box<VersionedMultiLocation>,
message: Box<VersionedXcm<()>>, message: Box<VersionedXcm<()>>,
) -> DispatchResult { ) -> DispatchResult {
let origin_location = T::SendXcmOrigin::ensure_origin(origin)?; <Self as SendController<_>>::send(origin, dest, message)?;
let interior: Junctions =
origin_location.try_into().map_err(|_| Error::<T>::InvalidOrigin)?;
let dest = MultiLocation::try_from(*dest).map_err(|()| Error::<T>::BadVersion)?;
let message: Xcm<()> = (*message).try_into().map_err(|()| Error::<T>::BadVersion)?;
let message_id =
Self::send_xcm(interior, dest, message.clone()).map_err(Error::<T>::from)?;
let e = Event::Sent { origin: origin_location, destination: dest, message, message_id };
Self::deposit_event(e);
Ok(()) Ok(())
} }
@@ -896,7 +990,7 @@ pub mod pallet {
/// execution attempt will be made. /// execution attempt will be made.
/// ///
/// NOTE: A successful return to this does *not* imply that the `msg` was executed /// NOTE: A successful return to this does *not* imply that the `msg` was executed
/// successfully to completion; only that *some* of it was executed. /// successfully to completion; only that it was attempted.
#[pallet::call_index(3)] #[pallet::call_index(3)]
#[pallet::weight(max_weight.saturating_add(T::WeightInfo::execute()))] #[pallet::weight(max_weight.saturating_add(T::WeightInfo::execute()))]
pub fn execute( pub fn execute(
@@ -904,23 +998,8 @@ pub mod pallet {
message: Box<VersionedXcm<<T as Config>::RuntimeCall>>, message: Box<VersionedXcm<<T as Config>::RuntimeCall>>,
max_weight: Weight, max_weight: Weight,
) -> DispatchResultWithPostInfo { ) -> DispatchResultWithPostInfo {
let origin_location = T::ExecuteXcmOrigin::ensure_origin(origin)?; let outcome = <Self as ExecuteController<_, _>>::execute(origin, message, max_weight)?;
let hash = message.using_encoded(sp_io::hashing::blake2_256); Ok(Some(outcome.weight_used().saturating_add(T::WeightInfo::execute())).into())
let message = (*message).try_into().map_err(|()| Error::<T>::BadVersion)?;
let value = (origin_location, message);
ensure!(T::XcmExecuteFilter::contains(&value), Error::<T>::Filtered);
let (origin_location, message) = value;
let outcome = T::XcmExecutor::execute_xcm_in_credit(
origin_location,
message,
hash,
max_weight,
max_weight,
);
let result =
Ok(Some(outcome.weight_used().saturating_add(T::WeightInfo::execute())).into());
Self::deposit_event(Event::Attempted { outcome });
result
} }
/// Extoll that a particular destination can be communicated with through a particular /// Extoll that a particular destination can be communicated with through a particular
@@ -1145,7 +1224,7 @@ impl<T: Config> QueryHandler for Pallet<T> {
timeout: BlockNumberFor<T>, timeout: BlockNumberFor<T>,
match_querier: impl Into<MultiLocation>, match_querier: impl Into<MultiLocation>,
) -> Self::QueryId { ) -> Self::QueryId {
Self::do_new_query(responder, None, timeout, match_querier).into() Self::do_new_query(responder, None, timeout, match_querier)
} }
/// To check the status of the query, use `fn query()` passing the resultant `QueryId` /// To check the status of the query, use `fn query()` passing the resultant `QueryId`
+187
View File
@@ -0,0 +1,187 @@
// Copyright (C) Parity Technologies (UK) Ltd.
// This file is part of Polkadot.
// Polkadot is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// Polkadot is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
//! A set of traits that define how a pallet interface with XCM.
//! Controller traits defined in this module are high-level traits that will rely on other traits
//! from `xcm-executor` to perform their tasks.
use frame_support::pallet_prelude::DispatchError;
use sp_std::boxed::Box;
use xcm::prelude::*;
use xcm_executor::traits::QueryHandler;
/// Umbrella trait for all Controller traits.
pub trait Controller<Origin, RuntimeCall, Timeout>:
ExecuteController<Origin, RuntimeCall> + SendController<Origin> + QueryController<Origin, Timeout>
{
}
impl<T, Origin, RuntimeCall, Timeout> Controller<Origin, RuntimeCall, Timeout> for T where
T: ExecuteController<Origin, RuntimeCall>
+ SendController<Origin>
+ QueryController<Origin, Timeout>
{
}
/// Weight functions needed for [`ExecuteController`].
pub trait ExecuteControllerWeightInfo {
/// Weight for [`ExecuteController::execute`]
fn execute() -> Weight;
}
/// Execute an XCM locally, for a given origin.
///
/// An implementation of that trait will handle the low-level details of the execution, such as:
/// - Validating and Converting the origin to a MultiLocation.
/// - Handling versioning.
/// - Calling the internal executor, which implements [`ExecuteXcm`].
pub trait ExecuteController<Origin, RuntimeCall> {
/// Weight information for ExecuteController functions.
type WeightInfo: ExecuteControllerWeightInfo;
/// Attempt to execute an XCM locally, and return the outcome.
///
/// # Parameters
///
/// - `origin`: the origin of the call.
/// - `message`: the XCM program to be executed.
/// - `max_weight`: the maximum weight that can be consumed by the execution.
fn execute(
origin: Origin,
message: Box<VersionedXcm<RuntimeCall>>,
max_weight: Weight,
) -> Result<Outcome, DispatchError>;
}
/// Weight functions needed for [`SendController`].
pub trait SendControllerWeightInfo {
/// Weight for [`SendController::send`]
fn send() -> Weight;
}
/// Send an XCM from a given origin.
///
/// An implementation of that trait will handle the low-level details of dispatching an XCM, such
/// as:
/// - Validating and Converting the origin to an interior location.
/// - Handling versioning.
/// - Calling the internal router, which implements [`SendXcm`].
pub trait SendController<Origin> {
/// Weight information for SendController functions.
type WeightInfo: SendControllerWeightInfo;
/// Send an XCM to be executed by a remote location.
///
/// # Parameters
///
/// - `origin`: the origin of the call.
/// - `dest`: the destination of the message.
/// - `msg`: the XCM to be sent.
fn send(
origin: Origin,
dest: Box<VersionedMultiLocation>,
message: Box<VersionedXcm<()>>,
) -> Result<XcmHash, DispatchError>;
}
/// Weight functions needed for [`QueryController`].
pub trait QueryControllerWeightInfo {
/// Weight for [`QueryController::query`]
fn query() -> Weight;
/// Weight for [`QueryHandler::take_response`]
fn take_response() -> Weight;
}
/// Query a remote location, from a given origin.
///
/// An implementation of that trait will handle the low-level details of querying a remote location,
/// such as:
/// - Validating and Converting the origin to an interior location.
/// - Handling versioning.
/// - Calling the [`QueryHandler`] to register the query.
pub trait QueryController<Origin, Timeout>: QueryHandler {
/// Weight information for QueryController functions.
type WeightInfo: QueryControllerWeightInfo;
/// Query a remote location.
///
/// # Parameters
///
/// - `origin`: the origin of the call, used to determine the responder.
/// - `timeout`: the maximum block number that the query should be responded to.
/// - `match_querier`: the querier that the query should be responded to.
fn query(
origin: Origin,
timeout: Timeout,
match_querier: VersionedMultiLocation,
) -> Result<Self::QueryId, DispatchError>;
}
impl<Origin, RuntimeCall> ExecuteController<Origin, RuntimeCall> for () {
type WeightInfo = ();
fn execute(
_origin: Origin,
_message: Box<VersionedXcm<RuntimeCall>>,
_max_weight: Weight,
) -> Result<Outcome, DispatchError> {
Ok(Outcome::Error(XcmError::Unimplemented))
}
}
impl ExecuteControllerWeightInfo for () {
fn execute() -> Weight {
Weight::zero()
}
}
impl<Origin> SendController<Origin> for () {
type WeightInfo = ();
fn send(
_origin: Origin,
_dest: Box<VersionedMultiLocation>,
_message: Box<VersionedXcm<()>>,
) -> Result<XcmHash, DispatchError> {
Ok(Default::default())
}
}
impl SendControllerWeightInfo for () {
fn send() -> Weight {
Weight::zero()
}
}
impl QueryControllerWeightInfo for () {
fn query() -> Weight {
Weight::zero()
}
fn take_response() -> Weight {
Weight::zero()
}
}
impl<Origin, Timeout> QueryController<Origin, Timeout> for () {
type WeightInfo = ();
fn query(
_origin: Origin,
_timeout: Timeout,
_match_querier: VersionedMultiLocation,
) -> Result<Self::QueryId, DispatchError> {
Ok(Default::default())
}
}
+6
View File
@@ -115,3 +115,9 @@ pub use origin_aliases::AliasForeignAccountId32;
mod pay; mod pay;
pub use pay::{FixedLocation, LocatableAssetId, PayAccountId32OnChainOverXcm, PayOverXcm}; pub use pay::{FixedLocation, LocatableAssetId, PayAccountId32OnChainOverXcm, PayOverXcm};
mod controller;
pub use controller::{
Controller, ExecuteController, ExecuteControllerWeightInfo, QueryController,
QueryControllerWeightInfo, SendController, SendControllerWeightInfo,
};
+1 -1
View File
@@ -414,7 +414,7 @@ pub fn response(query_id: u64) -> Option<Response> {
/// Mock implementation of the [`QueryHandler`] trait for creating XCM success queries and expecting /// Mock implementation of the [`QueryHandler`] trait for creating XCM success queries and expecting
/// responses. /// responses.
pub struct TestQueryHandler<T, BlockNumber>(core::marker::PhantomData<(T, BlockNumber)>); pub struct TestQueryHandler<T, BlockNumber>(core::marker::PhantomData<(T, BlockNumber)>);
impl<T: Config, BlockNumber: sp_runtime::traits::Zero> QueryHandler impl<T: Config, BlockNumber: sp_runtime::traits::Zero + Encode> QueryHandler
for TestQueryHandler<T, BlockNumber> for TestQueryHandler<T, BlockNumber>
{ {
type QueryId = u64; type QueryId = u64;
@@ -14,10 +14,13 @@
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Polkadot. If not, see <http://www.gnu.org/licenses/>. // along with Polkadot. If not, see <http://www.gnu.org/licenses/>.
use crate::Xcm; use crate::{Junctions::Here, Xcm};
use core::result; use core::result;
use frame_support::pallet_prelude::{Get, TypeInfo}; use frame_support::{
use parity_scale_codec::{FullCodec, MaxEncodedLen}; pallet_prelude::{Get, TypeInfo},
parameter_types,
};
use parity_scale_codec::{Decode, Encode, FullCodec, MaxEncodedLen};
use sp_arithmetic::traits::Zero; use sp_arithmetic::traits::Zero;
use sp_std::fmt::Debug; use sp_std::fmt::Debug;
use xcm::latest::{ use xcm::latest::{
@@ -103,7 +106,7 @@ impl VersionChangeNotifier for () {
} }
/// The possible state of an XCM query response. /// The possible state of an XCM query response.
#[derive(Debug, PartialEq, Eq)] #[derive(Debug, PartialEq, Eq, Encode, Decode)]
pub enum QueryResponseStatus<BlockNumber> { pub enum QueryResponseStatus<BlockNumber> {
/// The response has arrived, and includes the inner Response and the block number it arrived /// The response has arrived, and includes the inner Response and the block number it arrived
/// at. /// at.
@@ -129,7 +132,7 @@ pub trait QueryHandler {
+ PartialEq + PartialEq
+ Debug + Debug
+ Copy; + Copy;
type BlockNumber: Zero; type BlockNumber: Zero + Encode;
type Error; type Error;
type UniversalLocation: Get<InteriorMultiLocation>; type UniversalLocation: Get<InteriorMultiLocation>;
@@ -165,3 +168,36 @@ pub trait QueryHandler {
#[cfg(feature = "runtime-benchmarks")] #[cfg(feature = "runtime-benchmarks")]
fn expect_response(id: Self::QueryId, response: Response); fn expect_response(id: Self::QueryId, response: Response);
} }
parameter_types! {
pub UniversalLocation: InteriorMultiLocation = Here;
}
impl QueryHandler for () {
type BlockNumber = u64;
type Error = ();
type QueryId = u64;
type UniversalLocation = UniversalLocation;
fn take_response(_query_id: Self::QueryId) -> QueryResponseStatus<Self::BlockNumber> {
QueryResponseStatus::NotFound
}
fn new_query(
_responder: impl Into<MultiLocation>,
_timeout: Self::BlockNumber,
_match_querier: impl Into<MultiLocation>,
) -> Self::QueryId {
0u64
}
fn report_outcome(
_message: &mut Xcm<()>,
_responder: impl Into<MultiLocation>,
_timeout: Self::BlockNumber,
) -> Result<Self::QueryId, Self::Error> {
Err(())
}
#[cfg(feature = "runtime-benchmarks")]
fn expect_response(_id: Self::QueryId, _response: crate::Response) {}
}
+15
View File
@@ -0,0 +1,15 @@
title: "Contracts: Add XCM traits to interface with contracts"
doc:
- audience: Core Dev
description: |
We are introducing a new set of `XcmController` traits in `pallet-xcm`.
These traits extract functionality from `pallet-xcm` and provide high-level interaction with XCM.
They enable other pallets, like `pallet_contracts`, to rely on these traits instead of tight coupling to `pallet-xcm` itself.
crates:
- name: "pallet-xcm"
semver: patch
- name: "xcm-executor"
semver: patch