// file: kb-lib/src/decoder/solana/core.rs // version: 17 //! Solana Core decoder component. mod accounts; mod address_lookup_table; mod compute_budget; mod config; mod constants; mod decoder; mod event; mod feature; mod loaders; mod payload; mod precompiles; mod slashing; mod stake; mod system; mod vote; mod zk_elgamal; mod zk_token_proof; /// Expected role and privileges for one positional instruction account. pub(crate) use self::accounts::AccountRole as SolanaCoreAccountRole; /// Resolves positional instruction accounts and validates their core indexes. pub(crate) use self::accounts::resolve_accounts as solana_core_resolve_accounts; /// Returns declared Address Lookup Table instruction coverage. pub(crate) use self::address_lookup_table::address_lookup_table_coverage as solana_core_address_lookup_table_coverage; /// Decodes one Address Lookup Table instruction. pub(crate) use self::address_lookup_table::address_lookup_table_decode as solana_core_address_lookup_table_decode; /// Recognizes one Address Lookup Table instruction without producing an event. pub(crate) use self::address_lookup_table::address_lookup_table_recognize as solana_core_address_lookup_table_recognize; /// Returns declared Compute Budget instruction coverage. pub(crate) use self::compute_budget::compute_budget_coverage as solana_core_compute_budget_coverage; /// Decodes one Compute Budget instruction. pub(crate) use self::compute_budget::compute_budget_decode as solana_core_compute_budget_decode; /// Recognizes one Compute Budget instruction without producing an event. pub(crate) use self::compute_budget::compute_budget_recognize as solana_core_compute_budget_recognize; /// Returns declared Config Program instruction coverage. pub(crate) use self::config::config_coverage as solana_core_config_coverage; /// Decodes one generic Config Program store instruction. pub(crate) use self::config::config_decode as solana_core_config_decode; /// Recognizes one generic Config Program store instruction. pub(crate) use self::config::config_recognize as solana_core_config_recognize; /// Stable Address Lookup Table surface code. pub(crate) use self::constants::ADDRESS_LOOKUP_TABLE_SURFACE_CODE as SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE; /// Stable deprecated immutable BPF Loader surface code. pub(crate) use self::constants::BPF_LOADER_DEPRECATED_SURFACE_CODE as SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE; /// Stable immutable BPF Loader v2 surface code. pub(crate) use self::constants::BPF_LOADER_SURFACE_CODE as SOLANA_CORE_BPF_LOADER_SURFACE_CODE; /// Stable upgradeable BPF Loader surface code. pub(crate) use self::constants::BPF_LOADER_UPGRADEABLE_SURFACE_CODE as SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE; /// Stable Compute Budget surface code. pub(crate) use self::constants::COMPUTE_BUDGET_SURFACE_CODE as SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE; /// Stable Config Program surface code. pub(crate) use self::constants::CONFIG_SURFACE_CODE as SOLANA_CORE_CONFIG_SURFACE_CODE; /// Byte length of an Ed25519 public key. pub(crate) use self::constants::ED25519_PUBLIC_KEY_BYTES as SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES; /// Stable Ed25519 signature precompile surface code. pub(crate) use self::constants::ED25519_SURFACE_CODE as SOLANA_CORE_ED25519_SURFACE_CODE; /// Stable Feature Gate surface code. pub(crate) use self::constants::FEATURE_SURFACE_CODE as SOLANA_CORE_FEATURE_SURFACE_CODE; /// Stable Loader v4 surface code. pub(crate) use self::constants::LOADER_V4_SURFACE_CODE as SOLANA_CORE_LOADER_V4_SURFACE_CODE; /// Maximum retained native instruction payload accepted by the first decoder phase. pub(crate) use self::constants::MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES as SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES; /// Current native event payload contract version. pub(crate) use self::constants::NATIVE_EVENT_VERSION as SOLANA_CORE_NATIVE_EVENT_VERSION; /// Stable Native Loader surface code. pub(crate) use self::constants::NATIVE_LOADER_SURFACE_CODE as SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE; /// Maximum number of component bytes retained as a hexadecimal event prefix. pub(crate) use self::constants::PRECOMPILE_COMPONENT_PREFIX_BYTES as SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES; /// Stable protocol code shared by native Solana events. pub(crate) use self::constants::PROTOCOL_CODE as SOLANA_CORE_PROTOCOL_CODE; /// Byte length of a secp256k1 Ethereum address. pub(crate) use self::constants::SECP256K1_ETHEREUM_ADDRESS_BYTES as SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; /// Stable secp256k1 signature precompile surface code. pub(crate) use self::constants::SECP256K1_SURFACE_CODE as SOLANA_CORE_SECP256K1_SURFACE_CODE; /// Runtime maximum number of secp256r1 signatures in one precompile instruction. pub(crate) use self::constants::SECP256R1_MAX_SIGNATURES as SOLANA_CORE_SECP256R1_MAX_SIGNATURES; /// Byte length of a compressed secp256r1 public key. pub(crate) use self::constants::SECP256R1_PUBLIC_KEY_BYTES as SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES; /// Stable secp256r1 signature precompile surface code. pub(crate) use self::constants::SECP256R1_SURFACE_CODE as SOLANA_CORE_SECP256R1_SURFACE_CODE; /// Byte length shared by compact Ed25519, secp256k1 and secp256r1 signatures. pub(crate) use self::constants::SIGNATURE_BYTES as SOLANA_CORE_SIGNATURE_BYTES; /// Stable Slashing Program decoder surface code. pub(crate) use self::constants::SLASHING_SURFACE_CODE as SOLANA_CORE_SLASHING_SURFACE_CODE; /// Stable Stake Program surface code. pub(crate) use self::constants::STAKE_SURFACE_CODE as SOLANA_CORE_STAKE_SURFACE_CODE; /// Stable System Program surface code. pub(crate) use self::constants::SYSTEM_SURFACE_CODE as SOLANA_CORE_SYSTEM_SURFACE_CODE; /// Canonical tracing target for the Solana Core decoder component. pub(crate) use self::constants::TRACING_TARGET as SOLANA_CORE_TRACING_TARGET; /// Byte length of one secp256k1 offsets entry. pub(crate) use self::constants::U8_OFFSETS_BYTES as SOLANA_CORE_U8_OFFSETS_BYTES; /// Byte length of one Ed25519 or secp256r1 offsets entry. pub(crate) use self::constants::U16_OFFSETS_BYTES as SOLANA_CORE_U16_OFFSETS_BYTES; /// Stable Vote Program surface code. pub(crate) use self::constants::VOTE_SURFACE_CODE as SOLANA_CORE_VOTE_SURFACE_CODE; /// Stable native ZK ElGamal Proof surface code. pub(crate) use self::constants::ZK_ELGAMAL_PROOF_SURFACE_CODE as SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE; /// Stable historical ZK Token Proof surface code. pub(crate) use self::constants::ZK_TOKEN_PROOF_SURFACE_CODE as SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE; /// Builds one exact decoded native observation. pub(crate) use self::event::decoded_result as solana_core_decoded_result; /// Builds one failed native decode result. pub(crate) use self::event::failed_result as solana_core_failed_result; /// Builds one unsupported native decode result with a bounded diagnostic. pub(crate) use self::event::unsupported_result as solana_core_unsupported_result; /// Returns declared Feature Gate instruction coverage. pub(crate) use self::feature::feature_coverage as solana_core_feature_coverage; /// Decodes one Feature Gate instruction. pub(crate) use self::feature::feature_decode as solana_core_feature_decode; /// Recognizes one Feature Gate instruction without producing an event. pub(crate) use self::feature::feature_recognize as solana_core_feature_recognize; /// Returns declared loader instruction coverage. pub(crate) use self::loaders::loaders_coverage as solana_core_loaders_coverage; /// Decodes one loader instruction. pub(crate) use self::loaders::loaders_decode as solana_core_loaders_decode; /// Recognizes one loader instruction without producing an event. pub(crate) use self::loaders::loaders_recognize as solana_core_loaders_recognize; /// One resolved outer instruction payload and its provenance relative to the target instruction. pub(crate) use self::payload::ResolvedInstructionPayload as SolanaCoreResolvedInstructionPayload; /// Returns a hexadecimal prefix no longer than the available byte slice. pub(crate) use self::payload::bounded_hexadecimal_prefix as solana_core_bounded_hexadecimal_prefix; /// Extracts one exact bounded byte slice with checked arithmetic. pub(crate) use self::payload::bounded_slice as solana_core_bounded_slice; /// Decodes one retained base64 instruction payload with an explicit byte limit. pub(crate) use self::payload::decode_instruction_data as solana_core_decode_instruction_data; /// Returns the decoded target payload length when retained and valid. pub(crate) use self::payload::decoded_payload_length as solana_core_decoded_payload_length; /// Returns the SHA-256 of the decoded target instruction data when available. pub(crate) use self::payload::decoded_payload_sha256 as solana_core_decoded_payload_sha256; /// Returns the lowercase SHA-256 of one bounded byte slice. pub(crate) use self::payload::hash_bytes as solana_core_hash_bytes; /// Returns a normalized lowercase hexadecimal prefix. pub(crate) use self::payload::hexadecimal_prefix as solana_core_hexadecimal_prefix; /// Returns a stable payload hash from core or computes it from retained JSON. pub(crate) use self::payload::payload_hash as solana_core_payload_hash; /// Reads one little-endian `u32` from an exact byte range. pub(crate) use self::payload::read_u32_le as solana_core_read_u32_le; /// Reads one little-endian `u64` from an exact byte range. pub(crate) use self::payload::read_u64_le as solana_core_read_u64_le; /// Resolves a secp256k1 instruction reference. The runtime format has no current-instruction /// sentinel: every `u8` value is an explicit outer instruction index. pub(crate) use self::payload::resolve_u8_instruction_payload as solana_core_resolve_u8_instruction_payload; /// Resolves an Ed25519 or secp256r1 instruction reference using the official `u16::MAX` sentinel. pub(crate) use self::payload::resolve_u16_instruction_payload as solana_core_resolve_u16_instruction_payload; /// Returns the numeric outer index of the target instruction. pub(crate) use self::payload::target_outer_instruction_index as solana_core_target_outer_instruction_index; /// Returns declared signature precompile coverage. pub(crate) use self::precompiles::precompiles_coverage as solana_core_precompiles_coverage; /// Decodes one signature precompile instruction structurally without cryptographic recomputation. pub(crate) use self::precompiles::precompiles_decode as solana_core_precompiles_decode; /// Recognizes one signature precompile instruction without resolving referenced data. pub(crate) use self::precompiles::precompiles_recognize as solana_core_precompiles_recognize; /// Returns declared Slashing Program instruction coverage. pub(crate) use self::slashing::slashing_coverage as solana_core_slashing_coverage; /// Decodes one Slashing Program instruction. pub(crate) use self::slashing::slashing_decode as solana_core_slashing_decode; /// Recognizes one Slashing Program instruction without producing an event. pub(crate) use self::slashing::slashing_recognize as solana_core_slashing_recognize; /// Returns declared Stake Program instruction coverage. pub(crate) use self::stake::stake_coverage as solana_core_stake_coverage; /// Decodes one Stake Program instruction. pub(crate) use self::stake::stake_decode as solana_core_stake_decode; /// Recognizes one Stake Program instruction without producing an event. pub(crate) use self::stake::stake_recognize as solana_core_stake_recognize; /// Returns declared System Program instruction coverage. pub(crate) use self::system::system_coverage as solana_core_system_coverage; /// Decodes one System Program instruction. pub(crate) use self::system::system_decode as solana_core_system_decode; /// Recognizes one System Program instruction without producing an event. pub(crate) use self::system::system_recognize as solana_core_system_recognize; /// Returns declared Vote Program instruction coverage. pub(crate) use self::vote::vote_coverage as solana_core_vote_coverage; /// Decodes one Vote Program instruction. pub(crate) use self::vote::vote_decode as solana_core_vote_decode; /// Recognizes one Vote Program instruction without producing an event. pub(crate) use self::vote::vote_recognize as solana_core_vote_recognize; /// Returns declared ZK ElGamal Proof instruction coverage. pub(crate) use self::zk_elgamal::zk_elgamal_coverage as solana_core_zk_elgamal_coverage; /// Decodes one native ZK ElGamal Proof instruction without recomputing the proof. pub(crate) use self::zk_elgamal::zk_elgamal_decode as solana_core_zk_elgamal_decode; /// Recognizes one native ZK ElGamal Proof instruction. pub(crate) use self::zk_elgamal::zk_elgamal_recognize as solana_core_zk_elgamal_recognize; /// Returns declared historical and current ZK Token Proof coverage. pub(crate) use self::zk_token_proof::zk_token_proof_coverage as solana_core_zk_token_proof_coverage; /// Decodes one historical ZK Token Proof layout without recomputing any proof. pub(crate) use self::zk_token_proof::zk_token_proof_decode as solana_core_zk_token_proof_decode; /// Recognizes one historical ZK Token Proof layout or the current no-op runtime fallback. pub(crate) use self::zk_token_proof::zk_token_proof_recognize as solana_core_zk_token_proof_recognize; /// Runtime-native Solana decoder with phased maximal native coverage. pub use self::decoder::SolanaCoreDecoder;