Trait orml_traits::currency::BasicLockableCurrency
source · pub trait BasicLockableCurrency<AccountId>: BasicCurrency<AccountId> {
type Moment;
// Required methods
fn set_lock(
lock_id: LockIdentifier,
who: &AccountId,
amount: Self::Balance
) -> DispatchResult;
fn extend_lock(
lock_id: LockIdentifier,
who: &AccountId,
amount: Self::Balance
) -> DispatchResult;
fn remove_lock(lock_id: LockIdentifier, who: &AccountId) -> DispatchResult;
}Expand description
A fungible single currency system whose accounts can have liquidity restrictions.
Required Associated Types§
Required Methods§
sourcefn set_lock(
lock_id: LockIdentifier,
who: &AccountId,
amount: Self::Balance
) -> DispatchResult
fn set_lock( lock_id: LockIdentifier, who: &AccountId, amount: Self::Balance ) -> DispatchResult
Create a new balance lock on account who.
If the new lock is valid (i.e. not already expired), it will push the
struct to the Locks vec in storage. Note that you can lock more funds
than a user has.
If the lock lock_id already exists, this will update it.
sourcefn extend_lock(
lock_id: LockIdentifier,
who: &AccountId,
amount: Self::Balance
) -> DispatchResult
fn extend_lock( lock_id: LockIdentifier, who: &AccountId, amount: Self::Balance ) -> DispatchResult
Changes a balance lock (selected by lock_id) so that it becomes less
liquid in all parameters or creates a new one if it does not exist.
Calling extend_lock on an existing lock lock_id differs from
set_lock in that it applies the most severe constraints of the two,
while set_lock replaces the lock with the new parameters. As in,
extend_lock will set:
- maximum
amount
sourcefn remove_lock(lock_id: LockIdentifier, who: &AccountId) -> DispatchResult
fn remove_lock(lock_id: LockIdentifier, who: &AccountId) -> DispatchResult
Remove an existing lock.