Struct GenesisConfig

Source
pub struct GenesisConfig<T: Config> {
    pub min_collateral: AuthorAsset<T>,
    pub max_exposure: AuthorAsset<T>,
    pub min_fund: AuthorAsset<T>,
    pub probation_period: BlockNumberFor<T>,
    pub reduce_probation_by: BlockNumberFor<T>,
    pub increase_probation_by: BlockNumberFor<T>,
    pub rewards_buffer: BlockNumberFor<T>,
    pub penalties_buffer: BlockNumberFor<T>,
    pub max_elected: u32,
    pub min_elected: u32,
    pub force_max_elected: bool,
}
Expand description

Genesis configuration for the Authors pallet.

Provides the initial runtime parameters governing author lifecycle, funding, and reward/penalty mechanics at chain genesis.

These values define the baseline operational rules before any on-chain authors are enrolled or any activity occurs.

Fields§

§min_collateral: AuthorAsset<T>

Minimum collateral an author must hold to participate. Ensures skin-in-the-game and commitment to the network. Must not be set to zero, to avoid no-commitment failures.

§max_exposure: AuthorAsset<T>

Maximum allowed exposure of a funding/backing operation instance. Limits systemic risk from overly funded or leveraged participants.

This is ambiguous in pool and index contexts as it only represents how much the backer is willing to commit at a transaction, not specific to what scheme.

§min_fund: AuthorAsset<T>

Minimum funding required of a funding/backing operation instance. Guarantees sufficient community support before an author can participate. Must not be set to zero, to avoid zero-commitment failures.

This is ambiguous in pool and index contexts as it only represents how much the backer is willing to commit at a transaction, not specific to what scheme.

§probation_period: BlockNumberFor<T>

Number of blocks newly enrolled or demoted authors must spend in probation before achieving permanent status. Enforces behavioral observation and prevents immediate promotion.

§reduce_probation_by: BlockNumberFor<T>

Number of blocks to reduce an author’s risk period when positive behavior is observed. Facilitates promotion and rewards accountability.

§increase_probation_by: BlockNumberFor<T>

Number of blocks to extend an author’s risk period when unsafe behavior is detected. Enforces accountability and ensures that authors under observation remain under supervision.

§rewards_buffer: BlockNumberFor<T>

Number of blocks to delay reward finalization. Ensures orderly processing and temporal separation of reward events.

§penalties_buffer: BlockNumberFor<T>

Number of blocks to delay penalty finalization. Allows authors to react or remediate before penalties are enforced.

§max_elected: u32

Maximum number of authors that can be elected in a single election round. If force_max_elected is true, the elected list will be truncated to this limit.

§min_elected: u32

Minimum number of authors required to complete a valid election round. Ensures that elections maintain a minimum quorum of participants.

§force_max_elected: bool

Whether to strictly enforce the max_elected limit.

  • true: Forcefully truncate elected authors to max_elected.
  • false: Attempt to store all elected candidates.

Trait Implementations§

Source§

impl<T: Config> BuildGenesisConfig for GenesisConfig<T>

Source§

fn build(&self)

The build function puts initial GenesisConfig keys/values pairs into the storage.
Source§

impl<T: Config> BuildStorage for GenesisConfig<T>

Source§

fn assimilate_storage(&self, storage: &mut Storage) -> Result<(), String>

Assimilate the storage for this module into pre-existing overlays.
§

fn build_storage(&self) -> Result<Storage, String>

Build the storage out of this builder.
Source§

impl<T: Config> Default for GenesisConfig<T>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de, T: Config> Deserialize<'de> for GenesisConfig<T>

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<T: Config> Serialize for GenesisConfig<T>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<T> Freeze for GenesisConfig<T>
where <<T as Config>::CommitmentAdapter as InspectAsset<<T as Config>::AccountId>>::Asset: Freeze, <<<T as Config>::Block as Block>::Header as Header>::Number: Freeze,

§

impl<T> RefUnwindSafe for GenesisConfig<T>
where <<T as Config>::CommitmentAdapter as InspectAsset<<T as Config>::AccountId>>::Asset: RefUnwindSafe, <<<T as Config>::Block as Block>::Header as Header>::Number: RefUnwindSafe,

§

impl<T> Send for GenesisConfig<T>

§

impl<T> Sync for GenesisConfig<T>

§

impl<T> Unpin for GenesisConfig<T>
where <<T as Config>::CommitmentAdapter as InspectAsset<<T as Config>::AccountId>>::Asset: Unpin, <<<T as Config>::Block as Block>::Header as Header>::Number: Unpin,

§

impl<T> UnwindSafe for GenesisConfig<T>
where <<T as Config>::CommitmentAdapter as InspectAsset<<T as Config>::AccountId>>::Asset: UnwindSafe, <<<T as Config>::Block as Block>::Header as Header>::Number: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CheckedConversion for T

§

fn checked_from<T>(t: T) -> Option<Self>
where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
§

fn checked_into<T>(self) -> Option<T>
where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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 more
§

impl<T, U> IntoKey<U> for T
where U: FromKey<T>,

§

fn into_key(self) -> U

Source§

impl<T, U, Tag> IntoTag<U, Tag> for T
where U: FromTag<T, Tag>, Tag: DiscriminantTag,

Source§

fn into_tag(self) -> U

§

impl<Src, Dest> IntoTuple<Dest> for Src
where Dest: FromTuple<Src>,

§

fn into_tuple(self) -> Dest

§

impl<T> IsType<T> for T

§

fn from_ref(t: &T) -> &T

Cast reference.
§

fn into_ref(&self) -> &T

Cast reference.
§

fn from_mut(t: &mut T) -> &mut T

Cast mutable reference.
§

fn into_mut(&mut self) -> &mut T

Cast mutable reference.
§

impl<T, Outer> IsWrappedBy<Outer> for T
where Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

Source§

impl<T, Time> Logging<Time> for T
where Time: Time,

Source§

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

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

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

Core logging function that all helpers delegate to. Read more
Source§

fn info( err: &Self::Logger, timestamp: Timestamp, target: Option<&str>, fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>, ) -> Self::Logger
where Self: Sized,

Logs an info-level message. Read more
Source§

fn warn( err: &Self::Logger, timestamp: Timestamp, target: Option<&str>, fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>, ) -> Self::Logger
where Self: Sized,

Logs a warning-level message. Read more
Source§

fn error( err: &Self::Logger, timestamp: Timestamp, target: Option<&str>, fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>, ) -> Self::Logger
where Self: Sized,

Logs an error-level message. Read more
Source§

fn debug( err: &Self::Logger, timestamp: Timestamp, target: Option<&str>, fmt: Option<fn(Timestamp, &Self::Level, &str, &str) -> String>, ) -> Self::Logger
where Self: Sized,

Logs a debug-level message. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoKey<U> for T
where 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 S
where T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where T: Bounded, S: TryInto<T>,

§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<Provider, Discriminant, T> DelegateVirtualDynBound<Provider, Discriminant> for T
where Provider: VirtualDynBound<Discriminant>, Discriminant: DiscriminantTag,

Source§

impl<Provider, Discriminant, T> DelegateVirtualStaticBound<Provider, Discriminant> for T
where Provider: VirtualStaticBound<Discriminant>, Discriminant: DiscriminantTag,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeRefUnwindSafe for T
where T: RefUnwindSafe,

§

impl<T> MaybeSerialize for T
where T: Serialize,

§

impl<T> MaybeSerializeDeserialize for T