pub trait Config: Config {
type RuntimeEvent: From<Event<Self>> + IsType<<Self as Config>::RuntimeEvent>;
type Currency: LockableCurrency<Self::AccountId>;
type BlockNumberToBalance: Convert<BlockNumberFor<Self>, <<Self as Config>::Currency as Currency<<Self as Config>::AccountId>>::Balance>;
type MinVestedTransfer: Get<<<Self as Config>::Currency as Currency<<Self as Config>::AccountId>>::Balance>;
type WeightInfo: WeightInfo;
type UnvestedFundsAllowedWithdrawReasons: Get<WithdrawReasons>;
type BlockNumberProvider: BlockNumberProvider<BlockNumber = BlockNumberFor<Self>>;
const MAX_VESTING_SCHEDULES: u32;
}
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 Constants§
Sourceconst MAX_VESTING_SCHEDULES: u32
const MAX_VESTING_SCHEDULES: u32
Maximum number of vesting schedules an account may have at a given moment.
Required Associated Types§
Sourcetype RuntimeEvent: From<Event<Self>> + IsType<<Self as Config>::RuntimeEvent>
type RuntimeEvent: From<Event<Self>> + IsType<<Self as Config>::RuntimeEvent>
The overarching event type.
Sourcetype BlockNumberToBalance: Convert<BlockNumberFor<Self>, <<Self as Config>::Currency as Currency<<Self as Config>::AccountId>>::Balance>
type BlockNumberToBalance: Convert<BlockNumberFor<Self>, <<Self as Config>::Currency as Currency<<Self as Config>::AccountId>>::Balance>
Convert the block number into a balance.
Sourcetype MinVestedTransfer: Get<<<Self as Config>::Currency as Currency<<Self as Config>::AccountId>>::Balance>
type MinVestedTransfer: Get<<<Self as Config>::Currency as Currency<<Self as Config>::AccountId>>::Balance>
The minimum amount transferred to call vested_transfer
.
Sourcetype WeightInfo: WeightInfo
type WeightInfo: WeightInfo
Weight information for extrinsics in this pallet.
Sourcetype UnvestedFundsAllowedWithdrawReasons: Get<WithdrawReasons>
type UnvestedFundsAllowedWithdrawReasons: Get<WithdrawReasons>
Reasons that determine under which conditions the balance may drop below the unvested amount.
Sourcetype BlockNumberProvider: BlockNumberProvider<BlockNumber = BlockNumberFor<Self>>
type BlockNumberProvider: BlockNumberProvider<BlockNumber = BlockNumberFor<Self>>
Query the current block number.
Must return monotonically increasing values when called from consecutive blocks. Can be configured to return either:
- the local block number of the runtime via
frame_system::Pallet
- a remote block number, eg from the relay chain through
RelaychainDataProvider
- an arbitrary value through a custom implementation of the trait
There is currently no migration provided to “hot-swap” block number providers and it may result in undefined behavior when doing so. Parachains are therefore best off setting this to their local block number provider if they have the pallet already deployed.
Suggested values:
- Solo- and Relay-chains:
frame_system::Pallet
- Parachains that may produce blocks sparingly or only when needed (on-demand):
- already have the pallet deployed:
frame_system::Pallet
- are freshly deploying this pallet:
RelaychainDataProvider
- already have the pallet deployed:
- Parachains with a reliably block production rate (PLO or bulk-coretime):
- already have the pallet deployed:
frame_system::Pallet
- are freshly deploying this pallet: no strong recommendation. Both local and remote providers can be used. Relay provider can be a bit better in cases where the parachain is lagging its block production to avoid clock skew.
- already have the pallet deployed:
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.