Struct TimelockMapper

Source
pub struct TimelockMapper<SA, T, A = CurrentStorage>
where SA: StorageMapperApi, A: StorageAddress<SA>, T: TopEncode + TopDecode + 'static,
{ /* private fields */ }

Implementations§

Source§

impl<SA, T> TimelockMapper<SA, T>

Source

pub fn set<BT>(&self, new_current_value: BT)
where BT: Borrow<T>,

Sets the current value without taking into account the timelock component. Meant to be used in constructors.

Source

pub fn commit(&self) -> bool

Updates current value entry with future value if unlock timestamp has passed.

Source

pub fn set_unlock_timestamp<BT>(&self, unlock_timestamp: u64, future_value: BT)
where BT: Borrow<T>,

Sets a value and an unlock timestamp for the value. Setup needs to be commited after the unlock timestamp has passed. Unlock timestamp represents the moment in time when the future value can be updated as current value.

Source§

impl<SA, T, A> TimelockMapper<SA, T, A>
where SA: StorageMapperApi, T: TopEncode + TopDecode, A: StorageAddress<SA>,

Source

pub fn get(&self) -> T

Retrieves the current value from storage.

Source

pub fn get_unlock_timestamp(&self) -> u64

Retrieves the unlock timestamp from storage.

Source

pub fn get_future_value(&self) -> T

Retrieves the future value from storage.

Trait Implementations§

Source§

impl<SA, T> StorageMapper<SA> for TimelockMapper<SA, T>

Source§

fn new(base_key: StorageKey<SA>) -> Self

Will be called automatically by the #[storage_mapper] annotation generated code.
Source§

impl<SA, T> StorageMapperFromAddress<SA> for TimelockMapper<SA, T, ManagedAddress<SA>>

Source§

fn new_from_address( address: ManagedAddress<SA>, base_key: StorageKey<SA>, ) -> Self

Will be called automatically by the #[storage_mapper_from_address] annotation generated code.
Source§

impl<SA, T> TopEncodeMulti for TimelockMapper<SA, T>

Source§

fn multi_encode_or_handle_err<O, H>( &self, output: &mut O, h: H, ) -> Result<(), H::HandledErr>

Version of top_encode that can handle errors as soon as they occur. For instance in can exit immediately and make sure that if it returns, it is a success. By not deferring error handling, this can lead to somewhat smaller bytecode.
Source§

fn multi_encode<O>(&self, output: &mut O) -> Result<(), EncodeError>

Attempt to serialize the value to ouput.
Source§

impl<SA, T> TypeAbi for TimelockMapper<SA, T>

Source§

type Unmanaged = <T as TypeAbi>::Unmanaged

Source§

fn type_name() -> TypeName

Source§

fn type_name_rust() -> TypeName

Source§

fn provide_type_descriptions<TDC: TypeDescriptionContainer>( accumulator: &mut TDC, )

A type can provide more than its own name. For instance, a struct can also provide the descriptions of the type of its fields. TypeAbi doesn’t care for the exact accumulator type, which is abstracted by the TypeDescriptionContainer trait.
Source§

fn type_names() -> TypeNames

Source§

impl<SA, T> TypeAbiFrom<TimelockMapper<SA, T>> for PlaceholderOutput

Source§

impl<SA, T, R> TypeAbiFrom<TimelockMapper<SA, T>> for SingleValue<R>

Source§

impl<SA, T> TypeAbiFrom<TimelockMapper<SA, T>> for TimelockMapper<SA, T>

Auto Trait Implementations§

§

impl<SA, T, A> Freeze for TimelockMapper<SA, T, A>

§

impl<SA, T, A> RefUnwindSafe for TimelockMapper<SA, T, A>

§

impl<SA, T, A> Send for TimelockMapper<SA, T, A>
where A: Send, SA: Send, T: Send, <SA as HandleTypeInfo>::ManagedBufferHandle: Send,

§

impl<SA, T, A> Sync for TimelockMapper<SA, T, A>
where A: Sync, SA: Sync, T: Sync, <SA as HandleTypeInfo>::ManagedBufferHandle: Sync,

§

impl<SA, T, A> Unpin for TimelockMapper<SA, T, A>

§

impl<SA, T, A> UnwindSafe for TimelockMapper<SA, T, A>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

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

Source§

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<O, T> ProxyArg<O> for T
where O: TypeAbiFrom<T>, T: TopEncodeMulti,