mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 18:41:03 +00:00
Pokladot sdk backport to staging (#2746)
* Bump to `polkadot-sdk` master `ebe2aad6f0ae576a0e176f38a084fe7579f936dd` * align with others * Backport xcm version stuff from `polkadot-sdk` * Backport Slava's commit from `polkadot-sdk` * Workspace clippy as `polkadot-sdk` does * Make submodules use workspace lints * Add Bridges clippy addons to workspace lints * Looks like we dont need extra clippy addons anymore?
This commit is contained in:
committed by
Bastian Köcher
parent
23440ceab0
commit
8b1e14658e
@@ -6,6 +6,9 @@ authors.workspace = true
|
||||
edition.workspace = true
|
||||
license = "GPL-3.0-or-later WITH Classpath-exception-2.0"
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
[dependencies]
|
||||
codec = { package = "parity-scale-codec", version = "3.1.5", default-features = false }
|
||||
log = { version = "0.4.20", default-features = false }
|
||||
|
||||
@@ -33,7 +33,8 @@ use xcm_executor::traits::ExportXcm;
|
||||
/// An easy way to access `HaulBlobExporter`.
|
||||
pub type PalletAsHaulBlobExporter<T, I> = HaulBlobExporter<
|
||||
DummyHaulBlob,
|
||||
<T as Config<I>>::BridgedNetworkId,
|
||||
<T as Config<I>>::BridgedNetwork,
|
||||
<T as Config<I>>::DestinationVersion,
|
||||
<T as Config<I>>::MessageExportPrice,
|
||||
>;
|
||||
/// An easy way to access associated messages pallet.
|
||||
|
||||
@@ -37,6 +37,7 @@ pub mod pallet {
|
||||
use super::*;
|
||||
use bridge_runtime_common::messages_xcm_extension::SenderAndLane;
|
||||
use frame_support::pallet_prelude::*;
|
||||
use frame_system::pallet_prelude::BlockNumberFor;
|
||||
|
||||
#[pallet::config]
|
||||
#[pallet::disable_frame_system_supertrait_check]
|
||||
@@ -48,15 +49,17 @@ pub mod pallet {
|
||||
// TODO: https://github.com/paritytech/parity-bridges-common/issues/1666 remove `ChainId` and
|
||||
// replace it with the `NetworkId` - then we'll be able to use
|
||||
// `T as pallet_bridge_messages::Config<T::BridgeMessagesPalletInstance>::BridgedChain::NetworkId`
|
||||
/// Bridged network id.
|
||||
/// Bridged network as relative location of bridged `GlobalConsensus`.
|
||||
#[pallet::constant]
|
||||
type BridgedNetworkId: Get<NetworkId>;
|
||||
type BridgedNetwork: Get<MultiLocation>;
|
||||
/// Associated messages pallet instance that bridges us with the
|
||||
/// `BridgedNetworkId` consensus.
|
||||
type BridgeMessagesPalletInstance: 'static;
|
||||
|
||||
/// Price of single message export to the bridged consensus (`Self::BridgedNetworkId`).
|
||||
type MessageExportPrice: Get<MultiAssets>;
|
||||
/// Checks the XCM version for the destination.
|
||||
type DestinationVersion: GetVersion;
|
||||
|
||||
/// Get point-to-point links with bridged consensus (`Self::BridgedNetworkId`).
|
||||
/// (this will be replaced with dynamic on-chain bridges - `Bridges V2`)
|
||||
@@ -69,6 +72,17 @@ pub mod pallet {
|
||||
#[pallet::pallet]
|
||||
pub struct Pallet<T, I = ()>(PhantomData<(T, I)>);
|
||||
|
||||
#[pallet::hooks]
|
||||
impl<T: Config<I>, I: 'static> Hooks<BlockNumberFor<T>> for Pallet<T, I> {
|
||||
fn integrity_test() {
|
||||
assert!(
|
||||
Self::bridged_network_id().is_some(),
|
||||
"Configured `T::BridgedNetwork`: {:?} does not contain `GlobalConsensus` junction with `NetworkId`",
|
||||
T::BridgedNetwork::get()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T: Config<I>, I: 'static> Pallet<T, I> {
|
||||
/// Returns dedicated/configured lane identifier.
|
||||
pub(crate) fn lane_for(
|
||||
@@ -83,7 +97,7 @@ pub mod pallet {
|
||||
.find_map(|(lane_source, (lane_dest_network, lane_dest))| {
|
||||
if lane_source.location == source &&
|
||||
&lane_dest_network == dest.0 &&
|
||||
&T::BridgedNetworkId::get() == dest.0 &&
|
||||
Self::bridged_network_id().as_ref() == Some(dest.0) &&
|
||||
&lane_dest == dest.1
|
||||
{
|
||||
Some(lane_source)
|
||||
@@ -92,5 +106,13 @@ pub mod pallet {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/// Returns some `NetworkId` if contains `GlobalConsensus` junction.
|
||||
fn bridged_network_id() -> Option<NetworkId> {
|
||||
match T::BridgedNetwork::get().take_first_interior() {
|
||||
Some(GlobalConsensus(network)) => Some(network),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -170,6 +170,10 @@ impl pallet_bridge_messages::WeightInfoExt for TestMessagesWeights {
|
||||
parameter_types! {
|
||||
pub const RelayNetwork: NetworkId = NetworkId::Kusama;
|
||||
pub const BridgedRelayNetwork: NetworkId = NetworkId::Polkadot;
|
||||
pub const BridgedRelayNetworkLocation: MultiLocation = MultiLocation {
|
||||
parents: 1,
|
||||
interior: X1(GlobalConsensus(BridgedRelayNetwork::get()))
|
||||
};
|
||||
pub const NonBridgedRelayNetwork: NetworkId = NetworkId::Rococo;
|
||||
pub const BridgeReserve: Balance = 100_000;
|
||||
pub UniversalLocation: InteriorMultiLocation = X2(
|
||||
@@ -181,10 +185,12 @@ parameter_types! {
|
||||
|
||||
impl pallet_xcm_bridge_hub::Config for TestRuntime {
|
||||
type UniversalLocation = UniversalLocation;
|
||||
type BridgedNetworkId = BridgedRelayNetwork;
|
||||
type BridgedNetwork = BridgedRelayNetworkLocation;
|
||||
type BridgeMessagesPalletInstance = ();
|
||||
|
||||
type MessageExportPrice = ();
|
||||
type DestinationVersion = AlwaysLatest;
|
||||
|
||||
type Lanes = TestLanes;
|
||||
type LanesSupport = TestXcmBlobHauler;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user