Files
khadhroony-bot3/kb-lib/src/decoder.rs
2026-08-07 07:14:49 +02:00

942 lines
52 KiB
Rust

// file: kb-lib/src/decoder.rs
// version: 17
//! Consolidated decoder modules.
mod adapter;
mod amm;
mod anchor;
mod api;
mod bridge;
mod clmm;
mod cpmm;
mod dlmm;
mod fees;
mod governance;
mod launchpad;
mod lending;
mod lock;
mod metadata;
mod nft;
mod orderbook;
mod perpetuals;
mod router;
mod rwa;
mod solana;
mod spl;
mod stable;
mod staking;
mod storage;
mod strategy;
mod treasury;
mod vault;
mod vesting;
mod wallet;
mod weighted;
/// Reserved `kb-lib.decoder.adapter.saber_decimal_wrapper` decoder.
pub use self::adapter::DcAdapterSaberDecimalWrapperDecoder;
/// Reserved `kb-lib.decoder.adapter.spl_token_wrap` decoder.
pub use self::adapter::DcAdapterSplTokenWrapDecoder;
/// Reserved `kb-lib.decoder.amm.aldrin_v1` decoder.
pub use self::amm::DcAmmAldrinV1Decoder;
/// Reserved `kb-lib.decoder.amm.aldrin_v2` decoder.
pub use self::amm::DcAmmAldrinV2Decoder;
/// Reserved `kb-lib.decoder.amm.alphaq` decoder.
pub use self::amm::DcAmmAlphaqDecoder;
/// Reserved `kb-lib.decoder.amm.believe` decoder.
pub use self::amm::DcAmmBelieveDecoder;
/// Reserved `kb-lib.decoder.amm.bonk_swap` decoder.
pub use self::amm::DcAmmBonkSwapDecoder;
/// Reserved `kb-lib.decoder.amm.fluxbeam` decoder.
pub use self::amm::DcAmmFluxbeamDecoder;
/// Reserved `kb-lib.decoder.amm.goon_fi` decoder.
pub use self::amm::DcAmmGoonFiDecoder;
/// Reserved `kb-lib.decoder.amm.goosefx_gamma` decoder.
pub use self::amm::DcAmmGoosefxGammaDecoder;
/// Reserved `kb-lib.decoder.amm.goosefx_v2` decoder.
pub use self::amm::DcAmmGoosefxV2Decoder;
/// Reserved `kb-lib.decoder.amm.guac_swap` decoder.
pub use self::amm::DcAmmGuacSwapDecoder;
/// Reserved `kb-lib.decoder.amm.lifinity_swap_v2` decoder.
pub use self::amm::DcAmmLifinitySwapV2Decoder;
/// Reserved `kb-lib.decoder.amm.metadao_v0_5` decoder.
pub use self::amm::DcAmmMetadaoV05Decoder;
/// Reserved `kb-lib.decoder.amm.meteora_damm_v1` decoder.
pub use self::amm::DcAmmMeteoraDammV1Decoder;
/// Reserved `kb-lib.decoder.amm.meteora_damm_v2` decoder.
pub use self::amm::DcAmmMeteoraDammV2Decoder;
/// Reserved `kb-lib.decoder.amm.obric_v2` decoder.
pub use self::amm::DcAmmObricV2Decoder;
/// Reserved `kb-lib.decoder.amm.one_dex` decoder.
pub use self::amm::DcAmmOneDexDecoder;
/// Reserved `kb-lib.decoder.amm.pump_swap` decoder.
pub use self::amm::DcAmmPumpSwapDecoder;
/// Reserved `kb-lib.decoder.amm.raydium_lp_v4` decoder.
pub use self::amm::DcAmmRaydiumLpV4Decoder;
/// Reserved `kb-lib.decoder.amm.solfi` decoder.
pub use self::amm::DcAmmSolfiDecoder;
/// Reserved `kb-lib.decoder.amm.solfi_v2` decoder.
pub use self::amm::DcAmmSolfiV2Decoder;
/// Reserved `kb-lib.decoder.amm.vertigo` decoder.
pub use self::amm::DcAmmVertigoDecoder;
/// Reserved `kb-lib.decoder.amm.woofi` decoder.
pub use self::amm::DcAmmWoofiDecoder;
/// Reserved `kb-lib.decoder.amm.zero_fi` decoder.
pub use self::amm::DcAmmZeroFiDecoder;
/// Reserved `kb-lib.decoder.amm.zora` decoder.
pub use self::amm::DcAmmZoraDecoder;
/// Reserved `kb-lib.decoder.anchor` decoder.
pub use self::anchor::DcAnchorDecoder;
/// Current contextual core instruction input contract version.
pub use self::api::DC_API_CORE_INSTRUCTION_INPUT_CONTRACT_VERSION;
/// Stable contextual decoded observation.
pub use self::api::DcApiDecodedObservation;
/// Machine-readable decoder coverage declaration.
pub use self::api::DcApiDecoderCoverageDeclaration;
/// Declared decoder coverage entry kind.
pub use self::api::DcApiDecoderCoverageEntryKind;
/// Structured decoder diagnostic.
pub use self::api::DcApiDecoderDiagnostic;
/// Complete decoder execution result.
pub use self::api::DcApiDecoderExecutionResult;
/// Stable decoder identity.
pub use self::api::DcApiDecoderIdentity;
/// Decoder terminal result status.
pub use self::api::DcApiDecoderOutcomeStatus;
/// Explicit decoding proof.
pub use self::api::DcApiDecoderProof;
/// Decoding proof category.
pub use self::api::DcApiDecoderProofKind;
/// Deterministic decoder recognition result.
pub use self::api::DcApiDecoderRecognition;
/// Exposes the decoder support level.
pub use self::api::DcApiDecoderSupport;
/// One statically declared decoder surface.
pub use self::api::DcApiDecoderSurface;
/// Initial decoder implementation placeholder for API-level tests.
pub use self::api::DcApiInitialDecoder;
/// Contextual instruction decoder contract.
pub use self::api::DcApiInstructionDecoder;
/// Exposes the common protocol decoder trait.
pub use self::api::DcApiProtocolDecoder;
/// Computes the deterministic contextual input hash.
pub use self::api::decoder_api_contextual_input_hash;
/// Returns true when a decoder declares the exact program id.
pub use self::api::decoder_api_decoder_handles_program_id;
/// Computes a deterministic lowercase SHA-256 hash for one JSON value.
pub use self::api::decoder_api_deterministic_json_hash;
/// Extracts the first eight payload bytes as hexadecimal when available.
pub use self::api::decoder_api_discriminator_8_hex;
/// Reserved `kb-lib.decoder.bridge.circle_cctp_token_messenger_minter` decoder.
pub use self::bridge::DcBridgeCircleCctpTokenMessengerMinterDecoder;
/// Reserved `kb-lib.decoder.bridge.circle_cctp_token_messenger_minter_v2` decoder.
pub use self::bridge::DcBridgeCircleCctpTokenMessengerMinterV2Decoder;
/// Reserved `kb-lib.decoder.bridge.layer_zero_endpoint` decoder.
pub use self::bridge::DcBridgeLayerZeroEndpointDecoder;
/// Reserved `kb-lib.decoder.bridge.layer_zero_executor` decoder.
pub use self::bridge::DcBridgeLayerZeroExecutorDecoder;
/// Reserved `kb-lib.decoder.clmm.byreal` decoder.
pub use self::clmm::DcClmmByrealDecoder;
/// Reserved `kb-lib.decoder.clmm.fusion` decoder.
pub use self::clmm::DcClmmFusionDecoder;
/// Reserved `kb-lib.decoder.clmm.orca_whirlpool` decoder.
pub use self::clmm::DcClmmOrcaWhirlpoolDecoder;
/// Reserved `kb-lib.decoder.clmm.pancake_swap` decoder.
pub use self::clmm::DcClmmPancakeSwapDecoder;
/// Reserved `kb-lib.decoder.clmm.raydium` decoder.
pub use self::clmm::DcClmmRaydiumDecoder;
/// Reserved `kb-lib.decoder.clmm.stabble` decoder.
pub use self::clmm::DcClmmStabbleDecoder;
/// Reserved `kb-lib.decoder.cpmm.raydium` decoder.
pub use self::cpmm::DcCpmmRaydiumDecoder;
/// Reserved `kb-lib.decoder.dlmm.meteora` decoder.
pub use self::dlmm::DcDlmmMeteoraDecoder;
/// Reserved `kb-lib.decoder.fees.bags_fee_share_v1` decoder.
pub use self::fees::DcFeesBagsFeeShareV1Decoder;
/// Reserved `kb-lib.decoder.fees.bags_fee_share_v2` decoder.
pub use self::fees::DcFeesBagsFeeShareV2Decoder;
/// Reserved `kb-lib.decoder.admin.pump_fees` decoder.
pub use self::fees::DcFeesPumpFeesDecoder;
/// Reserved `kb-lib.decoder.governance.metadao_bid_wall` decoder.
pub use self::governance::DcGovernanceMetadaoBidWallDecoder;
/// Reserved `kb-lib.decoder.amm.metadao_futarchy_amm` decoder.
pub use self::governance::DcGovernanceMetadaoFutarchyDecoder;
/// Reserved `kb-lib.decoder.governance.squads_multisig` decoder.
pub use self::governance::DcGovernanceSquadsMultisigDecoder;
/// Reserved `kb-lib.decoder.launchpad.boop_fun` decoder.
pub use self::launchpad::DcLaunchpadBoopFunDecoder;
/// Reserved `kb-lib.decoder.launchpad.metadao_ico` decoder.
pub use self::launchpad::DcLaunchpadMetadaoIcoDecoder;
/// Reserved `kb-lib.decoder.launchpad.meteora_dbc` decoder.
pub use self::launchpad::DcLaunchpadMeteoraDbcDecoder;
/// Reserved `kb-lib.decoder.launchpad.moonit` decoder.
pub use self::launchpad::DcLaunchpadMoonitDecoder;
/// Reserved `kb-lib.decoder.launchpad.orca_wavebreak` decoder.
pub use self::launchpad::DcLaunchpadOrcaWavebreakDecoder;
/// Reserved `kb-lib.decoder.launchpad.printr` decoder.
pub use self::launchpad::DcLaunchpadPrintrDecoder;
/// Reserved `kb-lib.decoder.launchpad.pump_fun` decoder.
pub use self::launchpad::DcLaunchpadPumpFunDecoder;
/// Reserved `kb-lib.decoder.launchpad.pump_pumpup_ai` decoder.
pub use self::launchpad::DcLaunchpadPumpPumpupAiDecoder;
/// Reserved `kb-lib.decoder.launchpad.raydium_launchlab` decoder.
pub use self::launchpad::DcLaunchpadRaydiumLaunchlabDecoder;
/// Reserved `kb-lib.decoder.amm.virtuals` decoder.
pub use self::launchpad::DcLaunchpadVirtualsDecoder;
/// Reserved `kb-lib.decoder.lending.clone` decoder.
pub use self::lending::DcLendingCloneDecoder;
/// Reserved `kb-lib.decoder.lending.jupiter_lend_borrow` decoder.
pub use self::lending::DcLendingJupiterLendBorrowDecoder;
/// Reserved `kb-lib.decoder.lending.jupiter_lend_earn` decoder.
pub use self::lending::DcLendingJupiterLendEarnDecoder;
/// Reserved `kb-lib.decoder.lending.jupiter_lend_flash_loan` decoder.
pub use self::lending::DcLendingJupiterLendFlashLoanDecoder;
/// Reserved `kb-lib.decoder.lending.jupiter_lend_liquidity` decoder.
pub use self::lending::DcLendingJupiterLendLiquidityDecoder;
/// Reserved `kb-lib.decoder.lending.kamino` decoder.
pub use self::lending::DcLendingKaminoDecoder;
/// Reserved `kb-lib.decoder.lending.marginfi_v2` decoder.
pub use self::lending::DcLendingMarginfiV2Decoder;
/// Reserved `kb-lib.decoder.lock.raydium_lp` decoder.
pub use self::lock::DcLockRaydiumLpDecoder;
/// Approve Collection Authority discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR;
/// Approve Use Authority discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR;
/// Bubblegum Set Collection Size discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR;
/// Burn discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_BURN_DISCRIMINATOR;
/// Historical Burn Edition NFT discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR;
/// Historical Burn NFT discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR;
/// Close Accounts discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR;
/// Close Escrow Account discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR;
/// Collect discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_COLLECT_DISCRIMINATOR;
/// Convert Master Edition V1 to V2 discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR;
/// Modern Create discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CREATE_DISCRIMINATOR;
/// Create Escrow Account discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR;
/// Historical Create Master Edition discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR;
/// Create Master Edition V3 discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR;
/// Historical Create Metadata Account discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR;
/// Historical Create Metadata Account V2 discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR;
/// Create Metadata Account V3 discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR;
/// Delegate discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_DELEGATE_DISCRIMINATOR;
/// Deprecated Create Master Edition discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR;
/// Deprecated Create Reservation List discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR;
/// Deprecated printing-token mint-new-edition discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR;
/// Deprecated Mint Printing Tokens discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR;
/// Deprecated Mint Printing Tokens Via Token discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR;
/// Deprecated Set Reservation List discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR;
/// Number of bytes retained in malformed-wire diagnostics.
pub(crate) use self::metadata::DC_METADATA_MTM_DIAGNOSTIC_PREFIX_BYTES;
/// Stable event payload contract version.
pub(crate) use self::metadata::DC_METADATA_MTM_EVENT_VERSION;
/// Freeze Delegated Account discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR;
/// Current pre-release instruction inventory.
pub(crate) use self::metadata::DC_METADATA_MTM_INSTRUCTION_ENTRIES;
/// Lock discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_LOCK_DISCRIMINATOR;
/// Maximum encoded base64 instruction payload size.
pub(crate) use self::metadata::DC_METADATA_MTM_MAX_BASE64_BYTES;
/// Maximum number of instruction accounts accepted by this decoder.
pub(crate) use self::metadata::DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS;
/// Maximum retained instruction payload size.
pub(crate) use self::metadata::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES;
/// Exhaustive published Metaplex account-key inventory.
pub use self::metadata::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT;
/// Migrate discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_MIGRATE_DISCRIMINATOR;
/// Modern Mint discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_MINT_DISCRIMINATOR;
/// Mint New Edition From Master Edition Via Token discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR;
/// Mint New Edition From Master Edition Via Vault Proxy discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR;
/// Modern Print discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_PRINT_DISCRIMINATOR;
/// Puff Metadata discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR;
/// Remove Creator Verification discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR;
/// Resize discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_RESIZE_DISCRIMINATOR;
/// Revoke Collection Authority discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR;
/// Revoke discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_REVOKE_DISCRIMINATOR;
/// Revoke Use Authority discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR;
/// Set And Verify Collection discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR;
/// Set And Verify Sized Collection Item discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR;
/// Set Collection Size discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR;
/// Set Token Standard discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR;
/// Sign Metadata discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR;
/// Stable decoder surface code.
pub(crate) use self::metadata::DC_METADATA_MTM_SURFACE_CODE;
/// Thaw Delegated Account discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR;
/// Transfer discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_TRANSFER_DISCRIMINATOR;
/// Transfer Out Of Escrow discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR;
/// Unlock discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_UNLOCK_DISCRIMINATOR;
/// Unverify Collection discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR;
/// Modern Unverify discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR;
/// Unverify Sized Collection Item discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR;
/// Modern Update discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_UPDATE_DISCRIMINATOR;
/// Historical Update Metadata Account discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR;
/// Update Metadata Account V2 discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR;
/// Update Primary Sale Happened Via Token discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR;
/// Modern Use discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_USE_DISCRIMINATOR;
/// Utilize discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_UTILIZE_DISCRIMINATOR;
/// Verify Collection discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR;
/// Modern Verify discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_VERIFY_DISCRIMINATOR;
/// Verify Sized Collection Item discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR;
/// Account contract for `Allocate`.
pub(crate) use self::metadata::DC_METADATA_SPM_ALLOCATE_ACCOUNT_CONTRACTS;
/// Exact fixed byte length of one Buffer account header.
pub use self::metadata::DC_METADATA_SPM_BUFFER_HEADER_BYTES;
/// Account contract for `Close`.
pub(crate) use self::metadata::DC_METADATA_SPM_CLOSE_ACCOUNT_CONTRACTS;
/// Surfaces handled by the Solana Program Metadata decoder.
pub(crate) use self::metadata::DC_METADATA_SPM_DECODER_SURFACES;
/// Maximum instruction prefix retained in hexadecimal diagnostics.
pub(crate) use self::metadata::DC_METADATA_SPM_DIAGNOSTIC_PREFIX_BYTES;
/// Stable event schema version for decoded Solana Program Metadata instructions.
pub(crate) use self::metadata::DC_METADATA_SPM_EVENT_VERSION;
/// Account contract for `Extend`.
pub(crate) use self::metadata::DC_METADATA_SPM_EXTEND_ACCOUNT_CONTRACTS;
/// Exact byte length of one external-account data reference.
pub use self::metadata::DC_METADATA_SPM_EXTERNAL_DATA_BYTES;
/// Account contract for `Initialize`.
pub(crate) use self::metadata::DC_METADATA_SPM_INITIALIZE_ACCOUNT_CONTRACTS;
/// Current stable instruction inventory for program releases 1.0.0 and 1.0.1.
pub(crate) use self::metadata::DC_METADATA_SPM_INSTRUCTION_ENTRIES;
/// Maximum Solana account-data length accepted by bounded account decoders.
pub use self::metadata::DC_METADATA_SPM_MAX_ACCOUNT_BYTES;
/// Maximum instruction-account count accepted by the contextual decoder.
pub(crate) use self::metadata::DC_METADATA_SPM_MAX_INSTRUCTION_ACCOUNTS;
/// Maximum retained instruction payload accepted by the contextual decoder.
pub(crate) use self::metadata::DC_METADATA_SPM_MAX_INSTRUCTION_BYTES;
/// Exact fixed byte length of one Metadata account header.
pub use self::metadata::DC_METADATA_SPM_METADATA_HEADER_BYTES;
/// Program ids handled by the Solana Program Metadata decoder.
pub(crate) use self::metadata::DC_METADATA_SPM_PROGRAM_IDS;
/// Exact byte length of one Solana Program Metadata seed.
pub use self::metadata::DC_METADATA_SPM_SEED_BYTES;
/// Account contract for `SetAuthority`.
pub(crate) use self::metadata::DC_METADATA_SPM_SET_AUTHORITY_ACCOUNT_CONTRACTS;
/// Account contract for `SetData`.
pub(crate) use self::metadata::DC_METADATA_SPM_SET_DATA_ACCOUNT_CONTRACTS;
/// Account contract for `SetImmutable`.
pub(crate) use self::metadata::DC_METADATA_SPM_SET_IMMUTABLE_ACCOUNT_CONTRACTS;
/// Stable Solana Program Metadata decoder surface code.
pub(crate) use self::metadata::DC_METADATA_SPM_SURFACE_CODE;
/// Account contract for `Trim`.
pub(crate) use self::metadata::DC_METADATA_SPM_TRIM_ACCOUNT_CONTRACTS;
/// Account contract for `Write`.
pub(crate) use self::metadata::DC_METADATA_SPM_WRITE_ACCOUNT_CONTRACTS;
/// Exact decoder for the Metaplex Token Metadata program.
pub use self::metadata::DcMetadataMetaplexTokenMetadataDecoder;
/// Canonical projection shared by Collection and Use Authority records.
pub use self::metadata::DcMetadataMtmAuthorityRecordAccountSnapshot;
/// Stable identity and policy of one canonical account snapshot.
pub use self::metadata::DcMetadataMtmCanonicalAccountIdentity;
/// Lifecycle class of one canonical account layout.
pub use self::metadata::DcMetadataMtmCanonicalAccountLifecycle;
/// Provenance retained for one canonical account observation.
pub use self::metadata::DcMetadataMtmCanonicalAccountProvenance;
/// Execution policy separated from historical materialization.
pub use self::metadata::DcMetadataMtmCanonicalExecutionPolicy;
/// Materialization policy for active or historical state.
pub use self::metadata::DcMetadataMtmCanonicalMaterializationPolicy;
/// Canonical account envelope used by materializers and replay.
pub use self::metadata::DcMetadataMtmCanonicalMetadataAccountSnapshot;
/// Typed canonical Metaplex account state.
pub use self::metadata::DcMetadataMtmCanonicalMetadataAccountState;
/// Origin of one canonical account observation.
pub use self::metadata::DcMetadataMtmCanonicalObservationSource;
/// Canonical projection shared by Metadata and Holder delegate records.
pub use self::metadata::DcMetadataMtmDelegateRecordAccountSnapshot;
/// Supported edition account layout.
pub use self::metadata::DcMetadataMtmEditionAccountKind;
/// Canonical bounded projection of one edition or master-edition account.
pub use self::metadata::DcMetadataMtmEditionAccountSnapshot;
/// Supported Edition Marker account layout.
pub use self::metadata::DcMetadataMtmEditionMarkerAccountKind;
/// Canonical bounded projection of one Edition Marker account.
pub use self::metadata::DcMetadataMtmEditionMarkerAccountSnapshot;
/// Bounded error returned while decoding a Metadata account.
pub use self::metadata::DcMetadataMtmMetadataAccountDecodeError;
/// One entry in the exhaustive published account-key audit.
pub use self::metadata::DcMetadataMtmMetadataAccountLayoutAuditEntry;
/// Canonical bounded projection of one Metadata account.
pub use self::metadata::DcMetadataMtmMetadataAccountSnapshot;
/// One bounded historical reservation entry.
pub use self::metadata::DcMetadataMtmReservationEntrySnapshot;
/// Historical Reservation List account generation.
pub use self::metadata::DcMetadataMtmReservationListAccountKind;
/// Canonical decode-only projection of a historical Reservation List account.
pub use self::metadata::DcMetadataMtmReservationListAccountSnapshot;
/// Canonical projection of one Token Owned Escrow account.
pub use self::metadata::DcMetadataMtmTokenOwnedEscrowAccountSnapshot;
/// Authority form used by one Token Owned Escrow account.
pub use self::metadata::DcMetadataMtmTokenOwnedEscrowAuthorityKind;
/// Canonical bounded projection of one programmable Token Record account.
pub use self::metadata::DcMetadataMtmTokenRecordAccountSnapshot;
/// Solana Program Metadata instruction decoder; account decoders are active.
pub use self::metadata::DcMetadataSolanaProgramMetadataDecoder;
/// Reserved `kb-lib.decoder.metadata.spl_name_service` decoder.
pub use self::metadata::DcMetadataSplNameServiceDecoder;
/// Error returned while decoding a Solana Program Metadata account.
pub use self::metadata::DcMetadataSpmAccountDecodeError;
/// Solana Program Metadata account discriminator.
pub use self::metadata::DcMetadataSpmAccountDiscriminator;
/// Supported bounded Solana Program Metadata account projection.
pub use self::metadata::DcMetadataSpmAccountSnapshot;
/// Bounded projection of one Solana Program Metadata Buffer account.
pub use self::metadata::DcMetadataSpmBufferAccountSnapshot;
/// Compression declared for Solana Program Metadata content.
pub use self::metadata::DcMetadataSpmCompression;
/// Typed Solana Program Metadata content without off-chain resolution.
pub use self::metadata::DcMetadataSpmData;
/// On-chain source used for Solana Program Metadata content.
pub use self::metadata::DcMetadataSpmDataSource;
/// Encoding declared for Solana Program Metadata content.
pub use self::metadata::DcMetadataSpmEncoding;
/// Fixed external-account data reference.
pub use self::metadata::DcMetadataSpmExternalData;
/// Format declared for Solana Program Metadata content.
pub use self::metadata::DcMetadataSpmFormat;
/// Expected account role and privileges for one instruction position.
pub(crate) use self::metadata::DcMetadataSpmInstructionAccountContract;
/// Bounded projection of one initialized Solana Program Metadata account.
pub use self::metadata::DcMetadataSpmMetadataAccountSnapshot;
/// Bounded Solana Program Metadata model conversion error.
pub use self::metadata::DcMetadataSpmModelError;
/// Official Solana Program Metadata custom error.
pub use self::metadata::DcMetadataSpmProgramError;
/// Exact fixed-size Solana Program Metadata seed.
pub use self::metadata::DcMetadataSpmSeed;
/// Canonical tracing target for this crate.
pub(crate) use self::metadata::TRACING_TARGET_DECODER_METADATA_METAPLEX_TOKEN_METADATA;
/// Canonical tracing target for the Solana Program Metadata decoder.
pub(crate) use self::metadata::TRACING_TARGET_DECODER_METADATA_SOLANA_PROGRAM_METADATA;
/// Crate-root access to `decode` from `instruction`.
pub(crate) use self::metadata::decoder_metadata_metaplex_token_metadata_decode;
/// Decodes one Collection Authority Record account.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_collection_authority_record_account;
/// Decodes and validates one edition or master-edition account snapshot.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_edition_account;
/// Decodes and validates one Edition Marker account snapshot.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account;
/// Decodes one Holder Delegate Record account.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_holder_delegate_record_account;
/// Decodes and validates one canonical Metadata account snapshot.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_metadata_account;
/// Decodes one Metadata Delegate Record account.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_metadata_delegate_record_account;
/// Decodes one historical Reservation List V1 or V2 account.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account;
/// Decodes one Token Owned Escrow account.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account;
/// Decodes and validates one programmable Token Record account snapshot.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_token_record_account;
/// Decodes one Use Authority Record account.
pub use self::metadata::decoder_metadata_metaplex_token_metadata_decode_use_authority_record_account;
/// Crate-root access to `entry_for_discriminator` from `instruction`.
pub(crate) use self::metadata::decoder_metadata_metaplex_token_metadata_entry_for_discriminator;
/// Crate-root access to `payload_discriminator` from `instruction`.
pub(crate) use self::metadata::decoder_metadata_metaplex_token_metadata_payload_discriminator;
/// Decodes one bounded Solana Program Metadata instruction.
pub(crate) use self::metadata::decoder_metadata_solana_program_metadata_decode;
/// Decodes one supported Solana Program Metadata account by its discriminator.
pub use self::metadata::decoder_metadata_solana_program_metadata_decode_account;
/// Decodes one Solana Program Metadata Buffer account.
pub use self::metadata::decoder_metadata_solana_program_metadata_decode_buffer_account;
/// Decodes one initialized Solana Program Metadata account.
pub use self::metadata::decoder_metadata_solana_program_metadata_decode_metadata_account;
/// Returns the stable entry matching one Solana Program Metadata discriminator.
pub(crate) use self::metadata::decoder_metadata_solana_program_metadata_entry_for_discriminator;
/// Returns the first byte of one retained Solana Program Metadata payload.
pub(crate) use self::metadata::decoder_metadata_solana_program_metadata_payload_discriminator;
/// Reserved `kb-lib.decoder.nft.metaplex_bubblegum` decoder.
pub use self::nft::DcNftMetaplexBubblegumDecoder;
/// Reserved `kb-lib.decoder.nft.tensor_cnft` decoder.
pub use self::nft::DcNftTensorCnftDecoder;
/// Reserved `kb-lib.decoder.orderbook.jupiter_limit_order` decoder.
pub use self::orderbook::DcOrderbookJupiterLimitOrderDecoder;
/// Reserved `kb-lib.decoder.orderbook.jupiter_limit_order_v2` decoder.
pub use self::orderbook::DcOrderbookJupiterLimitOrderV2Decoder;
/// Reserved `kb-lib.decoder.orderbook.openbook_v2` decoder.
pub use self::orderbook::DcOrderbookOpenbookV2Decoder;
/// Reserved `kb-lib.decoder.perpetuals.drift_v2` decoder.
pub use self::perpetuals::DcPerpetualsDriftV2Decoder;
/// Reserved `kb-lib.decoder.perpetuals.jupiter` decoder.
pub use self::perpetuals::DcPerpetualsJupiterDecoder;
/// Reserved `kb-lib.decoder.perpetuals.phoenix_eternal` decoder.
pub use self::perpetuals::DcPerpetualsPhoenixEternalDecoder;
/// Reserved `kb-lib.decoder.perpetuals.zeta` decoder.
pub use self::perpetuals::DcPerpetualsZetaDecoder;
/// Reserved `kb-lib.decoder.router.dflow_aggregator_v4` decoder.
pub use self::router::DcRouterDflowAggregatorV4Decoder;
/// Reserved `kb-lib.decoder.router.jupiter_aggregator_v4` decoder.
pub use self::router::DcRouterJupiterAggregatorV4Decoder;
/// Reserved `kb-lib.decoder.router.jupiter_aggregator_v6` decoder.
pub use self::router::DcRouterJupiterAggregatorV6Decoder;
/// Reserved `kb-lib.decoder.router.okx_labs_v1` decoder.
pub use self::router::DcRouterOkxLabsV1Decoder;
/// Reserved `kb-lib.decoder.router.okx_labs_v2` decoder.
pub use self::router::DcRouterOkxLabsV2Decoder;
/// Reserved `kb-lib.decoder.rwa.ondo_global_markets` decoder.
pub use self::rwa::DcRwaOndoGlobalMarketsDecoder;
pub(crate) use self::solana::DC_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_BPF_LOADER_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_CONFIG_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES;
pub(crate) use self::solana::DC_SOLANA_CORE_ED25519_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_FEATURE_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES;
pub(crate) use self::solana::DC_SOLANA_CORE_NATIVE_EVENT_VERSION;
pub(crate) use self::solana::DC_SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES;
pub(crate) use self::solana::DC_SOLANA_CORE_PROTOCOL_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES;
pub(crate) use self::solana::DC_SOLANA_CORE_SECP256K1_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_SECP256R1_MAX_SIGNATURES;
pub(crate) use self::solana::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES;
pub(crate) use self::solana::DC_SOLANA_CORE_SECP256R1_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_SIGNATURE_BYTES;
pub(crate) use self::solana::DC_SOLANA_CORE_SLASHING_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_STAKE_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_SYSTEM_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_U8_OFFSETS_BYTES;
pub(crate) use self::solana::DC_SOLANA_CORE_U16_OFFSETS_BYTES;
pub(crate) use self::solana::DC_SOLANA_CORE_VOTE_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE;
pub(crate) use self::solana::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE;
pub(crate) use self::solana::DcSolanaCoreAccountRole;
/// Runtime-native Solana decoder with phased maximal native coverage.
pub use self::solana::DcSolanaCoreDecoder;
pub(crate) use self::solana::DcSolanaCoreResolvedInstructionPayload;
pub(crate) use self::solana::TRACING_TARGET_DECODER_SOLANA_CORE;
pub(crate) use self::solana::decoder_solana_core_address_lookup_table_coverage;
pub(crate) use self::solana::decoder_solana_core_address_lookup_table_decode;
pub(crate) use self::solana::decoder_solana_core_address_lookup_table_recognize;
pub(crate) use self::solana::decoder_solana_core_bounded_hexadecimal_prefix;
pub(crate) use self::solana::decoder_solana_core_bounded_slice;
pub(crate) use self::solana::decoder_solana_core_compute_budget_coverage;
pub(crate) use self::solana::decoder_solana_core_compute_budget_decode;
pub(crate) use self::solana::decoder_solana_core_compute_budget_recognize;
pub(crate) use self::solana::decoder_solana_core_config_coverage;
pub(crate) use self::solana::decoder_solana_core_config_decode;
pub(crate) use self::solana::decoder_solana_core_config_recognize;
pub(crate) use self::solana::decoder_solana_core_decode_instruction_data;
pub(crate) use self::solana::decoder_solana_core_decoded_payload_length;
pub(crate) use self::solana::decoder_solana_core_decoded_payload_sha256;
pub(crate) use self::solana::decoder_solana_core_decoded_result;
pub(crate) use self::solana::decoder_solana_core_failed_result;
pub(crate) use self::solana::decoder_solana_core_feature_coverage;
pub(crate) use self::solana::decoder_solana_core_feature_decode;
pub(crate) use self::solana::decoder_solana_core_feature_recognize;
pub(crate) use self::solana::decoder_solana_core_hash_bytes;
pub(crate) use self::solana::decoder_solana_core_hexadecimal_prefix;
pub(crate) use self::solana::decoder_solana_core_loaders_coverage;
pub(crate) use self::solana::decoder_solana_core_loaders_decode;
pub(crate) use self::solana::decoder_solana_core_loaders_recognize;
pub(crate) use self::solana::decoder_solana_core_payload_hash;
pub(crate) use self::solana::decoder_solana_core_precompiles_coverage;
pub(crate) use self::solana::decoder_solana_core_precompiles_decode;
pub(crate) use self::solana::decoder_solana_core_precompiles_recognize;
pub(crate) use self::solana::decoder_solana_core_read_u32_le;
pub(crate) use self::solana::decoder_solana_core_read_u64_le;
pub(crate) use self::solana::decoder_solana_core_resolve_accounts;
pub(crate) use self::solana::decoder_solana_core_resolve_u8_instruction_payload;
pub(crate) use self::solana::decoder_solana_core_resolve_u16_instruction_payload;
pub(crate) use self::solana::decoder_solana_core_slashing_coverage;
pub(crate) use self::solana::decoder_solana_core_slashing_decode;
pub(crate) use self::solana::decoder_solana_core_slashing_recognize;
pub(crate) use self::solana::decoder_solana_core_stake_coverage;
pub(crate) use self::solana::decoder_solana_core_stake_decode;
pub(crate) use self::solana::decoder_solana_core_stake_recognize;
pub(crate) use self::solana::decoder_solana_core_system_coverage;
pub(crate) use self::solana::decoder_solana_core_system_decode;
pub(crate) use self::solana::decoder_solana_core_system_recognize;
pub(crate) use self::solana::decoder_solana_core_target_outer_instruction_index;
pub(crate) use self::solana::decoder_solana_core_unsupported_result;
pub(crate) use self::solana::decoder_solana_core_vote_coverage;
pub(crate) use self::solana::decoder_solana_core_vote_decode;
pub(crate) use self::solana::decoder_solana_core_vote_recognize;
pub(crate) use self::solana::decoder_solana_core_zk_elgamal_coverage;
pub(crate) use self::solana::decoder_solana_core_zk_elgamal_decode;
pub(crate) use self::solana::decoder_solana_core_zk_elgamal_recognize;
pub(crate) use self::solana::decoder_solana_core_zk_token_proof_coverage;
pub(crate) use self::solana::decoder_solana_core_zk_token_proof_decode;
pub(crate) use self::solana::decoder_solana_core_zk_token_proof_recognize;
/// Current stable Associated Token Account decoded event contract version.
pub(crate) use self::spl::DC_SPL_ATA_EVENT_VERSION;
/// Exact Associated Token Account instructions published by the official interface.
pub(crate) use self::spl::DC_SPL_ATA_INSTRUCTION_ENTRIES;
/// Maximum retained account-key text length for the Associated Token Account decoder.
pub(crate) use self::spl::DC_SPL_ATA_MAX_ACCOUNT_KEY_BYTES;
/// Maximum retained instruction account count for the Associated Token Account decoder.
pub(crate) use self::spl::DC_SPL_ATA_MAX_ACCOUNTS;
/// Maximum retained semantic diagnostic count for the Associated Token Account decoder.
pub(crate) use self::spl::DC_SPL_ATA_MAX_DIAGNOSTICS;
/// Maximum retained Associated Token Account instruction payload size.
pub(crate) use self::spl::DC_SPL_ATA_MAX_INSTRUCTION_BYTES;
/// Maximum retained transaction account-key count for the Associated Token Account decoder.
pub(crate) use self::spl::DC_SPL_ATA_MAX_TRANSACTION_KEYS;
/// Stable protocol and surface code for the Associated Token Account program.
pub(crate) use self::spl::DC_SPL_ATA_SURFACE_CODE;
/// Exact byte length of one SPL ElGamal registry account.
pub use self::spl::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN;
/// Current stable SPL ElGamal registry event contract version.
pub(crate) use self::spl::DC_SPL_ELGAMAL_REGISTRY_EVENT_VERSION;
/// Maximum retained SPL ElGamal registry instruction payload size.
pub(crate) use self::spl::DC_SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES;
/// Stable SPL ElGamal registry surface code.
pub(crate) use self::spl::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE;
/// Maximum payload prefix retained for bounded diagnostics.
pub(crate) use self::spl::DC_SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES;
/// Current stable Memo decoded event contract version.
pub(crate) use self::spl::DC_SPL_MEMO_EVENT_VERSION;
/// Maximum decoded instruction data retained as a complete Memo payload.
pub(crate) use self::spl::DC_SPL_MEMO_MAX_PAYLOAD_BYTES;
/// Stable protocol code shared by Memo generations.
pub(crate) use self::spl::DC_SPL_MEMO_PROTOCOL_CODE;
/// Stable Memo v1 surface code.
pub(crate) use self::spl::DC_SPL_MEMO_V1_SURFACE_CODE;
/// Stable Memo v3 surface code.
pub(crate) use self::spl::DC_SPL_MEMO_V3_SURFACE_CODE;
/// Stable Memo v4 surface code.
pub(crate) use self::spl::DC_SPL_MEMO_V4_SURFACE_CODE;
/// Maximum prefix retained in bounded Token-2022 diagnostics.
pub(crate) use self::spl::DC_SPL_TOKEN_2022_DIAGNOSTIC_PREFIX_BYTES;
/// Current stable Token-2022 decoded event contract version.
pub(crate) use self::spl::DC_SPL_TOKEN_2022_EVENT_VERSION;
/// Exact top-level instruction inventory published by the resolved Token-2022 interface.
pub(crate) use self::spl::DC_SPL_TOKEN_2022_INSTRUCTION_ENTRIES;
/// Maximum total account metas consumed by one Token-2022 batch.
pub(crate) use self::spl::DC_SPL_TOKEN_2022_MAX_BATCH_ACCOUNTS;
/// Maximum decoded sub-instructions in one Token-2022 batch.
pub(crate) use self::spl::DC_SPL_TOKEN_2022_MAX_BATCH_INSTRUCTIONS;
/// Maximum retained Token-2022 instruction payload size.
pub(crate) use self::spl::DC_SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES;
/// Maximum retained UTF-8 string size for embedded Token Metadata instructions.
pub(crate) use self::spl::DC_SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES;
/// Stable Token-2022 surface code.
pub(crate) use self::spl::DC_SPL_TOKEN_2022_SURFACE_CODE;
/// Maximum prefix retained in bounded classic SPL Token diagnostics.
pub(crate) use self::spl::DC_SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES;
/// Current stable classic SPL Token decoded event contract version.
pub(crate) use self::spl::DC_SPL_TOKEN_EVENT_VERSION;
/// One exact classic SPL Token instruction entry published by the official interface.
pub(crate) use self::spl::DC_SPL_TOKEN_INSTRUCTION_ENTRIES;
/// Maximum total account metas consumed by one classic SPL Token batch.
pub(crate) use self::spl::DC_SPL_TOKEN_MAX_BATCH_ACCOUNTS;
/// Maximum decoded sub-instructions in one classic SPL Token batch.
pub(crate) use self::spl::DC_SPL_TOKEN_MAX_BATCH_INSTRUCTIONS;
/// Maximum retained classic SPL Token instruction payload size.
pub(crate) use self::spl::DC_SPL_TOKEN_MAX_INSTRUCTION_BYTES;
/// Stable protocol and surface code for the classic SPL Token program.
pub(crate) use self::spl::DC_SPL_TOKEN_SURFACE_CODE;
/// Reserved `kb-lib.decoder.spl.account_compression` decoder.
pub use self::spl::DcSplAccountCompressionDecoder;
/// Exact decoder for the SPL Associated Token Account program.
pub use self::spl::DcSplAssociatedTokenAccountDecoder;
/// One parsed SPL ElGamal registry instruction.
pub(crate) use self::spl::DcSplElGamalRegistryParsedRegistryInstruction;
/// Parsed SPL ElGamal public-key registry account.
pub use self::spl::DcSplElGamalRegistryState;
/// Exact decoder for the SPL ElGamal registry program.
pub use self::spl::DcSplElgamalRegistryDecoder;
/// Exact decoder for the three registered SPL Memo generations.
pub use self::spl::DcSplMemoDecoder;
/// Reserved `kb-lib.decoder.spl.noop` decoder.
pub use self::spl::DcSplNoopDecoder;
/// Reserved `kb-lib.decoder.spl.single_pool` decoder.
pub use self::spl::DcSplSinglePoolDecoder;
/// Reserved `kb-lib.decoder.spl.stake_pool` decoder.
pub use self::spl::DcSplStakePoolDecoder;
/// Exact decoder for the Token-2022 program.
pub use self::spl::DcSplToken2022Decoder;
/// Exact decoder for the classic SPL Token program.
pub use self::spl::DcSplTokenDecoder;
/// Parsed Token-2022 Mint, Account, or Multisig state.
pub use self::spl::DcToken2022State;
/// Exact Token-2022 base account state kind.
pub use self::spl::DcToken2022StateKind;
/// One exact Token-2022 TLV entry.
pub use self::spl::DcToken2022TlvEntry;
/// Canonical tracing target for the Associated Token Account decoder.
pub(crate) use self::spl::TRACING_TARGET_DECODER_SPL_ATA;
/// Canonical tracing target for the SPL ElGamal registry decoder.
pub(crate) use self::spl::TRACING_TARGET_DECODER_SPL_ELGAMAL_REGISTRY;
/// Canonical tracing target for the SPL Memo decoder.
pub(crate) use self::spl::TRACING_TARGET_DECODER_SPL_MEMO;
/// Canonical tracing target for the classic SPL Token decoder.
pub(crate) use self::spl::TRACING_TARGET_DECODER_SPL_TOKEN;
/// Canonical tracing target for the Token-2022 decoder.
pub(crate) use self::spl::TRACING_TARGET_DECODER_SPL_TOKEN_2022;
/// Decodes one bounded Associated Token Account instruction.
pub(crate) use self::spl::decoder_spl_associated_token_account_decode;
/// Returns the exact entry matching an Associated Token Account wire.
pub(crate) use self::spl::decoder_spl_associated_token_account_entry;
/// Reads one bounded Associated Token Account payload.
pub(crate) use self::spl::decoder_spl_associated_token_account_payload;
/// Decodes one bounded SPL ElGamal registry instruction.
pub(crate) use self::spl::decoder_spl_elgamal_registry_decode;
/// Decodes one bounded SPL ElGamal registry instruction payload.
pub(crate) use self::spl::decoder_spl_elgamal_registry_decode_payload;
/// Parses one exact SPL ElGamal registry instruction.
pub(crate) use self::spl::decoder_spl_elgamal_registry_parse;
/// Parses one exact SPL ElGamal registry account.
pub use self::spl::decoder_spl_elgamal_registry_parse_elgamal_registry_state;
/// Decodes one bounded SPL Memo instruction.
pub(crate) use self::spl::decoder_spl_memo_decode;
/// Decodes one bounded Token-2022 instruction.
pub(crate) use self::spl::decoder_spl_token_2022_decode;
/// Returns the exact entry matching one Token-2022 tag.
pub(crate) use self::spl::decoder_spl_token_2022_entry_for_tag;
/// Parses one Token-2022 Mint, Account, or Multisig state.
pub use self::spl::decoder_spl_token_2022_parse_token_2022_state;
/// Parses one exact Token Metadata interface value.
pub use self::spl::decoder_spl_token_2022_parse_token_metadata_value;
/// Returns the first byte of one retained Token-2022 payload.
pub(crate) use self::spl::decoder_spl_token_2022_payload_tag;
/// Decodes one bounded classic SPL Token instruction.
pub(crate) use self::spl::decoder_spl_token_decode;
/// Returns the published entry matching one classic SPL Token tag.
pub(crate) use self::spl::decoder_spl_token_entry_for_tag;
/// Returns the first byte of one retained classic SPL Token payload.
pub(crate) use self::spl::decoder_spl_token_payload_tag;
/// Reserved `kb-lib.decoder.stable.swap_hylo_exchange` decoder.
pub use self::stable::DcStableSwapHyloExchangeDecoder;
/// Reserved `kb-lib.decoder.stable.swap_jupiter_stable` decoder.
pub use self::stable::DcStableSwapJupiterStableDecoder;
/// Reserved `kb-lib.decoder.stable.swap_numeraire` decoder.
pub use self::stable::DcStableSwapNumeraireDecoder;
/// Reserved `kb-lib.decoder.stable.swap_stabble` decoder.
pub use self::stable::DcStableSwapStabbleDecoder;
/// Reserved `kb-lib.decoder.staking.jito_tip_distribution` decoder.
pub use self::staking::DcStakingJitoTipDistributionDecoder;
/// Reserved `kb-lib.decoder.staking.kamino_farm` decoder.
pub use self::staking::DcStakingKaminoFarmDecoder;
/// Reserved `kb-lib.decoder.staking.marinade_finance` decoder.
pub use self::staking::DcStakingMarinadeFinanceDecoder;
/// Reserved `kb-lib.decoder.staking.solayer` decoder.
pub use self::staking::DcStakingSolayerDecoder;
/// Reserved `kb-lib.decoder.storage.solana_record` decoder.
pub use self::storage::DcStorageSolanaRecordDecoder;
/// Reserved `kb-lib.decoder.router.jupiter_dca` decoder.
pub use self::strategy::DcStrategyJupiterDcaDecoder;
/// Reserved `kb-lib.decoder.treasury.helium_treasury_management` decoder.
pub use self::treasury::DcTreasuryHeliumTreasuryManagementDecoder;
/// Reserved `kb-lib.decoder.vault.carrot_defi` decoder.
pub use self::vault::DcVaultCarrotDefiDecoder;
/// Reserved `kb-lib.decoder.vault.hylo_stability_pool` decoder.
pub use self::vault::DcVaultHyloStabilityPoolDecoder;
/// Reserved `kb-lib.decoder.vault.kamino` decoder.
pub use self::vault::DcVaultKaminoDecoder;
/// Reserved `kb-lib.decoder.vault.kamino_v2` decoder.
pub use self::vault::DcVaultKaminoV2Decoder;
/// Reserved `kb-lib.decoder.vault.kamino_yvaults` decoder.
pub use self::vault::DcVaultKaminoYvaultsDecoder;
/// Reserved `kb-lib.decoder.vault.meteora` decoder.
pub use self::vault::DcVaultMeteoraDecoder;
/// Reserved `kb-lib.decoder.admin.jupiter_lock` decoder.
pub use self::vesting::DcVestingJupiterLockDecoder;
/// Reserved `kb-lib.decoder.vesting.streamflow` decoder.
pub use self::vesting::DcVestingStreamflowDecoder;
/// Reserved `kb-lib.decoder.wallet.jupiter_apepro_smart_wallet` decoder.
pub use self::wallet::DcWalletJupiterApeproSmartWalletDecoder;
/// Reserved `kb-lib.decoder.weighted.swap_stabble` decoder.
pub use self::weighted::DcWeightedSwapStabbleDecoder;
#[cfg(test)]
mod reserved_decoder_tests {
#[test]
fn every_reserved_decoder_exposes_only_registered_program_ids() {
let decoders: [&dyn crate::DcApiProtocolDecoder; 104] = [
&crate::DcAdapterSaberDecimalWrapperDecoder,
&crate::DcAdapterSplTokenWrapDecoder,
&crate::DcGovernanceSquadsMultisigDecoder,
&crate::DcNftTensorCnftDecoder,
&crate::DcPerpetualsPhoenixEternalDecoder,
&crate::DcStakingJitoTipDistributionDecoder,
&crate::DcStorageSolanaRecordDecoder,
&crate::DcVestingJupiterLockDecoder,
&crate::DcFeesPumpFeesDecoder,
&crate::DcAmmAldrinV1Decoder,
&crate::DcAmmAldrinV2Decoder,
&crate::DcAmmAlphaqDecoder,
&crate::DcAmmBelieveDecoder,
&crate::DcAmmBonkSwapDecoder,
&crate::DcAmmFluxbeamDecoder,
&crate::DcAmmGoonFiDecoder,
&crate::DcAmmGoosefxGammaDecoder,
&crate::DcAmmGoosefxV2Decoder,
&crate::DcAmmGuacSwapDecoder,
&crate::DcAmmLifinitySwapV2Decoder,
&crate::DcGovernanceMetadaoFutarchyDecoder,
&crate::DcAmmMetadaoV05Decoder,
&crate::DcAmmMeteoraDammV1Decoder,
&crate::DcAmmMeteoraDammV2Decoder,
&crate::DcAmmObricV2Decoder,
&crate::DcAmmOneDexDecoder,
&crate::DcAmmPumpSwapDecoder,
&crate::DcAmmRaydiumLpV4Decoder,
&crate::DcAmmSolfiDecoder,
&crate::DcAmmSolfiV2Decoder,
&crate::DcAmmVertigoDecoder,
&crate::DcLaunchpadVirtualsDecoder,
&crate::DcAmmWoofiDecoder,
&crate::DcAmmZeroFiDecoder,
&crate::DcAmmZoraDecoder,
&crate::DcAnchorDecoder,
&crate::DcBridgeCircleCctpTokenMessengerMinterDecoder,
&crate::DcBridgeCircleCctpTokenMessengerMinterV2Decoder,
&crate::DcBridgeLayerZeroEndpointDecoder,
&crate::DcBridgeLayerZeroExecutorDecoder,
&crate::DcClmmByrealDecoder,
&crate::DcClmmFusionDecoder,
&crate::DcClmmOrcaWhirlpoolDecoder,
&crate::DcClmmPancakeSwapDecoder,
&crate::DcClmmRaydiumDecoder,
&crate::DcClmmStabbleDecoder,
&crate::DcCpmmRaydiumDecoder,
&crate::DcDlmmMeteoraDecoder,
&crate::DcFeesBagsFeeShareV1Decoder,
&crate::DcFeesBagsFeeShareV2Decoder,
&crate::DcGovernanceMetadaoBidWallDecoder,
&crate::DcLaunchpadBoopFunDecoder,
&crate::DcLaunchpadMetadaoIcoDecoder,
&crate::DcLaunchpadMeteoraDbcDecoder,
&crate::DcLaunchpadMoonitDecoder,
&crate::DcLaunchpadOrcaWavebreakDecoder,
&crate::DcLaunchpadPrintrDecoder,
&crate::DcLaunchpadPumpFunDecoder,
&crate::DcLaunchpadPumpPumpupAiDecoder,
&crate::DcLaunchpadRaydiumLaunchlabDecoder,
&crate::DcLendingCloneDecoder,
&crate::DcLendingJupiterLendBorrowDecoder,
&crate::DcLendingJupiterLendEarnDecoder,
&crate::DcLendingJupiterLendFlashLoanDecoder,
&crate::DcLendingJupiterLendLiquidityDecoder,
&crate::DcLendingKaminoDecoder,
&crate::DcLendingMarginfiV2Decoder,
&crate::DcLockRaydiumLpDecoder,
&crate::DcMetadataSplNameServiceDecoder,
&crate::DcNftMetaplexBubblegumDecoder,
&crate::DcOrderbookJupiterLimitOrderDecoder,
&crate::DcOrderbookJupiterLimitOrderV2Decoder,
&crate::DcOrderbookOpenbookV2Decoder,
&crate::DcPerpetualsDriftV2Decoder,
&crate::DcPerpetualsJupiterDecoder,
&crate::DcPerpetualsZetaDecoder,
&crate::DcRouterDflowAggregatorV4Decoder,
&crate::DcRouterJupiterAggregatorV4Decoder,
&crate::DcRouterJupiterAggregatorV6Decoder,
&crate::DcStrategyJupiterDcaDecoder,
&crate::DcRouterOkxLabsV1Decoder,
&crate::DcRouterOkxLabsV2Decoder,
&crate::DcRwaOndoGlobalMarketsDecoder,
&crate::DcSplAccountCompressionDecoder,
&crate::DcSplNoopDecoder,
&crate::DcSplSinglePoolDecoder,
&crate::DcSplStakePoolDecoder,
&crate::DcStableSwapHyloExchangeDecoder,
&crate::DcStableSwapJupiterStableDecoder,
&crate::DcStableSwapNumeraireDecoder,
&crate::DcStableSwapStabbleDecoder,
&crate::DcStakingKaminoFarmDecoder,
&crate::DcStakingMarinadeFinanceDecoder,
&crate::DcStakingSolayerDecoder,
&crate::DcTreasuryHeliumTreasuryManagementDecoder,
&crate::DcVaultCarrotDefiDecoder,
&crate::DcVaultHyloStabilityPoolDecoder,
&crate::DcVaultKaminoDecoder,
&crate::DcVaultKaminoV2Decoder,
&crate::DcVaultKaminoYvaultsDecoder,
&crate::DcVaultMeteoraDecoder,
&crate::DcVestingStreamflowDecoder,
&crate::DcWalletJupiterApeproSmartWalletDecoder,
&crate::DcWeightedSwapStabbleDecoder,
];
let mut names = std::collections::BTreeSet::new();
for decoder in decoders {
assert!(names.insert(decoder.decoder_name()));
if decoder.decoder_name() == "kb-lib.decoder.anchor" {
assert!(decoder.program_ids().is_empty());
continue;
}
assert_eq!(decoder.program_ids().len(), 1);
for program_id in decoder.program_ids() {
assert!(kb_program_ids::find_registered_program_id(program_id).is_some());
let observation = crate::MdProgramObservation {
signature: crate::MdSignature("signature".to_string()),
slot: crate::MdSlot(1),
instruction_path: crate::MdInstructionPath("0".to_string()),
program_id: crate::MdProgramId((*program_id).to_string()),
discriminator_8: std::option::Option::None,
data_len: 0,
accounts_len: 0,
failed: false,
};
assert_eq!(
decoder.supports_observation(&observation),
crate::DcApiDecoderSupport::Maybe
);
let decode_result = decoder.decode_observation(&observation);
assert!(decode_result.is_ok());
assert!(decode_result.is_ok_and(|events| return events.is_empty()));
}
}
assert_eq!(names.len(), 104);
}
}