pub struct GenesisConfig<T: Config<I>, I: 'static = ()> {
pub min_pulse: T::Pulse,
pub init_xp: T::Xp,
pub pulse_factor: Stepper<T, I>,
pub genesis_acc: Vec<GenesisAcc<T::AccountId, XpId<T>>>,
}Expand description
Genesis configuration for the XP pallet.
Defines the initial configuration parameters for the XP pallet, which are set during the chain’s genesis block.
Fields§
§min_pulse: T::PulseThe minimum pulse value required for XP reputation effects.
This value determines the minimum pulse required for XP entries to be considered active for reputation calculations or effects.
init_xp: T::XpThe initial XP assigned to newly created XP entries.
This value sets the starting XP balance for all XP keys created during the chain’s genesis block or runtime initialization.
pulse_factor: Stepper<T, I>The configuration for pulse-based XP activity reputation calculations.
This field defines the parameters for how pulse is calculated and scaled for reputation effects. It includes thresholds and scaling factors for determining pulse growth.
genesis_acc: Vec<GenesisAcc<T::AccountId, XpId<T>>>XP identities to initialize at genesis.
Each entry creates an XP identity and assigns its owner. No XP points are allocated at this stage.
Trait Implementations§
Source§impl<T: Config<I>, I: 'static> BuildGenesisConfig for GenesisConfig<T, I>
Builds the XP pallet’s genesis storage from the provided configuration.
impl<T: Config<I>, I: 'static> BuildGenesisConfig for GenesisConfig<T, I>
Builds the XP pallet’s genesis storage from the provided configuration.
Source§impl<T: Config<I>, I: 'static> BuildStorage for GenesisConfig<T, I>
impl<T: Config<I>, I: 'static> BuildStorage for GenesisConfig<T, I>
Source§fn assimilate_storage(&self, storage: &mut Storage) -> Result<(), String>
fn assimilate_storage(&self, storage: &mut Storage) -> Result<(), String>
§fn build_storage(&self) -> Result<Storage, String>
fn build_storage(&self) -> Result<Storage, String>
Source§impl<T: Config<I>, I: 'static> Default for GenesisConfig<T, I>
Default values for XP system parameters at genesis.
impl<T: Config<I>, I: 'static> Default for GenesisConfig<T, I>
Default values for XP system parameters at genesis.
Source§impl<'de, T: Config<I>, I: 'static> Deserialize<'de> for GenesisConfig<T, I>
impl<'de, T: Config<I>, I: 'static> Deserialize<'de> for GenesisConfig<T, I>
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl<T, I> Freeze for GenesisConfig<T, I>
impl<T, I> RefUnwindSafe for GenesisConfig<T, I>where
<T as Config<I>>::Pulse: RefUnwindSafe,
<T as Config<I>>::Xp: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
impl<T, I> Send for GenesisConfig<T, I>
impl<T, I> Sync for GenesisConfig<T, I>
impl<T, I> Unpin for GenesisConfig<T, I>
impl<T, I> UnwindSafe for GenesisConfig<T, I>where
<T as Config<I>>::Pulse: UnwindSafe,
<T as Config<I>>::Xp: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T, U, Tag> IntoTag<U, Tag> for Twhere
U: FromTag<T, Tag>,
Tag: DiscriminantTag,
impl<T, U, Tag> IntoTag<U, Tag> for Twhere
U: FromTag<T, Tag>,
Tag: DiscriminantTag,
§impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
impl<Src, Dest> IntoTuple<Dest> for Srcwhere
Dest: FromTuple<Src>,
fn into_tuple(self) -> Dest
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
Source§impl<T, Time> Logging<Time> for Twhere
Time: Time,
impl<T, Time> Logging<Time> for Twhere
Time: Time,
Source§const FALLBACK_TARGET: &'static str = "routine"
const FALLBACK_TARGET: &'static str = "routine"
Default logging target if none is provided.
Most routines, especially offchain workers or background tasks, use this target for simplicity.
It allows a consistent place to look for routine logs without requiring every call to specify a target.
Note: This target is only a conveninence and may be somewhat vague. To ensure errors can still be traced accurately, the logged messages should include additional metadata (e.g., module name, error index, or contextual info) so that the source of the error can be identified even if the target is generic.
Source§type Logger = DispatchError
type Logger = DispatchError
The type taken and returned for logging.
We simply return the same [DispatchError] that was logged,
so logging does not change control flow or error propagation.
DispatchError is used because in Substrate it encompasses all
runtime errors - including module errors, token errors, arithmetic
issues, and transactional boundaries - making it the universal
substrate-side error representation.
Source§type Level = LogLevel
type Level = LogLevel
The log level type.
We use the LogLevel enum to standardize severity levels
(Info, Warn, Error, Debug) across all routine logs.
Source§fn log(
level: <T as Logging<Time>>::Level,
err: &<T as Logging<Time>>::Logger,
timestamp: Time,
target: Option<&str>,
fmt: Option<fn(Time, &<T as Logging<Time>>::Level, &str, &str) -> String>,
) -> <T as Logging<Time>>::Logger
fn log( level: <T as Logging<Time>>::Level, err: &<T as Logging<Time>>::Logger, timestamp: Time, target: Option<&str>, fmt: Option<fn(Time, &<T as Logging<Time>>::Level, &str, &str) -> String>, ) -> <T as Logging<Time>>::Logger
Source§fn info(
err: &Self::Logger,
timestamp: Timestamp,
target: Option<&str>,
fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>,
) -> Self::Loggerwhere
Self: Sized,
fn info(
err: &Self::Logger,
timestamp: Timestamp,
target: Option<&str>,
fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>,
) -> Self::Loggerwhere
Self: Sized,
Source§fn warn(
err: &Self::Logger,
timestamp: Timestamp,
target: Option<&str>,
fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>,
) -> Self::Loggerwhere
Self: Sized,
fn warn(
err: &Self::Logger,
timestamp: Timestamp,
target: Option<&str>,
fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>,
) -> Self::Loggerwhere
Self: Sized,
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T. Read more§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from.§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T.