mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 22:11:02 +00:00
Add claim_assets extrinsic to pallet-xcm (#3403)
If an XCM execution fails or ends with leftover assets, these will be trapped. In order to claim them, a custom XCM has to be executed, with the `ClaimAsset` instruction. However, arbitrary XCM execution is not allowed everywhere yet and XCM itself is still not easy enough to use for users out there with trapped assets. This new extrinsic in `pallet-xcm` will allow these users to easily claim their assets, without concerning themselves with writing arbitrary XCMs. Part of fixing https://github.com/paritytech/polkadot-sdk/issues/3495 --------- Co-authored-by: command-bot <> Co-authored-by: Adrian Catangiu <adrian@parity.io>
This commit is contained in:
committed by
GitHub
parent
c0e52a9ed6
commit
650886683d
@@ -1032,6 +1032,13 @@ impl_runtime_apis! {
|
||||
dest
|
||||
)
|
||||
}
|
||||
|
||||
fn get_asset() -> Asset {
|
||||
Asset {
|
||||
id: AssetId(Location::parent()),
|
||||
fun: Fungible(ExistentialDeposit::get()),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let whitelist: Vec<TrackedStorageKey> = vec![
|
||||
|
||||
+77
-65
@@ -16,10 +16,10 @@
|
||||
|
||||
//! Autogenerated weights for `pallet_xcm`
|
||||
//!
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
|
||||
//! DATE: 2023-12-05, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 32.0.0
|
||||
//! DATE: 2024-02-20, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]`
|
||||
//! WORST CASE MAP SIZE: `1000000`
|
||||
//! HOSTNAME: `runner-r43aesjn-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||
//! HOSTNAME: `runner-bn-ce5rx-project-674-concurrent-0`, CPU: `Intel(R) Xeon(R) CPU @ 2.60GHz`
|
||||
//! WASM-EXECUTION: `Compiled`, CHAIN: `Some("collectives-westend-dev")`, DB CACHE: 1024
|
||||
|
||||
// Executed Command:
|
||||
@@ -64,8 +64,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `145`
|
||||
// Estimated: `3610`
|
||||
// Minimum execution time: 24_540_000 picoseconds.
|
||||
Weight::from_parts(25_439_000, 0)
|
||||
// Minimum execution time: 21_813_000 picoseconds.
|
||||
Weight::from_parts(22_332_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 3610))
|
||||
.saturating_add(T::DbWeight::get().reads(6))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
@@ -90,8 +90,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `214`
|
||||
// Estimated: `3679`
|
||||
// Minimum execution time: 86_614_000 picoseconds.
|
||||
Weight::from_parts(88_884_000, 0)
|
||||
// Minimum execution time: 93_243_000 picoseconds.
|
||||
Weight::from_parts(95_650_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 3679))
|
||||
.saturating_add(T::DbWeight::get().reads(8))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
@@ -126,8 +126,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `214`
|
||||
// Estimated: `3679`
|
||||
// Minimum execution time: 87_915_000 picoseconds.
|
||||
Weight::from_parts(90_219_000, 0)
|
||||
// Minimum execution time: 96_199_000 picoseconds.
|
||||
Weight::from_parts(98_620_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 3679))
|
||||
.saturating_add(T::DbWeight::get().reads(8))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
@@ -148,8 +148,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `0`
|
||||
// Estimated: `0`
|
||||
// Minimum execution time: 6_872_000 picoseconds.
|
||||
Weight::from_parts(7_110_000, 0)
|
||||
// Minimum execution time: 6_442_000 picoseconds.
|
||||
Weight::from_parts(6_682_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 0))
|
||||
.saturating_add(T::DbWeight::get().writes(1))
|
||||
}
|
||||
@@ -159,8 +159,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `0`
|
||||
// Estimated: `0`
|
||||
// Minimum execution time: 2_009_000 picoseconds.
|
||||
Weight::from_parts(2_163_000, 0)
|
||||
// Minimum execution time: 1_833_000 picoseconds.
|
||||
Weight::from_parts(1_973_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 0))
|
||||
.saturating_add(T::DbWeight::get().writes(1))
|
||||
}
|
||||
@@ -186,8 +186,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `145`
|
||||
// Estimated: `3610`
|
||||
// Minimum execution time: 28_858_000 picoseconds.
|
||||
Weight::from_parts(29_355_000, 0)
|
||||
// Minimum execution time: 27_318_000 picoseconds.
|
||||
Weight::from_parts(28_224_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 3610))
|
||||
.saturating_add(T::DbWeight::get().reads(8))
|
||||
.saturating_add(T::DbWeight::get().writes(5))
|
||||
@@ -212,8 +212,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `363`
|
||||
// Estimated: `3828`
|
||||
// Minimum execution time: 30_598_000 picoseconds.
|
||||
Weight::from_parts(31_168_000, 0)
|
||||
// Minimum execution time: 29_070_000 picoseconds.
|
||||
Weight::from_parts(30_205_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 3828))
|
||||
.saturating_add(T::DbWeight::get().reads(7))
|
||||
.saturating_add(T::DbWeight::get().writes(4))
|
||||
@@ -224,45 +224,45 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `0`
|
||||
// Estimated: `0`
|
||||
// Minimum execution time: 2_090_000 picoseconds.
|
||||
Weight::from_parts(2_253_000, 0)
|
||||
// Minimum execution time: 1_904_000 picoseconds.
|
||||
Weight::from_parts(2_033_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 0))
|
||||
.saturating_add(T::DbWeight::get().writes(1))
|
||||
}
|
||||
/// Storage: `PolkadotXcm::SupportedVersion` (r:4 w:2)
|
||||
/// Storage: `PolkadotXcm::SupportedVersion` (r:5 w:2)
|
||||
/// Proof: `PolkadotXcm::SupportedVersion` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||
fn migrate_supported_version() -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `162`
|
||||
// Estimated: `11052`
|
||||
// Minimum execution time: 16_133_000 picoseconds.
|
||||
Weight::from_parts(16_433_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 11052))
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
// Measured: `159`
|
||||
// Estimated: `13524`
|
||||
// Minimum execution time: 18_348_000 picoseconds.
|
||||
Weight::from_parts(18_853_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 13524))
|
||||
.saturating_add(T::DbWeight::get().reads(5))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
/// Storage: `PolkadotXcm::VersionNotifiers` (r:4 w:2)
|
||||
/// Storage: `PolkadotXcm::VersionNotifiers` (r:5 w:2)
|
||||
/// Proof: `PolkadotXcm::VersionNotifiers` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||
fn migrate_version_notifiers() -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `166`
|
||||
// Estimated: `11056`
|
||||
// Minimum execution time: 16_012_000 picoseconds.
|
||||
Weight::from_parts(16_449_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 11056))
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
// Measured: `163`
|
||||
// Estimated: `13528`
|
||||
// Minimum execution time: 17_964_000 picoseconds.
|
||||
Weight::from_parts(18_548_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 13528))
|
||||
.saturating_add(T::DbWeight::get().reads(5))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:0)
|
||||
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:6 w:0)
|
||||
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||
fn already_notified_target() -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `173`
|
||||
// Estimated: `13538`
|
||||
// Minimum execution time: 17_922_000 picoseconds.
|
||||
Weight::from_parts(18_426_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 13538))
|
||||
.saturating_add(T::DbWeight::get().reads(5))
|
||||
// Estimated: `16013`
|
||||
// Minimum execution time: 19_708_000 picoseconds.
|
||||
Weight::from_parts(20_157_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 16013))
|
||||
.saturating_add(T::DbWeight::get().reads(6))
|
||||
}
|
||||
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:2 w:1)
|
||||
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||
@@ -282,36 +282,36 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `212`
|
||||
// Estimated: `6152`
|
||||
// Minimum execution time: 27_280_000 picoseconds.
|
||||
Weight::from_parts(28_026_000, 0)
|
||||
// Minimum execution time: 26_632_000 picoseconds.
|
||||
Weight::from_parts(27_314_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 6152))
|
||||
.saturating_add(T::DbWeight::get().reads(8))
|
||||
.saturating_add(T::DbWeight::get().writes(3))
|
||||
}
|
||||
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:3 w:0)
|
||||
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:0)
|
||||
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||
fn notify_target_migration_fail() -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `206`
|
||||
// Estimated: `8621`
|
||||
// Minimum execution time: 9_387_000 picoseconds.
|
||||
Weight::from_parts(9_644_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 8621))
|
||||
.saturating_add(T::DbWeight::get().reads(3))
|
||||
// Estimated: `11096`
|
||||
// Minimum execution time: 11_929_000 picoseconds.
|
||||
Weight::from_parts(12_304_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 11096))
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
}
|
||||
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2)
|
||||
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
|
||||
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||
fn migrate_version_notify_targets() -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `173`
|
||||
// Estimated: `11063`
|
||||
// Minimum execution time: 16_649_000 picoseconds.
|
||||
Weight::from_parts(17_025_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 11063))
|
||||
.saturating_add(T::DbWeight::get().reads(4))
|
||||
// Measured: `170`
|
||||
// Estimated: `13535`
|
||||
// Minimum execution time: 18_599_000 picoseconds.
|
||||
Weight::from_parts(19_195_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 13535))
|
||||
.saturating_add(T::DbWeight::get().reads(5))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
}
|
||||
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:4 w:2)
|
||||
/// Storage: `PolkadotXcm::VersionNotifyTargets` (r:5 w:2)
|
||||
/// Proof: `PolkadotXcm::VersionNotifyTargets` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||
/// Storage: `ParachainSystem::UpwardDeliveryFeeFactor` (r:1 w:0)
|
||||
/// Proof: `ParachainSystem::UpwardDeliveryFeeFactor` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||
@@ -327,12 +327,12 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
/// Proof: `ParachainSystem::PendingUpwardMessages` (`max_values`: Some(1), `max_size`: None, mode: `Measured`)
|
||||
fn migrate_and_notify_old_targets() -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `215`
|
||||
// Estimated: `11105`
|
||||
// Minimum execution time: 34_355_000 picoseconds.
|
||||
Weight::from_parts(35_295_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 11105))
|
||||
.saturating_add(T::DbWeight::get().reads(10))
|
||||
// Measured: `212`
|
||||
// Estimated: `13577`
|
||||
// Minimum execution time: 35_524_000 picoseconds.
|
||||
Weight::from_parts(36_272_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 13577))
|
||||
.saturating_add(T::DbWeight::get().reads(11))
|
||||
.saturating_add(T::DbWeight::get().writes(4))
|
||||
}
|
||||
/// Storage: `PolkadotXcm::QueryCounter` (r:1 w:1)
|
||||
@@ -343,8 +343,8 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `103`
|
||||
// Estimated: `1588`
|
||||
// Minimum execution time: 4_527_000 picoseconds.
|
||||
Weight::from_parts(4_699_000, 0)
|
||||
// Minimum execution time: 4_044_000 picoseconds.
|
||||
Weight::from_parts(4_238_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 1588))
|
||||
.saturating_add(T::DbWeight::get().reads(1))
|
||||
.saturating_add(T::DbWeight::get().writes(2))
|
||||
@@ -355,10 +355,22 @@ impl<T: frame_system::Config> pallet_xcm::WeightInfo for WeightInfo<T> {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `7740`
|
||||
// Estimated: `11205`
|
||||
// Minimum execution time: 27_011_000 picoseconds.
|
||||
Weight::from_parts(27_398_000, 0)
|
||||
// Minimum execution time: 25_741_000 picoseconds.
|
||||
Weight::from_parts(26_301_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 11205))
|
||||
.saturating_add(T::DbWeight::get().reads(1))
|
||||
.saturating_add(T::DbWeight::get().writes(1))
|
||||
}
|
||||
/// Storage: `PolkadotXcm::AssetTraps` (r:1 w:1)
|
||||
/// Proof: `PolkadotXcm::AssetTraps` (`max_values`: None, `max_size`: None, mode: `Measured`)
|
||||
fn claim_assets() -> Weight {
|
||||
// Proof Size summary in bytes:
|
||||
// Measured: `160`
|
||||
// Estimated: `3625`
|
||||
// Minimum execution time: 35_925_000 picoseconds.
|
||||
Weight::from_parts(36_978_000, 0)
|
||||
.saturating_add(Weight::from_parts(0, 3625))
|
||||
.saturating_add(T::DbWeight::get().reads(1))
|
||||
.saturating_add(T::DbWeight::get().writes(1))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user