mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 11:41:02 +00:00
* cargo update -p sp-io * fix benchmarking * fix bridge benchmarks
This commit is contained in:
+180
-136
@@ -21,87 +21,86 @@
|
||||
#![recursion_limit = "256"]
|
||||
|
||||
use pallet_transaction_payment::CurrencyAdapter;
|
||||
use sp_std::prelude::*;
|
||||
use sp_std::collections::btree_map::BTreeMap;
|
||||
use parity_scale_codec::{Encode, Decode, MaxEncodedLen};
|
||||
use parity_scale_codec::{Decode, Encode, MaxEncodedLen};
|
||||
use primitives::v1::{
|
||||
AccountId, AccountIndex, Balance, BlockNumber, CandidateEvent, CommittedCandidateReceipt,
|
||||
CoreState, GroupRotationInfo, Hash, Id as ParaId, Moment, Nonce, OccupiedCoreAssumption,
|
||||
PersistedValidationData, Signature, ValidationCode, ValidationCodeHash, ValidatorId,
|
||||
ValidatorIndex, InboundDownwardMessage, InboundHrmpMessage, SessionInfo,
|
||||
CoreState, GroupRotationInfo, Hash, Id as ParaId, InboundDownwardMessage, InboundHrmpMessage,
|
||||
Moment, Nonce, OccupiedCoreAssumption, PersistedValidationData, SessionInfo, Signature,
|
||||
ValidationCode, ValidationCodeHash, ValidatorId, ValidatorIndex,
|
||||
};
|
||||
use runtime_common::{
|
||||
paras_sudo_wrapper, paras_registrar, xcm_sender, slots, crowdloan, auctions,
|
||||
SlowAdjustingFeeUpdate, CurrencyToVote,
|
||||
impls::ToAuthor,
|
||||
BlockHashCount, BlockWeights, BlockLength, RocksDbWeight,
|
||||
OffchainSolutionWeightLimit, OffchainSolutionLengthLimit,
|
||||
auctions, crowdloan, impls::ToAuthor, paras_registrar, paras_sudo_wrapper, slots, xcm_sender,
|
||||
BlockHashCount, BlockLength, BlockWeights, CurrencyToVote, OffchainSolutionLengthLimit,
|
||||
OffchainSolutionWeightLimit, RocksDbWeight, SlowAdjustingFeeUpdate,
|
||||
};
|
||||
use sp_std::{collections::btree_map::BTreeMap, prelude::*};
|
||||
|
||||
use runtime_parachains::{
|
||||
configuration as parachains_configuration, dmp as parachains_dmp, hrmp as parachains_hrmp,
|
||||
inclusion as parachains_inclusion, initializer as parachains_initializer,
|
||||
origin as parachains_origin, paras as parachains_paras,
|
||||
paras_inherent as parachains_paras_inherent, reward_points as parachains_reward_points,
|
||||
runtime_api_impl::v1 as parachains_runtime_api_impl, scheduler as parachains_scheduler,
|
||||
session_info as parachains_session_info, shared as parachains_shared, ump as parachains_ump,
|
||||
};
|
||||
|
||||
use runtime_parachains::origin as parachains_origin;
|
||||
use runtime_parachains::configuration as parachains_configuration;
|
||||
use runtime_parachains::shared as parachains_shared;
|
||||
use runtime_parachains::inclusion as parachains_inclusion;
|
||||
use runtime_parachains::paras_inherent as parachains_paras_inherent;
|
||||
use runtime_parachains::initializer as parachains_initializer;
|
||||
use runtime_parachains::session_info as parachains_session_info;
|
||||
use runtime_parachains::paras as parachains_paras;
|
||||
use runtime_parachains::dmp as parachains_dmp;
|
||||
use runtime_parachains::ump as parachains_ump;
|
||||
use runtime_parachains::hrmp as parachains_hrmp;
|
||||
use runtime_parachains::scheduler as parachains_scheduler;
|
||||
use runtime_parachains::reward_points as parachains_reward_points;
|
||||
use runtime_parachains::runtime_api_impl::v1 as parachains_runtime_api_impl;
|
||||
|
||||
use xcm::v0::{MultiLocation::{self, Null, X1}, NetworkId, Xcm, Junction::Parachain};
|
||||
use xcm::v0::MultiAsset::{self, AllConcreteFungible};
|
||||
use xcm_executor::XcmExecutor;
|
||||
use xcm::v0::{
|
||||
Junction::Parachain,
|
||||
MultiAsset::{self, AllConcreteFungible},
|
||||
MultiLocation::{self, Null, X1},
|
||||
NetworkId, Xcm,
|
||||
};
|
||||
use xcm_builder::{
|
||||
AccountId32Aliases, ChildParachainConvertsVia, SovereignSignedViaLocation, CurrencyAdapter as XcmCurrencyAdapter,
|
||||
ChildParachainAsNative, SignedAccountId32AsNative, ChildSystemParachainAsSuperuser, LocationInverter, IsConcrete,
|
||||
FixedWeightBounds, TakeWeightCredit, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom,
|
||||
IsChildSystemParachain, UsingComponents, SignedToAccountId32,
|
||||
AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom,
|
||||
ChildParachainAsNative, ChildParachainConvertsVia, ChildSystemParachainAsSuperuser,
|
||||
CurrencyAdapter as XcmCurrencyAdapter, FixedWeightBounds, IsChildSystemParachain, IsConcrete,
|
||||
LocationInverter, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation,
|
||||
TakeWeightCredit, UsingComponents,
|
||||
};
|
||||
use xcm_executor::XcmExecutor;
|
||||
|
||||
use sp_runtime::{
|
||||
create_runtime_str, generic, impl_opaque_keys,
|
||||
ApplyExtrinsicResult, KeyTypeId, Perbill, curve::PiecewiseLinear,
|
||||
transaction_validity::{TransactionValidity, TransactionSource, TransactionPriority},
|
||||
traits::{
|
||||
BlakeTwo256, Block as BlockT, OpaqueKeys, ConvertInto, AccountIdLookup,
|
||||
Extrinsic as ExtrinsicT, SaturatedConversion, Verify,
|
||||
},
|
||||
use authority_discovery_primitives::AuthorityId as AuthorityDiscoveryId;
|
||||
use beefy_primitives::crypto::AuthorityId as BeefyId;
|
||||
use frame_support::{
|
||||
construct_runtime, parameter_types,
|
||||
traits::{All, Filter, InstanceFilter, KeyOwnerProofSystem, OnRuntimeUpgrade},
|
||||
weights::Weight,
|
||||
PalletId, RuntimeDebug,
|
||||
};
|
||||
use sp_version::RuntimeVersion;
|
||||
use pallet_grandpa::{AuthorityId as GrandpaId, fg_primitives};
|
||||
use frame_system::EnsureRoot;
|
||||
use pallet_grandpa::{fg_primitives, AuthorityId as GrandpaId};
|
||||
use pallet_im_online::sr25519::AuthorityId as ImOnlineId;
|
||||
use pallet_mmr_primitives as mmr;
|
||||
use pallet_session::historical as session_historical;
|
||||
use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo};
|
||||
use sp_core::OpaqueMetadata;
|
||||
use sp_runtime::{
|
||||
create_runtime_str,
|
||||
curve::PiecewiseLinear,
|
||||
generic, impl_opaque_keys,
|
||||
traits::{
|
||||
AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, Extrinsic as ExtrinsicT,
|
||||
OpaqueKeys, SaturatedConversion, Verify,
|
||||
},
|
||||
transaction_validity::{TransactionPriority, TransactionSource, TransactionValidity},
|
||||
ApplyExtrinsicResult, KeyTypeId, Perbill,
|
||||
};
|
||||
use sp_staking::SessionIndex;
|
||||
#[cfg(any(feature = "std", test))]
|
||||
use sp_version::NativeVersion;
|
||||
use sp_core::OpaqueMetadata;
|
||||
use sp_staking::SessionIndex;
|
||||
use frame_support::{
|
||||
parameter_types, construct_runtime, RuntimeDebug, PalletId,
|
||||
traits::{KeyOwnerProofSystem, Filter, InstanceFilter, All, OnRuntimeUpgrade},
|
||||
weights::Weight,
|
||||
};
|
||||
use pallet_im_online::sr25519::AuthorityId as ImOnlineId;
|
||||
use authority_discovery_primitives::AuthorityId as AuthorityDiscoveryId;
|
||||
use pallet_transaction_payment::{FeeDetails, RuntimeDispatchInfo};
|
||||
use pallet_session::historical as session_historical;
|
||||
use frame_system::{EnsureRoot};
|
||||
use beefy_primitives::crypto::AuthorityId as BeefyId;
|
||||
use pallet_mmr_primitives as mmr;
|
||||
use sp_version::RuntimeVersion;
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
pub use pallet_staking::StakerStatus;
|
||||
#[cfg(any(feature = "std", test))]
|
||||
pub use sp_runtime::BuildStorage;
|
||||
pub use pallet_timestamp::Call as TimestampCall;
|
||||
pub use pallet_balances::Call as BalancesCall;
|
||||
pub use pallet_election_provider_multi_phase::Call as EPMCall;
|
||||
#[cfg(feature = "std")]
|
||||
pub use pallet_staking::StakerStatus;
|
||||
pub use pallet_timestamp::Call as TimestampCall;
|
||||
#[cfg(any(feature = "std", test))]
|
||||
pub use sp_runtime::BuildStorage;
|
||||
|
||||
/// Constant values used within the runtime.
|
||||
pub mod constants;
|
||||
use constants::{time::*, currency::*, fee::*};
|
||||
use constants::{currency::*, fee::*, time::*};
|
||||
|
||||
// Weights used in the runtime
|
||||
mod weights;
|
||||
@@ -131,16 +130,13 @@ pub const VERSION: RuntimeVersion = RuntimeVersion {
|
||||
pub const BABE_GENESIS_EPOCH_CONFIG: babe_primitives::BabeEpochConfiguration =
|
||||
babe_primitives::BabeEpochConfiguration {
|
||||
c: PRIMARY_PROBABILITY,
|
||||
allowed_slots: babe_primitives::AllowedSlots::PrimaryAndSecondaryVRFSlots
|
||||
allowed_slots: babe_primitives::AllowedSlots::PrimaryAndSecondaryVRFSlots,
|
||||
};
|
||||
|
||||
/// Native version.
|
||||
#[cfg(any(feature = "std", test))]
|
||||
pub fn native_version() -> NativeVersion {
|
||||
NativeVersion {
|
||||
runtime_version: VERSION,
|
||||
can_author_with: Default::default(),
|
||||
}
|
||||
NativeVersion { runtime_version: VERSION, can_author_with: Default::default() }
|
||||
}
|
||||
|
||||
/// Allow everything.
|
||||
@@ -417,7 +413,8 @@ parameter_types! {
|
||||
}
|
||||
|
||||
impl pallet_staking::Config for Runtime {
|
||||
const MAX_NOMINATIONS: u32 = <NposCompactSolution16 as sp_npos_elections::CompactSolution>::LIMIT as u32;
|
||||
const MAX_NOMINATIONS: u32 =
|
||||
<NposCompactSolution16 as sp_npos_elections::CompactSolution>::LIMIT as u32;
|
||||
type Currency = Balances;
|
||||
type UnixTime = Timestamp;
|
||||
type CurrencyToVote = CurrencyToVote;
|
||||
@@ -437,7 +434,7 @@ impl pallet_staking::Config for Runtime {
|
||||
type ElectionProvider = ElectionProviderMultiPhase;
|
||||
type GenesisElectionProvider =
|
||||
frame_election_provider_support::onchain::OnChainSequentialPhragmen<
|
||||
pallet_election_provider_multi_phase::OnChainConfig<Self>
|
||||
pallet_election_provider_multi_phase::OnChainConfig<Self>,
|
||||
>;
|
||||
type WeightInfo = weights::pallet_staking::WeightInfo<Runtime>;
|
||||
}
|
||||
@@ -491,15 +488,19 @@ impl pallet_grandpa::Config for Runtime {
|
||||
GrandpaId,
|
||||
)>>::IdentificationTuple;
|
||||
|
||||
type HandleEquivocation =
|
||||
pallet_grandpa::EquivocationHandler<Self::KeyOwnerIdentification, Offences, ReportLongevity>;
|
||||
type HandleEquivocation = pallet_grandpa::EquivocationHandler<
|
||||
Self::KeyOwnerIdentification,
|
||||
Offences,
|
||||
ReportLongevity,
|
||||
>;
|
||||
|
||||
type WeightInfo = ();
|
||||
}
|
||||
|
||||
/// Submits a transaction with the node's public and signature type. Adheres to the signed extension
|
||||
/// format of the chain.
|
||||
impl<LocalCall> frame_system::offchain::CreateSignedTransaction<LocalCall> for Runtime where
|
||||
impl<LocalCall> frame_system::offchain::CreateSignedTransaction<LocalCall> for Runtime
|
||||
where
|
||||
Call: From<LocalCall>,
|
||||
{
|
||||
fn create_transaction<C: frame_system::offchain::AppCrypto<Self::Public, Self::Signature>>(
|
||||
@@ -510,10 +511,8 @@ impl<LocalCall> frame_system::offchain::CreateSignedTransaction<LocalCall> for R
|
||||
) -> Option<(Call, <UncheckedExtrinsic as ExtrinsicT>::SignaturePayload)> {
|
||||
use sp_runtime::traits::StaticLookup;
|
||||
// take the biggest period possible.
|
||||
let period = BlockHashCount::get()
|
||||
.checked_next_power_of_two()
|
||||
.map(|c| c / 2)
|
||||
.unwrap_or(2) as u64;
|
||||
let period =
|
||||
BlockHashCount::get().checked_next_power_of_two().map(|c| c / 2).unwrap_or(2) as u64;
|
||||
|
||||
let current_block = System::block_number()
|
||||
.saturated_into::<u64>()
|
||||
@@ -525,17 +524,20 @@ impl<LocalCall> frame_system::offchain::CreateSignedTransaction<LocalCall> for R
|
||||
frame_system::CheckSpecVersion::<Runtime>::new(),
|
||||
frame_system::CheckTxVersion::<Runtime>::new(),
|
||||
frame_system::CheckGenesis::<Runtime>::new(),
|
||||
frame_system::CheckMortality::<Runtime>::from(generic::Era::mortal(period, current_block)),
|
||||
frame_system::CheckMortality::<Runtime>::from(generic::Era::mortal(
|
||||
period,
|
||||
current_block,
|
||||
)),
|
||||
frame_system::CheckNonce::<Runtime>::from(nonce),
|
||||
frame_system::CheckWeight::<Runtime>::new(),
|
||||
pallet_transaction_payment::ChargeTransactionPayment::<Runtime>::from(tip),
|
||||
);
|
||||
let raw_payload = SignedPayload::new(call, extra).map_err(|e| {
|
||||
log::warn!("Unable to create signed payload: {:?}", e);
|
||||
}).ok()?;
|
||||
let signature = raw_payload.using_encoded(|payload| {
|
||||
C::sign(payload, public)
|
||||
})?;
|
||||
let raw_payload = SignedPayload::new(call, extra)
|
||||
.map_err(|e| {
|
||||
log::warn!("Unable to create signed payload: {:?}", e);
|
||||
})
|
||||
.ok()?;
|
||||
let signature = raw_payload.using_encoded(|payload| C::sign(payload, public))?;
|
||||
let (call, extra, _) = raw_payload.deconstruct();
|
||||
let address = <Runtime as frame_system::Config>::Lookup::unlookup(account);
|
||||
Some((call, (address, signature, extra)))
|
||||
@@ -547,7 +549,8 @@ impl frame_system::offchain::SigningTypes for Runtime {
|
||||
type Signature = Signature;
|
||||
}
|
||||
|
||||
impl<C> frame_system::offchain::SendTransactionTypes<C> for Runtime where
|
||||
impl<C> frame_system::offchain::SendTransactionTypes<C> for Runtime
|
||||
where
|
||||
Call: From<C>,
|
||||
{
|
||||
type OverarchingCall = Call;
|
||||
@@ -649,7 +652,9 @@ parameter_types! {
|
||||
}
|
||||
|
||||
/// The type used to represent the kinds of proxying allowed.
|
||||
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, RuntimeDebug, MaxEncodedLen)]
|
||||
#[derive(
|
||||
Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Encode, Decode, RuntimeDebug, MaxEncodedLen,
|
||||
)]
|
||||
pub enum ProxyType {
|
||||
Any,
|
||||
NonTransfer,
|
||||
@@ -658,12 +663,17 @@ pub enum ProxyType {
|
||||
IdentityJudgement,
|
||||
CancelProxy,
|
||||
}
|
||||
impl Default for ProxyType { fn default() -> Self { Self::Any } }
|
||||
impl Default for ProxyType {
|
||||
fn default() -> Self {
|
||||
Self::Any
|
||||
}
|
||||
}
|
||||
impl InstanceFilter<Call> for ProxyType {
|
||||
fn filter(&self, c: &Call) -> bool {
|
||||
match self {
|
||||
ProxyType::Any => true,
|
||||
ProxyType::NonTransfer => matches!(c,
|
||||
ProxyType::NonTransfer => matches!(
|
||||
c,
|
||||
Call::System(..) |
|
||||
Call::Babe(..) |
|
||||
Call::Timestamp(..) |
|
||||
@@ -699,26 +709,22 @@ impl InstanceFilter<Call> for ProxyType {
|
||||
Call::Registrar(paras_registrar::Call::reserve(..)) |
|
||||
Call::Crowdloan(..) |
|
||||
Call::Slots(..) |
|
||||
Call::Auctions(..)
|
||||
// Specifically omitting the entire XCM Pallet
|
||||
),
|
||||
ProxyType::Staking => matches!(c,
|
||||
Call::Staking(..) |
|
||||
Call::Session(..) |
|
||||
Call::Utility(..)
|
||||
Call::Auctions(..) // Specifically omitting the entire XCM Pallet
|
||||
),
|
||||
ProxyType::Staking =>
|
||||
matches!(c, Call::Staking(..) | Call::Session(..) | Call::Utility(..)),
|
||||
ProxyType::SudoBalances => match c {
|
||||
Call::Sudo(pallet_sudo::Call::sudo(ref x)) => matches!(x.as_ref(), &Call::Balances(..)),
|
||||
Call::Sudo(pallet_sudo::Call::sudo(ref x)) =>
|
||||
matches!(x.as_ref(), &Call::Balances(..)),
|
||||
Call::Utility(..) => true,
|
||||
_ => false,
|
||||
},
|
||||
ProxyType::IdentityJudgement => matches!(c,
|
||||
Call::Identity(pallet_identity::Call::provide_judgement(..)) |
|
||||
Call::Utility(..)
|
||||
ProxyType::IdentityJudgement => matches!(
|
||||
c,
|
||||
Call::Identity(pallet_identity::Call::provide_judgement(..)) | Call::Utility(..)
|
||||
),
|
||||
ProxyType::CancelProxy => matches!(c,
|
||||
Call::Proxy(pallet_proxy::Call::reject_announcement(..))
|
||||
)
|
||||
ProxyType::CancelProxy =>
|
||||
matches!(c, Call::Proxy(pallet_proxy::Call::reject_announcement(..))),
|
||||
}
|
||||
}
|
||||
fn is_superset(&self, o: &Self) -> bool {
|
||||
@@ -869,24 +875,21 @@ parameter_types! {
|
||||
pub CheckAccount: AccountId = XcmPallet::check_account();
|
||||
}
|
||||
|
||||
pub type LocationConverter = (
|
||||
ChildParachainConvertsVia<ParaId, AccountId>,
|
||||
AccountId32Aliases<WestendNetwork, AccountId>,
|
||||
);
|
||||
pub type LocationConverter =
|
||||
(ChildParachainConvertsVia<ParaId, AccountId>, AccountId32Aliases<WestendNetwork, AccountId>);
|
||||
|
||||
pub type LocalAssetTransactor =
|
||||
XcmCurrencyAdapter<
|
||||
// Use this currency:
|
||||
Balances,
|
||||
// Use this currency when it is a fungible asset matching the given location or name:
|
||||
IsConcrete<WndLocation>,
|
||||
// We can convert the MultiLocations with our converter above:
|
||||
LocationConverter,
|
||||
// Our chain's account ID type (we can't get away without mentioning it explicitly):
|
||||
AccountId,
|
||||
// It's a native asset so we keep track of the teleports to maintain total issuance.
|
||||
CheckAccount,
|
||||
>;
|
||||
pub type LocalAssetTransactor = XcmCurrencyAdapter<
|
||||
// Use this currency:
|
||||
Balances,
|
||||
// Use this currency when it is a fungible asset matching the given location or name:
|
||||
IsConcrete<WndLocation>,
|
||||
// We can convert the MultiLocations with our converter above:
|
||||
LocationConverter,
|
||||
// Our chain's account ID type (we can't get away without mentioning it explicitly):
|
||||
AccountId,
|
||||
// It's a native asset so we keep track of the teleports to maintain total issuance.
|
||||
CheckAccount,
|
||||
>;
|
||||
|
||||
type LocalOriginConverter = (
|
||||
SovereignSignedViaLocation<LocationConverter, Origin>,
|
||||
@@ -910,9 +913,7 @@ parameter_types! {
|
||||
pub const WestendForWestmint: (MultiAsset, MultiLocation) =
|
||||
(AllConcreteFungible { id: Null }, X1(Parachain(1000)));
|
||||
}
|
||||
pub type TrustedTeleporters = (
|
||||
xcm_builder::Case<WestendForWestmint>,
|
||||
);
|
||||
pub type TrustedTeleporters = (xcm_builder::Case<WestendForWestmint>,);
|
||||
|
||||
/// The barriers one of which must be passed for an XCM message to be executed.
|
||||
pub type Barrier = (
|
||||
@@ -947,11 +948,15 @@ pub type LocalOriginToLocation = (
|
||||
);
|
||||
|
||||
pub struct OnlyWithdrawTeleportForAccounts;
|
||||
impl frame_support::traits::Contains<(MultiLocation, Xcm<Call>)> for OnlyWithdrawTeleportForAccounts {
|
||||
impl frame_support::traits::Contains<(MultiLocation, Xcm<Call>)>
|
||||
for OnlyWithdrawTeleportForAccounts
|
||||
{
|
||||
fn contains((ref origin, ref msg): &(MultiLocation, Xcm<Call>)) -> bool {
|
||||
use xcm::v0::{
|
||||
Xcm::WithdrawAsset, Order::{BuyExecution, InitiateTeleport, DepositAsset},
|
||||
MultiAsset::{All, ConcreteFungible}, Junction::AccountId32,
|
||||
Junction::AccountId32,
|
||||
MultiAsset::{All, ConcreteFungible},
|
||||
Order::{BuyExecution, DepositAsset, InitiateTeleport},
|
||||
Xcm::WithdrawAsset,
|
||||
};
|
||||
match origin {
|
||||
// Root is allowed to execute anything.
|
||||
@@ -986,7 +991,7 @@ impl frame_support::traits::Contains<(MultiLocation, Xcm<Call>)> for OnlyWithdra
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
},
|
||||
// Nobody else is allowed to execute anything.
|
||||
_ => false,
|
||||
}
|
||||
@@ -1126,9 +1131,9 @@ pub struct MigratePalletVersionToStorageVersion;
|
||||
|
||||
impl OnRuntimeUpgrade for MigratePalletVersionToStorageVersion {
|
||||
fn on_runtime_upgrade() -> frame_support::weights::Weight {
|
||||
frame_support::migrations::migrate_from_pallet_version_to_storage_version::<AllPalletsWithSystem>(
|
||||
&RocksDbWeight::get()
|
||||
)
|
||||
frame_support::migrations::migrate_from_pallet_version_to_storage_version::<
|
||||
AllPalletsWithSystem,
|
||||
>(&RocksDbWeight::get())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1433,17 +1438,57 @@ sp_api::impl_runtime_apis! {
|
||||
|
||||
#[cfg(feature = "runtime-benchmarks")]
|
||||
impl frame_benchmarking::Benchmark<Block> for Runtime {
|
||||
fn benchmark_metadata(extra: bool) -> (
|
||||
Vec<frame_benchmarking::BenchmarkList>,
|
||||
Vec<frame_support::traits::StorageInfo>,
|
||||
) {
|
||||
use frame_benchmarking::{list_benchmark, Benchmarking, BenchmarkList};
|
||||
use frame_support::traits::StorageInfoTrait;
|
||||
|
||||
use pallet_session_benchmarking::Pallet as SessionBench;
|
||||
use pallet_offences_benchmarking::Pallet as OffencesBench;
|
||||
use frame_system_benchmarking::Pallet as SystemBench;
|
||||
|
||||
let mut list = Vec::<BenchmarkList>::new();
|
||||
|
||||
// Polkadot
|
||||
// NOTE: Make sure to prefix these `runtime_common::` so that path resolves correctly
|
||||
// in the generated file.
|
||||
list_benchmark!(list, extra, runtime_common::auctions, Auctions);
|
||||
list_benchmark!(list, extra, runtime_common::crowdloan, Crowdloan);
|
||||
list_benchmark!(list, extra, runtime_common::paras_registrar, Registrar);
|
||||
list_benchmark!(list, extra, runtime_common::slots, Slots);
|
||||
// Substrate
|
||||
list_benchmark!(list, extra, pallet_balances, Balances);
|
||||
list_benchmark!(list, extra, pallet_election_provider_multi_phase, ElectionProviderMultiPhase);
|
||||
list_benchmark!(list, extra, pallet_identity, Identity);
|
||||
list_benchmark!(list, extra, pallet_im_online, ImOnline);
|
||||
list_benchmark!(list, extra, pallet_indices, Indices);
|
||||
list_benchmark!(list, extra, pallet_multisig, Multisig);
|
||||
list_benchmark!(list, extra, pallet_offences, OffencesBench::<Runtime>);
|
||||
list_benchmark!(list, extra, pallet_proxy, Proxy);
|
||||
list_benchmark!(list, extra, pallet_scheduler, Scheduler);
|
||||
list_benchmark!(list, extra, pallet_session, SessionBench::<Runtime>);
|
||||
list_benchmark!(list, extra, pallet_staking, Staking);
|
||||
list_benchmark!(list, extra, frame_system, SystemBench::<Runtime>);
|
||||
list_benchmark!(list, extra, pallet_timestamp, Timestamp);
|
||||
list_benchmark!(list, extra, pallet_utility, Utility);
|
||||
list_benchmark!(list, extra, pallet_vesting, Vesting);
|
||||
|
||||
let storage_info = AllPalletsWithSystem::storage_info();
|
||||
|
||||
return (list, storage_info)
|
||||
}
|
||||
|
||||
fn dispatch_benchmark(
|
||||
config: frame_benchmarking::BenchmarkConfig,
|
||||
) -> Result<
|
||||
(Vec<frame_benchmarking::BenchmarkBatch>, Vec<frame_support::traits::StorageInfo>),
|
||||
Vec<frame_benchmarking::BenchmarkBatch>,
|
||||
sp_runtime::RuntimeString,
|
||||
> {
|
||||
use frame_benchmarking::{Benchmarking, BenchmarkBatch, add_benchmark, TrackedStorageKey};
|
||||
use frame_support::traits::StorageInfoTrait;
|
||||
// Trying to add benchmarks directly to the Session Pallet caused cyclic dependency issues.
|
||||
// To get around that, we separated the Session benchmarks into its own crate, which is why
|
||||
// we need these two lines below.
|
||||
// Trying to add benchmarks directly to some pallets caused cyclic dependency issues.
|
||||
// To get around that, we separated the benchmarks into its own crate.
|
||||
use pallet_session_benchmarking::Pallet as SessionBench;
|
||||
use pallet_offences_benchmarking::Pallet as OffencesBench;
|
||||
use frame_system_benchmarking::Pallet as SystemBench;
|
||||
@@ -1495,8 +1540,7 @@ sp_api::impl_runtime_apis! {
|
||||
add_benchmark!(params, batches, pallet_vesting, Vesting);
|
||||
|
||||
if batches.is_empty() { return Err("Benchmark not found for this pallet.".into()) }
|
||||
let storage_info = AllPalletsWithSystem::storage_info();
|
||||
Ok((batches, storage_info))
|
||||
Ok(batches)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user