pub struct CachedClock {
pub slot: u64,
pub epoch: u64,
pub unix_timestamp: i64,
}Expand description
Cached Clock sysvar fields.
Created once per instruction, used by multiple checks.
Each field is Option – populated lazily on first access
from account data.
Fields§
§slot: u64§epoch: u64§unix_timestamp: i64Implementations§
Source§impl CachedClock
impl CachedClock
Sourcepub fn from_account_data(data: &[u8]) -> Result<Self, ProgramError>
pub fn from_account_data(data: &[u8]) -> Result<Self, ProgramError>
Parse Clock sysvar from account data (40 bytes).
Call once at the start of your instruction, then pass the cached value to all checks that need clock data.
Sourcepub fn check_not_expired(&self, deadline: i64) -> Result<(), ProgramError>
pub fn check_not_expired(&self, deadline: i64) -> Result<(), ProgramError>
Check that a deadline has not passed.
Sourcepub fn check_expired(&self, deadline: i64) -> Result<(), ProgramError>
pub fn check_expired(&self, deadline: i64) -> Result<(), ProgramError>
Check that a deadline HAS passed (for claiming, unlocking, etc.).
Sourcepub fn check_within_window(
&self,
start: i64,
end: i64,
) -> Result<(), ProgramError>
pub fn check_within_window( &self, start: i64, end: i64, ) -> Result<(), ProgramError>
Check that now is within a time window [start, end].
Sourcepub fn check_cooldown(
&self,
last_action: i64,
cooldown_secs: i64,
) -> Result<(), ProgramError>
pub fn check_cooldown( &self, last_action: i64, cooldown_secs: i64, ) -> Result<(), ProgramError>
Check cooldown: enough time has passed since last action.
Sourcepub fn check_slot_staleness(
&self,
last_update_slot: u64,
max_age: u64,
) -> Result<(), ProgramError>
pub fn check_slot_staleness( &self, last_update_slot: u64, max_age: u64, ) -> Result<(), ProgramError>
Check slot staleness: last_update_slot is within max_age of current slot.
Auto Trait Implementations§
impl Freeze for CachedClock
impl RefUnwindSafe for CachedClock
impl Send for CachedClock
impl Sync for CachedClock
impl Unpin for CachedClock
impl UnsafeUnpin for CachedClock
impl UnwindSafe for CachedClock
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more