Expand description
Raw loader input parsing for Hopper Native.
This is the single source of truth for Solana loader input decoding. It owns duplicate-account resolution, canonical-account lookup, and original-index tracking so higher layers operate on already-resolved account views.
Structs§
- Frame
Info - Summary of a safely-parsed loader input frame.
- RawAccount
Index - Metadata for one parsed account slot in the loader input.
- RawInstruction
Frame - Instruction tail discovered after scanning the loader input buffer.
Enums§
- Direct
Mapping Error - Failure reported by the host/replay SIMD-0449 conformance decoder.
- Frame
Error - Errors returned by the safe parser.
Constants§
- MAX_
SAFE_ ACCOUNT_ SLOTS - Hard cap on accounts the safe parser will record slot offsets for.
- SIMD_
0449_ TABLE_ ENABLED - Whether this build trusts the SIMD-0449 account-pointer table
(
feature = "simd-0449"). Enabling it before the SIMD activates on the target cluster reads garbage, ship it only alongside the cluster gate, exactly likesimd-0321.
Functions§
- deserialize_
accounts ⚠ - Deserialize the loader input into
AccountViews. - deserialize_
accounts_ ⚠0449 - SIMD-0449 direct account resolution: overlay the runtime’s appended
account-pointer table as a borrowed
[AccountView], one bounds computation and onefrom_raw_parts, then capture each account’s invocation-wide resize baseline. - deserialize_
accounts_ ⚠0449_ checked - Validate and consume a SIMD-0449 account-pointer table.
- deserialize_
accounts_ ⚠0449_ into - Adapter matching the
deserialize_accounts_fastshape: copy up toMAXtable entries into the caller’s array (8 bytes per account, a pointer copy, not a record parse) so the existing entrypoint plumbing consumes the table without changing its account storage. - deserialize_
accounts_ ⚠fast - Fast two-argument deserialize: instruction data and program id are provided directly by the caller (from the SVM’s second entrypoint register), so the walk stops at the last materialized account instead of crossing the rest.
- deserialize_
leading_ ⚠accounts - Materialize at most
MAXleading account views without walking to the instruction tail. - loader_
account_ ⚠count - The number of accounts the loader serialized: the first word of the input buffer. The count-exact entrypoint compares it with the matched arm’s bound before walking anything, so accounts past the bound are refused instead of silently dropped.
- parse_
instruction_ frame_ checked - Parse a loader-input byte buffer with full bounds checking.
- scan_
instruction_ ⚠frame - Parse just the instruction tail and account span from the loader input.