--- a/Cargo.lock +++ b/Cargo.lock @@ -6272,6 +6272,7 @@ "parity-scale-codec", "scale-info", "sp-core", + "sp-io", "sp-std", ] --- a/pallets/evm-migration/Cargo.toml +++ b/pallets/evm-migration/Cargo.toml @@ -16,9 +16,10 @@ scale-info = { workspace = true } sp-core = { workspace = true } sp-std = { workspace = true } +sp-io = { workspace = true } [features] default = ["runtime-benchmarks", "std"] runtime-benchmarks = ["frame-benchmarking"] -std = ["frame-benchmarking/std", "frame-support/std", "frame-system/std", "pallet-evm/std", "sp-core/std", "sp-std/std"] +std = ["frame-benchmarking/std", "frame-support/std", "frame-system/std", "pallet-evm/std", "sp-core/std", "sp-std/std", "sp-io/std"] try-runtime = ["frame-support/try-runtime"] --- a/pallets/evm-migration/src/lib.rs +++ b/pallets/evm-migration/src/lib.rs @@ -149,6 +149,17 @@ } Ok(()) } + + /// Remove remark compatibility data leftovers + #[pallet::call_index(5)] + #[pallet::weight(::DbWeight::get().reads_writes(10, 10))] + pub fn remove_rmrk_data(origin: OriginFor) -> DispatchResult { + use sp_io::hashing::twox_128; + ensure_root(origin)?; + let _ = sp_io::storage::clear_prefix(&twox_128(b"RmrkEquip"), Some(5)); + let _ = sp_io::storage::clear_prefix(&twox_128(b"RmrkCore"), Some(5)); + Ok(()) + } } /// Implements [`pallet_evm::OnMethodCall`], which reserves accounts with pending migration