// file: kb-lib/src/materializer.rs // version: 15 //! Consolidated materializer modules. mod admin; mod api; mod bridge; mod compliance; mod fees; mod governance; mod lending; mod lifecycle; mod liquidity; mod metadata; mod nft; mod oracle; mod orderbook; mod perpetuals; mod pool; mod rewards; mod risk; mod routing; mod staking; mod token; mod trades; mod transaction; mod vault; /// Stable native and SPL administration materializer. pub use self::admin::MtAdminMaterializer; /// Materializes one exact SPL ElGamal registry account snapshot. pub use self::admin::materializer_admin_materialize_elgamal_registry_state_snapshot; /// Materializes exact Token-2022 administration account snapshots. pub use self::admin::materializer_admin_materialize_token_2022_state_snapshots; /// Stable decoded observation materializer contract used by the common pipeline. pub use self::api::MtApiEventMaterializer; /// Explicit policy applied to successful and failed source transactions. pub use self::api::MtApiMaterializationTransactionPolicy; /// Stable processor-owned business output derived from one decoded observation. pub use self::api::MtApiMaterializedOutput; /// Structured materializer diagnostic without generic error wrappers. pub use self::api::MtApiMaterializerDiagnostic; /// Complete explicit result produced by one materializer invocation. pub use self::api::MtApiMaterializerExecutionResult; /// Stable identity of one decoded event materializer. pub use self::api::MtApiMaterializerIdentity; /// Terminal materializer result status. pub use self::api::MtApiMaterializerOutcomeStatus; /// Exposes the legacy common business materializer trait. pub use self::api::MtMaterializer; /// Returns true when a materializer explicitly accepts one decoded family. pub use self::api::materializer_api_accepts_family; /// Returns true when a materializer accepts one exact decoded observation. pub use self::api::materializer_api_accepts_observation; /// Applies the mandatory source transaction policy before materialization. pub use self::api::materializer_api_validate_materialization_policy; /// Rejects mutable business outputs derived from failed or uncommitted observations. pub use self::api::materializer_api_validate_materialized_output_policy; /// Reserved bridge materializer. pub use self::bridge::MtBridgeMaterializer; /// Stable native compliance audit materializer. pub use self::compliance::MtComplianceAuditMaterializer; /// Fee materializer for committed Token-2022 fee observations. pub use self::fees::MtFeesMaterializer; /// Materializes authoritative Token-2022 fee extension snapshots. pub use self::fees::materializer_fees_materialize_token_2022_state_snapshots; /// Reserved governance materializer. pub use self::governance::MtGovernanceMaterializer; /// Reserved lending materializer. pub use self::lending::MtLendingMaterializer; /// Stable native lifecycle materializer. pub use self::lifecycle::MtLifecycleMaterializer; /// Reserved liquidity materializer. pub use self::liquidity::MtLiquidityMaterializer; /// Metaplex Token Metadata instruction materializer. pub use self::metadata::MtMetadataMetaplexTokenMetadataMaterializer; /// Solana Program Metadata instruction materializer. pub use self::metadata::MtMetadataSolanaProgramMaterializer; /// SPL Token-2022 embedded metadata and group instruction materializer. pub use self::metadata::MtMetadataToken2022Materializer; /// Materializes one canonical non-Metadata Metaplex account snapshot. pub use self::metadata::materializer_metadata_materialize_metaplex_account_snapshot; /// Materializes one canonical Metaplex Metadata account snapshot. pub use self::metadata::materializer_metadata_materialize_metaplex_metadata_snapshot; /// Materializes one decoded Solana Program Metadata account snapshot. pub use self::metadata::materializer_metadata_materialize_solana_program_metadata_account_snapshot; /// Materializes one bounded Solana Program Metadata Buffer account snapshot. pub use self::metadata::materializer_metadata_materialize_solana_program_metadata_buffer_snapshot; /// Materializes one bounded Solana Program Metadata Metadata account snapshot. pub use self::metadata::materializer_metadata_materialize_solana_program_metadata_metadata_snapshot; /// Materializes Token-2022 embedded metadata and group snapshots. pub use self::metadata::materializer_metadata_materialize_token_2022_snapshot; /// Reserved NFT materializer. pub use self::nft::MtNftMaterializer; /// Reserved oracle materializer. pub use self::oracle::MtOracleMaterializer; /// Reserved orderbook materializer. pub use self::orderbook::MtOrderbookMaterializer; /// Reserved perpetuals materializer. pub use self::perpetuals::MtPerpetualsMaterializer; /// Reserved pool-state materializer. pub use self::pool::MtPoolStateMaterializer; /// Reserved rewards materializer. pub use self::rewards::MtRewardsMaterializer; /// Stable SPL Token and ATA risk materializer. pub use self::risk::MtRiskMaterializer; /// Reserved routing materializer. pub use self::routing::MtRoutingMaterializer; /// Stable native stake and vote materializer. pub use self::staking::MtStakingMaterializer; /// Stable Token, ATA and Token-2022 account materializer. pub use self::token::MtTokenAccountsMaterializer; /// Reserved token-metadata risk materializer. pub use self::token::MtTokenMetadataRiskMaterializer; /// Materializes one bounded Token-2022 account state snapshot. pub use self::token::materializer_token_materialize_token_2022_state_snapshot; /// Reserved trades materializer. pub use self::trades::MtTradesMaterializer; /// Stable committed Memo transaction annotation materializer. pub use self::transaction::MtTransactionAnnotationMaterializer; /// Reserved vault materializer. pub use self::vault::MtVaultMaterializer; /// Crate-visible `MT_ADMIN_ACCEPTED_FAMILIES` component constant. pub(crate) use self::admin::MT_ADMIN_ACCEPTED_FAMILIES; /// Crate-visible `MT_ADMIN_BPF_LOADER_UPGRADEABLE_ENTRIES` component constant. pub(crate) use self::admin::MT_ADMIN_BPF_LOADER_UPGRADEABLE_ENTRIES; /// Crate-visible `MT_ADMIN_BPF_LOADER_UPGRADEABLE_SURFACE` component constant. pub(crate) use self::admin::MT_ADMIN_BPF_LOADER_UPGRADEABLE_SURFACE; /// Crate-visible `MT_ADMIN_COMPONENT_NAME` component constant. pub(crate) use self::admin::MT_ADMIN_COMPONENT_NAME; /// Crate-visible `MT_ADMIN_CONFIG_ENTRIES` component constant. pub(crate) use self::admin::MT_ADMIN_CONFIG_ENTRIES; /// Crate-visible `MT_ADMIN_CONFIG_SURFACE` component constant. pub(crate) use self::admin::MT_ADMIN_CONFIG_SURFACE; /// Crate-visible `MT_ADMIN_LOADER_V4_ENTRIES` component constant. pub(crate) use self::admin::MT_ADMIN_LOADER_V4_ENTRIES; /// Crate-visible `MT_ADMIN_LOADER_V4_SURFACE` component constant. pub(crate) use self::admin::MT_ADMIN_LOADER_V4_SURFACE; /// Crate-visible `MT_ADMIN_PROCESSOR_NAME` component constant. pub(crate) use self::admin::MT_ADMIN_PROCESSOR_NAME; /// Crate-visible `MT_ADMIN_PROJECTION_VERSION` component constant. pub(crate) use self::admin::MT_ADMIN_PROJECTION_VERSION; /// Crate-visible `MT_ADMIN_SPL_ELGAMAL_REGISTRY_ENTRIES` component constant. pub(crate) use self::admin::MT_ADMIN_SPL_ELGAMAL_REGISTRY_ENTRIES; /// Crate-visible `MT_ADMIN_SPL_ELGAMAL_REGISTRY_SURFACE` component constant. pub(crate) use self::admin::MT_ADMIN_SPL_ELGAMAL_REGISTRY_SURFACE; /// Crate-visible `MT_ADMIN_SPL_TOKEN_2022_EXTENSION_ADMIN_ENTRIES` component constant. pub(crate) use self::admin::MT_ADMIN_SPL_TOKEN_2022_EXTENSION_ADMIN_ENTRIES; /// Crate-visible `MT_ADMIN_SPL_TOKEN_2022_SURFACE` component constant. pub(crate) use self::admin::MT_ADMIN_SPL_TOKEN_2022_SURFACE; /// Crate-visible `MT_ADMIN_SPL_TOKEN_AUTHORITY_ENTRIES` component constant. pub(crate) use self::admin::MT_ADMIN_SPL_TOKEN_AUTHORITY_ENTRIES; /// Crate-visible `MT_ADMIN_SPL_TOKEN_MULTISIG_ENTRIES` component constant. pub(crate) use self::admin::MT_ADMIN_SPL_TOKEN_MULTISIG_ENTRIES; /// Crate-visible `MT_ADMIN_SPL_TOKEN_SURFACE` component constant. pub(crate) use self::admin::MT_ADMIN_SPL_TOKEN_SURFACE; /// Crate-visible `MT_ADMIN_SYSTEM_ENTRIES` component constant. pub(crate) use self::admin::MT_ADMIN_SYSTEM_ENTRIES; /// Crate-visible `MT_ADMIN_SYSTEM_SURFACE` component constant. pub(crate) use self::admin::MT_ADMIN_SYSTEM_SURFACE; /// Crate-visible `TRACING_TARGET_MATERIALIZER_ADMIN` component constant. pub(crate) use self::admin::TRACING_TARGET_MATERIALIZER_ADMIN; /// Crate-visible `MT_BRIDGE_ACCEPTED_FAMILIES` component constant. pub(crate) use self::bridge::MT_BRIDGE_ACCEPTED_FAMILIES; /// Crate-visible `MT_BRIDGE_COMPONENT_NAME` component constant. pub(crate) use self::bridge::MT_BRIDGE_COMPONENT_NAME; /// Crate-visible `MT_BRIDGE_PROCESSOR_NAME` component constant. pub(crate) use self::bridge::MT_BRIDGE_PROCESSOR_NAME; /// Crate-visible `MT_COMPLIANCE_AUDIT_ACCEPTED_FAMILIES` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_ACCEPTED_FAMILIES; /// Crate-visible `MT_COMPLIANCE_AUDIT_BPF_LOADER_DEPRECATED_SURFACE` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_BPF_LOADER_DEPRECATED_SURFACE; /// Crate-visible `MT_COMPLIANCE_AUDIT_BPF_LOADER_SURFACE` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_BPF_LOADER_SURFACE; /// Crate-visible `MT_COMPLIANCE_AUDIT_BPF_LOADER_UPGRADEABLE_SURFACE` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_BPF_LOADER_UPGRADEABLE_SURFACE; /// Crate-visible `MT_COMPLIANCE_AUDIT_COMPONENT_NAME` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_COMPONENT_NAME; /// Crate-visible `MT_COMPLIANCE_AUDIT_COMPUTE_BUDGET_ENTRIES` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_COMPUTE_BUDGET_ENTRIES; /// Crate-visible `MT_COMPLIANCE_AUDIT_COMPUTE_BUDGET_SURFACE` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_COMPUTE_BUDGET_SURFACE; /// Crate-visible `MT_COMPLIANCE_AUDIT_LOADER_V4_COPY_ENTRIES` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_LOADER_V4_COPY_ENTRIES; /// Crate-visible `MT_COMPLIANCE_AUDIT_LOADER_V4_SURFACE` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_LOADER_V4_SURFACE; /// Crate-visible `MT_COMPLIANCE_AUDIT_PROCESSOR_NAME` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_PROCESSOR_NAME; /// Crate-visible `MT_COMPLIANCE_AUDIT_PROJECTION_VERSION` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_PROJECTION_VERSION; /// Crate-visible `MT_COMPLIANCE_AUDIT_WRITE_ENTRIES` component constant. pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_WRITE_ENTRIES; /// Crate-visible `TRACING_TARGET_MATERIALIZER_COMPLIANCE_AUDIT` component constant. pub(crate) use self::compliance::TRACING_TARGET_MATERIALIZER_COMPLIANCE_AUDIT; /// Crate-visible `MT_FEES_ACCEPTED_FAMILIES` component constant. pub(crate) use self::fees::MT_FEES_ACCEPTED_FAMILIES; /// Crate-visible `MT_FEES_COMPONENT_NAME` component constant. pub(crate) use self::fees::MT_FEES_COMPONENT_NAME; /// Crate-visible `MT_FEES_PROCESSOR_NAME` component constant. pub(crate) use self::fees::MT_FEES_PROCESSOR_NAME; /// Crate-visible `MT_FEES_PROJECTION_VERSION` component constant. pub(crate) use self::fees::MT_FEES_PROJECTION_VERSION; /// Crate-visible `MT_FEES_SPL_TOKEN_2022_SURFACE` component constant. pub(crate) use self::fees::MT_FEES_SPL_TOKEN_2022_SURFACE; /// Crate-visible `MT_FEES_TOKEN_2022_FEE_ENTRIES` component constant. pub(crate) use self::fees::MT_FEES_TOKEN_2022_FEE_ENTRIES; /// Crate-visible `TRACING_TARGET_MATERIALIZER_FEES` component constant. pub(crate) use self::fees::TRACING_TARGET_MATERIALIZER_FEES; /// Crate-visible `MT_GOVERNANCE_ACCEPTED_FAMILIES` component constant. pub(crate) use self::governance::MT_GOVERNANCE_ACCEPTED_FAMILIES; /// Crate-visible `MT_GOVERNANCE_COMPONENT_NAME` component constant. pub(crate) use self::governance::MT_GOVERNANCE_COMPONENT_NAME; /// Crate-visible `MT_GOVERNANCE_PROCESSOR_NAME` component constant. pub(crate) use self::governance::MT_GOVERNANCE_PROCESSOR_NAME; /// Crate-visible `MT_LENDING_ACCEPTED_FAMILIES` component constant. pub(crate) use self::lending::MT_LENDING_ACCEPTED_FAMILIES; /// Crate-visible `MT_LENDING_COMPONENT_NAME` component constant. pub(crate) use self::lending::MT_LENDING_COMPONENT_NAME; /// Crate-visible `MT_LENDING_PROCESSOR_NAME` component constant. pub(crate) use self::lending::MT_LENDING_PROCESSOR_NAME; /// Crate-visible `MT_LIFECYCLE_ACCEPTED_FAMILIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_ACCEPTED_FAMILIES; /// Crate-visible `MT_LIFECYCLE_ADDRESS_LOOKUP_TABLE_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_ADDRESS_LOOKUP_TABLE_ENTRIES; /// Crate-visible `MT_LIFECYCLE_ADDRESS_LOOKUP_TABLE_SURFACE` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_ADDRESS_LOOKUP_TABLE_SURFACE; /// Crate-visible `MT_LIFECYCLE_BPF_LOADER_DEPRECATED_SURFACE` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_BPF_LOADER_DEPRECATED_SURFACE; /// Crate-visible `MT_LIFECYCLE_BPF_LOADER_SURFACE` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_BPF_LOADER_SURFACE; /// Crate-visible `MT_LIFECYCLE_BPF_LOADER_UPGRADEABLE_SURFACE` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_BPF_LOADER_UPGRADEABLE_SURFACE; /// Crate-visible `MT_LIFECYCLE_COMPONENT_NAME` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_COMPONENT_NAME; /// Crate-visible `MT_LIFECYCLE_FEATURE_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_FEATURE_ENTRIES; /// Crate-visible `MT_LIFECYCLE_FEATURE_SURFACE` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_FEATURE_SURFACE; /// Crate-visible `MT_LIFECYCLE_IMMUTABLE_LOADER_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_IMMUTABLE_LOADER_ENTRIES; /// Crate-visible `MT_LIFECYCLE_LOADER_V4_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_LOADER_V4_ENTRIES; /// Crate-visible `MT_LIFECYCLE_LOADER_V4_SURFACE` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_LOADER_V4_SURFACE; /// Crate-visible `MT_LIFECYCLE_PROCESSOR_NAME` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_PROCESSOR_NAME; /// Crate-visible `MT_LIFECYCLE_PROJECTION_VERSION` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_PROJECTION_VERSION; /// Crate-visible `MT_LIFECYCLE_SLASHING_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_SLASHING_ENTRIES; /// Crate-visible `MT_LIFECYCLE_SLASHING_SURFACE` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_SLASHING_SURFACE; /// Crate-visible `MT_LIFECYCLE_SYSTEM_ACCOUNT_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_SYSTEM_ACCOUNT_ENTRIES; /// Crate-visible `MT_LIFECYCLE_SYSTEM_NONCE_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_SYSTEM_NONCE_ENTRIES; /// Crate-visible `MT_LIFECYCLE_SYSTEM_SURFACE` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_SYSTEM_SURFACE; /// Crate-visible `MT_LIFECYCLE_UPGRADEABLE_LOADER_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_UPGRADEABLE_LOADER_ENTRIES; /// Crate-visible `MT_LIFECYCLE_ZK_ELGAMAL_CLOSE_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_ZK_ELGAMAL_CLOSE_ENTRIES; /// Crate-visible `MT_LIFECYCLE_ZK_ELGAMAL_PROOF_SURFACE` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_ZK_ELGAMAL_PROOF_SURFACE; /// Crate-visible `MT_LIFECYCLE_ZK_ELGAMAL_VERIFY_ENTRIES` component constant. pub(crate) use self::lifecycle::MT_LIFECYCLE_ZK_ELGAMAL_VERIFY_ENTRIES; /// Crate-visible `TRACING_TARGET_MATERIALIZER_LIFECYCLE` component constant. pub(crate) use self::lifecycle::TRACING_TARGET_MATERIALIZER_LIFECYCLE; /// Crate-visible `MT_LIQUIDITY_ACCEPTED_FAMILIES` component constant. pub(crate) use self::liquidity::MT_LIQUIDITY_ACCEPTED_FAMILIES; /// Crate-visible `MT_LIQUIDITY_COMPONENT_NAME` component constant. pub(crate) use self::liquidity::MT_LIQUIDITY_COMPONENT_NAME; /// Crate-visible `MT_LIQUIDITY_PROCESSOR_NAME` component constant. pub(crate) use self::liquidity::MT_LIQUIDITY_PROCESSOR_NAME; /// Crate-visible `MT_METADATA_METAPLEX_TOKEN_METADATA_ACCEPTED_FAMILIES` component constant. pub(crate) use self::metadata::MT_METADATA_METAPLEX_TOKEN_METADATA_ACCEPTED_FAMILIES; /// Crate-visible `MT_METADATA_METAPLEX_TOKEN_METADATA_COMPONENT_NAME` component constant. pub(crate) use self::metadata::MT_METADATA_METAPLEX_TOKEN_METADATA_COMPONENT_NAME; /// Crate-visible `MT_METADATA_METAPLEX_TOKEN_METADATA_PROCESSOR_NAME` component constant. pub(crate) use self::metadata::MT_METADATA_METAPLEX_TOKEN_METADATA_PROCESSOR_NAME; /// Crate-visible `MT_METADATA_METAPLEX_TOKEN_METADATA_PROJECTION_VERSION` component constant. pub(crate) use self::metadata::MT_METADATA_METAPLEX_TOKEN_METADATA_PROJECTION_VERSION; /// Crate-visible `MT_METADATA_SOLANA_PROGRAM_ACCEPTED_FAMILIES` component constant. pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_ACCEPTED_FAMILIES; /// Crate-visible `MT_METADATA_SOLANA_PROGRAM_COMPONENT_NAME` component constant. pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_COMPONENT_NAME; /// Crate-visible `MT_METADATA_SOLANA_PROGRAM_PROCESSOR_NAME` component constant. pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_PROCESSOR_NAME; /// Crate-visible `MT_METADATA_SOLANA_PROGRAM_PROJECTION_VERSION` component constant. pub(crate) use self::metadata::MT_METADATA_SOLANA_PROGRAM_PROJECTION_VERSION; /// Crate-visible `MT_METADATA_TOKEN_2022_ACCEPTED_FAMILIES` component constant. pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_ACCEPTED_FAMILIES; /// Crate-visible `MT_METADATA_TOKEN_2022_COMPONENT_NAME` component constant. pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_COMPONENT_NAME; /// Crate-visible `MT_METADATA_TOKEN_2022_INSTRUCTION_ENTRIES` component constant. pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_INSTRUCTION_ENTRIES; /// Crate-visible `MT_METADATA_TOKEN_2022_PROCESSOR_NAME` component constant. pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_PROCESSOR_NAME; /// Crate-visible `MT_METADATA_TOKEN_2022_PROJECTION_VERSION` component constant. pub(crate) use self::metadata::MT_METADATA_TOKEN_2022_PROJECTION_VERSION; /// Crate-visible `TRACING_TARGET_MATERIALIZER_METADATA_METAPLEX_TOKEN_METADATA` component constant. pub(crate) use self::metadata::TRACING_TARGET_MATERIALIZER_METADATA_METAPLEX_TOKEN_METADATA; /// Crate-visible `TRACING_TARGET_MATERIALIZER_METADATA_SOLANA_PROGRAM` component constant. pub(crate) use self::metadata::TRACING_TARGET_MATERIALIZER_METADATA_SOLANA_PROGRAM; /// Crate-visible `TRACING_TARGET_MATERIALIZER_METADATA_TOKEN_2022` component constant. pub(crate) use self::metadata::TRACING_TARGET_MATERIALIZER_METADATA_TOKEN_2022; /// Crate-visible `MT_NFT_ACCEPTED_FAMILIES` component constant. pub(crate) use self::nft::MT_NFT_ACCEPTED_FAMILIES; /// Crate-visible `MT_NFT_COMPONENT_NAME` component constant. pub(crate) use self::nft::MT_NFT_COMPONENT_NAME; /// Crate-visible `MT_NFT_PROCESSOR_NAME` component constant. pub(crate) use self::nft::MT_NFT_PROCESSOR_NAME; /// Crate-visible `MT_ORACLE_ACCEPTED_FAMILIES` component constant. pub(crate) use self::oracle::MT_ORACLE_ACCEPTED_FAMILIES; /// Crate-visible `MT_ORACLE_COMPONENT_NAME` component constant. pub(crate) use self::oracle::MT_ORACLE_COMPONENT_NAME; /// Crate-visible `MT_ORACLE_PROCESSOR_NAME` component constant. pub(crate) use self::oracle::MT_ORACLE_PROCESSOR_NAME; /// Crate-visible `MT_ORDERBOOK_ACCEPTED_FAMILIES` component constant. pub(crate) use self::orderbook::MT_ORDERBOOK_ACCEPTED_FAMILIES; /// Crate-visible `MT_ORDERBOOK_COMPONENT_NAME` component constant. pub(crate) use self::orderbook::MT_ORDERBOOK_COMPONENT_NAME; /// Crate-visible `MT_ORDERBOOK_PROCESSOR_NAME` component constant. pub(crate) use self::orderbook::MT_ORDERBOOK_PROCESSOR_NAME; /// Crate-visible `MT_PERPETUALS_ACCEPTED_FAMILIES` component constant. pub(crate) use self::perpetuals::MT_PERPETUALS_ACCEPTED_FAMILIES; /// Crate-visible `MT_PERPETUALS_COMPONENT_NAME` component constant. pub(crate) use self::perpetuals::MT_PERPETUALS_COMPONENT_NAME; /// Crate-visible `MT_PERPETUALS_PROCESSOR_NAME` component constant. pub(crate) use self::perpetuals::MT_PERPETUALS_PROCESSOR_NAME; /// Crate-visible `MT_POOL_STATE_ACCEPTED_FAMILIES` component constant. pub(crate) use self::pool::MT_POOL_STATE_ACCEPTED_FAMILIES; /// Crate-visible `MT_POOL_STATE_COMPONENT_NAME` component constant. pub(crate) use self::pool::MT_POOL_STATE_COMPONENT_NAME; /// Crate-visible `MT_POOL_STATE_PROCESSOR_NAME` component constant. pub(crate) use self::pool::MT_POOL_STATE_PROCESSOR_NAME; /// Crate-visible `MT_REWARDS_ACCEPTED_FAMILIES` component constant. pub(crate) use self::rewards::MT_REWARDS_ACCEPTED_FAMILIES; /// Crate-visible `MT_REWARDS_COMPONENT_NAME` component constant. pub(crate) use self::rewards::MT_REWARDS_COMPONENT_NAME; /// Crate-visible `MT_REWARDS_PROCESSOR_NAME` component constant. pub(crate) use self::rewards::MT_REWARDS_PROCESSOR_NAME; /// Crate-visible `MT_RISK_ACCEPTED_FAMILIES` component constant. pub(crate) use self::risk::MT_RISK_ACCEPTED_FAMILIES; /// Crate-visible `MT_RISK_COMPONENT_NAME` component constant. pub(crate) use self::risk::MT_RISK_COMPONENT_NAME; /// Crate-visible `MT_RISK_PROCESSOR_NAME` component constant. pub(crate) use self::risk::MT_RISK_PROCESSOR_NAME; /// Crate-visible `MT_RISK_PROJECTION_VERSION` component constant. pub(crate) use self::risk::MT_RISK_PROJECTION_VERSION; /// Crate-visible `MT_RISK_RISK_ENTRIES` component constant. pub(crate) use self::risk::MT_RISK_RISK_ENTRIES; /// Crate-visible `TRACING_TARGET_MATERIALIZER_RISK` component constant. pub(crate) use self::risk::TRACING_TARGET_MATERIALIZER_RISK; /// Crate-visible `MT_ROUTING_ACCEPTED_FAMILIES` component constant. pub(crate) use self::routing::MT_ROUTING_ACCEPTED_FAMILIES; /// Crate-visible `MT_ROUTING_COMPONENT_NAME` component constant. pub(crate) use self::routing::MT_ROUTING_COMPONENT_NAME; /// Crate-visible `MT_ROUTING_PROCESSOR_NAME` component constant. pub(crate) use self::routing::MT_ROUTING_PROCESSOR_NAME; /// Crate-visible `MT_STAKING_ACCEPTED_FAMILIES` component constant. pub(crate) use self::staking::MT_STAKING_ACCEPTED_FAMILIES; /// Crate-visible `MT_STAKING_COMPONENT_NAME` component constant. pub(crate) use self::staking::MT_STAKING_COMPONENT_NAME; /// Crate-visible `MT_STAKING_PROCESSOR_NAME` component constant. pub(crate) use self::staking::MT_STAKING_PROCESSOR_NAME; /// Crate-visible `MT_STAKING_PROJECTION_VERSION` component constant. pub(crate) use self::staking::MT_STAKING_PROJECTION_VERSION; /// Crate-visible `MT_STAKING_STAKE_ACCOUNT_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_STAKE_ACCOUNT_ENTRIES; /// Crate-visible `MT_STAKING_STAKE_AUTHORITY_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_STAKE_AUTHORITY_ENTRIES; /// Crate-visible `MT_STAKING_STAKE_LOCKUP_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_STAKE_LOCKUP_ENTRIES; /// Crate-visible `MT_STAKING_STAKE_SURFACE` component constant. pub(crate) use self::staking::MT_STAKING_STAKE_SURFACE; /// Crate-visible `MT_STAKING_STAKE_VALUE_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_STAKE_VALUE_ENTRIES; /// Crate-visible `MT_STAKING_VOTE_ACCOUNT_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_VOTE_ACCOUNT_ENTRIES; /// Crate-visible `MT_STAKING_VOTE_ADMIN_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_VOTE_ADMIN_ENTRIES; /// Crate-visible `MT_STAKING_VOTE_AUTHORITY_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_VOTE_AUTHORITY_ENTRIES; /// Crate-visible `MT_STAKING_VOTE_REWARD_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_VOTE_REWARD_ENTRIES; /// Crate-visible `MT_STAKING_VOTE_STATE_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_VOTE_STATE_ENTRIES; /// Crate-visible `MT_STAKING_VOTE_SURFACE` component constant. pub(crate) use self::staking::MT_STAKING_VOTE_SURFACE; /// Crate-visible `MT_STAKING_VOTE_VALUE_ENTRIES` component constant. pub(crate) use self::staking::MT_STAKING_VOTE_VALUE_ENTRIES; /// Crate-visible `TRACING_TARGET_MATERIALIZER_STAKING` component constant. pub(crate) use self::staking::TRACING_TARGET_MATERIALIZER_STAKING; /// Crate-visible `MT_TOKEN_ACCOUNTS_ACCEPTED_FAMILIES` component constant. pub(crate) use self::token::MT_TOKEN_ACCOUNTS_ACCEPTED_FAMILIES; /// Crate-visible `MT_TOKEN_ACCOUNTS_ATA_LIFECYCLE_ENTRIES` component constant. pub(crate) use self::token::MT_TOKEN_ACCOUNTS_ATA_LIFECYCLE_ENTRIES; /// Crate-visible `MT_TOKEN_ACCOUNTS_COMPONENT_NAME` component constant. pub(crate) use self::token::MT_TOKEN_ACCOUNTS_COMPONENT_NAME; /// Crate-visible `MT_TOKEN_ACCOUNTS_MUTATION_ENTRIES` component constant. pub(crate) use self::token::MT_TOKEN_ACCOUNTS_MUTATION_ENTRIES; /// Crate-visible `MT_TOKEN_ACCOUNTS_PROCESSOR_NAME` component constant. pub(crate) use self::token::MT_TOKEN_ACCOUNTS_PROCESSOR_NAME; /// Crate-visible `MT_TOKEN_ACCOUNTS_PROJECTION_VERSION` component constant. pub(crate) use self::token::MT_TOKEN_ACCOUNTS_PROJECTION_VERSION; /// Crate-visible `MT_TOKEN_METADATA_RISK_ACCEPTED_FAMILIES` component constant. pub(crate) use self::token::MT_TOKEN_METADATA_RISK_ACCEPTED_FAMILIES; /// Crate-visible `MT_TOKEN_METADATA_RISK_COMPONENT_NAME` component constant. pub(crate) use self::token::MT_TOKEN_METADATA_RISK_COMPONENT_NAME; /// Crate-visible `MT_TOKEN_METADATA_RISK_PROCESSOR_NAME` component constant. pub(crate) use self::token::MT_TOKEN_METADATA_RISK_PROCESSOR_NAME; /// Crate-visible `TRACING_TARGET_MATERIALIZER_TOKEN_ACCOUNTS` component constant. pub(crate) use self::token::TRACING_TARGET_MATERIALIZER_TOKEN_ACCOUNTS; /// Crate-visible `MT_TRADES_ACCEPTED_FAMILIES` component constant. pub(crate) use self::trades::MT_TRADES_ACCEPTED_FAMILIES; /// Crate-visible `MT_TRADES_COMPONENT_NAME` component constant. pub(crate) use self::trades::MT_TRADES_COMPONENT_NAME; /// Crate-visible `MT_TRADES_PROCESSOR_NAME` component constant. pub(crate) use self::trades::MT_TRADES_PROCESSOR_NAME; /// Crate-visible `MT_TRANSACTION_ANNOTATIONS_ACCEPTED_FAMILIES` component constant. pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_ACCEPTED_FAMILIES; /// Crate-visible `MT_TRANSACTION_ANNOTATIONS_COMPONENT_NAME` component constant. pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_COMPONENT_NAME; /// Crate-visible `MT_TRANSACTION_ANNOTATIONS_MAX_MEMO_PAYLOAD_BYTES` component constant. pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_MAX_MEMO_PAYLOAD_BYTES; /// Crate-visible `MT_TRANSACTION_ANNOTATIONS_MEMO_ENTRY_NAMES` component constant. pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_MEMO_ENTRY_NAMES; /// Crate-visible `MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME` component constant. pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME; /// Crate-visible `MT_TRANSACTION_ANNOTATIONS_PROJECTION_VERSION` component constant. pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_PROJECTION_VERSION; /// Crate-visible `TRACING_TARGET_MATERIALIZER_TRANSACTION_ANNOTATIONS` component constant. pub(crate) use self::transaction::TRACING_TARGET_MATERIALIZER_TRANSACTION_ANNOTATIONS; /// Crate-visible `MT_VAULT_ACCEPTED_FAMILIES` component constant. pub(crate) use self::vault::MT_VAULT_ACCEPTED_FAMILIES; /// Crate-visible `MT_VAULT_COMPONENT_NAME` component constant. pub(crate) use self::vault::MT_VAULT_COMPONENT_NAME; /// Crate-visible `MT_VAULT_PROCESSOR_NAME` component constant. pub(crate) use self::vault::MT_VAULT_PROCESSOR_NAME; #[cfg(test)] mod tests { fn materializer_contracts() -> &'static [( &'static dyn crate::MtMaterializer, &'static dyn crate::MtApiEventMaterializer, &'static str, &'static str, )] { return &[ ( &crate::MtAdminMaterializer, &crate::MtAdminMaterializer, crate::MT_ADMIN_COMPONENT_NAME, crate::MT_ADMIN_PROCESSOR_NAME, ), ( &crate::MtBridgeMaterializer, &crate::MtBridgeMaterializer, crate::MT_BRIDGE_COMPONENT_NAME, crate::MT_BRIDGE_PROCESSOR_NAME, ), ( &crate::MtComplianceAuditMaterializer, &crate::MtComplianceAuditMaterializer, crate::MT_COMPLIANCE_AUDIT_COMPONENT_NAME, crate::MT_COMPLIANCE_AUDIT_PROCESSOR_NAME, ), ( &crate::MtFeesMaterializer, &crate::MtFeesMaterializer, crate::MT_FEES_COMPONENT_NAME, crate::MT_FEES_PROCESSOR_NAME, ), ( &crate::MtGovernanceMaterializer, &crate::MtGovernanceMaterializer, crate::MT_GOVERNANCE_COMPONENT_NAME, crate::MT_GOVERNANCE_PROCESSOR_NAME, ), ( &crate::MtLendingMaterializer, &crate::MtLendingMaterializer, crate::MT_LENDING_COMPONENT_NAME, crate::MT_LENDING_PROCESSOR_NAME, ), ( &crate::MtLifecycleMaterializer, &crate::MtLifecycleMaterializer, crate::MT_LIFECYCLE_COMPONENT_NAME, crate::MT_LIFECYCLE_PROCESSOR_NAME, ), ( &crate::MtLiquidityMaterializer, &crate::MtLiquidityMaterializer, crate::MT_LIQUIDITY_COMPONENT_NAME, crate::MT_LIQUIDITY_PROCESSOR_NAME, ), ( &crate::MtMetadataMetaplexTokenMetadataMaterializer, &crate::MtMetadataMetaplexTokenMetadataMaterializer, crate::MT_METADATA_METAPLEX_TOKEN_METADATA_COMPONENT_NAME, crate::MT_METADATA_METAPLEX_TOKEN_METADATA_PROCESSOR_NAME, ), ( &crate::MtMetadataSolanaProgramMaterializer, &crate::MtMetadataSolanaProgramMaterializer, crate::MT_METADATA_SOLANA_PROGRAM_COMPONENT_NAME, crate::MT_METADATA_SOLANA_PROGRAM_PROCESSOR_NAME, ), ( &crate::MtMetadataToken2022Materializer, &crate::MtMetadataToken2022Materializer, crate::MT_METADATA_TOKEN_2022_COMPONENT_NAME, crate::MT_METADATA_TOKEN_2022_PROCESSOR_NAME, ), ( &crate::MtNftMaterializer, &crate::MtNftMaterializer, crate::MT_NFT_COMPONENT_NAME, crate::MT_NFT_PROCESSOR_NAME, ), ( &crate::MtOracleMaterializer, &crate::MtOracleMaterializer, crate::MT_ORACLE_COMPONENT_NAME, crate::MT_ORACLE_PROCESSOR_NAME, ), ( &crate::MtOrderbookMaterializer, &crate::MtOrderbookMaterializer, crate::MT_ORDERBOOK_COMPONENT_NAME, crate::MT_ORDERBOOK_PROCESSOR_NAME, ), ( &crate::MtPerpetualsMaterializer, &crate::MtPerpetualsMaterializer, crate::MT_PERPETUALS_COMPONENT_NAME, crate::MT_PERPETUALS_PROCESSOR_NAME, ), ( &crate::MtPoolStateMaterializer, &crate::MtPoolStateMaterializer, crate::MT_POOL_STATE_COMPONENT_NAME, crate::MT_POOL_STATE_PROCESSOR_NAME, ), ( &crate::MtRewardsMaterializer, &crate::MtRewardsMaterializer, crate::MT_REWARDS_COMPONENT_NAME, crate::MT_REWARDS_PROCESSOR_NAME, ), ( &crate::MtRiskMaterializer, &crate::MtRiskMaterializer, crate::MT_RISK_COMPONENT_NAME, crate::MT_RISK_PROCESSOR_NAME, ), ( &crate::MtRoutingMaterializer, &crate::MtRoutingMaterializer, crate::MT_ROUTING_COMPONENT_NAME, crate::MT_ROUTING_PROCESSOR_NAME, ), ( &crate::MtStakingMaterializer, &crate::MtStakingMaterializer, crate::MT_STAKING_COMPONENT_NAME, crate::MT_STAKING_PROCESSOR_NAME, ), ( &crate::MtTokenAccountsMaterializer, &crate::MtTokenAccountsMaterializer, crate::MT_TOKEN_ACCOUNTS_COMPONENT_NAME, crate::MT_TOKEN_ACCOUNTS_PROCESSOR_NAME, ), ( &crate::MtTokenMetadataRiskMaterializer, &crate::MtTokenMetadataRiskMaterializer, crate::MT_TOKEN_METADATA_RISK_COMPONENT_NAME, crate::MT_TOKEN_METADATA_RISK_PROCESSOR_NAME, ), ( &crate::MtTradesMaterializer, &crate::MtTradesMaterializer, crate::MT_TRADES_COMPONENT_NAME, crate::MT_TRADES_PROCESSOR_NAME, ), ( &crate::MtTransactionAnnotationMaterializer, &crate::MtTransactionAnnotationMaterializer, crate::MT_TRANSACTION_ANNOTATIONS_COMPONENT_NAME, crate::MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME, ), ( &crate::MtVaultMaterializer, &crate::MtVaultMaterializer, crate::MT_VAULT_COMPONENT_NAME, crate::MT_VAULT_PROCESSOR_NAME, ), ]; } #[test] fn every_materializer_uses_the_component_and_processor_name_convention() { for (legacy, contextual, component_name, processor_name) in materializer_contracts() { assert_eq!(legacy.materializer_name(), *component_name); assert_eq!(contextual.identity().name, *processor_name); assert!(component_name.starts_with("kb-lib.materializer.")); assert!(processor_name.starts_with("materializer.")); assert_eq!( component_name.strip_prefix("kb-lib."), std::option::Option::Some(*processor_name) ); assert!(!legacy.materializer_version().is_empty()); assert!(!contextual.identity().version.is_empty()); } } #[test] fn reserved_materializers_are_empty_shells() { let materializers: &[&dyn crate::MtApiEventMaterializer] = &[ &crate::MtBridgeMaterializer, &crate::MtGovernanceMaterializer, &crate::MtLendingMaterializer, &crate::MtLiquidityMaterializer, &crate::MtNftMaterializer, &crate::MtOracleMaterializer, &crate::MtOrderbookMaterializer, &crate::MtPerpetualsMaterializer, &crate::MtPoolStateMaterializer, &crate::MtRewardsMaterializer, &crate::MtRoutingMaterializer, &crate::MtTokenMetadataRiskMaterializer, &crate::MtTradesMaterializer, &crate::MtVaultMaterializer, ]; for materializer in materializers { assert!(materializer.accepted_families().is_empty()); } } }