jiminy-core
Account layout, zero-copy IO, validation, PDA, sysvar access, lifecycle, math, time checks. Everything your pinocchio program needs before it touches a token.
#![no_std] / no_alloc / BPF-safe
[]
= "0.12"
What's in here
account |
8-byte header, AccountReader, AccountWriter, SliceCursor, lifecycle (close/realloc), pod, zero_copy_layout!, ZeroCopySlice, list, bitflags |
check |
Owner / signer / key checks, PDA derivation and verification |
instruction |
Transaction introspection via the Instructions sysvar |
math |
Checked arithmetic, BPS helpers, scaling with u128 intermediates |
sysvar |
Clock and Rent readers (syscall-based + account-based) |
state |
State-machine transition validation |
time |
Deadline, cooldown, slot-staleness checks |
event |
Zero-alloc event emission via sol_log_data |
programs |
Well-known program IDs (feature-gated) |
New in 0.12
zero_copy_layout!macro: declare#[repr(C)]structs that overlay directly onto account bytes. No proc macros.ZeroCopySlice/ZeroCopySliceMut: length-prefixed arrays in account data. Zero-copy iteration, indexing, mutation.pod_read<T>(): alignment-safe owned copy viaread_unaligned. Works everywhere.clock_timestamp(),clock_slot(),clock_epoch(): syscall-based sysvar access. No account slot needed.rent_lamports_per_byte_year(): same, for Rent.
Usage
use *;
let reader = new_checked?;
let owner = reader.pubkey_at?;
let amount = reader.u64_at?;
programs feature is on by default. log feature adds sol_log wrappers.
About
Built by MoonManQuark / Bluefoot Labs.
Donations: solanadevdao.sol (F42ZovBoRJZU4av5MiESVwJWnEx8ZQVFkc1RM29zMxNT)
License
Apache-2.0