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

The quantity used to denote time; usually just a BlockNumber.

The currency that this schedule applies to.

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.

Remove a vesting schedule for a given account.

NOTE: This doesn’t alter the free balance of the account.

Implementors