mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 05:51:02 +00:00
6b7be115fd
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 <>
70 lines
2.5 KiB
TOML
70 lines
2.5 KiB
TOML
[package]
|
|
name = "pallet-xcm"
|
|
version = "1.0.0"
|
|
description = "A pallet for handling XCM programs."
|
|
authors.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[dependencies]
|
|
bounded-collections = { version = "0.1.8", default-features = false }
|
|
codec = { package = "parity-scale-codec", version = "3.6.1", default-features = false, features = ["derive"] }
|
|
scale-info = { version = "2.10.0", default-features = false, features = ["derive"] }
|
|
serde = { version = "1.0.188", optional = true, features = ["derive"] }
|
|
log = { version = "0.4.17", default-features = false }
|
|
|
|
frame-benchmarking = { path = "../../../substrate/frame/benchmarking", default-features = false, optional = true }
|
|
frame-support = { path = "../../../substrate/frame/support", default-features = false}
|
|
frame-system = { path = "../../../substrate/frame/system", default-features = false}
|
|
sp-core = { path = "../../../substrate/primitives/core", default-features = false}
|
|
sp-io = { path = "../../../substrate/primitives/io", default-features = false}
|
|
sp-runtime = { path = "../../../substrate/primitives/runtime", default-features = false}
|
|
sp-std = { path = "../../../substrate/primitives/std", default-features = false}
|
|
|
|
xcm = { package = "staging-xcm", path = "..", 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]
|
|
pallet-balances = { path = "../../../substrate/frame/balances" }
|
|
polkadot-runtime-parachains = { path = "../../runtime/parachains" }
|
|
polkadot-parachain-primitives = { path = "../../parachain" }
|
|
|
|
[features]
|
|
default = [ "std" ]
|
|
std = [
|
|
"bounded-collections/std",
|
|
"codec/std",
|
|
"frame-benchmarking?/std",
|
|
"frame-support/std",
|
|
"frame-system/std",
|
|
"log/std",
|
|
"scale-info/std",
|
|
"serde",
|
|
"sp-core/std",
|
|
"sp-io/std",
|
|
"sp-runtime/std",
|
|
"sp-std/std",
|
|
"xcm-builder/std",
|
|
"xcm-executor/std",
|
|
"xcm/std",
|
|
]
|
|
runtime-benchmarks = [
|
|
"frame-benchmarking/runtime-benchmarks",
|
|
"frame-support/runtime-benchmarks",
|
|
"frame-system/runtime-benchmarks",
|
|
"pallet-balances/runtime-benchmarks",
|
|
"polkadot-parachain-primitives/runtime-benchmarks",
|
|
"polkadot-runtime-parachains/runtime-benchmarks",
|
|
"sp-runtime/runtime-benchmarks",
|
|
"xcm-builder/runtime-benchmarks",
|
|
"xcm-executor/runtime-benchmarks",
|
|
]
|
|
try-runtime = [
|
|
"frame-support/try-runtime",
|
|
"frame-system/try-runtime",
|
|
"pallet-balances/try-runtime",
|
|
"polkadot-runtime-parachains/try-runtime",
|
|
"sp-runtime/try-runtime",
|
|
]
|