mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-21 04:01:01 +00:00
Remove stale migrations (#4107)
* remove stale migrations * fix warnings * Update runtime/westend/src/lib.rs Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com> Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
@@ -51,7 +51,6 @@ use frame_support::{
|
|||||||
construct_runtime, parameter_types,
|
construct_runtime, parameter_types,
|
||||||
traits::{
|
traits::{
|
||||||
Contains, Everything, InstanceFilter, KeyOwnerProofSystem, LockIdentifier, Nothing,
|
Contains, Everything, InstanceFilter, KeyOwnerProofSystem, LockIdentifier, Nothing,
|
||||||
OnRuntimeUpgrade,
|
|
||||||
},
|
},
|
||||||
weights::Weight,
|
weights::Weight,
|
||||||
PalletId, RuntimeDebug,
|
PalletId, RuntimeDebug,
|
||||||
@@ -1557,186 +1556,11 @@ pub type Executive = frame_executive::Executive<
|
|||||||
frame_system::ChainContext<Runtime>,
|
frame_system::ChainContext<Runtime>,
|
||||||
Runtime,
|
Runtime,
|
||||||
AllPallets,
|
AllPallets,
|
||||||
(
|
(),
|
||||||
CouncilStoragePrefixMigration,
|
|
||||||
TechnicalCommitteeStoragePrefixMigration,
|
|
||||||
TechnicalMembershipStoragePrefixMigration,
|
|
||||||
MigrateTipsPalletPrefix,
|
|
||||||
BountiesPrefixMigration,
|
|
||||||
StakingBagsListMigrationV8,
|
|
||||||
),
|
|
||||||
>;
|
>;
|
||||||
/// The payload being signed in the transactions.
|
/// The payload being signed in the transactions.
|
||||||
pub type SignedPayload = generic::SignedPayload<Call, SignedExtra>;
|
pub type SignedPayload = generic::SignedPayload<Call, SignedExtra>;
|
||||||
|
|
||||||
const BOUNTIES_OLD_PREFIX: &str = "Treasury";
|
|
||||||
|
|
||||||
/// Migrate from 'Treasury' to the new prefix 'Bounties'
|
|
||||||
pub struct BountiesPrefixMigration;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for BountiesPrefixMigration {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<Bounties>()
|
|
||||||
.expect("Bounties is part of runtime, so it has a name; qed");
|
|
||||||
pallet_bounties::migrations::v4::migrate::<Runtime, Bounties, _>(BOUNTIES_OLD_PREFIX, name)
|
|
||||||
}
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<Bounties>()
|
|
||||||
.expect("Bounties is part of runtime, so it has a name; qed");
|
|
||||||
pallet_bounties::migrations::v4::pre_migration::<Runtime, Bounties, _>(
|
|
||||||
BOUNTIES_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<Bounties>()
|
|
||||||
.expect("Bounties is part of runtime, so it has a name; qed");
|
|
||||||
pallet_bounties::migrations::v4::post_migration::<Runtime, Bounties, _>(
|
|
||||||
BOUNTIES_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const COUNCIL_OLD_PREFIX: &str = "Instance1Collective";
|
|
||||||
/// Migrate from `Instance1Collective` to the new pallet prefix `Council`
|
|
||||||
pub struct CouncilStoragePrefixMigration;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for CouncilStoragePrefixMigration {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
pallet_collective::migrations::v4::migrate::<Runtime, Council, _>(COUNCIL_OLD_PREFIX)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_collective::migrations::v4::pre_migrate::<Council, _>(COUNCIL_OLD_PREFIX);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_collective::migrations::v4::post_migrate::<Council, _>(COUNCIL_OLD_PREFIX);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const TECHNICAL_COMMITTEE_OLD_PREFIX: &str = "Instance2Collective";
|
|
||||||
/// Migrate from `Instance2Collective` to the new pallet prefix `TechnicalCommittee`
|
|
||||||
pub struct TechnicalCommitteeStoragePrefixMigration;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for TechnicalCommitteeStoragePrefixMigration {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
pallet_collective::migrations::v4::migrate::<Runtime, TechnicalCommittee, _>(
|
|
||||||
TECHNICAL_COMMITTEE_OLD_PREFIX,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_collective::migrations::v4::pre_migrate::<TechnicalCommittee, _>(
|
|
||||||
TECHNICAL_COMMITTEE_OLD_PREFIX,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_collective::migrations::v4::post_migrate::<TechnicalCommittee, _>(
|
|
||||||
TECHNICAL_COMMITTEE_OLD_PREFIX,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const TECHNICAL_MEMBERSHIP_OLD_PREFIX: &str = "Instance1Membership";
|
|
||||||
/// Migrate from `Instance1Membership` to the new pallet prefix `TechnicalMembership`
|
|
||||||
pub struct TechnicalMembershipStoragePrefixMigration;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for TechnicalMembershipStoragePrefixMigration {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<TechnicalMembership>()
|
|
||||||
.expect("TechnicalMembership is part of runtime, so it has a name; qed");
|
|
||||||
pallet_membership::migrations::v4::migrate::<Runtime, TechnicalMembership, _>(
|
|
||||||
TECHNICAL_MEMBERSHIP_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<TechnicalMembership>()
|
|
||||||
.expect("TechnicalMembership is part of runtime, so it has a name; qed");
|
|
||||||
pallet_membership::migrations::v4::pre_migrate::<TechnicalMembership, _>(
|
|
||||||
TECHNICAL_MEMBERSHIP_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<TechnicalMembership>()
|
|
||||||
.expect("TechnicalMembership is part of runtime, so it has a name; qed");
|
|
||||||
pallet_membership::migrations::v4::post_migrate::<TechnicalMembership, _>(
|
|
||||||
TECHNICAL_MEMBERSHIP_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const TIPS_OLD_PREFIX: &str = "Treasury";
|
|
||||||
/// Migrate pallet-tips from `Treasury` to the new pallet prefix `Tips`
|
|
||||||
pub struct MigrateTipsPalletPrefix;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for MigrateTipsPalletPrefix {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
pallet_tips::migrations::v4::migrate::<Runtime, Tips, _>(TIPS_OLD_PREFIX)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_tips::migrations::v4::pre_migrate::<Runtime, Tips, _>(TIPS_OLD_PREFIX);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_tips::migrations::v4::post_migrate::<Runtime, Tips, _>(TIPS_OLD_PREFIX);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Migration to generate pallet staking's `SortedListProvider` from pre-existing nominators.
|
|
||||||
pub struct StakingBagsListMigrationV8;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for StakingBagsListMigrationV8 {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
pallet_staking::migrations::v8::migrate::<Runtime>()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_staking::migrations::v8::pre_migrate::<Runtime>()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_staking::migrations::v8::post_migrate::<Runtime>()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(not(feature = "disable-runtime-api"))]
|
#[cfg(not(feature = "disable-runtime-api"))]
|
||||||
sp_api::impl_runtime_apis! {
|
sp_api::impl_runtime_apis! {
|
||||||
impl sp_api::Core<Block> for Runtime {
|
impl sp_api::Core<Block> for Runtime {
|
||||||
|
|||||||
@@ -1352,146 +1352,11 @@ pub type Executive = frame_executive::Executive<
|
|||||||
frame_system::ChainContext<Runtime>,
|
frame_system::ChainContext<Runtime>,
|
||||||
Runtime,
|
Runtime,
|
||||||
AllPallets,
|
AllPallets,
|
||||||
(
|
(),
|
||||||
SetInitialHostConfiguration,
|
|
||||||
BountiesPrefixMigration,
|
|
||||||
CouncilStoragePrefixMigration,
|
|
||||||
TechnicalCommitteeStoragePrefixMigration,
|
|
||||||
TechnicalMembershipStoragePrefixMigration,
|
|
||||||
MigrateTipsPalletPrefix,
|
|
||||||
),
|
|
||||||
>;
|
>;
|
||||||
/// The payload being signed in transactions.
|
/// The payload being signed in transactions.
|
||||||
pub type SignedPayload = generic::SignedPayload<Call, SignedExtra>;
|
pub type SignedPayload = generic::SignedPayload<Call, SignedExtra>;
|
||||||
|
|
||||||
const BOUNTIES_OLD_PREFIX: &str = "Treasury";
|
|
||||||
|
|
||||||
/// Migrate from 'Treasury' to the new prefix 'Bounties'
|
|
||||||
pub struct BountiesPrefixMigration;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for BountiesPrefixMigration {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<Bounties>()
|
|
||||||
.expect("Bounties is part of runtime, so it has a name; qed");
|
|
||||||
pallet_bounties::migrations::v4::migrate::<Runtime, Bounties, _>(BOUNTIES_OLD_PREFIX, name)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<Bounties>()
|
|
||||||
.expect("Bounties is part of runtime, so it has a name; qed");
|
|
||||||
pallet_bounties::migrations::v4::pre_migration::<Runtime, Bounties, _>(
|
|
||||||
BOUNTIES_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<Bounties>()
|
|
||||||
.expect("Bounties is part of runtime, so it has a name; qed");
|
|
||||||
pallet_bounties::migrations::v4::post_migration::<Runtime, Bounties, _>(
|
|
||||||
BOUNTIES_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const COUNCIL_OLD_PREFIX: &str = "Instance1Collective";
|
|
||||||
/// Migrate from `Instance1Collective` to the new pallet prefix `Council`
|
|
||||||
pub struct CouncilStoragePrefixMigration;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for CouncilStoragePrefixMigration {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
pallet_collective::migrations::v4::migrate::<Runtime, Council, _>(COUNCIL_OLD_PREFIX)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_collective::migrations::v4::pre_migrate::<Council, _>(COUNCIL_OLD_PREFIX);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_collective::migrations::v4::post_migrate::<Council, _>(COUNCIL_OLD_PREFIX);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const TECHNICAL_COMMITTEE_OLD_PREFIX: &str = "Instance2Collective";
|
|
||||||
/// Migrate from `Instance2Collective` to the new pallet prefix `TechnicalCommittee`
|
|
||||||
pub struct TechnicalCommitteeStoragePrefixMigration;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for TechnicalCommitteeStoragePrefixMigration {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
pallet_collective::migrations::v4::migrate::<Runtime, TechnicalCommittee, _>(
|
|
||||||
TECHNICAL_COMMITTEE_OLD_PREFIX,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_collective::migrations::v4::pre_migrate::<TechnicalCommittee, _>(
|
|
||||||
TECHNICAL_COMMITTEE_OLD_PREFIX,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_collective::migrations::v4::post_migrate::<TechnicalCommittee, _>(
|
|
||||||
TECHNICAL_COMMITTEE_OLD_PREFIX,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const TECHNICAL_MEMBERSHIP_OLD_PREFIX: &str = "Instance1Membership";
|
|
||||||
/// Migrate from `Instance1Membership` to the new pallet prefix `TechnicalMembership`
|
|
||||||
pub struct TechnicalMembershipStoragePrefixMigration;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for TechnicalMembershipStoragePrefixMigration {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<TechnicalMembership>()
|
|
||||||
.expect("TechnialMembership is part of runtime, so it has a name; qed");
|
|
||||||
pallet_membership::migrations::v4::migrate::<Runtime, TechnicalMembership, _>(
|
|
||||||
TECHNICAL_MEMBERSHIP_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<TechnicalMembership>()
|
|
||||||
.expect("TechnicalMembership is part of runtime, so it has a name; qed");
|
|
||||||
pallet_membership::migrations::v4::pre_migrate::<TechnicalMembership, _>(
|
|
||||||
TECHNICAL_MEMBERSHIP_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
use frame_support::traits::PalletInfo;
|
|
||||||
let name = <Runtime as frame_system::Config>::PalletInfo::name::<TechnicalMembership>()
|
|
||||||
.expect("TechnicalMembership is part of runtime, so it has a name; qed");
|
|
||||||
pallet_membership::migrations::v4::post_migrate::<TechnicalMembership, _>(
|
|
||||||
TECHNICAL_MEMBERSHIP_OLD_PREFIX,
|
|
||||||
name,
|
|
||||||
);
|
|
||||||
Ok(())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Set the initial host configuration for Polkadot.
|
/// Set the initial host configuration for Polkadot.
|
||||||
pub struct SetInitialHostConfiguration;
|
pub struct SetInitialHostConfiguration;
|
||||||
impl OnRuntimeUpgrade for SetInitialHostConfiguration {
|
impl OnRuntimeUpgrade for SetInitialHostConfiguration {
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256.
|
// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256.
|
||||||
#![recursion_limit = "256"]
|
#![recursion_limit = "256"]
|
||||||
|
|
||||||
use frame_support::traits::OnRuntimeUpgrade;
|
|
||||||
use pallet_transaction_payment::CurrencyAdapter;
|
use pallet_transaction_payment::CurrencyAdapter;
|
||||||
use parity_scale_codec::{Decode, Encode, MaxEncodedLen};
|
use parity_scale_codec::{Decode, Encode, MaxEncodedLen};
|
||||||
use primitives::v1::{
|
use primitives::v1::{
|
||||||
@@ -1135,30 +1134,11 @@ pub type Executive = frame_executive::Executive<
|
|||||||
frame_system::ChainContext<Runtime>,
|
frame_system::ChainContext<Runtime>,
|
||||||
Runtime,
|
Runtime,
|
||||||
AllPallets,
|
AllPallets,
|
||||||
(StakingBagsListMigrationV8,),
|
(),
|
||||||
>;
|
>;
|
||||||
/// The payload being signed in transactions.
|
/// The payload being signed in transactions.
|
||||||
pub type SignedPayload = generic::SignedPayload<Call, SignedExtra>;
|
pub type SignedPayload = generic::SignedPayload<Call, SignedExtra>;
|
||||||
|
|
||||||
// Migration to generate pallet staking's `SortedListProvider` from pre-existing nominators.
|
|
||||||
pub struct StakingBagsListMigrationV8;
|
|
||||||
|
|
||||||
impl OnRuntimeUpgrade for StakingBagsListMigrationV8 {
|
|
||||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
|
||||||
pallet_staking::migrations::v8::migrate::<Runtime>()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn pre_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_staking::migrations::v8::pre_migrate::<Runtime>()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(feature = "try-runtime")]
|
|
||||||
fn post_upgrade() -> Result<(), &'static str> {
|
|
||||||
pallet_staking::migrations::v8::post_migrate::<Runtime>()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(not(feature = "disable-runtime-api"))]
|
#[cfg(not(feature = "disable-runtime-api"))]
|
||||||
sp_api::impl_runtime_apis! {
|
sp_api::impl_runtime_apis! {
|
||||||
impl sp_api::Core<Block> for Runtime {
|
impl sp_api::Core<Block> for Runtime {
|
||||||
|
|||||||
Reference in New Issue
Block a user