Tempo e Clock
O sysvar Clock fornece slot, epoch e unix_timestamp para regras baseadas em tempo: expirações, cliffs de vesting e rate limits. Slots são discretos; timestamps são aproximações de relógio de parede.
Busque em todas as páginas da documentação
O sysvar Clock fornece slot, epoch e unix_timestamp para regras baseadas em tempo: expirações, cliffs de vesting e rate limits. Slots são discretos; timestamps são aproximações de relógio de parede.
let clock = Clock::get()?;
if clock.unix_timestamp > deadline { return Err(ProgramError::InvalidAccountData); }Quando usar isso:
pub fn assert_not_expired(deadline: i64) -> Result<(), ProgramError> {
let now = Clock::get()?.unix_timestamp;
if now > deadline { return Err(ProgramError::InvalidAccountData); }
Ok(())
}O que isso demonstra:
| Campo | Uso |
|---|---|
| slot | Relativo ao cronograma do líder |
| unix_timestamp | Expiração humana |
| epoch | Períodos de staking |
Validadores têm deriva de timestamp limitada - projete períodos de carência.
// Store i64 deadline at init from client or admin.| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Cron off-chain | Não vinculante | Clock on-chain |
| Somente baseado em slot | Previsível | Confusão do usuário |
| Tempo de oráculo | Exagero | DeFi específico |
Constante conhecida - Sysvar::get.
Não aceite conta passada - use get.
Antes de 1970 raro - rejeite.
armazene start + duration.
Calcule unlocked = f(now).
Wrapper.
LiteSVM warp clock.
Pequena - não explorável em grande escala.
Sysvar diferente.
last_action_ts na conta.
Qualquer um pode chamar ix expire.
Layout do Clock estável.
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026