pub enum DirectMappingError {
NullInput,
ArithmeticOverflow,
TruncatedInput,
TooManyAccounts {
count: usize,
capacity: usize,
},
MalformedDuplicate {
slot: usize,
duplicate_of: usize,
},
InstructionDataMismatch,
PointerTableMisaligned,
PointerOutOfBounds {
slot: usize,
},
PointerMisaligned {
slot: usize,
},
NonCanonicalPointer {
slot: usize,
},
}Expand description
Failure reported by the host/replay SIMD-0449 conformance decoder.
The on-chain fast path deliberately trusts the loader: the SVM constructs
the pointer table and a program cannot alter it before entry. Replay tools,
alternate SVMs, fuzzers, and fixture consumers do not get that trust for
free, so deserialize_accounts_0449_checked validates the complete
account walk and requires every table entry to equal the canonical record
pointer the legacy ABI walk derives.
Variants§
NullInput
The input pointer was null.
ArithmeticOverflow
Integer arithmetic over the supplied frame bounds overflowed.
TruncatedInput
The supplied byte length ends in the middle of an ABI component.
TooManyAccounts
The frame contains more accounts than the caller-provided output.
MalformedDuplicate
A duplicate marker did not refer to a strictly earlier slot.
InstructionDataMismatch
The caller’s instruction-data slice is not the exact slice in input.
PointerTableMisaligned
The computed pointer table is not aligned to an eight-byte boundary.
PointerOutOfBounds
A table entry points outside the supplied input frame.
PointerMisaligned
A table entry is not aligned like a canonical account record.
NonCanonicalPointer
A table entry is in-bounds but does not name this slot’s canonical account record (including duplicate-slot canonicalization).