mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 09:21:04 +00:00
Revert "Introduce Tinkernet multisig XCM configs to Kusama/Rococo through xcm-builder (#7165)" (#7446)
This reverts commit af99520569.
This commit is contained in:
Generated
-1
@@ -14472,7 +14472,6 @@ dependencies = [
|
|||||||
"primitive-types",
|
"primitive-types",
|
||||||
"scale-info",
|
"scale-info",
|
||||||
"sp-arithmetic",
|
"sp-arithmetic",
|
||||||
"sp-core",
|
|
||||||
"sp-io",
|
"sp-io",
|
||||||
"sp-runtime",
|
"sp-runtime",
|
||||||
"sp-std",
|
"sp-std",
|
||||||
|
|||||||
@@ -41,9 +41,8 @@ use xcm_builder::{
|
|||||||
ChildParachainConvertsVia, ChildSystemParachainAsSuperuser,
|
ChildParachainConvertsVia, ChildSystemParachainAsSuperuser,
|
||||||
CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete,
|
CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete,
|
||||||
MintLocation, OriginToPluralityVoice, SignedAccountId32AsNative, SignedToAccountId32,
|
MintLocation, OriginToPluralityVoice, SignedAccountId32AsNative, SignedToAccountId32,
|
||||||
SovereignSignedViaLocation, TakeWeightCredit, TinkernetMultisigAsAccountId,
|
SovereignSignedViaLocation, TakeWeightCredit, TrailingSetTopicAsId, UsingComponents,
|
||||||
TinkernetMultisigAsNative, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds,
|
WeightInfoBounds, WithComputedOrigin, WithUniqueTopic,
|
||||||
WithComputedOrigin, WithUniqueTopic,
|
|
||||||
};
|
};
|
||||||
use xcm_executor::traits::WithOriginFilter;
|
use xcm_executor::traits::WithOriginFilter;
|
||||||
|
|
||||||
@@ -71,8 +70,6 @@ pub type SovereignAccountOf = (
|
|||||||
ChildParachainConvertsVia<ParaId, AccountId>,
|
ChildParachainConvertsVia<ParaId, AccountId>,
|
||||||
// We can directly alias an `AccountId32` into a local account.
|
// We can directly alias an `AccountId32` into a local account.
|
||||||
AccountId32Aliases<ThisNetwork, AccountId>,
|
AccountId32Aliases<ThisNetwork, AccountId>,
|
||||||
// We can derive a local account from a Tinkernet XCMultisig MultiLocation.
|
|
||||||
TinkernetMultisigAsAccountId<AccountId>,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/// Our asset transactor. This is what allows us to interest with the runtime facilities from the point of
|
/// Our asset transactor. This is what allows us to interest with the runtime facilities from the point of
|
||||||
@@ -102,8 +99,6 @@ type LocalOriginConverter = (
|
|||||||
SignedAccountId32AsNative<ThisNetwork, RuntimeOrigin>,
|
SignedAccountId32AsNative<ThisNetwork, RuntimeOrigin>,
|
||||||
// A system child parachain, expressed as a Superuser, converts to the `Root` origin.
|
// A system child parachain, expressed as a Superuser, converts to the `Root` origin.
|
||||||
ChildSystemParachainAsSuperuser<ParaId, RuntimeOrigin>,
|
ChildSystemParachainAsSuperuser<ParaId, RuntimeOrigin>,
|
||||||
// Converts a Tinkernet XCMultisig MultiLocation into a `Signed` origin.
|
|
||||||
TinkernetMultisigAsNative<RuntimeOrigin>,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
|
|||||||
@@ -40,8 +40,8 @@ use xcm_builder::{
|
|||||||
ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser,
|
ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser,
|
||||||
CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete,
|
CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete,
|
||||||
MintLocation, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation,
|
MintLocation, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation,
|
||||||
TakeWeightCredit, TinkernetMultisigAsAccountId, TinkernetMultisigAsNative,
|
TakeWeightCredit, TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin,
|
||||||
TrailingSetTopicAsId, UsingComponents, WeightInfoBounds, WithComputedOrigin, WithUniqueTopic,
|
WithUniqueTopic,
|
||||||
};
|
};
|
||||||
use xcm_executor::{traits::WithOriginFilter, XcmExecutor};
|
use xcm_executor::{traits::WithOriginFilter, XcmExecutor};
|
||||||
|
|
||||||
@@ -53,12 +53,8 @@ parameter_types! {
|
|||||||
pub LocalCheckAccount: (AccountId, MintLocation) = (CheckAccount::get(), MintLocation::Local);
|
pub LocalCheckAccount: (AccountId, MintLocation) = (CheckAccount::get(), MintLocation::Local);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub type LocationConverter = (
|
pub type LocationConverter =
|
||||||
ChildParachainConvertsVia<ParaId, AccountId>,
|
(ChildParachainConvertsVia<ParaId, AccountId>, AccountId32Aliases<ThisNetwork, AccountId>);
|
||||||
AccountId32Aliases<ThisNetwork, AccountId>,
|
|
||||||
// We can derive a local account from a Tinkernet XCMultisig MultiLocation.
|
|
||||||
TinkernetMultisigAsAccountId<AccountId>,
|
|
||||||
);
|
|
||||||
|
|
||||||
/// Our asset transactor. This is what allows us to interest with the runtime facilities from the point of
|
/// Our asset transactor. This is what allows us to interest with the runtime facilities from the point of
|
||||||
/// view of XCM-only concepts like `MultiLocation` and `MultiAsset`.
|
/// view of XCM-only concepts like `MultiLocation` and `MultiAsset`.
|
||||||
@@ -87,8 +83,6 @@ type LocalOriginConverter = (
|
|||||||
SignedAccountId32AsNative<ThisNetwork, RuntimeOrigin>,
|
SignedAccountId32AsNative<ThisNetwork, RuntimeOrigin>,
|
||||||
// A system child parachain, expressed as a Superuser, converts to the `Root` origin.
|
// A system child parachain, expressed as a Superuser, converts to the `Root` origin.
|
||||||
ChildSystemParachainAsSuperuser<ParaId, RuntimeOrigin>,
|
ChildSystemParachainAsSuperuser<ParaId, RuntimeOrigin>,
|
||||||
// Converts a Tinkernet XCMultisig MultiLocation into a `Signed` origin.
|
|
||||||
TinkernetMultisigAsNative<RuntimeOrigin>,
|
|
||||||
);
|
);
|
||||||
|
|
||||||
parameter_types! {
|
parameter_types! {
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ sp-std = { git = "https://github.com/paritytech/substrate", branch = "master", d
|
|||||||
sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
||||||
sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
sp-io = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
||||||
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
||||||
sp-core = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
|
||||||
sp-weights = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
sp-weights = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
||||||
frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
frame-support = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
||||||
frame-system = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
frame-system = { git = "https://github.com/paritytech/substrate", branch = "master", default-features = false }
|
||||||
@@ -50,7 +49,6 @@ std = [
|
|||||||
"sp-arithmetic/std",
|
"sp-arithmetic/std",
|
||||||
"sp-io/std",
|
"sp-io/std",
|
||||||
"sp-runtime/std",
|
"sp-runtime/std",
|
||||||
"sp-core/std",
|
|
||||||
"sp-weights/std",
|
"sp-weights/std",
|
||||||
"frame-support/std",
|
"frame-support/std",
|
||||||
"frame-system/std",
|
"frame-system/std",
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ pub use location_conversion::{
|
|||||||
ChildParachainConvertsVia, DescribeAccountId32Terminal, DescribeAccountIdTerminal,
|
ChildParachainConvertsVia, DescribeAccountId32Terminal, DescribeAccountIdTerminal,
|
||||||
DescribeAccountKey20Terminal, DescribeAllTerminal, DescribeFamily, DescribeLocation,
|
DescribeAccountKey20Terminal, DescribeAllTerminal, DescribeFamily, DescribeLocation,
|
||||||
DescribePalletTerminal, DescribeTerminus, GlobalConsensusParachainConvertsFor,
|
DescribePalletTerminal, DescribeTerminus, GlobalConsensusParachainConvertsFor,
|
||||||
HashedDescription, ParentIsPreset, SiblingParachainConvertsVia, TinkernetMultisigAsAccountId,
|
HashedDescription, ParentIsPreset, SiblingParachainConvertsVia,
|
||||||
};
|
};
|
||||||
|
|
||||||
mod origin_conversion;
|
mod origin_conversion;
|
||||||
@@ -42,7 +42,7 @@ pub use origin_conversion::{
|
|||||||
BackingToPlurality, ChildParachainAsNative, ChildSystemParachainAsSuperuser, EnsureXcmOrigin,
|
BackingToPlurality, ChildParachainAsNative, ChildSystemParachainAsSuperuser, EnsureXcmOrigin,
|
||||||
OriginToPluralityVoice, ParentAsSuperuser, RelayChainAsNative, SiblingParachainAsNative,
|
OriginToPluralityVoice, ParentAsSuperuser, RelayChainAsNative, SiblingParachainAsNative,
|
||||||
SiblingSystemParachainAsSuperuser, SignedAccountId32AsNative, SignedAccountKey20AsNative,
|
SiblingSystemParachainAsSuperuser, SignedAccountId32AsNative, SignedAccountKey20AsNative,
|
||||||
SignedToAccountId32, SovereignSignedViaLocation, TinkernetMultisigAsNative,
|
SignedToAccountId32, SovereignSignedViaLocation,
|
||||||
};
|
};
|
||||||
|
|
||||||
mod asset_conversion;
|
mod asset_conversion;
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
use crate::universal_exports::ensure_is_remote;
|
use crate::universal_exports::ensure_is_remote;
|
||||||
use frame_support::traits::Get;
|
use frame_support::traits::Get;
|
||||||
use parity_scale_codec::{Compact, Decode, Encode};
|
use parity_scale_codec::{Compact, Decode, Encode};
|
||||||
use sp_core::H256;
|
|
||||||
use sp_io::hashing::blake2_256;
|
use sp_io::hashing::blake2_256;
|
||||||
use sp_runtime::traits::{AccountIdConversion, Convert, TrailingZeroInput};
|
use sp_runtime::traits::{AccountIdConversion, Convert, TrailingZeroInput};
|
||||||
use sp_std::{marker::PhantomData, prelude::*};
|
use sp_std::{marker::PhantomData, prelude::*};
|
||||||
@@ -346,52 +345,6 @@ impl<Network: Get<Option<NetworkId>>, AccountId: From<[u8; 20]> + Into<[u8; 20]>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Tinkernet ParaId used when matching Multisig MultiLocations.
|
|
||||||
pub const KUSAMA_TINKERNET_PARA_ID: u32 = 2125;
|
|
||||||
|
|
||||||
/// Tinkernet Multisig pallet instance used when matching Multisig MultiLocations.
|
|
||||||
pub const KUSAMA_TINKERNET_MULTISIG_PALLET: u8 = 71;
|
|
||||||
|
|
||||||
/// Constant derivation function for Tinkernet Multisigs.
|
|
||||||
/// Uses the Tinkernet genesis hash as a salt.
|
|
||||||
pub fn derive_tinkernet_multisig<AccountId: Decode>(id: u128) -> Result<AccountId, ()> {
|
|
||||||
AccountId::decode(&mut TrailingZeroInput::new(
|
|
||||||
&(
|
|
||||||
// The constant salt used to derive Tinkernet Multisigs, this is Tinkernet's genesis hash.
|
|
||||||
H256([
|
|
||||||
212, 46, 150, 6, 169, 149, 223, 228, 51, 220, 121, 85, 220, 42, 112, 244, 149, 243,
|
|
||||||
80, 243, 115, 218, 162, 0, 9, 138, 232, 68, 55, 129, 106, 210,
|
|
||||||
]),
|
|
||||||
// The actual multisig integer id.
|
|
||||||
u32::try_from(id).map_err(|_| ())?,
|
|
||||||
)
|
|
||||||
.using_encoded(blake2_256),
|
|
||||||
))
|
|
||||||
.map_err(|_| ())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Convert a Tinkernet Multisig `MultiLocation` value into a local `AccountId`.
|
|
||||||
pub struct TinkernetMultisigAsAccountId<AccountId>(PhantomData<AccountId>);
|
|
||||||
impl<AccountId: Decode + Clone> ConvertLocation<AccountId>
|
|
||||||
for TinkernetMultisigAsAccountId<AccountId>
|
|
||||||
{
|
|
||||||
fn convert_location(location: &MultiLocation) -> Option<AccountId> {
|
|
||||||
match location {
|
|
||||||
MultiLocation {
|
|
||||||
parents: _,
|
|
||||||
interior:
|
|
||||||
X3(
|
|
||||||
Parachain(KUSAMA_TINKERNET_PARA_ID),
|
|
||||||
PalletInstance(KUSAMA_TINKERNET_MULTISIG_PALLET),
|
|
||||||
// Index from which the multisig account is derived.
|
|
||||||
GeneralIndex(id),
|
|
||||||
),
|
|
||||||
} => derive_tinkernet_multisig(*id).ok(),
|
|
||||||
_ => None,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Converts a location which is a top-level parachain (i.e. a parachain held on a
|
/// Converts a location which is a top-level parachain (i.e. a parachain held on a
|
||||||
/// Relay-chain which provides its own consensus) into a 32-byte `AccountId`.
|
/// Relay-chain which provides its own consensus) into a 32-byte `AccountId`.
|
||||||
///
|
///
|
||||||
@@ -836,24 +789,4 @@ mod tests {
|
|||||||
};
|
};
|
||||||
assert!(ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).is_none());
|
assert!(ForeignChainAliasAccount::<[u8; 32]>::convert_location(&mul).is_none());
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn remote_tinkernet_multisig_convert_to_account() {
|
|
||||||
let mul = MultiLocation {
|
|
||||||
parents: 0,
|
|
||||||
interior: X3(
|
|
||||||
Parachain(KUSAMA_TINKERNET_PARA_ID),
|
|
||||||
PalletInstance(KUSAMA_TINKERNET_MULTISIG_PALLET),
|
|
||||||
GeneralIndex(0),
|
|
||||||
),
|
|
||||||
};
|
|
||||||
|
|
||||||
assert_eq!(
|
|
||||||
[
|
|
||||||
97, 160, 244, 60, 133, 145, 170, 26, 202, 108, 203, 156, 114, 116, 175, 30, 156,
|
|
||||||
195, 43, 101, 243, 51, 193, 162, 152, 188, 30, 165, 244, 81, 70, 90
|
|
||||||
],
|
|
||||||
TinkernetMultisigAsAccountId::<[u8; 32]>::convert_location(&mul).unwrap()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,12 +16,8 @@
|
|||||||
|
|
||||||
//! Various implementations for `ConvertOrigin`.
|
//! Various implementations for `ConvertOrigin`.
|
||||||
|
|
||||||
use crate::location_conversion::{
|
|
||||||
derive_tinkernet_multisig, KUSAMA_TINKERNET_MULTISIG_PALLET, KUSAMA_TINKERNET_PARA_ID,
|
|
||||||
};
|
|
||||||
use frame_support::traits::{EnsureOrigin, Get, GetBacking, OriginTrait};
|
use frame_support::traits::{EnsureOrigin, Get, GetBacking, OriginTrait};
|
||||||
use frame_system::RawOrigin as SystemRawOrigin;
|
use frame_system::RawOrigin as SystemRawOrigin;
|
||||||
use parity_scale_codec::Decode;
|
|
||||||
use polkadot_parachain::primitives::IsSystem;
|
use polkadot_parachain::primitives::IsSystem;
|
||||||
use sp_runtime::traits::TryConvert;
|
use sp_runtime::traits::TryConvert;
|
||||||
use sp_std::marker::PhantomData;
|
use sp_std::marker::PhantomData;
|
||||||
@@ -245,37 +241,6 @@ where
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Convert a Tinkernet Multisig `MultiLocation` value into a `Signed` origin.
|
|
||||||
pub struct TinkernetMultisigAsNative<RuntimeOrigin>(PhantomData<RuntimeOrigin>);
|
|
||||||
impl<RuntimeOrigin: OriginTrait> ConvertOrigin<RuntimeOrigin>
|
|
||||||
for TinkernetMultisigAsNative<RuntimeOrigin>
|
|
||||||
where
|
|
||||||
RuntimeOrigin::AccountId: Decode,
|
|
||||||
{
|
|
||||||
fn convert_origin(
|
|
||||||
origin: impl Into<MultiLocation>,
|
|
||||||
kind: OriginKind,
|
|
||||||
) -> Result<RuntimeOrigin, MultiLocation> {
|
|
||||||
let origin = origin.into();
|
|
||||||
match (kind, origin) {
|
|
||||||
(
|
|
||||||
OriginKind::Native,
|
|
||||||
MultiLocation {
|
|
||||||
parents: _,
|
|
||||||
interior:
|
|
||||||
X3(
|
|
||||||
Junction::Parachain(KUSAMA_TINKERNET_PARA_ID),
|
|
||||||
Junction::PalletInstance(KUSAMA_TINKERNET_MULTISIG_PALLET),
|
|
||||||
// Index from which the multisig account is derived.
|
|
||||||
Junction::GeneralIndex(id),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
) => Ok(RuntimeOrigin::signed(derive_tinkernet_multisig(id).map_err(|_| origin)?)),
|
|
||||||
(_, origin) => Err(origin),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// `EnsureOrigin` barrier to convert from dispatch origin to XCM origin, if one exists.
|
/// `EnsureOrigin` barrier to convert from dispatch origin to XCM origin, if one exists.
|
||||||
pub struct EnsureXcmOrigin<RuntimeOrigin, Conversion>(PhantomData<(RuntimeOrigin, Conversion)>);
|
pub struct EnsureXcmOrigin<RuntimeOrigin, Conversion>(PhantomData<(RuntimeOrigin, Conversion)>);
|
||||||
impl<RuntimeOrigin: OriginTrait + Clone, Conversion: TryConvert<RuntimeOrigin, MultiLocation>>
|
impl<RuntimeOrigin: OriginTrait + Clone, Conversion: TryConvert<RuntimeOrigin, MultiLocation>>
|
||||||
|
|||||||
Reference in New Issue
Block a user