Struct pallet_vesting::pallet::Pallet

source ·
pub struct Pallet<T>(/* private fields */);
Expand description

The Pallet struct, the main type that implements traits and standalone functions within the pallet.

Implementations§

source§

impl<T: Config> Pallet<T>

source

pub fn vest(origin: OriginFor<T>) -> DispatchResult

Unlock any vested funds of the sender account.

The dispatch origin for this call must be Signed and the sender must have funds still locked under this pallet.

Emits either VestingCompleted or VestingUpdated.

§Complexity
  • O(1).
source

pub fn vest_other( origin: OriginFor<T>, target: <<T as Config>::Lookup as StaticLookup>::Source ) -> DispatchResult

Unlock any vested funds of a target account.

The dispatch origin for this call must be Signed.

  • target: The account whose vested funds should be unlocked. Must have funds still locked under this pallet.

Emits either VestingCompleted or VestingUpdated.

§Complexity
  • O(1).
source

pub fn vested_transfer( origin: OriginFor<T>, target: <<T as Config>::Lookup as StaticLookup>::Source, schedule: VestingInfo<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, BlockNumberFor<T>> ) -> DispatchResult

Create a vested transfer.

The dispatch origin for this call must be Signed.

  • target: The account receiving the vested funds.
  • schedule: The vesting schedule attached to the transfer.

Emits VestingCreated.

NOTE: This will unlock all schedules through the current block.

§Complexity
  • O(1).
source

pub fn force_vested_transfer( origin: OriginFor<T>, source: <<T as Config>::Lookup as StaticLookup>::Source, target: <<T as Config>::Lookup as StaticLookup>::Source, schedule: VestingInfo<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, BlockNumberFor<T>> ) -> DispatchResult

Force a vested transfer.

The dispatch origin for this call must be Root.

  • source: The account whose funds should be transferred.
  • target: The account that should be transferred the vested funds.
  • schedule: The vesting schedule attached to the transfer.

Emits VestingCreated.

NOTE: This will unlock all schedules through the current block.

§Complexity
  • O(1).
source

pub fn merge_schedules( origin: OriginFor<T>, schedule1_index: u32, schedule2_index: u32 ) -> DispatchResult

Merge two vesting schedules together, creating a new vesting schedule that unlocks over the highest possible start and end blocks. If both schedules have already started the current block will be used as the schedule start; with the caveat that if one schedule is finished by the current block, the other will be treated as the new merged schedule, unmodified.

NOTE: If schedule1_index == schedule2_index this is a no-op. NOTE: This will unlock all schedules through the current block prior to merging. NOTE: If both schedules have ended by the current block, no new schedule will be created and both will be removed.

Merged schedule attributes:

  • starting_block: MAX(schedule1.starting_block, scheduled2.starting_block, current_block).
  • ending_block: MAX(schedule1.ending_block, schedule2.ending_block).
  • locked: schedule1.locked_at(current_block) + schedule2.locked_at(current_block).

The dispatch origin for this call must be Signed.

  • schedule1_index: index of the first schedule to merge.
  • schedule2_index: index of the second schedule to merge.
source

pub fn force_remove_vesting_schedule( origin: OriginFor<T>, target: <T::Lookup as StaticLookup>::Source, schedule_index: u32 ) -> DispatchResultWithPostInfo

Force remove a vesting schedule

The dispatch origin for this call must be Root.

  • target: An account that has a vesting schedule
  • schedule_index: The vesting schedule index that should be removed
source§

impl<T: Config> Pallet<T>

source

pub fn vesting<KArg>( k: KArg ) -> Option<BoundedVec<VestingInfo<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, BlockNumberFor<T>>, MaxVestingSchedulesGet<T>>>
where KArg: EncodeLike<T::AccountId>,

An auto-generated getter for Vesting.

Trait Implementations§

source§

impl<T: Config> BeforeAllRuntimeMigrations for Pallet<T>

source§

fn before_all_runtime_migrations() -> Weight

Something that should happen before runtime migrations are executed.
source§

impl<T: Config> Callable<T> for Pallet<T>

source§

impl<T> Clone for Pallet<T>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<T> Debug for Pallet<T>

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<T: Config> GetStorageVersion for Pallet<T>

§

type InCodeStorageVersion = NoStorageVersionSet

This type is generated by the pallet macro. Read more
source§

fn in_code_storage_version() -> Self::InCodeStorageVersion

Returns the in-code storage version as specified in the storage_version attribute, or NoStorageVersionSet if the attribute is missing.
source§

fn on_chain_storage_version() -> StorageVersion

Returns the storage version of the pallet as last set in the actual on-chain storage.
source§

fn current_storage_version() -> Self::InCodeStorageVersion

👎Deprecated: This method has been renamed to in_code_storage_version and will be removed after March 2024.
DEPRECATED: Use Self::current_storage_version instead. Read more
source§

impl<T: Config> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn integrity_test()

Check the integrity of this pallet’s configuration. Read more
source§

fn on_initialize(_n: BlockNumber) -> Weight

Block initialization hook. This is called at the very beginning of block execution. Read more
source§

fn on_finalize(_n: BlockNumber)

Block finalization hook. This is called at the very end of block execution. Read more
source§

fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight

Hook to consume a block’s idle time. This will run when the block is being finalized (before Hooks::on_finalize). Read more
source§

fn on_poll(_n: BlockNumber, _weight: &mut WeightMeter)

A hook to run logic after inherent application. Read more
source§

fn on_runtime_upgrade() -> Weight

Hook executed when a code change (aka. a “runtime upgrade”) is detected by the FRAME Executive pallet. Read more
source§

fn offchain_worker(_n: BlockNumber)

Implementing this function on a pallet allows you to perform long-running tasks that are dispatched as separate threads, and entirely independent of the main blockchain execution. Read more
source§

impl<T: Config> IntegrityTest for Pallet<T>

source§

impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn offchain_worker(n: BlockNumberFor<T>)

This function is being called after every block import (when fully synced). Read more
source§

impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

impl<T: Config> OnGenesis for Pallet<T>

source§

fn on_genesis()

Something that should happen at genesis.
source§

impl<T: Config> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_idle(n: BlockNumberFor<T>, remaining_weight: Weight) -> Weight

source§

impl<T: Config> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

impl<T: Config> OnPoll<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_poll(n: BlockNumberFor<T>, weight: &mut WeightMeter)

Code to execute every now and then at the beginning of the block after inherent application. Read more
source§

impl<T: Config> OnRuntimeUpgrade for Pallet<T>

source§

impl<T: Config> PalletInfoAccess for Pallet<T>

source§

fn index() -> usize

Index of the pallet as configured in the runtime.
source§

fn name() -> &'static str

Name of the pallet as configured in the runtime.
source§

fn name_hash() -> [u8; 16]

Two128 hash of name.
source§

fn module_name() -> &'static str

Name of the Rust module containing the pallet.
source§

fn crate_version() -> CrateVersion

Version of the crate containing the pallet.
source§

impl<T: Config> PalletsInfoAccess for Pallet<T>

source§

fn count() -> usize

The number of pallets’ information that this type represents. Read more
source§

fn infos() -> Vec<PalletInfoData>

All of the pallets’ information that this type represents.
source§

impl<T> PartialEq for Pallet<T>

source§

fn eq(&self, other: &Self) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: Config> StorageInfoTrait for Pallet<T>

source§

impl<T: Config> VestingSchedule<<T as Config>::AccountId> for Pallet<T>

source§

fn vesting_balance( who: &T::AccountId ) -> Option<<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance>

Get the amount that is currently being vested and cannot be transferred out of this account.

source§

fn add_vesting_schedule( who: &T::AccountId, locked: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, per_block: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, starting_block: BlockNumberFor<T> ) -> DispatchResult

Adds a vesting schedule to a given account.

If the account has MaxVestingSchedules, an Error is returned and nothing is updated.

On success, a linearly reducing amount of funds will be locked. In order to realise any reduction of the lock over time as it diminishes, the account owner must use vest or vest_other.

Is a no-op if the amount to be vested is zero.

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

source§

fn remove_vesting_schedule( who: &T::AccountId, schedule_index: u32 ) -> DispatchResult

Remove a vesting schedule for a given account.

§

type Currency = <T as Config>::Currency

The currency that this schedule applies to.
§

type Moment = <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number

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

fn can_add_vesting_schedule( who: &T::AccountId, locked: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, per_block: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, starting_block: BlockNumberFor<T> ) -> DispatchResult

Checks if add_vesting_schedule would work against who.
source§

impl<T: Config> WhitelistedStorageKeys for Pallet<T>

source§

fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>

Returns a Vec<TrackedStorageKey> indicating the storage keys that should be whitelisted during benchmarking. This means that those keys will be excluded from the benchmarking performance calculation.
source§

impl<T> Eq for Pallet<T>

Auto Trait Implementations§

§

impl<T> Freeze for Pallet<T>

§

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

§

impl<T> Send for Pallet<T>
where T: Send,

§

impl<T> Sync for Pallet<T>
where T: Sync,

§

impl<T> Unpin for Pallet<T>
where T: Unpin,

§

impl<T> UnwindSafe for Pallet<T>
where T: 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
source§

impl<T> CheckedConversion for T

source§

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
source§

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> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

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

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

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
source§

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

source§

fn into_key(self) -> U

source§

impl<T> IsType<T> for T

source§

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

Cast reference.
source§

fn into_ref(&self) -> &T

Cast reference.
source§

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

Cast mutable reference.
source§

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

Cast mutable reference.
source§

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

source§

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

Get a reference to the inner from the outer.

source§

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

Get a mutable reference to the inner from the outer.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> SaturatedConversion for T

source§

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
source§

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

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

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>,

§

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.
source§

impl<T, U> TryIntoKey<U> for T
where U: TryFromKey<T>,

§

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

source§

fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>

source§

impl<S, T> UncheckedInto<T> for S
where T: UncheckedFrom<S>,

source§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
source§

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

source§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
source§

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

source§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> JsonSchemaMaybe for T

source§

impl<T> MaybeDebug for T
where T: Debug,

source§

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

source§

impl<T> Member for T
where T: Send + Sync + Debug + Eq + PartialEq + Clone + 'static,