mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 14:01:02 +00:00
Statemine state migration runtime changes. (#1743)
* init, using polkadot master * version update * weights copy pasted from substrate * feature gate migration * changes from reviews * Change controller addresses. * fix * rename feature to state-trie-version-1
This commit is contained in:
@@ -82,6 +82,20 @@ impl_opaque_keys! {
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(feature = "state-trie-version-1")]
|
||||
#[sp_version::runtime_version]
|
||||
pub const VERSION: RuntimeVersion = RuntimeVersion {
|
||||
spec_name: create_runtime_str!("statemine"),
|
||||
impl_name: create_runtime_str!("statemine"),
|
||||
authoring_version: 1,
|
||||
spec_version: 9300,
|
||||
impl_version: 0,
|
||||
apis: RUNTIME_API_VERSIONS,
|
||||
transaction_version: 8,
|
||||
state_version: 1,
|
||||
};
|
||||
|
||||
#[cfg(not(feature = "state-trie-version-1"))]
|
||||
#[sp_version::runtime_version]
|
||||
pub const VERSION: RuntimeVersion = RuntimeVersion {
|
||||
spec_name: create_runtime_str!("statemine"),
|
||||
@@ -596,6 +610,9 @@ construct_runtime!(
|
||||
// The main stage.
|
||||
Assets: pallet_assets::{Pallet, Call, Storage, Event<T>} = 50,
|
||||
Uniques: pallet_uniques::{Pallet, Call, Storage, Event<T>} = 51,
|
||||
|
||||
#[cfg(feature = "state-trie-version-1")]
|
||||
StateTrieMigration: pallet_state_trie_migration = 70,
|
||||
}
|
||||
);
|
||||
|
||||
@@ -979,3 +996,49 @@ cumulus_pallet_parachain_system::register_validate_block! {
|
||||
BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::<Runtime, Executive>,
|
||||
CheckInherents = CheckInherents,
|
||||
}
|
||||
|
||||
#[cfg(feature = "state-trie-version-1")]
|
||||
parameter_types! {
|
||||
// The deposit configuration for the singed migration. Specially if you want to allow any signed account to do the migration (see `SignedFilter`, these deposits should be high)
|
||||
pub const MigrationSignedDepositPerItem: Balance = 1 * CENTS;
|
||||
pub const MigrationSignedDepositBase: Balance = 2_000 * CENTS;
|
||||
pub const MigrationMaxKeyLen: u32 = 512;
|
||||
}
|
||||
|
||||
#[cfg(feature = "state-trie-version-1")]
|
||||
impl pallet_state_trie_migration::Config for Runtime {
|
||||
type RuntimeEvent = RuntimeEvent;
|
||||
type Currency = Balances;
|
||||
type SignedDepositPerItem = MigrationSignedDepositPerItem;
|
||||
type SignedDepositBase = MigrationSignedDepositBase;
|
||||
// An origin that can control the whole pallet: should be Root, or a part of your council.
|
||||
type ControlOrigin = frame_system::EnsureSignedBy<RootMigController, AccountId>;
|
||||
// specific account for the migration, can trigger the signed migrations.
|
||||
type SignedFilter = frame_system::EnsureSignedBy<MigController, AccountId>;
|
||||
|
||||
// Replace this with weight based on your runtime.
|
||||
type WeightInfo = pallet_state_trie_migration::weights::SubstrateWeight<Runtime>;
|
||||
|
||||
type MaxKeyLen = MigrationMaxKeyLen;
|
||||
}
|
||||
|
||||
#[cfg(feature = "state-trie-version-1")]
|
||||
frame_support::ord_parameter_types! {
|
||||
pub const MigController: AccountId = AccountId::from(hex_literal::hex!("8458ed39dc4b6f6c7255f7bc42be50c2967db126357c999d44e12ca7ac80dc52"));
|
||||
pub const RootMigController: AccountId = AccountId::from(hex_literal::hex!("8458ed39dc4b6f6c7255f7bc42be50c2967db126357c999d44e12ca7ac80dc52"));
|
||||
}
|
||||
|
||||
#[cfg(feature = "state-trie-version-1")]
|
||||
#[test]
|
||||
fn ensure_key_ss58() {
|
||||
use frame_support::traits::SortedMembers;
|
||||
use sp_core::crypto::Ss58Codec;
|
||||
let acc =
|
||||
AccountId::from_ss58check("5F4EbSkZz18X36xhbsjvDNs6NuZ82HyYtq5UiJ1h9SBHJXZD").unwrap();
|
||||
//panic!("{:x?}", acc);
|
||||
assert_eq!(acc, MigController::sorted_members()[0]);
|
||||
let acc =
|
||||
AccountId::from_ss58check("5F4EbSkZz18X36xhbsjvDNs6NuZ82HyYtq5UiJ1h9SBHJXZD").unwrap();
|
||||
assert_eq!(acc, RootMigController::sorted_members()[0]);
|
||||
//panic!("{:x?}", acc);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user