Trait frame_support::traits::tokens::currency::VestingSchedule
source · [−]pub trait VestingSchedule<AccountId> {
type Moment;
type Currency: Currency<AccountId>;
fn vesting_balance(
who: &AccountId
) -> Option<<Self::Currency as Currency<AccountId>>::Balance>;
fn add_vesting_schedule(
who: &AccountId,
locked: <Self::Currency as Currency<AccountId>>::Balance,
per_block: <Self::Currency as Currency<AccountId>>::Balance,
starting_block: Self::Moment
) -> DispatchResult;
fn can_add_vesting_schedule(
who: &AccountId,
locked: <Self::Currency as Currency<AccountId>>::Balance,
per_block: <Self::Currency as Currency<AccountId>>::Balance,
starting_block: Self::Moment
) -> DispatchResult;
fn remove_vesting_schedule(
who: &AccountId,
schedule_index: u32
) -> DispatchResult;
}
Expand description
A vesting schedule over a currency. This allows a particular currency to have vesting limits applied to it.
Associated Types
Required methods
Get the amount that is currently being vested and cannot be transferred out of this account.
Returns None
if the account has no vesting schedule.
Adds a vesting schedule to a given account.
If the account has MaxVestingSchedules
, an Error is returned and nothing
is updated.
Is a no-op if the amount to be vested is zero.
NOTE: This doesn’t alter the free balance of the account.
Checks if add_vesting_schedule
would work against who
.
fn remove_vesting_schedule(
who: &AccountId,
schedule_index: u32
) -> DispatchResult
fn remove_vesting_schedule(
who: &AccountId,
schedule_index: u32
) -> DispatchResult
Remove a vesting schedule for a given account.
NOTE: This doesn’t alter the free balance of the account.