Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

Commit ca8a8bb

Browse files
pallets: implement Default for GenesisConfig in no_std
This change is follow-up of: paritytech/substrate#14108 It is a step towards: https://github.com/paritytech/substrate/issues/13334
1 parent cbd5330 commit ca8a8bb

File tree

6 files changed

+9
-38
lines changed

6 files changed

+9
-38
lines changed

runtime/common/src/claims.rs

+3-10
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ use frame_support::{
2020
ensure,
2121
traits::{Currency, Get, IsSubType, VestingSchedule},
2222
weights::Weight,
23+
DefaultNoBound,
2324
};
2425
pub use pallet::*;
2526
use parity_scale_codec::{Decode, Encode};
@@ -28,10 +29,8 @@ use scale_info::TypeInfo;
2829
#[cfg(feature = "std")]
2930
use serde::{self, Deserialize, Deserializer, Serialize, Serializer};
3031
use sp_io::{crypto::secp256k1_ecdsa_recover, hashing::keccak_256};
31-
#[cfg(feature = "std")]
32-
use sp_runtime::traits::Zero;
3332
use sp_runtime::{
34-
traits::{CheckedSub, DispatchInfoOf, SignedExtension},
33+
traits::{CheckedSub, DispatchInfoOf, SignedExtension, Zero},
3534
transaction_validity::{
3635
InvalidTransaction, TransactionValidity, TransactionValidityError, ValidTransaction,
3736
},
@@ -229,19 +228,13 @@ pub mod pallet {
229228
pub(super) type Preclaims<T: Config> = StorageMap<_, Identity, T::AccountId, EthereumAddress>;
230229

231230
#[pallet::genesis_config]
231+
#[derive(DefaultNoBound)]
232232
pub struct GenesisConfig<T: Config> {
233233
pub claims:
234234
Vec<(EthereumAddress, BalanceOf<T>, Option<T::AccountId>, Option<StatementKind>)>,
235235
pub vesting: Vec<(EthereumAddress, (BalanceOf<T>, BalanceOf<T>, T::BlockNumber))>,
236236
}
237237

238-
#[cfg(feature = "std")]
239-
impl<T: Config> Default for GenesisConfig<T> {
240-
fn default() -> Self {
241-
GenesisConfig { claims: Default::default(), vesting: Default::default() }
242-
}
243-
}
244-
245238
#[pallet::genesis_build]
246239
impl<T: Config> GenesisBuild<T> for GenesisConfig<T> {
247240
fn build(&self) {

runtime/common/src/paras_registrar.rs

-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,6 @@ pub mod pallet {
195195
pub next_free_para_id: ParaId,
196196
}
197197

198-
#[cfg(feature = "std")]
199198
impl Default for GenesisConfig {
200199
fn default() -> Self {
201200
GenesisConfig { next_free_para_id: LOWEST_PUBLIC_ID }

runtime/parachains/src/configuration.rs

+2-8
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
//! Configuration can change only at session boundaries and is buffered until then.
2020
2121
use crate::{inclusion::MAX_UPWARD_MESSAGE_SIZE_BOUND, shared};
22-
use frame_support::pallet_prelude::*;
22+
use frame_support::{pallet_prelude::*, DefaultNoBound};
2323
use frame_system::pallet_prelude::*;
2424
use parity_scale_codec::{Decode, Encode};
2525
use polkadot_parachain::primitives::{MAX_HORIZONTAL_MESSAGE_NUM, MAX_UPWARD_MESSAGE_NUM};
@@ -513,17 +513,11 @@ pub mod pallet {
513513
pub(crate) type BypassConsistencyCheck<T: Config> = StorageValue<_, bool, ValueQuery>;
514514

515515
#[pallet::genesis_config]
516+
#[derive(DefaultNoBound)]
516517
pub struct GenesisConfig<T: Config> {
517518
pub config: HostConfiguration<T::BlockNumber>,
518519
}
519520

520-
#[cfg(feature = "std")]
521-
impl<T: Config> Default for GenesisConfig<T> {
522-
fn default() -> Self {
523-
GenesisConfig { config: Default::default() }
524-
}
525-
}
526-
527521
#[pallet::genesis_build]
528522
impl<T: Config> GenesisBuild<T> for GenesisConfig<T> {
529523
fn build(&self) {

runtime/parachains/src/hrmp.rs

+2-10
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ use crate::{
1818
configuration::{self, HostConfiguration},
1919
dmp, ensure_parachain, initializer, paras,
2020
};
21-
use frame_support::{pallet_prelude::*, traits::ReservableCurrency};
21+
use frame_support::{pallet_prelude::*, traits::ReservableCurrency, DefaultNoBound};
2222
use frame_system::pallet_prelude::*;
2323
use parity_scale_codec::{Decode, Encode};
2424
use polkadot_parachain::primitives::HorizontalMessages;
@@ -435,17 +435,11 @@ pub mod pallet {
435435
/// configuration pallet.
436436
/// 2. `sender` and `recipient` must be valid paras.
437437
#[pallet::genesis_config]
438+
#[derive(DefaultNoBound)]
438439
pub struct GenesisConfig {
439440
preopen_hrmp_channels: Vec<(ParaId, ParaId, u32, u32)>,
440441
}
441442

442-
#[cfg(feature = "std")]
443-
impl Default for GenesisConfig {
444-
fn default() -> Self {
445-
GenesisConfig { preopen_hrmp_channels: Default::default() }
446-
}
447-
}
448-
449443
#[pallet::genesis_build]
450444
impl<T: Config> GenesisBuild<T> for GenesisConfig {
451445
fn build(&self) {
@@ -621,7 +615,6 @@ pub mod pallet {
621615
}
622616
}
623617

624-
#[cfg(feature = "std")]
625618
fn initialize_storage<T: Config>(preopen_hrmp_channels: &[(ParaId, ParaId, u32, u32)]) {
626619
let host_config = configuration::Pallet::<T>::config();
627620
for &(sender, recipient, max_capacity, max_message_size) in preopen_hrmp_channels {
@@ -634,7 +627,6 @@ fn initialize_storage<T: Config>(preopen_hrmp_channels: &[(ParaId, ParaId, u32,
634627
<Pallet<T>>::process_hrmp_open_channel_requests(&host_config);
635628
}
636629

637-
#[cfg(feature = "std")]
638630
fn preopen_hrmp_channel<T: Config>(
639631
sender: ParaId,
640632
recipient: ParaId,

runtime/parachains/src/paras/mod.rs

+2-8
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ use crate::{
114114
shared,
115115
};
116116
use bitvec::{order::Lsb0 as BitOrderLsb0, vec::BitVec};
117-
use frame_support::{pallet_prelude::*, traits::EstimateNextSessionRotation};
117+
use frame_support::{pallet_prelude::*, traits::EstimateNextSessionRotation, DefaultNoBound};
118118
use frame_system::pallet_prelude::*;
119119
use parity_scale_codec::{Decode, Encode};
120120
use primitives::{
@@ -771,17 +771,11 @@ pub mod pallet {
771771
StorageMap<_, Identity, ValidationCodeHash, ValidationCode>;
772772

773773
#[pallet::genesis_config]
774+
#[derive(DefaultNoBound)]
774775
pub struct GenesisConfig {
775776
pub paras: Vec<(ParaId, ParaGenesisArgs)>,
776777
}
777778

778-
#[cfg(feature = "std")]
779-
impl Default for GenesisConfig {
780-
fn default() -> Self {
781-
GenesisConfig { paras: Default::default() }
782-
}
783-
}
784-
785779
#[pallet::genesis_build]
786780
impl<T: Config> GenesisBuild<T> for GenesisConfig {
787781
fn build(&self) {

xcm/pallet-xcm/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,6 @@ pub mod pallet {
651651
pub safe_xcm_version: Option<XcmVersion>,
652652
}
653653

654-
#[cfg(feature = "std")]
655654
impl Default for GenesisConfig {
656655
fn default() -> Self {
657656
Self { safe_xcm_version: Some(XCM_VERSION) }

0 commit comments

Comments
 (0)