Remove (rococo/westend)-runtime deps from testnet AssetHubs (#1979)

## Problem

This PR addresses the issue with testnet AssetHub builds, which was
discovered during the execution of `bot bench`.

https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/4038738
```
     Compiling asset-hub-rococo-runtime-wasm v1.0.0 (/builds/parity/mirrors/polkadot-sdk/target/production/wbuild/asset-hub-rococo-runtime)
  warning: Linking globals named 'Core_version': symbol multiply defined!
  error: failed to load bitcode of module "rococo_runtime-8799ee884447805a.rococo_runtime.0bc572b8-cgu.0.rcgu.o": 
  warning: `asset-hub-rococo-runtime-wasm` (lib) generated 1 warning
  error: could not compile `asset-hub-rococo-runtime-wasm` (lib) due to previous error; 1 warning emitted
```

https://gitlab.parity.io/parity/mirrors/polkadot-sdk/-/jobs/4038739
```
Compiling asset-hub-westend-runtime-wasm v1.0.0 (/builds/parity/mirrors/polkadot-sdk/target/production/wbuild/asset-hub-westend-runtime)
  warning: Linking globals named 'Core_version': symbol multiply defined!
  error: failed to load bitcode of module "westend_runtime-86d7844430f97d5c.westend_runtime.b7678d03-cgu.0.rcgu.o": 
  warning: `asset-hub-westend-runtime-wasm` (lib) generated 1 warning
  error: could not compile `asset-hub-westend-runtime-wasm` (lib) due to previous error; 1 warning emitted
```

## Solution

- Removed dependencies on `rococo-runtime` and `westend-runtime`
introduced by [this
PR](https://github.com/paritytech/polkadot-sdk/pull/1234/files#diff-a86375df98e04ca3cce1ea35c40257a222e2d5087f5f528ff33307678b78dc2dR534-R550).
- Replaced `<rococo_runtime::Treasury as PalletInfoAccess>::index()`
with `rococo_runtime_constants::TREASURY_PALLET_ID`.
- Added `check_treasury_pallet_id` to the relay runtimes to ensure that
the constant is aligned with the pallet id.
- Added "Rococo Treasury" to the waived locations (that will not be
charged fees in the executor) for `BridgeHubRococo` (to be aligned with
AssetHubs).

## References

[Full element discussion
here](https://matrix.to/#/!JUeaZUiYbdrvzvtwSL:parity.io/$2PnjYMsWRjR7M3oOfGuRI0XkjdoqJLtRcAPVcDLuLVg?via=parity.io&via=web3.foundation).

---------

Co-authored-by: command-bot <>
This commit is contained in:
Branislav Kontur
2023-10-23 12:22:42 +02:00
committed by GitHub
parent f678b61c39
commit c284a9312a
12 changed files with 122 additions and 100 deletions
Generated
-2
View File
@@ -874,7 +874,6 @@ dependencies = [
"polkadot-parachain-primitives", "polkadot-parachain-primitives",
"polkadot-runtime-common", "polkadot-runtime-common",
"primitive-types", "primitive-types",
"rococo-runtime",
"rococo-runtime-constants", "rococo-runtime-constants",
"scale-info", "scale-info",
"smallvec", "smallvec",
@@ -1000,7 +999,6 @@ dependencies = [
"staging-xcm-builder", "staging-xcm-builder",
"staging-xcm-executor", "staging-xcm-executor",
"substrate-wasm-builder", "substrate-wasm-builder",
"westend-runtime",
"westend-runtime-constants", "westend-runtime-constants",
] ]
@@ -55,7 +55,6 @@ sp-weights = { path = "../../../../../substrate/primitives/weights", default-fea
primitive-types = { version = "0.12.1", default-features = false, features = ["codec", "scale-info", "num-traits"] } primitive-types = { version = "0.12.1", default-features = false, features = ["codec", "scale-info", "num-traits"] }
# Polkadot # Polkadot
rococo-runtime = { path = "../../../../../polkadot/runtime/rococo", default-features = false }
rococo-runtime-constants = { path = "../../../../../polkadot/runtime/rococo/constants", default-features = false} rococo-runtime-constants = { path = "../../../../../polkadot/runtime/rococo/constants", default-features = false}
pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false} pallet-xcm = { path = "../../../../../polkadot/xcm/pallet-xcm", default-features = false}
pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true } pallet-xcm-benchmarks = { path = "../../../../../polkadot/xcm/pallet-xcm-benchmarks", default-features = false, optional = true }
@@ -131,7 +130,6 @@ runtime-benchmarks = [
"parachains-common/runtime-benchmarks", "parachains-common/runtime-benchmarks",
"polkadot-parachain-primitives/runtime-benchmarks", "polkadot-parachain-primitives/runtime-benchmarks",
"polkadot-runtime-common/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks",
"rococo-runtime/runtime-benchmarks",
"sp-runtime/runtime-benchmarks", "sp-runtime/runtime-benchmarks",
"xcm-builder/runtime-benchmarks", "xcm-builder/runtime-benchmarks",
"xcm-executor/runtime-benchmarks", "xcm-executor/runtime-benchmarks",
@@ -167,7 +165,6 @@ try-runtime = [
"pallet-xcm/try-runtime", "pallet-xcm/try-runtime",
"parachain-info/try-runtime", "parachain-info/try-runtime",
"polkadot-runtime-common/try-runtime", "polkadot-runtime-common/try-runtime",
"rococo-runtime/try-runtime",
"sp-runtime/try-runtime", "sp-runtime/try-runtime",
] ]
std = [ std = [
@@ -221,7 +218,6 @@ std = [
"polkadot-parachain-primitives/std", "polkadot-parachain-primitives/std",
"polkadot-runtime-common/std", "polkadot-runtime-common/std",
"rococo-runtime-constants/std", "rococo-runtime-constants/std",
"rococo-runtime/std",
"scale-info/std", "scale-info/std",
"sp-api/std", "sp-api/std",
"sp-block-builder/std", "sp-block-builder/std",
@@ -40,7 +40,6 @@ use parachains_common::{
}; };
use polkadot_parachain_primitives::primitives::Sibling; use polkadot_parachain_primitives::primitives::Sibling;
use polkadot_runtime_common::xcm_sender::ExponentialPrice; use polkadot_runtime_common::xcm_sender::ExponentialPrice;
use rococo_runtime::Treasury as RococoTreasury;
use rococo_runtime_constants::system_parachain::SystemParachains; use rococo_runtime_constants::system_parachain::SystemParachains;
use sp_runtime::traits::{AccountIdConversion, ConvertInto}; use sp_runtime::traits::{AccountIdConversion, ConvertInto};
use xcm::latest::prelude::*; use xcm::latest::prelude::*;
@@ -532,7 +531,7 @@ pub type ForeignAssetFeeAsExistentialDepositMultiplierFeeCharger =
>; >;
parameter_types! { parameter_types! {
pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(<RococoTreasury as PalletInfoAccess>::index() as u8)).into(); pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(rococo_runtime_constants::TREASURY_PALLET_ID)).into();
} }
pub struct RelayTreasury; pub struct RelayTreasury;
@@ -60,7 +60,6 @@ polkadot-core-primitives = { path = "../../../../../polkadot/core-primitives", d
polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false} polkadot-parachain-primitives = { path = "../../../../../polkadot/parachain", default-features = false}
polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false} polkadot-runtime-common = { path = "../../../../../polkadot/runtime/common", default-features = false}
westend-runtime-constants = { path = "../../../../../polkadot/runtime/westend/constants", default-features = false} westend-runtime-constants = { path = "../../../../../polkadot/runtime/westend/constants", default-features = false}
westend-runtime = { path = "../../../../../polkadot/runtime/westend", default-features = false }
xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false} xcm = { package = "staging-xcm", path = "../../../../../polkadot/xcm", default-features = false}
xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false} xcm-builder = { package = "staging-xcm-builder", path = "../../../../../polkadot/xcm/xcm-builder", default-features = false}
xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false} xcm-executor = { package = "staging-xcm-executor", path = "../../../../../polkadot/xcm/xcm-executor", default-features = false}
@@ -117,7 +116,6 @@ runtime-benchmarks = [
"polkadot-parachain-primitives/runtime-benchmarks", "polkadot-parachain-primitives/runtime-benchmarks",
"polkadot-runtime-common/runtime-benchmarks", "polkadot-runtime-common/runtime-benchmarks",
"sp-runtime/runtime-benchmarks", "sp-runtime/runtime-benchmarks",
"westend-runtime/runtime-benchmarks",
"xcm-builder/runtime-benchmarks", "xcm-builder/runtime-benchmarks",
"xcm-executor/runtime-benchmarks", "xcm-executor/runtime-benchmarks",
] ]
@@ -151,7 +149,6 @@ try-runtime = [
"parachain-info/try-runtime", "parachain-info/try-runtime",
"polkadot-runtime-common/try-runtime", "polkadot-runtime-common/try-runtime",
"sp-runtime/try-runtime", "sp-runtime/try-runtime",
"westend-runtime/try-runtime",
] ]
std = [ std = [
"assets-common/std", "assets-common/std",
@@ -213,7 +210,6 @@ std = [
"sp-version/std", "sp-version/std",
"substrate-wasm-builder", "substrate-wasm-builder",
"westend-runtime-constants/std", "westend-runtime-constants/std",
"westend-runtime/std",
"xcm-builder/std", "xcm-builder/std",
"xcm-executor/std", "xcm-executor/std",
"xcm/std", "xcm/std",
@@ -41,7 +41,6 @@ use parachains_common::{
use polkadot_parachain_primitives::primitives::Sibling; use polkadot_parachain_primitives::primitives::Sibling;
use polkadot_runtime_common::xcm_sender::ExponentialPrice; use polkadot_runtime_common::xcm_sender::ExponentialPrice;
use sp_runtime::traits::{AccountIdConversion, ConvertInto}; use sp_runtime::traits::{AccountIdConversion, ConvertInto};
use westend_runtime::Treasury as WestendTreasury;
use westend_runtime_constants::system_parachain; use westend_runtime_constants::system_parachain;
use xcm::latest::prelude::*; use xcm::latest::prelude::*;
use xcm_builder::{ use xcm_builder::{
@@ -506,7 +505,7 @@ match_types! {
} }
parameter_types! { parameter_types! {
pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(<WestendTreasury as PalletInfoAccess>::index() as u8)).into(); pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(westend_runtime_constants::TREASURY_PALLET_ID)).into();
} }
pub struct RelayTreasury; pub struct RelayTreasury;
@@ -17,27 +17,25 @@
//! Autogenerated weights for `pallet_bridge_relayers` //! Autogenerated weights for `pallet_bridge_relayers`
//! //!
//! 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-10-23, 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-t2sp1qqs-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_bridge_relayers
// --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_bridge_relayers
// --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)]
@@ -58,8 +56,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `207` // Measured: `207`
// Estimated: `3593` // Estimated: `3593`
// Minimum execution time: 54_291_000 picoseconds. // Minimum execution time: 46_239_000 picoseconds.
Weight::from_parts(55_145_000, 0) Weight::from_parts(47_442_000, 0)
.saturating_add(Weight::from_parts(0, 3593)) .saturating_add(Weight::from_parts(0, 3593))
.saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads(2))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -74,8 +72,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `61` // Measured: `61`
// Estimated: `4714` // Estimated: `4714`
// Minimum execution time: 28_143_000 picoseconds. // Minimum execution time: 23_977_000 picoseconds.
Weight::from_parts(28_920_000, 0) Weight::from_parts(24_837_000, 0)
.saturating_add(Weight::from_parts(0, 4714)) .saturating_add(Weight::from_parts(0, 4714))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -88,8 +86,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `160` // Measured: `160`
// Estimated: `4714` // Estimated: `4714`
// Minimum execution time: 30_329_000 picoseconds. // Minimum execution time: 25_798_000 picoseconds.
Weight::from_parts(30_646_000, 0) Weight::from_parts(26_495_000, 0)
.saturating_add(Weight::from_parts(0, 4714)) .saturating_add(Weight::from_parts(0, 4714))
.saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads(2))
.saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes(2))
@@ -104,8 +102,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `263` // Measured: `263`
// Estimated: `4714` // Estimated: `4714`
// Minimum execution time: 29_704_000 picoseconds. // Minimum execution time: 27_382_000 picoseconds.
Weight::from_parts(30_269_000, 0) Weight::from_parts(27_936_000, 0)
.saturating_add(Weight::from_parts(0, 4714)) .saturating_add(Weight::from_parts(0, 4714))
.saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads(3))
.saturating_add(T::DbWeight::get().writes(3)) .saturating_add(T::DbWeight::get().writes(3))
@@ -116,8 +114,8 @@ impl<T: frame_system::Config> pallet_bridge_relayers::WeightInfo for WeightInfo<
// Proof Size summary in bytes: // Proof Size summary in bytes:
// Measured: `6` // Measured: `6`
// Estimated: `3538` // Estimated: `3538`
// Minimum execution time: 2_793_000 picoseconds. // Minimum execution time: 2_944_000 picoseconds.
Weight::from_parts(2_999_000, 0) Weight::from_parts(3_093_000, 0)
.saturating_add(Weight::from_parts(0, 3538)) .saturating_add(Weight::from_parts(0, 3538))
.saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads(1))
.saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes(1))
@@ -231,6 +231,23 @@ pub type Barrier = TrailingSetTopicAsId<
>, >,
>; >;
parameter_types! {
pub RelayTreasuryLocation: MultiLocation = (Parent, PalletInstance(rococo_runtime_constants::TREASURY_PALLET_ID)).into();
}
pub struct RelayTreasury;
impl Contains<MultiLocation> for RelayTreasury {
fn contains(location: &MultiLocation) -> bool {
let relay_treasury_location = RelayTreasuryLocation::get();
*location == relay_treasury_location
}
}
/// Locations that will not be charged fees in the executor,
/// either execution or delivery.
/// We only waive fees for system functions, which these locations represent.
pub type WaivedLocations = (RelayOrOtherSystemParachains<SystemParachains, Runtime>, RelayTreasury);
/// Cases where a remote origin is accepted as trusted Teleporter for a given asset: /// Cases where a remote origin is accepted as trusted Teleporter for a given asset:
/// - NativeToken with the parent Relay Chain and sibling parachains. /// - NativeToken with the parent Relay Chain and sibling parachains.
pub type TrustedTeleporters = ConcreteAssetFromSystem<TokenLocation>; pub type TrustedTeleporters = ConcreteAssetFromSystem<TokenLocation>;
@@ -262,12 +279,7 @@ impl xcm_executor::Config for XcmConfig {
type SubscriptionService = PolkadotXcm; type SubscriptionService = PolkadotXcm;
type PalletInstancesInfo = AllPalletsWithSystem; type PalletInstancesInfo = AllPalletsWithSystem;
type MaxAssetsIntoHolding = MaxAssetsIntoHolding; type MaxAssetsIntoHolding = MaxAssetsIntoHolding;
type FeeManager = XcmFeesToAccount< type FeeManager = XcmFeesToAccount<Self, WaivedLocations, AccountId, TreasuryAccount>;
Self,
RelayOrOtherSystemParachains<SystemParachains, Runtime>,
AccountId,
TreasuryAccount,
>;
type MessageExporter = BridgeHubRococoOrBridgeHubWococoSwitchExporter; type MessageExporter = BridgeHubRococoOrBridgeHubWococoSwitchExporter;
type UniversalAliases = Nothing; type UniversalAliases = Nothing;
type CallDispatcher = WithOriginFilter<SafeCallFilter>; type CallDispatcher = WithOriginFilter<SafeCallFilter>;
@@ -120,6 +120,9 @@ pub mod system_parachain {
} }
} }
/// Rococo Treasury pallet instance.
pub const TREASURY_PALLET_ID: u8 = 18;
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {
use super::{ use super::{
+3 -56
View File
@@ -119,6 +119,9 @@ use governance::{
TreasurySpender, TreasurySpender,
}; };
#[cfg(test)]
mod tests;
mod validator_manager; mod validator_manager;
impl_runtime_weights!(rococo_runtime_constants); impl_runtime_weights!(rococo_runtime_constants);
@@ -2204,62 +2207,6 @@ sp_api::impl_runtime_apis! {
} }
} }
#[cfg(test)]
mod tests {
use std::collections::HashSet;
use super::*;
use frame_support::traits::WhitelistedStorageKeys;
use sp_core::hexdisplay::HexDisplay;
#[test]
fn check_whitelist() {
let whitelist: HashSet<String> = AllPalletsWithSystem::whitelisted_storage_keys()
.iter()
.map(|e| HexDisplay::from(&e.key).to_string())
.collect();
// Block number
assert!(
whitelist.contains("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac")
);
// Total issuance
assert!(
whitelist.contains("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80")
);
// Execution phase
assert!(
whitelist.contains("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a")
);
// Event count
assert!(
whitelist.contains("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850")
);
// System events
assert!(
whitelist.contains("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7")
);
// XcmPallet VersionDiscoveryQueue
assert!(
whitelist.contains("1405f2411d0af5a7ff397e7c9dc68d194a222ba0333561192e474c59ed8e30e1")
);
// XcmPallet SafeXcmVersion
assert!(
whitelist.contains("1405f2411d0af5a7ff397e7c9dc68d196323ae84c43568be0d1394d5d0d522c4")
);
}
}
#[cfg(test)]
mod encoding_tests {
use super::*;
#[test]
fn nis_hold_reason_encoding_is_correct() {
assert_eq!(RuntimeHoldReason::Nis(pallet_nis::HoldReason::NftReceipt).encode(), [38, 0]);
}
}
#[cfg(all(test, feature = "try-runtime"))] #[cfg(all(test, feature = "try-runtime"))]
mod remote_tests { mod remote_tests {
use super::*; use super::*;
+63
View File
@@ -0,0 +1,63 @@
// 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/>.
//! Tests for the Rococo Runtime Configuration
use crate::*;
use std::collections::HashSet;
use frame_support::traits::WhitelistedStorageKeys;
use sp_core::hexdisplay::HexDisplay;
#[test]
fn check_whitelist() {
let whitelist: HashSet<String> = AllPalletsWithSystem::whitelisted_storage_keys()
.iter()
.map(|e| HexDisplay::from(&e.key).to_string())
.collect();
// Block number
assert!(whitelist.contains("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac"));
// Total issuance
assert!(whitelist.contains("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80"));
// Execution phase
assert!(whitelist.contains("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a"));
// Event count
assert!(whitelist.contains("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850"));
// System events
assert!(whitelist.contains("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7"));
// XcmPallet VersionDiscoveryQueue
assert!(whitelist.contains("1405f2411d0af5a7ff397e7c9dc68d194a222ba0333561192e474c59ed8e30e1"));
// XcmPallet SafeXcmVersion
assert!(whitelist.contains("1405f2411d0af5a7ff397e7c9dc68d196323ae84c43568be0d1394d5d0d522c4"));
}
#[test]
fn check_treasury_pallet_id() {
assert_eq!(
<Treasury as frame_support::traits::PalletInfoAccess>::index() as u8,
rococo_runtime_constants::TREASURY_PALLET_ID
);
}
mod encoding_tests {
use super::*;
#[test]
fn nis_hold_reason_encoding_is_correct() {
assert_eq!(RuntimeHoldReason::Nis(pallet_nis::HoldReason::NftReceipt).encode(), [38, 0]);
}
}
@@ -114,6 +114,9 @@ pub mod system_parachain {
} }
} }
/// Westend Treasury pallet instance.
pub const TREASURY_PALLET_ID: u8 = 37;
/// XCM protocol related constants. /// XCM protocol related constants.
pub mod xcm { pub mod xcm {
/// Pluralistic bodies existing within the consensus. /// Pluralistic bodies existing within the consensus.
+8
View File
@@ -91,3 +91,11 @@ fn check_whitelist() {
// XcmPallet SafeXcmVersion // XcmPallet SafeXcmVersion
assert!(whitelist.contains("1405f2411d0af5a7ff397e7c9dc68d196323ae84c43568be0d1394d5d0d522c4")); assert!(whitelist.contains("1405f2411d0af5a7ff397e7c9dc68d196323ae84c43568be0d1394d5d0d522c4"));
} }
#[test]
fn check_treasury_pallet_id() {
assert_eq!(
<Treasury as frame_support::traits::PalletInfoAccess>::index() as u8,
westend_runtime_constants::TREASURY_PALLET_ID
);
}