jiminy-vesting
Linear + cliff vesting, stepped schedules, periodic unlock, claimable amount calculation.
= "0.17"
use *;
let vested = vested_amount;
check_cliff_reached?;
let claim = claimable;
vested_amount is defensive against caller-provided timestamps: any schedule
where start > cliff, cliff > end, or now < start returns 0 rather than
wrapping (now - start) into a huge u128 and silently releasing total.
Callers don't need a separate sanity check on the schedule shape.
Also has unlocked_at_step for discrete step schedules and elapsed_steps for counting complete periods.
#![no_std] / no_alloc / BPF-safe / Apache-2.0