Account information.
Hashing with the
blake3 hash function.
Utilities for the
borsh serialization format, version 0.9.
Utilities for the
borsh serialization format, version 0.10.
Utilities for the
borsh serialization format, version 1.
The latest BPF loader native program.
The original and now deprecated Solana BPF loader.
An upgradeable BPF loader native program.
Information about the network’s clock, ticks, slots, etc.
Debug-formatting of account data.
Converting custom error codes to enums.
The Rust-based BPF program entrypoint supported by the latest BPF loader.
The Rust-based BPF program entrypoint supported by the original BPF loader.
Configuration for epochs and slots.
Runtime features.
Calculation of transaction fees.
Hashing with the
SHA-256 hash function, and a general
Hash
type.
A designated address for burning lamports.
Types for directing the execution of Solana programs.
Hashing with the
keccak (SHA-3) hash function.
Information about the last restart slot (hard fork).
The v4 built-in loader program.
Instructions for the v4 built-in loader program.
Logging utilities for Rust-based Solana programs.
Sequences of
Instruction
s executed within a single transaction.
Definitions for the native SOL token and its fractional lamports.
Durable transaction nonces.
Hashing with the
Poseidon hash function.
Cross-program invocation.
Basic low-level memory operations.
A C representation of Rust’s Option
, used across the FFI
boundary for Solana program interfaces.
The
Pack
serialization trait.
Implementations of syscalls used when solana-program
is built for non-SBF targets.
Contains a single utility function for deserializing from
bincode.
Solana account addresses.
Configuration for network
rent.
A trait for sanitizing values and members of over the wire messages.
A vector of Solana SDK IDs.
Public key recovery from
secp256k1 ECDSA signatures.
Integers that serialize to variable size.
Helpers for reading and writing bytes.
Compact serde-encoding of vectors with small length.
Declarations of Solana program syscalls.
Instructions and constructors for the system program.
Access to special accounts with dynamically-updated data.
Define the default global allocator.
Define the default global panic handler.
Defines the program’s ID. This should be used at the root of all Anchor
based programs.
Declare an external program based on its IDL.
Declares an ID that implements
SysvarId
.
Logs an event that can be subscribed to by clients.
Uses the
sol_log_data
syscall which results in the following log:
Declare the program entrypoint and set up global handlers.
Declare the program entrypoint.
Returns with the given error.
Use this with a custom error type.
Implements the
Sysvar::get
method for both SBF and host targets.
Print a message to the log.
Print a message to the log.
Ensures a condition is true, otherwise returns with the given error.
Use this with or without a custom error type.
Ensures two NON-PUBKEY values are equal.
Ensures the first NON-PUBKEY value is greater than the second
NON-PUBKEY value.
Ensures the first NON-PUBKEY value is greater than or equal
to the second NON-PUBKEY value.
Ensures two pubkeys values are equal.
Ensures two pubkeys are not equal.
Ensures two NON-PUBKEY values are not equal.
Convenience macro for doing integer division where the operation’s safety
can be checked at compile-time.
Wrapper around
AccountInfo
that verifies program ownership and deserializes underlying data into a Rust type.
Account information
Type facilitating on demand zero copy deserialization.
Describes a single account read or written by a program during instruction
execution.
A representation of network time.
Provides non-argument inputs to the program.
Context specifying non-argument inputs for cross-program-invocations.
Instructions sysvar, dummy type.
Type validating that the account is one of a set of given Programs
Wrapper around
AccountInfo
that verifies program ownership and deserializes underlying data into a Rust type.
Type validating that the account is the given Program
Configuration of network rent.
Type validating that the account signed the transaction. No other ownership
or type checks are done. If this is used, one should not try to access the
underlying account data.
A bitvector indicating which slots are present in the past epoch.
Type validating that the account is owned by the system program
Type validating that the account is a sysvar and deserializing it.
Explicit wrapper for AccountInfo types to emphasize
that no checks are performed