pub trait Config: Config {
type WeightInfo: WeightInfo;
type BlockProducerMetadata: Member + Parameter + MaxEncodedLen;
type Currency: MutateHold<Self::AccountId, Reason = Self::RuntimeHoldReason>;
type HoldAmount: Get<<<Self as Config>::Currency as Inspect<<Self as Config>::AccountId>>::Balance>;
type RuntimeHoldReason: From<HoldReason>;
// Required methods
fn genesis_utxo() -> UtxoId;
fn current_time() -> u64;
}
Expand description
Configuration trait of this pallet.
The main purpose of this trait is to act as an interface between this pallet and the runtime in which it is embedded in. A type, function, or constant in this trait is essentially left to be configured by the runtime that includes this pallet.
Consequently, a runtime that wants to include this pallet must implement this trait.
Required Associated Types§
Sourcetype WeightInfo: WeightInfo
type WeightInfo: WeightInfo
Weight information for this pallet’s extrinsics
Sourcetype BlockProducerMetadata: Member + Parameter + MaxEncodedLen
type BlockProducerMetadata: Member + Parameter + MaxEncodedLen
Block producer metadata type
Sourcetype Currency: MutateHold<Self::AccountId, Reason = Self::RuntimeHoldReason>
type Currency: MutateHold<Self::AccountId, Reason = Self::RuntimeHoldReason>
The currency used for holding tokens
Sourcetype HoldAmount: Get<<<Self as Config>::Currency as Inspect<<Self as Config>::AccountId>>::Balance>
type HoldAmount: Get<<<Self as Config>::Currency as Inspect<<Self as Config>::AccountId>>::Balance>
The amount of tokens to hold when upserting metadata
Sourcetype RuntimeHoldReason: From<HoldReason>
type RuntimeHoldReason: From<HoldReason>
The runtime’s hold reason type
Required Methods§
Sourcefn genesis_utxo() -> UtxoId
fn genesis_utxo() -> UtxoId
Should return the chain’s genesis UTXO
Sourcefn current_time() -> u64
fn current_time() -> u64
Should return the start timestamp of current slot in seconds
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.