From 42e8a203ec66e2ed0e3e9b44b97b53cb4a9a6ff6 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Fri, 24 Jul 2026 14:23:58 +0200 Subject: [PATCH] v0.1.0-pre.011 --- .pydevproject | 5 + CHANGELOG.md | 10 +- README.md | 22 +- ROADMAP.md | 31 +- RULES.md | 8 +- config/example.config.json | 300 ++--- docs/CORE_EXTRACTION_CONTRACTS.md | 6 +- docs/CORE_PROGRAM_IDS.md | 94 +- docs/DECODER_MATERIALIZATION_CONTRACTS.md | 6 +- docs/EXECUTION_MODEL.md | 4 +- docs/INSTRUCTION_REPLAY_CONTRACTS.md | 4 +- docs/MATERIALIZATIONS.md | 16 +- docs/METAPLEX_TOKEN_METADATA_MATRIX.json | 2 +- docs/NATIVE_SOLANA_MATERIALIZATION_AUDIT.md | 30 +- docs/PROGRAM_REGISTRY_CONTROL.md | 108 +- docs/RUST_WORKSPACE_RULE_AUDIT.md | 2 +- docs/SOLANA_INTERFACE_DEPENDENCIES.md | 4 +- docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json | 45 +- docs/SPL_MEMO_MATRIX.json | 8 +- ...TOKEN2022_CONFIDENTIAL_EXECUTION_AUDIT.md} | 2 +- ..._MATRIX.json => SPL_TOKEN2022_MATRIX.json} | 6 +- ...AUDIT.md => SPL_TOKEN2022_SOURCE_AUDIT.md} | 2 +- ...n => SPL_TOKEN2022_VALIDATION_MATRIX.json} | 2 +- docs/TRACING_CONTRACT.md | 7 +- docs/legacy-khadhroony-bot2/CHANGELOG.md | 4 +- docs/legacy-khadhroony-bot2/ROADMAP.md | 12 +- docs/legacy-khadhroony-bot2/RULES.md | 6 +- kb-core/src/lib.rs | 10 +- kb-lib/README.md | 48 +- kb-lib/src/decoder.rs | 550 +++++++-- kb-lib/src/decoder/adapter.rs | 2 +- .../decoder/adapter/saber_decimal_wrapper.rs | 4 +- kb-lib/src/decoder/admin.rs | 4 +- kb-lib/src/decoder/admin/jupiter_lock.rs | 4 +- kb-lib/src/decoder/admin/pump_fees.rs | 4 +- kb-lib/src/decoder/amm.rs | 52 +- kb-lib/src/decoder/amm/aldrin_v1.rs | 4 +- kb-lib/src/decoder/amm/aldrin_v2.rs | 4 +- kb-lib/src/decoder/amm/alphaq.rs | 4 +- kb-lib/src/decoder/amm/believe.rs | 4 +- kb-lib/src/decoder/amm/bonk_swap.rs | 4 +- kb-lib/src/decoder/amm/fluxbeam.rs | 4 +- kb-lib/src/decoder/amm/goon_fi.rs | 4 +- kb-lib/src/decoder/amm/goosefx_gamma.rs | 4 +- kb-lib/src/decoder/amm/goosefx_v2.rs | 4 +- kb-lib/src/decoder/amm/guac_swap.rs | 4 +- kb-lib/src/decoder/amm/lifinity_swap_v2.rs | 4 +- .../src/decoder/amm/metadao_futarchy_amm.rs | 4 +- kb-lib/src/decoder/amm/metadao_v0_5.rs | 4 +- kb-lib/src/decoder/amm/meteora_damm_v1.rs | 4 +- kb-lib/src/decoder/amm/meteora_damm_v2.rs | 4 +- kb-lib/src/decoder/amm/obric_v2.rs | 4 +- kb-lib/src/decoder/amm/one_dex.rs | 4 +- kb-lib/src/decoder/amm/pump_swap.rs | 4 +- kb-lib/src/decoder/amm/raydium_lp_v4.rs | 4 +- kb-lib/src/decoder/amm/solfi.rs | 4 +- kb-lib/src/decoder/amm/solfi_v2.rs | 4 +- kb-lib/src/decoder/amm/vertigo.rs | 4 +- kb-lib/src/decoder/amm/virtuals.rs | 4 +- kb-lib/src/decoder/amm/woofi.rs | 4 +- kb-lib/src/decoder/amm/zero_fi.rs | 4 +- kb-lib/src/decoder/amm/zora.rs | 4 +- kb-lib/src/decoder/anchor.rs | 2 +- kb-lib/src/decoder/anchor/core.rs | 4 +- kb-lib/src/decoder/api.rs | 45 +- kb-lib/src/decoder/api/contracts.rs | 140 +-- kb-lib/src/decoder/api/decoder.rs | 34 +- kb-lib/src/decoder/bridge.rs | 8 +- .../circle_cctp_token_messenger_minter.rs | 4 +- .../circle_cctp_token_messenger_minter_v2.rs | 4 +- .../src/decoder/bridge/layer_zero_endpoint.rs | 4 +- .../src/decoder/bridge/layer_zero_executor.rs | 4 +- kb-lib/src/decoder/clmm.rs | 12 +- kb-lib/src/decoder/clmm/byreal.rs | 4 +- kb-lib/src/decoder/clmm/fusion.rs | 4 +- kb-lib/src/decoder/clmm/orca_whirlpool.rs | 4 +- kb-lib/src/decoder/clmm/pancake_swap.rs | 4 +- kb-lib/src/decoder/clmm/raydium.rs | 4 +- kb-lib/src/decoder/clmm/stabble.rs | 4 +- kb-lib/src/decoder/cpmm.rs | 2 +- kb-lib/src/decoder/cpmm/raydium.rs | 4 +- kb-lib/src/decoder/dlmm.rs | 2 +- kb-lib/src/decoder/dlmm/meteora.rs | 4 +- kb-lib/src/decoder/fees.rs | 4 +- kb-lib/src/decoder/fees/bags_fee_share_v1.rs | 4 +- kb-lib/src/decoder/fees/bags_fee_share_v2.rs | 4 +- kb-lib/src/decoder/governance.rs | 2 +- .../decoder/governance/metadao_bid_wall.rs | 4 +- kb-lib/src/decoder/launchpad.rs | 18 +- kb-lib/src/decoder/launchpad/boop_fun.rs | 4 +- kb-lib/src/decoder/launchpad/metadao_ico.rs | 4 +- kb-lib/src/decoder/launchpad/meteora_dbc.rs | 4 +- kb-lib/src/decoder/launchpad/moonit.rs | 4 +- .../src/decoder/launchpad/orca_wavebreak.rs | 4 +- kb-lib/src/decoder/launchpad/printr.rs | 4 +- kb-lib/src/decoder/launchpad/pump_fun.rs | 4 +- .../src/decoder/launchpad/pump_pumpup_ai.rs | 4 +- .../decoder/launchpad/raydium_launchlab.rs | 4 +- kb-lib/src/decoder/lending.rs | 14 +- kb-lib/src/decoder/lending/clone.rs | 4 +- .../decoder/lending/jupiter_lend_borrow.rs | 4 +- .../src/decoder/lending/jupiter_lend_earn.rs | 4 +- .../lending/jupiter_lend_flash_loan.rs | 4 +- .../decoder/lending/jupiter_lend_liquidity.rs | 4 +- kb-lib/src/decoder/lending/kamino.rs | 4 +- kb-lib/src/decoder/lending/marginfi_v2.rs | 4 +- kb-lib/src/decoder/lock.rs | 2 +- kb-lib/src/decoder/lock/raydium_lp.rs | 4 +- kb-lib/src/decoder/metadata.rs | 214 +++- .../metadata/metaplex_token_metadata.rs | 222 ++-- .../metaplex_token_metadata/account.rs | 939 +++++++++------ .../metaplex_token_metadata/canonical.rs | 220 ++-- .../metaplex_token_metadata/constants.rs | 319 +++-- .../metaplex_token_metadata/decoder.rs | 987 ++++++++-------- .../metaplex_token_metadata/instruction.rs | 424 ++++--- .../src/decoder/metadata/spl_name_service.rs | 4 +- kb-lib/src/decoder/nft.rs | 2 +- kb-lib/src/decoder/nft/metaplex_bubblegum.rs | 4 +- kb-lib/src/decoder/orderbook.rs | 6 +- .../decoder/orderbook/jupiter_limit_order.rs | 4 +- .../orderbook/jupiter_limit_order_v2.rs | 4 +- kb-lib/src/decoder/orderbook/openbook_v2.rs | 4 +- kb-lib/src/decoder/perpetuals.rs | 6 +- kb-lib/src/decoder/perpetuals/drift_v2.rs | 4 +- kb-lib/src/decoder/perpetuals/jupiter.rs | 4 +- kb-lib/src/decoder/perpetuals/zeta.rs | 4 +- kb-lib/src/decoder/router.rs | 12 +- .../src/decoder/router/dflow_aggregator_v4.rs | 4 +- .../decoder/router/jupiter_aggregator_v4.rs | 4 +- .../decoder/router/jupiter_aggregator_v6.rs | 4 +- kb-lib/src/decoder/router/jupiter_dca.rs | 4 +- kb-lib/src/decoder/router/okx_labs_v1.rs | 4 +- kb-lib/src/decoder/router/okx_labs_v2.rs | 4 +- kb-lib/src/decoder/rwa.rs | 2 +- kb-lib/src/decoder/rwa/ondo_global_markets.rs | 4 +- kb-lib/src/decoder/solana.rs | 172 +-- kb-lib/src/decoder/solana/core.rs | 172 +-- kb-lib/src/decoder/solana/core/accounts.rs | 10 +- .../solana/core/address_lookup_table.rs | 172 +-- .../src/decoder/solana/core/compute_budget.rs | 200 ++-- kb-lib/src/decoder/solana/core/config.rs | 109 +- kb-lib/src/decoder/solana/core/constants.rs | 64 +- kb-lib/src/decoder/solana/core/decoder.rs | 241 ++-- kb-lib/src/decoder/solana/core/event.rs | 68 +- kb-lib/src/decoder/solana/core/feature.rs | 105 +- kb-lib/src/decoder/solana/core/loaders.rs | 466 ++++---- kb-lib/src/decoder/solana/core/payload.rs | 82 +- kb-lib/src/decoder/solana/core/precompiles.rs | 428 +++---- kb-lib/src/decoder/solana/core/slashing.rs | 187 +-- kb-lib/src/decoder/solana/core/stake.rs | 354 +++--- kb-lib/src/decoder/solana/core/system.rs | 237 ++-- kb-lib/src/decoder/solana/core/vote.rs | 276 ++--- kb-lib/src/decoder/solana/core/zk_elgamal.rs | 200 ++-- .../src/decoder/solana/core/zk_token_proof.rs | 201 ++-- kb-lib/src/decoder/spl.rs | 146 +-- kb-lib/src/decoder/spl/account_compression.rs | 4 +- .../decoder/spl/associated_token_account.rs | 26 +- .../spl/associated_token_account/constants.rs | 19 +- .../spl/associated_token_account/decoder.rs | 160 +-- .../spl/associated_token_account/wire.rs | 91 +- kb-lib/src/decoder/spl/elgamal_registry.rs | 24 +- .../decoder/spl/elgamal_registry/constants.rs | 9 +- .../decoder/spl/elgamal_registry/decoder.rs | 103 +- .../src/decoder/spl/elgamal_registry/state.rs | 26 +- .../src/decoder/spl/elgamal_registry/wire.rs | 87 +- kb-lib/src/decoder/spl/memo.rs | 20 +- kb-lib/src/decoder/spl/memo/constants.rs | 16 +- kb-lib/src/decoder/spl/memo/decoder.rs | 125 +- kb-lib/src/decoder/spl/memo/payload.rs | 74 +- kb-lib/src/decoder/spl/noop.rs | 4 +- kb-lib/src/decoder/spl/single_pool.rs | 4 +- kb-lib/src/decoder/spl/stake_pool.rs | 4 +- kb-lib/src/decoder/spl/token.rs | 24 +- kb-lib/src/decoder/spl/token/constants.rs | 16 +- kb-lib/src/decoder/spl/token/decoder.rs | 137 ++- kb-lib/src/decoder/spl/token/wire.rs | 112 +- .../spl/{token_2022.rs => token2022.rs} | 36 +- .../{token_2022 => token2022}/constants.rs | 20 +- .../spl/{token_2022 => token2022}/decoder.rs | 269 +++-- .../spl/{token_2022 => token2022}/state.rs | 333 ++++-- .../spl/{token_2022 => token2022}/wire.rs | 133 ++- kb-lib/src/decoder/stable.rs | 8 +- .../src/decoder/stable/swap_hylo_exchange.rs | 4 +- .../src/decoder/stable/swap_jupiter_stable.rs | 4 +- kb-lib/src/decoder/stable/swap_numeraire.rs | 4 +- kb-lib/src/decoder/stable/swap_stabble.rs | 4 +- kb-lib/src/decoder/staking.rs | 6 +- kb-lib/src/decoder/staking/kamino_farm.rs | 4 +- .../src/decoder/staking/marinade_finance.rs | 4 +- kb-lib/src/decoder/staking/solayer.rs | 4 +- kb-lib/src/decoder/treasury.rs | 2 +- .../treasury/helium_treasury_management.rs | 4 +- kb-lib/src/decoder/vault.rs | 12 +- kb-lib/src/decoder/vault/carrot_defi.rs | 4 +- .../src/decoder/vault/hylo_stability_pool.rs | 4 +- kb-lib/src/decoder/vault/kamino.rs | 4 +- kb-lib/src/decoder/vault/kamino_v2.rs | 4 +- kb-lib/src/decoder/vault/kamino_yvaults.rs | 4 +- kb-lib/src/decoder/vault/meteora.rs | 4 +- kb-lib/src/decoder/vesting.rs | 2 +- kb-lib/src/decoder/vesting/streamflow.rs | 4 +- kb-lib/src/decoder/wallet.rs | 2 +- .../wallet/jupiter_apepro_smart_wallet.rs | 4 +- kb-lib/src/decoder/weighted.rs | 2 +- kb-lib/src/decoder/weighted/swap_stabble.rs | 4 +- kb-lib/src/executor.rs | 106 +- kb-lib/src/executor/adapter.rs | 2 +- .../executor/adapter/saber_decimal_wrapper.rs | 4 +- kb-lib/src/executor/admin.rs | 4 +- kb-lib/src/executor/admin/jupiter_lock.rs | 4 +- kb-lib/src/executor/admin/pump_fees.rs | 4 +- kb-lib/src/executor/amm.rs | 52 +- kb-lib/src/executor/amm/aldrin_v1.rs | 4 +- kb-lib/src/executor/amm/aldrin_v2.rs | 4 +- kb-lib/src/executor/amm/alphaq.rs | 4 +- kb-lib/src/executor/amm/believe.rs | 4 +- kb-lib/src/executor/amm/bonk_swap.rs | 4 +- kb-lib/src/executor/amm/fluxbeam.rs | 4 +- kb-lib/src/executor/amm/goon_fi.rs | 4 +- kb-lib/src/executor/amm/goosefx_gamma.rs | 4 +- kb-lib/src/executor/amm/goosefx_v2.rs | 4 +- kb-lib/src/executor/amm/guac_swap.rs | 4 +- kb-lib/src/executor/amm/lifinity_swap_v2.rs | 4 +- .../src/executor/amm/metadao_futarchy_amm.rs | 4 +- kb-lib/src/executor/amm/metadao_v0_5.rs | 4 +- kb-lib/src/executor/amm/meteora_damm_v1.rs | 4 +- kb-lib/src/executor/amm/meteora_damm_v2.rs | 4 +- kb-lib/src/executor/amm/obric_v2.rs | 4 +- kb-lib/src/executor/amm/one_dex.rs | 4 +- kb-lib/src/executor/amm/pump_swap.rs | 4 +- kb-lib/src/executor/amm/raydium_lp_v4.rs | 4 +- kb-lib/src/executor/amm/solfi.rs | 4 +- kb-lib/src/executor/amm/solfi_v2.rs | 4 +- kb-lib/src/executor/amm/vertigo.rs | 4 +- kb-lib/src/executor/amm/virtuals.rs | 4 +- kb-lib/src/executor/amm/woofi.rs | 4 +- kb-lib/src/executor/amm/zero_fi.rs | 4 +- kb-lib/src/executor/amm/zora.rs | 4 +- kb-lib/src/executor/api.rs | 54 +- kb-lib/src/executor/api/execution.rs | 134 +-- kb-lib/src/executor/api/executor.rs | 27 +- kb-lib/src/executor/bridge.rs | 8 +- .../circle_cctp_token_messenger_minter.rs | 4 +- .../circle_cctp_token_messenger_minter_v2.rs | 4 +- .../executor/bridge/layer_zero_endpoint.rs | 4 +- .../executor/bridge/layer_zero_executor.rs | 4 +- kb-lib/src/executor/clmm.rs | 12 +- kb-lib/src/executor/clmm/byreal.rs | 4 +- kb-lib/src/executor/clmm/fusion.rs | 4 +- kb-lib/src/executor/clmm/orca_whirlpool.rs | 4 +- kb-lib/src/executor/clmm/pancake_swap.rs | 4 +- kb-lib/src/executor/clmm/raydium.rs | 4 +- kb-lib/src/executor/clmm/stabble.rs | 4 +- kb-lib/src/executor/cpmm.rs | 2 +- kb-lib/src/executor/cpmm/raydium.rs | 4 +- kb-lib/src/executor/dlmm.rs | 2 +- kb-lib/src/executor/dlmm/meteora.rs | 4 +- kb-lib/src/executor/fees.rs | 4 +- kb-lib/src/executor/fees/bags_fee_share_v1.rs | 4 +- kb-lib/src/executor/fees/bags_fee_share_v2.rs | 4 +- kb-lib/src/executor/governance.rs | 2 +- .../executor/governance/metadao_bid_wall.rs | 4 +- kb-lib/src/executor/launchpad.rs | 18 +- kb-lib/src/executor/launchpad/boop_fun.rs | 4 +- kb-lib/src/executor/launchpad/metadao_ico.rs | 4 +- kb-lib/src/executor/launchpad/meteora_dbc.rs | 4 +- kb-lib/src/executor/launchpad/moonit.rs | 4 +- .../src/executor/launchpad/orca_wavebreak.rs | 4 +- kb-lib/src/executor/launchpad/printr.rs | 4 +- kb-lib/src/executor/launchpad/pump_fun.rs | 4 +- .../src/executor/launchpad/pump_pumpup_ai.rs | 4 +- .../executor/launchpad/raydium_launchlab.rs | 4 +- kb-lib/src/executor/lending.rs | 14 +- kb-lib/src/executor/lending/clone.rs | 4 +- .../executor/lending/jupiter_lend_borrow.rs | 4 +- .../src/executor/lending/jupiter_lend_earn.rs | 4 +- .../lending/jupiter_lend_flash_loan.rs | 4 +- .../lending/jupiter_lend_liquidity.rs | 4 +- kb-lib/src/executor/lending/kamino.rs | 4 +- kb-lib/src/executor/lending/marginfi_v2.rs | 4 +- kb-lib/src/executor/lock.rs | 2 +- kb-lib/src/executor/lock/raydium_lp.rs | 4 +- kb-lib/src/executor/metadata.rs | 4 +- .../metadata/metaplex_token_metadata.rs | 4 +- .../src/executor/metadata/spl_name_service.rs | 4 +- kb-lib/src/executor/nft.rs | 2 +- kb-lib/src/executor/nft/metaplex_bubblegum.rs | 4 +- kb-lib/src/executor/orderbook.rs | 6 +- .../executor/orderbook/jupiter_limit_order.rs | 4 +- .../orderbook/jupiter_limit_order_v2.rs | 4 +- kb-lib/src/executor/orderbook/openbook_v2.rs | 4 +- kb-lib/src/executor/perpetuals.rs | 6 +- kb-lib/src/executor/perpetuals/drift_v2.rs | 4 +- kb-lib/src/executor/perpetuals/jupiter.rs | 4 +- kb-lib/src/executor/perpetuals/zeta.rs | 4 +- kb-lib/src/executor/router.rs | 12 +- .../executor/router/dflow_aggregator_v4.rs | 4 +- .../executor/router/jupiter_aggregator_v4.rs | 4 +- .../executor/router/jupiter_aggregator_v6.rs | 4 +- kb-lib/src/executor/router/jupiter_dca.rs | 4 +- kb-lib/src/executor/router/okx_labs_v1.rs | 4 +- kb-lib/src/executor/router/okx_labs_v2.rs | 4 +- kb-lib/src/executor/rwa.rs | 2 +- .../src/executor/rwa/ondo_global_markets.rs | 4 +- kb-lib/src/executor/solana.rs | 2 +- kb-lib/src/executor/solana/core.rs | 4 +- kb-lib/src/executor/spl.rs | 18 +- .../src/executor/spl/account_compression.rs | 4 +- .../executor/spl/associated_token_account.rs | 4 +- kb-lib/src/executor/spl/elgamal_registry.rs | 4 +- kb-lib/src/executor/spl/memo.rs | 4 +- kb-lib/src/executor/spl/noop.rs | 4 +- kb-lib/src/executor/spl/single_pool.rs | 4 +- kb-lib/src/executor/spl/stake_pool.rs | 4 +- kb-lib/src/executor/spl/token.rs | 4 +- .../spl/{token_2022.rs => token2022.rs} | 6 +- kb-lib/src/executor/stable.rs | 8 +- .../src/executor/stable/swap_hylo_exchange.rs | 4 +- .../executor/stable/swap_jupiter_stable.rs | 4 +- kb-lib/src/executor/stable/swap_numeraire.rs | 4 +- kb-lib/src/executor/stable/swap_stabble.rs | 4 +- kb-lib/src/executor/staking.rs | 6 +- kb-lib/src/executor/staking/kamino_farm.rs | 4 +- .../src/executor/staking/marinade_finance.rs | 4 +- kb-lib/src/executor/staking/solayer.rs | 4 +- kb-lib/src/executor/treasury.rs | 2 +- .../treasury/helium_treasury_management.rs | 4 +- kb-lib/src/executor/vault.rs | 12 +- kb-lib/src/executor/vault/carrot_defi.rs | 4 +- .../src/executor/vault/hylo_stability_pool.rs | 4 +- kb-lib/src/executor/vault/kamino.rs | 4 +- kb-lib/src/executor/vault/kamino_v2.rs | 4 +- kb-lib/src/executor/vault/kamino_yvaults.rs | 4 +- kb-lib/src/executor/vault/meteora.rs | 4 +- kb-lib/src/executor/vesting.rs | 2 +- kb-lib/src/executor/vesting/streamflow.rs | 4 +- kb-lib/src/executor/wallet.rs | 2 +- .../wallet/jupiter_apepro_smart_wallet.rs | 4 +- kb-lib/src/executor/weighted.rs | 2 +- kb-lib/src/executor/weighted/swap_stabble.rs | 4 +- kb-lib/src/lib.rs | 1035 +++++++++++------ kb-lib/src/materializer.rs | 136 ++- kb-lib/src/materializer/admin.rs | 18 +- kb-lib/src/materializer/admin/constants.rs | 4 +- kb-lib/src/materializer/admin/core.rs | 344 +++--- kb-lib/src/materializer/api.rs | 31 +- kb-lib/src/materializer/api/contracts.rs | 228 ++-- kb-lib/src/materializer/api/materializer.rs | 8 +- kb-lib/src/materializer/bridge.rs | 4 +- kb-lib/src/materializer/bridge/core.rs | 6 +- kb-lib/src/materializer/compliance.rs | 9 +- kb-lib/src/materializer/compliance/audit.rs | 158 +-- .../src/materializer/compliance/constants.rs | 2 +- kb-lib/src/materializer/fees.rs | 9 +- kb-lib/src/materializer/fees/core.rs | 434 ++++++- kb-lib/src/materializer/governance.rs | 4 +- kb-lib/src/materializer/governance/core.rs | 6 +- kb-lib/src/materializer/lending.rs | 4 +- kb-lib/src/materializer/lending/core.rs | 6 +- kb-lib/src/materializer/lifecycle.rs | 9 +- .../src/materializer/lifecycle/constants.rs | 2 +- kb-lib/src/materializer/lifecycle/core.rs | 264 +++-- kb-lib/src/materializer/liquidity.rs | 4 +- kb-lib/src/materializer/liquidity/core.rs | 6 +- kb-lib/src/materializer/metadata.rs | 13 +- kb-lib/src/materializer/metadata/core.rs | 567 ++++++++- kb-lib/src/materializer/nft.rs | 4 +- kb-lib/src/materializer/nft/core.rs | 6 +- kb-lib/src/materializer/oracle.rs | 4 +- kb-lib/src/materializer/oracle/core.rs | 6 +- kb-lib/src/materializer/orderbook.rs | 4 +- kb-lib/src/materializer/orderbook/core.rs | 6 +- kb-lib/src/materializer/perpetuals.rs | 4 +- kb-lib/src/materializer/perpetuals/core.rs | 6 +- kb-lib/src/materializer/pool.rs | 4 +- kb-lib/src/materializer/pool/state.rs | 6 +- kb-lib/src/materializer/rewards.rs | 4 +- kb-lib/src/materializer/rewards/core.rs | 6 +- kb-lib/src/materializer/risk.rs | 15 +- kb-lib/src/materializer/risk/constants.rs | 11 + kb-lib/src/materializer/risk/core.rs | 643 +++++++++- kb-lib/src/materializer/routing.rs | 4 +- kb-lib/src/materializer/routing/core.rs | 6 +- kb-lib/src/materializer/staking.rs | 9 +- kb-lib/src/materializer/staking/constants.rs | 2 +- kb-lib/src/materializer/staking/core.rs | 185 +-- kb-lib/src/materializer/token.rs | 19 +- kb-lib/src/materializer/token/accounts.rs | 833 ++++++++++++- kb-lib/src/materializer/token/constants.rs | 11 + .../src/materializer/token/metadata_risk.rs | 6 +- kb-lib/src/materializer/trades.rs | 4 +- kb-lib/src/materializer/trades/core.rs | 6 +- kb-lib/src/materializer/transaction.rs | 17 +- .../materializer/transaction/annotations.rs | 616 +++++++++- .../src/materializer/transaction/constants.rs | 14 + kb-lib/src/materializer/vault.rs | 4 +- kb-lib/src/materializer/vault/core.rs | 6 +- kb-lib/src/model.rs | 82 +- kb-lib/src/model/canonical_transaction.rs | 102 +- kb-lib/src/model/decoded.rs | 28 +- kb-lib/src/model/materialized.rs | 12 +- kb-lib/src/model/nomenclature.rs | 12 +- kb-lib/src/model/observation.rs | 10 +- kb-lib/src/model/replay.rs | 10 +- kb-lib/src/model/solana.rs | 10 +- kb-lib/tests/external_decoder_api.rs | 42 + kb-lib/tests/external_executor_api.rs | 46 + kb-lib/tests/external_materializer_api.rs | 46 +- kb-logging/src/lib.rs | 2 +- kb-program-ids/src/constants.rs | 12 +- kb-program-ids/src/lib.rs | 8 +- kb-program-ids/src/programs.rs | 4 +- kb-store/README.md | 2 +- kb-store/src/contracts/dto/core.rs | 6 +- kb-store/src/contracts/dto/event.rs | 2 +- kb-store/src/contracts/dto/raw.rs | 27 +- kb-store/src/contracts/repository.rs | 8 +- kb-store/src/lib.rs | 244 ++-- kb-store/src/postgres/query/core_queries.rs | 8 +- .../postgres/query/decode_pipeline_queries.rs | 2 +- kb-store/src/postgres/query/raw_queries.rs | 2 +- .../repository/core_transaction_repository.rs | 2 +- .../repository/decode_pipeline_repository.rs | 2 +- .../repository/raw_transaction_repository.rs | 2 +- ...oony-bot3_v0.1.0-pre.010-full-modified.zip | Bin 0 -> 5053920 bytes .../khadhroony-bot2-reference/CHANGELOG.md | 4 +- .../khadhroony-bot2-reference/ROADMAP.md | 12 +- migration/khadhroony-bot2-reference/RULES.md | 6 +- .../docs/CORE_EXTRACTION_CONTRACTS.md | 4 +- .../docs/CORE_PROGRAM_IDS.md | 2 +- .../docs/DECODER_MATERIALIZATION_CONTRACTS.md | 6 +- .../docs/EXECUTION_MODEL.md | 4 +- .../docs/INSTRUCTION_REPLAY_CONTRACTS.md | 4 +- .../docs/PROGRAM_REGISTRY_CONTROL.md | 2 +- .../docs/RUST_WORKSPACE_RULE_AUDIT.md | 2 +- .../docs/SOLANA_INTERFACE_DEPENDENCIES.md | 4 +- .../kb_decoder_api/README.md | 4 +- .../README.md | 6 +- .../kb_decoder_solana_core/README.md | 4 +- .../kb_decoder_spl_memo/README.md | 2 +- .../kb_decoder_spl_token/README.md | 8 +- .../kb_execution_api/README.md | 58 +- .../kb_execution_safety/README.md | 4 +- .../kb_execution_solana/README.md | 2 +- .../kb_executor_solana_core/README.md | 114 +- .../kb_executor_spl_memo/README.md | 2 +- .../kb_executor_spl_token/README.md | 4 +- .../kb_materializer_admin/README.md | 2 +- .../kb_materializer_api/README.md | 2 +- .../kb_materializer_metadata/README.md | 4 +- .../kb_model/README.md | 2 +- .../kb_pipeline/README.md | 2 +- .../kb_store_core/README.md | 8 +- .../kb_store_pg/README.md | 2 +- .../005_v0_2_2_pg_connection_migrations.md | 2 +- .../019_v0_4_0_decoder_infrastructure.md | 2 +- .../prompts/022_v0_4_3_spl_memo.md | 2 +- .../prompts/023_v0_4_4_spl_token.md | 2 +- scripts/audit_khadhroony_workspace_rules.py | 17 +- scripts/audit_rust_general_rules.py | 32 +- 460 files changed, 12005 insertions(+), 7020 deletions(-) create mode 100644 .pydevproject rename docs/{SPL_TOKEN_2022_CONFIDENTIAL_EXECUTION_AUDIT.md => SPL_TOKEN2022_CONFIDENTIAL_EXECUTION_AUDIT.md} (99%) rename docs/{SPL_TOKEN_2022_MATRIX.json => SPL_TOKEN2022_MATRIX.json} (99%) rename docs/{SPL_TOKEN_2022_SOURCE_AUDIT.md => SPL_TOKEN2022_SOURCE_AUDIT.md} (99%) rename docs/{SPL_TOKEN_2022_VALIDATION_MATRIX.json => SPL_TOKEN2022_VALIDATION_MATRIX.json} (98%) rename kb-lib/src/decoder/spl/{token_2022.rs => token2022.rs} (50%) rename kb-lib/src/decoder/spl/{token_2022 => token2022}/constants.rs (78%) rename kb-lib/src/decoder/spl/{token_2022 => token2022}/decoder.rs (82%) rename kb-lib/src/decoder/spl/{token_2022 => token2022}/state.rs (86%) rename kb-lib/src/decoder/spl/{token_2022 => token2022}/wire.rs (96%) rename kb-lib/src/executor/spl/{token_2022.rs => token2022.rs} (51%) create mode 100644 kb-lib/src/materializer/risk/constants.rs create mode 100644 kb-lib/src/materializer/token/constants.rs create mode 100644 kb-lib/src/materializer/transaction/constants.rs create mode 100644 kb-lib/tests/external_decoder_api.rs create mode 100644 kb-lib/tests/external_executor_api.rs create mode 100644 khadhroony-bot3_v0.1.0-pre.010-full-modified.zip diff --git a/.pydevproject b/.pydevproject new file mode 100644 index 0000000..2b04565 --- /dev/null +++ b/.pydevproject @@ -0,0 +1,5 @@ + + + Default + python interpreter + diff --git a/CHANGELOG.md b/CHANGELOG.md index 556dd40..9c50060 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ + + + # CHANGELOG ## 0.1.0-pre.001 @@ -19,5 +22,10 @@ - Portage des contrats complets de `kb_decoder_api` dans `kb-lib::decoder::api`. - Portage des contrats complets de `kb_materializer_api` dans `kb-lib::materializer::api`. - Portage des contrats complets de `kb_execution_api` dans `kb-lib::executor::api`. -- Ajout du contrat neutre `CoreInstructionReplayInput` dans `kb-lib` pour éviter une dépendance cyclique avec `kb-store`. +- Ajout du contrat neutre `MdCoreInstructionReplayInput` dans `kb-lib` pour éviter une dépendance cyclique avec `kb-store`. - `kb-lib/src/lib.rs` reste une façade de modules et de réexports. + +## 0.1.0-pre.010 + +- Portage des matérialisateurs natifs lifecycle, administration, compliance et staking. +- Conservation de leurs 50 tests historiques et ajout du premier test aval de matérialisation. diff --git a/README.md b/README.md index 12cb6da..17067a1 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # Khadhroony Bot3 @@ -63,9 +63,19 @@ cargo clippy --workspace --all-targets `0.1.0-pre.010` porte les quatre matérialisateurs Solana natifs dans `kb-lib` : -- `LifecycleMaterializer` pour les comptes System, nonces, ALT, loaders, Feature Gate, contextes ZK et rapports Slashing ; -- `AdminMaterializer` pour les assignations, configurations et autorités, avec ses projections stateful Token‑2022 et registre ElGamal ; -- `ComplianceAuditMaterializer` pour les écritures et copies bornées de bytecode ; -- `StakingMaterializer` pour les transitions Stake et Vote commitées. +- `MtLifecycleMaterializer` pour les comptes System, nonces, ALT, loaders, Feature Gate, contextes ZK et rapports Slashing ; +- `MtAdminMaterializer` pour les assignations, configurations et autorités, avec ses projections stateful Token‑2022 et registre ElGamal ; +- `MtComplianceAuditMaterializer` pour les écritures et copies bornées de bytecode ; +- `MtStakingMaterializer` pour les transitions Stake et Vote commitées. -Les identités historiques des processors sont conservées pour la compatibilité des replays, tandis que les targets de tracing suivent désormais la hiérarchie `kb-lib.materializer.*`. Le contrat public `EventMaterializer`, ses modèles d’entrée et ses résultats restent réexportés à la racine de `kb-lib`, afin qu’un futur crate externe puisse fournir un matérialiseur sans dépendre d’une implémentation interne. +Les identités historiques des processors sont conservées pour la compatibilité des replays, tandis que les targets de tracing suivent désormais la hiérarchie `kb-lib.materializer.*`. Le contrat public `MtApiEventMaterializer`, ses modèles d’entrée et ses résultats restent réexportés à la racine de `kb-lib`, afin qu’un futur crate externe puisse fournir un matérialiseur sans dépendre d’une implémentation interne. + +`0.1.0-pre.011` termine le port des matérialisateurs réellement implémentés dans bot2 : + +- `MtTransactionAnnotationMaterializer` pour les Memo commitées ; +- `MtTokenAccountsMaterializer` pour les mutations SPL Token, le lifecycle ATA et les snapshots Token‑2022 ; +- `MtFeesMaterializer` pour les frais publics et confidentiels Token‑2022, sans prétendre déchiffrer les valeurs confidentielles ; +- `MtRiskMaterializer` pour les faits de risque SPL Token et ATA sans score arbitraire ; +- `MtMetadataMaterializer` pour les snapshots descriptifs Token‑2022 et Metaplex, sans fetch off-chain. + +Les modules de matérialisation sont privés. Tous les contrats, types concrets et helpers destinés aux consommateurs externes sont exposés exclusivement par `kb-lib/src/lib.rs`. Des tests aval distincts protègent les contrats d’extension `DcApiProtocolDecoder`, `MtApiEventMaterializer` et `ExApiInstructionExecutor`. diff --git a/ROADMAP.md b/ROADMAP.md index c3f5d49..56e5610 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,5 @@ - + # ROADMAP — khadhroony-bot3 @@ -13,8 +13,8 @@ - [x] Porter exactement les contrats publics de `kb_decoder_api`. - [x] Porter exactement les contrats publics des APIs d’exécution et de matérialisation. - [x] Porter les modèles de `kb_model` vers `kb-lib`. -- [~] Porter les décodeurs Solana core, SPL et Metaplex. -- [~] Porter leurs matérialisateurs. +- [x] Porter les décodeurs Solana core, SPL et Metaplex déjà implémentés dans bot2. +- [x] Porter leurs matérialisateurs déjà implémentés dans bot2. - [ ] Porter leurs exécuteurs. - [x] Fusionner `kb_store_core` et `kb_store_pg` dans `kb-store`. - [ ] Adapter `kb-pipeline` aux nouveaux chemins publics. @@ -37,7 +37,7 @@ - [x] Remplacer le scaffold par une architecture intégrée contrats/adaptateurs. - [x] Porter les DTO, entités, traits et validations store-neutral. - [x] Porter l’adaptateur PostgreSQL, ses requêtes, diagnostics et initialisations idempotentes. -- [x] Conserver `CoreInstructionReplayInput` dans `kb-lib` et le réexporter depuis `kb-store`. +- [x] Conserver `MdCoreInstructionReplayInput` dans `kb-lib` et le réexporter depuis `kb-store`. - [x] Supprimer la dépendance directe de `kb-store` vers `kb-config`. - [x] Adapter les règles bot2 devenues incompatibles avec l’architecture bot3. - [x] Valider `cargo check`, les 84 tests et Clippy pour `kb-store`, puis `cargo check --workspace`. @@ -90,7 +90,7 @@ ### 0.1.0-pre.008 — Décodeurs Token‑2022 et registre ElGamal dans `kb-lib` -- [x] Remplacer les scaffolds `token_2022` et `elgamal_registry` par les décodeurs exacts validés de bot2. +- [x] Remplacer les scaffolds `token2022` et `elgamal_registry` par les décodeurs exacts validés de bot2. - [x] Conserver les 48 enveloppes Token‑2022, les sous-instructions d’extensions identifiables et les interfaces Metadata/Group incorporées. - [x] Porter le parseur borné des états Mint, Account et Multisig avec leurs entrées TLV ordonnées. - [x] Maintenir le registre ElGamal comme programme indépendant avec ses deux instructions et son état de compte exact de 64 octets. @@ -117,12 +117,25 @@ ### 0.1.0-pre.010 — Matérialisateurs Solana natifs dans `kb-lib` -- [x] Porter `LifecycleMaterializer`, `AdminMaterializer`, `ComplianceAuditMaterializer` et `StakingMaterializer` dans les modules consolidés de `kb-lib`. +- [x] Porter `MtLifecycleMaterializer`, `MtAdminMaterializer`, `MtComplianceAuditMaterializer` et `MtStakingMaterializer` dans les modules consolidés de `kb-lib`. - [x] Conserver leurs 50 tests de projections natives, de politique de transaction et d’idempotence. - [x] Réexporter les types concrets et les fonctions stateful publiques depuis la façade de `kb-lib`. -- [x] Ajouter un test d’intégration aval prouvant qu’un futur crate externe peut implémenter `EventMaterializer` avec la seule API publique. +- [x] Ajouter un test d’intégration aval prouvant qu’un futur crate externe peut implémenter `MtApiEventMaterializer` avec la seule API publique. - [x] Porter les targets vers `kb-lib.materializer.admin`, `kb-lib.materializer.compliance`, `kb-lib.materializer.lifecycle` et `kb-lib.materializer.staking`. - [x] Conserver les identités de processor historiques afin de préserver les clés de replay et d’idempotence existantes. - [x] Ajouter la règle d’ordre et d’absence de ligne vide interne dans les blocs de réexports publics. -- [ ] Valider les 371 tests attendus de `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement. -- [ ] Poursuivre avec les matérialisateurs Memo, SPL Token, ATA, Token‑2022, registre ElGamal et Metaplex. +- [x] Valider les 370 tests unitaires et le test d’intégration de `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement. +- [x] Poursuivre avec les matérialisateurs Memo, SPL Token, ATA, Token‑2022, registre ElGamal et Metaplex. + +### 0.1.0-pre.011 — Matérialisateurs SPL et Metaplex dans `kb-lib` + +- [x] Porter `MtTransactionAnnotationMaterializer`, `MtTokenAccountsMaterializer`, `MtFeesMaterializer`, `MtRiskMaterializer` et `MtMetadataMaterializer`. +- [x] Conserver leurs 45 tests historiques, en plus des 370 tests unitaires déjà validés. +- [x] Réexporter à la racine les cinq types concrets, les fonctions de snapshots Token‑2022/Metaplex et les types canoniques Metaplex nécessaires à leurs signatures publiques. +- [x] Rendre privée toute l’arborescence `kb-lib::materializer` et interdire mécaniquement tout nouveau `pub mod` dans cette frontière. +- [x] Étendre les tests aval aux trois contrats d’extension publics : `DcApiProtocolDecoder`, `MtApiEventMaterializer` et `ExApiInstructionExecutor`. +- [x] Étendre l’audit aux lignes vides internes des blocs homogènes `pub use` et `pub(crate) use`. +- [x] Porter les targets de risque, comptes Token et annotations vers `kb-lib.materializer.risk`, `kb-lib.materializer.token` et `kb-lib.materializer.transaction` dans les trois profils. +- [x] Maintenir le fetch HTTP/IPFS/Arweave hors de `kb-lib`, dans une future crate off-chain dédiée. +- [ ] Valider les 415 tests unitaires et les trois tests d’intégration de `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement. +- [ ] Poursuivre avec les exécuteurs déjà implémentés dans bot2. diff --git a/RULES.md b/RULES.md index 005e90b..91450e0 100644 --- a/RULES.md +++ b/RULES.md @@ -138,7 +138,7 @@ Aucun renommage massif de modules n'est autorisé sans étape de contrôle dédi - Une crate ou un composant de `kb-lib` est opérationnel lorsqu’il effectue des I/O, orchestre un pipeline, décode, matérialise, exécute, applique une politique runtime ou prend une décision mutable observable. - Toute crate opérationnelle ajoutée ou modifiée doit dépendre de `tracing` depuis le workspace et déclarer exactement un `pub(crate) const TRACING_TARGET` dans `src/constants.rs`. -- Hors `kb-lib`, la valeur canonique de `TRACING_TARGET` est le nom exact du package Cargo. +- Hors `kb-lib`, la valeur canonique de `DC_METADATA_MTM_TRACING_TARGET` est le nom exact du package Cargo. - Dans `kb-lib`, chaque composant opérationnel possède son propre `constants.rs` et un target hiérarchique stable fondé sur son identifiant de décodeur, matérialiseur ou exécuteur ; un target unique `kb-lib` ne doit pas effacer l'identité du composant. - Les targets historiques `khbot.*` et les targets de fenêtre sont interdits dans les nouvelles modifications. - Les macros `tracing` doivent utiliser `target: crate::TRACING_TARGET` et des champs structurés stables. La granularité interne passe par `action`, `stage`, `window`, `campaign_id`, `signature`, `instruction_path`, `program_id`, `processor_name`, `processor_version`, `status` et `error_code`. @@ -152,14 +152,14 @@ Aucun renommage massif de modules n'est autorisé sans étape de contrôle dédi - Chaque profil doit router les événements vers les sorties globales `debug.log`, `info.log`, `error.jsonl` et `app.log`, puis vers `debug.log`, `info.log` et `error.jsonl` dans un répertoire propre à chaque crate utilisant `tracing`. - L’ajout ou la suppression de `tracing.workspace = true` dans une crate impose la mise à jour simultanée de la matrice de routes, de ses tests et de `docs/TRACING_CONTRACT.md`. - Le contrat détaillé est défini dans `docs/TRACING_CONTRACT.md`. -- L’audit mécanique spécifique au projet est exécuté par `python3 scripts/audit_khadhroony_workspace_rules.py`. Il couvre notamment `TRACING_TARGET` et l’usage obligatoire de `solana_pubkey::Pubkey` à la place de `solana_address::Address`. +- L’audit mécanique spécifique au projet est exécuté par `python3 scripts/audit_khadhroony_workspace_rules.py`. Il couvre notamment `DC_METADATA_MTM_TRACING_TARGET` et l’usage obligatoire de `solana_pubkey::Pubkey` à la place de `solana_address::Address`. ## Règles de réutilisation des interfaces Solana et SPL - Les dépendances déclarées dans `[workspace.dependencies]` forment un catalogue de versions et de features autorisées ; elles ne doivent être ajoutées à une crate consommatrice que lorsqu’un type, un encodeur, un décodeur ou un identifiant officiel est réellement utilisé. - Dans un `Cargo.toml`, placer dans `[dependencies]` toute crate référencée par le code de bibliothèque compilé en production. Réserver `[dev-dependencies]` aux références contenues exclusivement dans `#[cfg(test)]`, les tests d’intégration, benches ou exemples. Une dépendance de test vers un décodeur ou matérialiseur concret est légitime lorsqu’elle sert uniquement à éprouver une orchestration générique fondée sur les traits API ; elle ne prouve pas qu’une capacité de production manque. Toute promotion de `dev-dependencies` vers `dependencies` doit être motivée par un appel runtime réel, et toute dépendance runtime inutilisée doit être supprimée. -- Les registres de composition runtime des applications doivent énumérer explicitement chaque décodeur et matérialiseur concret activé. Toute nouvelle surface instructionnelle dotée d’un `EventMaterializer` doit être ajoutée au registre applicatif et couverte par un test d’inventaire ordonné ; une crate présente dans le workspace ou dans `kb_pipeline` n’est pas activée automatiquement. Les matérialiseurs exclusivement stateful qui n’implémentent pas `EventMaterializer` restent routés par leurs APIs de snapshots dédiées. +- Les registres de composition runtime des applications doivent énumérer explicitement chaque décodeur et matérialiseur concret activé. Toute nouvelle surface instructionnelle dotée d’un `MtApiEventMaterializer` doit être ajoutée au registre applicatif et couverte par un test d’inventaire ordonné ; une crate présente dans le workspace ou dans `kb_pipeline` n’est pas activée automatiquement. Les matérialiseurs exclusivement stateful qui n’implémentent pas `MtApiEventMaterializer` restent routés par leurs APIs de snapshots dédiées. - Les corrélations instruction/état doivent produire une issue explicite (`confirmed`, `contradicted` ou `not_applicable`) et ne doivent jamais transformer automatiquement une configuration observée en violation, score ou conclusion métier. - Une interface officielle Solana ou SPL étroite doit être préférée à `solana-sdk` lorsque son contrat suffit. - L’ordre de préférence des formats est : schéma officiel `wincode`, schéma officiel Borsh, puis parseur local borné reproduisant exactement le runtime lorsque l’interface officielle n’expose que `bincode`. @@ -244,7 +244,7 @@ Les `program_id` connus doivent être définis une seule fois dans `kb-program-i - Toute API publique portée depuis une ancienne crate doit être réexportée au crate root de `kb-lib`. - `kb-store` regroupe les contrats store-neutral et les adaptateurs de persistance, avec PostgreSQL comme adaptateur de production initial. - `kb-store/src/lib.rs` reste une façade : les DTO, entités, traits, requêtes et implémentations résident dans des modules privés dédiés et toute API publique est réexportée au crate root. -- Les modèles source-neutral partagés avec les décodeurs, notamment `CoreInstructionReplayInput`, appartiennent à `kb-lib`; `kb-store` les consomme et les réexporte sans les dupliquer. +- Les modèles source-neutral partagés avec les décodeurs, notamment `MdCoreInstructionReplayInput`, appartiennent à `kb-lib`; `kb-store` les consomme et les réexporte sans les dupliquer. - `kb-lib` ne dépend jamais de `kb-store`. Cette direction de dépendance évite tout cycle entre modèles, décodage et persistance. - `kb-store` ne dépend pas de `kb-config`. La frontière applicative transforme une configuration résolue en options de store explicitement validées. - Les adaptateurs concrets implémentent les mêmes traits neutres et ne font pas fuiter leurs types de connexion dans les contrats. diff --git a/config/example.config.json b/config/example.config.json index 6868e17..54c1db3 100644 --- a/config/example.config.json +++ b/config/example.config.json @@ -28,7 +28,7 @@ "kb-lib.decoder.spl.elgamal_registry", "kb-lib.decoder.spl.memo", "kb-lib.decoder.spl.token", - "kb-lib.decoder.spl.token_2022", + "kb-lib.decoder.spl.token2022", "kb_execution_solana", "kb_executor_metadata_metaplex_token_metadata", "kb_executor_metadata_spl_name_service", @@ -40,15 +40,15 @@ "kb_executor_spl_noop", "kb_executor_spl_single_pool", "kb_executor_spl_token", - "kb_executor_spl_token_2022", + "kb_executor_spl_token2022", "kb-logging", "kb-lib.materializer.admin", "kb-lib.materializer.compliance", "kb-lib.materializer.lifecycle", - "kb_materializer_risk", + "kb-lib.materializer.risk", "kb-lib.materializer.staking", - "kb_materializer_token_accounts", - "kb_materializer_transaction_annotations", + "kb-lib.materializer.token", + "kb-lib.materializer.transaction", "kb_pipeline", "kb_rpc", "kb-store", @@ -810,42 +810,42 @@ ] }, { - "name": "file_kb_materializer_transaction_annotations_debug", + "name": "file_kb_lib_materializer_transaction_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/devnet/kb_materializer_transaction_annotations/debug.log", + "path": "logs/devnet/kb-lib/materializer/transaction/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_transaction_annotations" + "kb-lib.materializer.transaction" ] }, { - "name": "file_kb_materializer_transaction_annotations_info", + "name": "file_kb_lib_materializer_transaction_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/devnet/kb_materializer_transaction_annotations/info.log", + "path": "logs/devnet/kb-lib/materializer/transaction/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_transaction_annotations" + "kb-lib.materializer.transaction" ] }, { - "name": "file_kb_materializer_transaction_annotations_error", + "name": "file_kb_lib_materializer_transaction_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/devnet/kb_materializer_transaction_annotations/error.jsonl", + "path": "logs/devnet/kb-lib/materializer/transaction/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_materializer_transaction_annotations" + "kb-lib.materializer.transaction" ] }, { @@ -1044,120 +1044,120 @@ ] }, { - "name": "file_kb_materializer_token_accounts_debug", + "name": "file_kb_lib_materializer_token_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/devnet/kb_materializer_token_accounts/debug.log", + "path": "logs/devnet/kb-lib/materializer/token/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_token_accounts" + "kb-lib.materializer.token" ] }, { - "name": "file_kb_materializer_token_accounts_info", + "name": "file_kb_lib_materializer_token_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/devnet/kb_materializer_token_accounts/info.log", + "path": "logs/devnet/kb-lib/materializer/token/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_token_accounts" + "kb-lib.materializer.token" ] }, { - "name": "file_kb_materializer_token_accounts_error", + "name": "file_kb_lib_materializer_token_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/devnet/kb_materializer_token_accounts/error.jsonl", + "path": "logs/devnet/kb-lib/materializer/token/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_materializer_token_accounts" + "kb-lib.materializer.token" ] }, { - "name": "file_kb_materializer_risk_debug", + "name": "file_kb_lib_materializer_risk_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/devnet/kb_materializer_risk/debug.log", + "path": "logs/devnet/kb-lib/materializer/risk/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_risk" + "kb-lib.materializer.risk" ] }, { - "name": "file_kb_materializer_risk_info", + "name": "file_kb_lib_materializer_risk_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/devnet/kb_materializer_risk/info.log", + "path": "logs/devnet/kb-lib/materializer/risk/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_risk" + "kb-lib.materializer.risk" ] }, { - "name": "file_kb_materializer_risk_error", + "name": "file_kb_lib_materializer_risk_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/devnet/kb_materializer_risk/error.jsonl", + "path": "logs/devnet/kb-lib/materializer/risk/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_materializer_risk" + "kb-lib.materializer.risk" ] }, { - "name": "file_kb_lib_decoder_spl_token_2022_debug", + "name": "file_kb_lib_decoder_spl_token2022_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/devnet/kb_lib_decoder_spl_token_2022/debug.log", + "path": "logs/devnet/kb_lib_decoder_spl_token2022/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb-lib.decoder.spl.token_2022" + "kb-lib.decoder.spl.token2022" ] }, { - "name": "file_kb_lib_decoder_spl_token_2022_info", + "name": "file_kb_lib_decoder_spl_token2022_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/devnet/kb_lib_decoder_spl_token_2022/info.log", + "path": "logs/devnet/kb_lib_decoder_spl_token2022/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb-lib.decoder.spl.token_2022" + "kb-lib.decoder.spl.token2022" ] }, { - "name": "file_kb_lib_decoder_spl_token_2022_error", + "name": "file_kb_lib_decoder_spl_token2022_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/devnet/kb_lib_decoder_spl_token_2022/error.jsonl", + "path": "logs/devnet/kb_lib_decoder_spl_token2022/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb-lib.decoder.spl.token_2022" + "kb-lib.decoder.spl.token2022" ] }, { @@ -1317,42 +1317,42 @@ ] }, { - "name": "file_kb_executor_spl_token_2022_debug", + "name": "file_kb_executor_spl_token2022_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/devnet/kb_executor_spl_token_2022/debug.log", + "path": "logs/devnet/kb_executor_spl_token2022/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_executor_spl_token_2022" + "kb_executor_spl_token2022" ] }, { - "name": "file_kb_executor_spl_token_2022_info", + "name": "file_kb_executor_spl_token2022_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/devnet/kb_executor_spl_token_2022/info.log", + "path": "logs/devnet/kb_executor_spl_token2022/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_executor_spl_token_2022" + "kb_executor_spl_token2022" ] }, { - "name": "file_kb_executor_spl_token_2022_error", + "name": "file_kb_executor_spl_token2022_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/devnet/kb_executor_spl_token_2022/error.jsonl", + "path": "logs/devnet/kb_executor_spl_token2022/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_executor_spl_token_2022" + "kb_executor_spl_token2022" ] } ], @@ -1630,7 +1630,7 @@ "kb-lib.decoder.spl.elgamal_registry", "kb-lib.decoder.spl.memo", "kb-lib.decoder.spl.token", - "kb-lib.decoder.spl.token_2022", + "kb-lib.decoder.spl.token2022", "kb_execution_solana", "kb_executor_metadata_metaplex_token_metadata", "kb_executor_metadata_spl_name_service", @@ -1642,15 +1642,15 @@ "kb_executor_spl_noop", "kb_executor_spl_single_pool", "kb_executor_spl_token", - "kb_executor_spl_token_2022", + "kb_executor_spl_token2022", "kb-logging", "kb-lib.materializer.admin", "kb-lib.materializer.compliance", "kb-lib.materializer.lifecycle", - "kb_materializer_risk", + "kb-lib.materializer.risk", "kb-lib.materializer.staking", - "kb_materializer_token_accounts", - "kb_materializer_transaction_annotations", + "kb-lib.materializer.token", + "kb-lib.materializer.transaction", "kb_pipeline", "kb_rpc", "kb-store", @@ -2412,42 +2412,42 @@ ] }, { - "name": "file_kb_materializer_transaction_annotations_debug", + "name": "file_kb_lib_materializer_transaction_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet_research/kb_materializer_transaction_annotations/debug.log", + "path": "logs/mainnet_research/kb-lib/materializer/transaction/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_transaction_annotations" + "kb-lib.materializer.transaction" ] }, { - "name": "file_kb_materializer_transaction_annotations_info", + "name": "file_kb_lib_materializer_transaction_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet_research/kb_materializer_transaction_annotations/info.log", + "path": "logs/mainnet_research/kb-lib/materializer/transaction/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_transaction_annotations" + "kb-lib.materializer.transaction" ] }, { - "name": "file_kb_materializer_transaction_annotations_error", + "name": "file_kb_lib_materializer_transaction_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet_research/kb_materializer_transaction_annotations/error.jsonl", + "path": "logs/mainnet_research/kb-lib/materializer/transaction/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_materializer_transaction_annotations" + "kb-lib.materializer.transaction" ] }, { @@ -2646,120 +2646,120 @@ ] }, { - "name": "file_kb_materializer_token_accounts_debug", + "name": "file_kb_lib_materializer_token_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet_research/kb_materializer_token_accounts/debug.log", + "path": "logs/mainnet_research/kb-lib/materializer/token/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_token_accounts" + "kb-lib.materializer.token" ] }, { - "name": "file_kb_materializer_token_accounts_info", + "name": "file_kb_lib_materializer_token_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet_research/kb_materializer_token_accounts/info.log", + "path": "logs/mainnet_research/kb-lib/materializer/token/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_token_accounts" + "kb-lib.materializer.token" ] }, { - "name": "file_kb_materializer_token_accounts_error", + "name": "file_kb_lib_materializer_token_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet_research/kb_materializer_token_accounts/error.jsonl", + "path": "logs/mainnet_research/kb-lib/materializer/token/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_materializer_token_accounts" + "kb-lib.materializer.token" ] }, { - "name": "file_kb_materializer_risk_debug", + "name": "file_kb_lib_materializer_risk_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet_research/kb_materializer_risk/debug.log", + "path": "logs/mainnet_research/kb-lib/materializer/risk/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_risk" + "kb-lib.materializer.risk" ] }, { - "name": "file_kb_materializer_risk_info", + "name": "file_kb_lib_materializer_risk_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet_research/kb_materializer_risk/info.log", + "path": "logs/mainnet_research/kb-lib/materializer/risk/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_risk" + "kb-lib.materializer.risk" ] }, { - "name": "file_kb_materializer_risk_error", + "name": "file_kb_lib_materializer_risk_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet_research/kb_materializer_risk/error.jsonl", + "path": "logs/mainnet_research/kb-lib/materializer/risk/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_materializer_risk" + "kb-lib.materializer.risk" ] }, { - "name": "file_kb_lib_decoder_spl_token_2022_debug", + "name": "file_kb_lib_decoder_spl_token2022_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet_research/kb_lib_decoder_spl_token_2022/debug.log", + "path": "logs/mainnet_research/kb_lib_decoder_spl_token2022/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb-lib.decoder.spl.token_2022" + "kb-lib.decoder.spl.token2022" ] }, { - "name": "file_kb_lib_decoder_spl_token_2022_info", + "name": "file_kb_lib_decoder_spl_token2022_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet_research/kb_lib_decoder_spl_token_2022/info.log", + "path": "logs/mainnet_research/kb_lib_decoder_spl_token2022/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb-lib.decoder.spl.token_2022" + "kb-lib.decoder.spl.token2022" ] }, { - "name": "file_kb_lib_decoder_spl_token_2022_error", + "name": "file_kb_lib_decoder_spl_token2022_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet_research/kb_lib_decoder_spl_token_2022/error.jsonl", + "path": "logs/mainnet_research/kb_lib_decoder_spl_token2022/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb-lib.decoder.spl.token_2022" + "kb-lib.decoder.spl.token2022" ] }, { @@ -2919,42 +2919,42 @@ ] }, { - "name": "file_kb_executor_spl_token_2022_debug", + "name": "file_kb_executor_spl_token2022_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet_research/kb_executor_spl_token_2022/debug.log", + "path": "logs/mainnet_research/kb_executor_spl_token2022/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_executor_spl_token_2022" + "kb_executor_spl_token2022" ] }, { - "name": "file_kb_executor_spl_token_2022_info", + "name": "file_kb_executor_spl_token2022_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet_research/kb_executor_spl_token_2022/info.log", + "path": "logs/mainnet_research/kb_executor_spl_token2022/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_executor_spl_token_2022" + "kb_executor_spl_token2022" ] }, { - "name": "file_kb_executor_spl_token_2022_error", + "name": "file_kb_executor_spl_token2022_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet_research/kb_executor_spl_token_2022/error.jsonl", + "path": "logs/mainnet_research/kb_executor_spl_token2022/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_executor_spl_token_2022" + "kb_executor_spl_token2022" ] } ], @@ -3432,7 +3432,7 @@ "kb-lib.decoder.spl.elgamal_registry", "kb-lib.decoder.spl.memo", "kb-lib.decoder.spl.token", - "kb-lib.decoder.spl.token_2022", + "kb-lib.decoder.spl.token2022", "kb_execution_solana", "kb_executor_metadata_metaplex_token_metadata", "kb_executor_metadata_spl_name_service", @@ -3444,15 +3444,15 @@ "kb_executor_spl_noop", "kb_executor_spl_single_pool", "kb_executor_spl_token", - "kb_executor_spl_token_2022", + "kb_executor_spl_token2022", "kb-logging", "kb-lib.materializer.admin", "kb-lib.materializer.compliance", "kb-lib.materializer.lifecycle", - "kb_materializer_risk", + "kb-lib.materializer.risk", "kb-lib.materializer.staking", - "kb_materializer_token_accounts", - "kb_materializer_transaction_annotations", + "kb-lib.materializer.token", + "kb-lib.materializer.transaction", "kb_pipeline", "kb_rpc", "kb-store", @@ -4214,42 +4214,42 @@ ] }, { - "name": "file_kb_materializer_transaction_annotations_debug", + "name": "file_kb_lib_materializer_transaction_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet/kb_materializer_transaction_annotations/debug.log", + "path": "logs/mainnet/kb-lib/materializer/transaction/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_transaction_annotations" + "kb-lib.materializer.transaction" ] }, { - "name": "file_kb_materializer_transaction_annotations_info", + "name": "file_kb_lib_materializer_transaction_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet/kb_materializer_transaction_annotations/info.log", + "path": "logs/mainnet/kb-lib/materializer/transaction/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_transaction_annotations" + "kb-lib.materializer.transaction" ] }, { - "name": "file_kb_materializer_transaction_annotations_error", + "name": "file_kb_lib_materializer_transaction_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet/kb_materializer_transaction_annotations/error.jsonl", + "path": "logs/mainnet/kb-lib/materializer/transaction/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_materializer_transaction_annotations" + "kb-lib.materializer.transaction" ] }, { @@ -4448,120 +4448,120 @@ ] }, { - "name": "file_kb_materializer_token_accounts_debug", + "name": "file_kb_lib_materializer_token_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet/kb_materializer_token_accounts/debug.log", + "path": "logs/mainnet/kb-lib/materializer/token/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_token_accounts" + "kb-lib.materializer.token" ] }, { - "name": "file_kb_materializer_token_accounts_info", + "name": "file_kb_lib_materializer_token_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet/kb_materializer_token_accounts/info.log", + "path": "logs/mainnet/kb-lib/materializer/token/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_token_accounts" + "kb-lib.materializer.token" ] }, { - "name": "file_kb_materializer_token_accounts_error", + "name": "file_kb_lib_materializer_token_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet/kb_materializer_token_accounts/error.jsonl", + "path": "logs/mainnet/kb-lib/materializer/token/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_materializer_token_accounts" + "kb-lib.materializer.token" ] }, { - "name": "file_kb_materializer_risk_debug", + "name": "file_kb_lib_materializer_risk_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet/kb_materializer_risk/debug.log", + "path": "logs/mainnet/kb-lib/materializer/risk/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_risk" + "kb-lib.materializer.risk" ] }, { - "name": "file_kb_materializer_risk_info", + "name": "file_kb_lib_materializer_risk_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet/kb_materializer_risk/info.log", + "path": "logs/mainnet/kb-lib/materializer/risk/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_materializer_risk" + "kb-lib.materializer.risk" ] }, { - "name": "file_kb_materializer_risk_error", + "name": "file_kb_lib_materializer_risk_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet/kb_materializer_risk/error.jsonl", + "path": "logs/mainnet/kb-lib/materializer/risk/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_materializer_risk" + "kb-lib.materializer.risk" ] }, { - "name": "file_kb_lib_decoder_spl_token_2022_debug", + "name": "file_kb_lib_decoder_spl_token2022_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet/kb_lib_decoder_spl_token_2022/debug.log", + "path": "logs/mainnet/kb_lib_decoder_spl_token2022/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb-lib.decoder.spl.token_2022" + "kb-lib.decoder.spl.token2022" ] }, { - "name": "file_kb_lib_decoder_spl_token_2022_info", + "name": "file_kb_lib_decoder_spl_token2022_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet/kb_lib_decoder_spl_token_2022/info.log", + "path": "logs/mainnet/kb_lib_decoder_spl_token2022/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb-lib.decoder.spl.token_2022" + "kb-lib.decoder.spl.token2022" ] }, { - "name": "file_kb_lib_decoder_spl_token_2022_error", + "name": "file_kb_lib_decoder_spl_token2022_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet/kb_lib_decoder_spl_token_2022/error.jsonl", + "path": "logs/mainnet/kb_lib_decoder_spl_token2022/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb-lib.decoder.spl.token_2022" + "kb-lib.decoder.spl.token2022" ] }, { @@ -4721,42 +4721,42 @@ ] }, { - "name": "file_kb_executor_spl_token_2022_debug", + "name": "file_kb_executor_spl_token2022_debug", "enabled": true, "sink": "file", "level": "debug", - "path": "logs/mainnet/kb_executor_spl_token_2022/debug.log", + "path": "logs/mainnet/kb_executor_spl_token2022/debug.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_executor_spl_token_2022" + "kb_executor_spl_token2022" ] }, { - "name": "file_kb_executor_spl_token_2022_info", + "name": "file_kb_executor_spl_token2022_info", "enabled": true, "sink": "file", "level": "info", - "path": "logs/mainnet/kb_executor_spl_token_2022/info.log", + "path": "logs/mainnet/kb_executor_spl_token2022/info.log", "rotation": "daily", "format": "human", "ansi": false, "targets": [ - "kb_executor_spl_token_2022" + "kb_executor_spl_token2022" ] }, { - "name": "file_kb_executor_spl_token_2022_error", + "name": "file_kb_executor_spl_token2022_error", "enabled": true, "sink": "file", "level": "error", - "path": "logs/mainnet/kb_executor_spl_token_2022/error.jsonl", + "path": "logs/mainnet/kb_executor_spl_token2022/error.jsonl", "rotation": "daily", "format": "json", "ansi": false, "targets": [ - "kb_executor_spl_token_2022" + "kb_executor_spl_token2022" ] } ], diff --git a/docs/CORE_EXTRACTION_CONTRACTS.md b/docs/CORE_EXTRACTION_CONTRACTS.md index 1a06582..7c86a12 100644 --- a/docs/CORE_EXTRACTION_CONTRACTS.md +++ b/docs/CORE_EXTRACTION_CONTRACTS.md @@ -1,5 +1,5 @@ - + # Contrats d’extraction core Solana @@ -38,8 +38,8 @@ L’extraction refuse explicitement : - un `canonical_json` absent ; - un `canonical_json_hash` absent ; -- une version différente de `CANONICAL_TRANSACTION_FORMAT_VERSION` ; -- un JSON non désérialisable en `CanonicalTransaction` ; +- une version différente de `MD_CANONICAL_TRANSACTION_FORMAT_VERSION` ; +- un JSON non désérialisable en `MdCanonicalTransaction` ; - une signature ou un slot différent de la ligne raw ; - un hash recalculé différent du hash stocké ; - un indice de programme ou de compte hors de l’espace résolu. diff --git a/docs/CORE_PROGRAM_IDS.md b/docs/CORE_PROGRAM_IDS.md index 7374b9b..14798f3 100644 --- a/docs/CORE_PROGRAM_IDS.md +++ b/docs/CORE_PROGRAM_IDS.md @@ -14,50 +14,50 @@ Ce fichier sépare les identifiants primitifs Solana/SPL du registre des surface ## Table de contrôle -| Canonique | Program ID | Source | Type | Crate cible | Statut | -|--------------------------------------------|------------------------------------------------|-----------------------------------|----------------------|-------------------------------------------|-------------------------------------| -| `core_solana_address_lookup_table_v1` | `AddressLookupTab1e1111111111111111111111111` | `address_lookup_table` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_bpf_loader_deprecated_v1` | `BPFLoader1111111111111111111111111111111111` | `bpf_loader_deprecated` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_bpf_loader_v2` | `BPFLoader2111111111111111111111111111111111` | `bpf_loader` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_bpf_loader_upgradeable_v1` | `BPFLoaderUpgradeab1e11111111111111111111111` | `bpf_loader_upgradeable` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_compute_budget_v1` | `ComputeBudget111111111111111111111111111111` | `compute_budget` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_config_v1` | `Config1111111111111111111111111111111111111` | `config` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_ed25519_v1` | `Ed25519SigVerify111111111111111111111111111` | `ed25519` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_feature_v1` | `Feature111111111111111111111111111111111111` | `feature` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_incinerator_v1` | `1nc1nerator11111111111111111111111111111111` | `incinerator` | `well_known_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_loader_v4` | `LoaderV411111111111111111111111111111111111` | `loader_v4` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_native_loader_v1` | `NativeLoader1111111111111111111111111111111` | `native_loader` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_secp256k1_v1` | `KeccakSecp256k11111111111111111111111111111` | `secp256k1` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_secp256r1_v1` | `Secp256r1SigVerify1111111111111111111111111` | `secp256r1` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_slashing_v1` | `S1ashing11111111111111111111111111111111111` | `slashing` | `stateless_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_stake_config_v1` | `StakeConfig11111111111111111111111111111111` | `stake_config` | `well_known_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_stake_v1` | `Stake11111111111111111111111111111111111111` | `stake` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_system_v1` | `11111111111111111111111111111111` | `system` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_sysvar_clock_v1` | `SysvarC1ock11111111111111111111111111111111` | `sysvar_clock` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_epoch_rewards_v1` | `SysvarEpochRewards1111111111111111111111111` | `sysvar_epoch_rewards` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_epoch_schedule_v1` | `SysvarEpochSchedu1e111111111111111111111111` | `sysvar_epoch_schedule` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_fees_v1` | `SysvarFees111111111111111111111111111111111` | `sysvar_fees` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_instructions_v1` | `Sysvar1nstructions1111111111111111111111111` | `sysvar_instructions` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_last_restart_slot_v1` | `SysvarLastRestartS1ot1111111111111111111111` | `sysvar_last_restart_slot` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_recent_blockhashes_v1` | `SysvarRecentB1ockHashes11111111111111111111` | `sysvar_recent_blockhashes` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_rent_v1` | `SysvarRent111111111111111111111111111111111` | `sysvar_rent` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_rewards_v1` | `SysvarRewards111111111111111111111111111111` | `sysvar_rewards` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_slot_hashes_v1` | `SysvarS1otHashes111111111111111111111111111` | `sysvar_slot_hashes` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_slot_history_v1` | `SysvarS1otHistory11111111111111111111111111` | `sysvar_slot_history` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_stake_history_v1` | `SysvarStakeHistory1111111111111111111111111` | `sysvar_stake_history` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_v1` | `Sysvar1111111111111111111111111111111111111` | `sysvar` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_vote_v1` | `Vote111111111111111111111111111111111111111` | `vote` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_zk_elgamal_proof_v1` | `ZkE1Gama1Proof11111111111111111111111111111` | `zk_elgamal_proof` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_zk_token_proof_v1` | `ZkTokenProof1111111111111111111111111111111` | `zk_token_proof` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_spl_associated_token_account_v1` | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` | `associated_token_account` | `program` | `kb_decoder_spl_associated_token_account` | `core_handled` | -| `core_spl_account_compression_v1` | `cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK` | `spl_account_compression` | `program` | `kb_decoder_spl_account_compression` | `core_specialized_reserved_current` | -| `core_spl_memo_v1` | `Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo` | `spl_memo_v1` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | -| `core_spl_memo_v3` | `MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr` | `spl_memo_v3` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | -| `core_spl_memo_v4` | `Memo4c2pN8afCj432Lb7RMVKi9PbQnnW7ewFFaV3oAH` | `spl_memo_v4` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | -| `core_spl_noop_v1` | `noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV` | `spl_noop` | `program` | `kb_decoder_spl_noop` | `core_specialized_reserved_current` | -| `core_spl_single_pool_v1` | `SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE` | `spl_single_pool` | `program` | `kb_decoder_spl_single_pool` | `core_specialized_reserved_current` | -| `core_spl_name_service_v1` | `namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX` | `spl_name_service` | `program` | `kb_decoder_metadata_spl_name_service` | `core_specialized_reserved_current` | -| `core_spl_stake_pool_v1` | `SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy` | `stake_pool` | `program` | `kb_decoder_spl_stake_pool` | `core_specialized_reserved_current` | -| `core_spl_token_2022_v2022` | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | `token_2022` | `program` | `kb_decoder_spl_token_2022` | `core_handled` | -| `core_spl_token_2022_elgamal_registry_v1` | `regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg` | `spl_token_2022_elgamal_registry` | `program` | `kb_decoder_spl_token_2022` | `core_specialized_reserved_current` | -| `core_spl_token_v1` | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA` | `token` | `program` | `kb_decoder_spl_token` | `core_handled` | +| Canonique | Program ID | Source | Type | Crate cible | Statut | +|--------------------------------------------|------------------------------------------------|----------------------------------|----------------------|-------------------------------------------|-------------------------------------| +| `core_solana_address_lookup_table_v1` | `AddressLookupTab1e1111111111111111111111111` | `address_lookup_table` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_bpf_loader_deprecated_v1` | `BPFLoader1111111111111111111111111111111111` | `bpf_loader_deprecated` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_bpf_loader_v2` | `BPFLoader2111111111111111111111111111111111` | `bpf_loader` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_bpf_loader_upgradeable_v1` | `BPFLoaderUpgradeab1e11111111111111111111111` | `bpf_loader_upgradeable` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_compute_budget_v1` | `ComputeBudget111111111111111111111111111111` | `compute_budget` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_config_v1` | `Config1111111111111111111111111111111111111` | `config` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_ed25519_v1` | `Ed25519SigVerify111111111111111111111111111` | `ed25519` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_feature_v1` | `Feature111111111111111111111111111111111111` | `feature` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_incinerator_v1` | `1nc1nerator11111111111111111111111111111111` | `incinerator` | `well_known_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_loader_v4` | `LoaderV411111111111111111111111111111111111` | `loader_v4` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_native_loader_v1` | `NativeLoader1111111111111111111111111111111` | `native_loader` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_secp256k1_v1` | `KeccakSecp256k11111111111111111111111111111` | `secp256k1` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_secp256r1_v1` | `Secp256r1SigVerify1111111111111111111111111` | `secp256r1` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_slashing_v1` | `S1ashing11111111111111111111111111111111111` | `slashing` | `stateless_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_stake_config_v1` | `StakeConfig11111111111111111111111111111111` | `stake_config` | `well_known_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_stake_v1` | `Stake11111111111111111111111111111111111111` | `stake` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_system_v1` | `11111111111111111111111111111111` | `system` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_sysvar_clock_v1` | `SysvarC1ock11111111111111111111111111111111` | `sysvar_clock` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_epoch_rewards_v1` | `SysvarEpochRewards1111111111111111111111111` | `sysvar_epoch_rewards` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_epoch_schedule_v1` | `SysvarEpochSchedu1e111111111111111111111111` | `sysvar_epoch_schedule` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_fees_v1` | `SysvarFees111111111111111111111111111111111` | `sysvar_fees` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_instructions_v1` | `Sysvar1nstructions1111111111111111111111111` | `sysvar_instructions` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_last_restart_slot_v1` | `SysvarLastRestartS1ot1111111111111111111111` | `sysvar_last_restart_slot` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_recent_blockhashes_v1` | `SysvarRecentB1ockHashes11111111111111111111` | `sysvar_recent_blockhashes` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_rent_v1` | `SysvarRent111111111111111111111111111111111` | `sysvar_rent` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_rewards_v1` | `SysvarRewards111111111111111111111111111111` | `sysvar_rewards` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_slot_hashes_v1` | `SysvarS1otHashes111111111111111111111111111` | `sysvar_slot_hashes` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_slot_history_v1` | `SysvarS1otHistory11111111111111111111111111` | `sysvar_slot_history` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_stake_history_v1` | `SysvarStakeHistory1111111111111111111111111` | `sysvar_stake_history` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_v1` | `Sysvar1111111111111111111111111111111111111` | `sysvar` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_vote_v1` | `Vote111111111111111111111111111111111111111` | `vote` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_zk_elgamal_proof_v1` | `ZkE1Gama1Proof11111111111111111111111111111` | `zk_elgamal_proof` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_zk_token_proof_v1` | `ZkTokenProof1111111111111111111111111111111` | `zk_token_proof` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_spl_associated_token_account_v1` | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` | `associated_token_account` | `program` | `kb_decoder_spl_associated_token_account` | `core_handled` | +| `core_spl_account_compression_v1` | `cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK` | `spl_account_compression` | `program` | `kb_decoder_spl_account_compression` | `core_specialized_reserved_current` | +| `core_spl_memo_v1` | `Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo` | `spl_memo_v1` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | +| `core_spl_memo_v3` | `MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr` | `spl_memo_v3` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | +| `core_spl_memo_v4` | `Memo4c2pN8afCj432Lb7RMVKi9PbQnnW7ewFFaV3oAH` | `spl_memo_v4` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | +| `core_spl_noop_v1` | `noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV` | `spl_noop` | `program` | `kb_decoder_spl_noop` | `core_specialized_reserved_current` | +| `core_spl_single_pool_v1` | `SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE` | `spl_single_pool` | `program` | `kb_decoder_spl_single_pool` | `core_specialized_reserved_current` | +| `core_spl_name_service_v1` | `namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX` | `spl_name_service` | `program` | `kb_decoder_metadata_spl_name_service` | `core_specialized_reserved_current` | +| `core_spl_stake_pool_v1` | `SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy` | `stake_pool` | `program` | `kb_decoder_spl_stake_pool` | `core_specialized_reserved_current` | +| `core_spl_token_2022_v2022` | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | `token2022` | `program` | `kb_decoder_spl_token_2022` | `core_handled` | +| `core_spl_token_2022_elgamal_registry_v1` | `regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg` | `spl_token2022_elgamal_registry` | `program` | `kb_decoder_spl_token_2022` | `core_specialized_reserved_current` | +| `core_spl_token_v1` | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA` | `token` | `program` | `kb_decoder_spl_token` | `core_handled` | diff --git a/docs/DECODER_MATERIALIZATION_CONTRACTS.md b/docs/DECODER_MATERIALIZATION_CONTRACTS.md index a50fc64..8b428d9 100644 --- a/docs/DECODER_MATERIALIZATION_CONTRACTS.md +++ b/docs/DECODER_MATERIALIZATION_CONTRACTS.md @@ -20,7 +20,7 @@ core instruction contextualisée ## Input contextualisé -`CoreInstructionReplayInput` reste l’unique contrat d’entrée commun. Son contrat passe à la version `2` dans `0.4.1-pre.014`. Il contient la signature, le slot, le statut et l’erreur on-chain, le chemin stable de l’instruction, le program ID, les comptes résolus dans leur ordre original, le payload brut déterministe et son hash, toutes les instructions outer ordonnées par index numérique, les inner instructions descendantes, les logs reliés prudemment, les changements de balances et la version du contrat core. +`MdCoreInstructionReplayInput` reste l’unique contrat d’entrée commun. Son contrat passe à la version `2` dans `0.4.1-pre.014`. Il contient la signature, le slot, le statut et l’erreur on-chain, le chemin stable de l’instruction, le program ID, les comptes résolus dans leur ordre original, le payload brut déterministe et son hash, toutes les instructions outer ordonnées par index numérique, les inner instructions descendantes, les logs reliés prudemment, les changements de balances et la version du contrat core. `outer_instructions_json` est un tableau stable dont chaque entrée contient `instructionIndex`, `instructionPath`, `programId`, `payloadJson` et `payloadHash`. L’instruction cible est incluse. Cette projection provient des tables core existantes et ne nécessite aucune migration SQL. @@ -30,7 +30,7 @@ Le passage au contrat `2` modifie légitimement les hashes existants, car les pa ## Contrat de décodeur -`InstructionDecoder` expose : +`DcApiInstructionDecoder` expose : - une identité stable `name/version` ; - les programmes et surfaces supportés ; @@ -58,7 +58,7 @@ observation_committed `observation_committed` doit être faux lorsque la transaction a été annulée. Ces observations peuvent décrire une instruction tentée, un événement loggé avant l’erreur, une classification d’échec, une consommation de compute ou une surface appelée. -Elles ne peuvent pas produire automatiquement un trade réussi, une modification de liquidité réussie, un changement confirmé de catalogue ou une candle normale. `EventMaterializer` applique une politique explicite par famille. Les familles `trade`, `liquidity` et `lifecycle` sont refusées avant l’appel au matérialiseur lorsque la source est échouée ou non commitée. Une seconde barrière valide ensuite les familles de sortie et n’autorise, dans ce contexte, que les matérialisations d’audit ou de risque. +Elles ne peuvent pas produire automatiquement un trade réussi, une modification de liquidité réussie, un changement confirmé de catalogue ou une candle normale. `MtApiEventMaterializer` applique une politique explicite par famille. Les familles `trade`, `liquidity` et `lifecycle` sont refusées avant l’appel au matérialiseur lorsque la source est échouée ou non commitée. Une seconde barrière valide ensuite les familles de sortie et n’autorise, dans ce contexte, que les matérialisations d’audit ou de risque. ## Persistance diff --git a/docs/EXECUTION_MODEL.md b/docs/EXECUTION_MODEL.md index 95cc292..700fd63 100644 --- a/docs/EXECUTION_MODEL.md +++ b/docs/EXECUTION_MODEL.md @@ -77,11 +77,11 @@ Le genesis hash sert à classifier les clusters publics connus. Le réseau de pr La simulation accepte une transaction base64 non signée lorsque `sigVerify = false`; `replaceRecentBlockhash = true` permet au nœud de remplacer le blockhash avant simulation. Les erreurs runtime restent un résultat de simulation typé et ne sont pas confondues avec une erreur HTTP ou JSON-RPC. -`kb_rpc` ne fabrique pas le contexte de sécurité : cluster attendu, âge du blockhash, nonce account et nonce authority sont fournis explicitement lors de la conversion vers `ExecutionSimulationResult`. Depuis `pre.013`, `getAccountInfo` possède aussi un mode données complètes borné : le mode metadata-only conserve `dataSlice.length = 0`, tandis que `confirmed_with_data(max_data_bytes)` exige un tuple base64 complet dont la longueur décodée égale `space`. +`kb_rpc` ne fabrique pas le contexte de sécurité : cluster attendu, âge du blockhash, nonce account et nonce authority sont fournis explicitement lors de la conversion vers `ExApiExecutionSimulationResult`. Depuis `pre.013`, `getAccountInfo` possède aussi un mode données complètes borné : le mode metadata-only conserve `dataSlice.length = 0`, tandis que `confirmed_with_data(max_data_bytes)` exige un tuple base64 complet dont la longueur décodée égale `space`. ## Assemblage et signature Solana -`0.4.2-pre.005` introduit `kb_execution_solana`, frontière commune entre les exécuteurs et les adaptateurs RPC. La crate convertit les `PlannedInstruction` en instructions SDK, compile le message avec son fee payer et sa source de blockhash, puis vérifie que les signataires réellement compilés correspondent exactement au contrat du plan. +`0.4.2-pre.005` introduit `kb_execution_solana`, frontière commune entre les exécuteurs et les adaptateurs RPC. La crate convertit les `ExApiPlannedInstruction` en instructions SDK, compile le message avec son fee payer et sa source de blockhash, puis vérifie que les signataires réellement compilés correspondent exactement au contrat du plan. La transaction non signée fournit deux sorties distinctes : diff --git a/docs/INSTRUCTION_REPLAY_CONTRACTS.md b/docs/INSTRUCTION_REPLAY_CONTRACTS.md index 6204d21..1a9d148 100644 --- a/docs/INSTRUCTION_REPLAY_CONTRACTS.md +++ b/docs/INSTRUCTION_REPLAY_CONTRACTS.md @@ -50,7 +50,7 @@ Certains protocoles Solana exigent de lire : - des séquences de logs liées à un CPI ; - des instructions voisines de la même transaction. -`CoreInstructionReplayInput` représente ce contrat de lecture : une instruction ciblée plus un contexte extrait depuis les tables `core`. Depuis le contrat `2`, ce contexte inclut également toutes les instructions outer de la signature, ordonnées numériquement et munies de leur payload retenu et de son hash. +`MdCoreInstructionReplayInput` représente ce contrat de lecture : une instruction ciblée plus un contexte extrait depuis les tables `core`. Depuis le contrat `2`, ce contexte inclut également toutes les instructions outer de la signature, ordonnées numériquement et munies de leur payload retenu et de son hash. ## Sélection de replay @@ -68,7 +68,7 @@ program_id = programme ciblé par le décodeur plage de slots = optionnelle ``` -Le repository charge les logs, balances, account keys et instructions outer nécessaires pour retourner `CoreInstructionReplayInput`. La liste outer inclut la cible et utilise les champs stables `instructionIndex`, `instructionPath`, `programId`, `payloadJson` et `payloadHash`. Cette extension lit les tables existantes et ne demande aucune migration. +Le repository charge les logs, balances, account keys et instructions outer nécessaires pour retourner `MdCoreInstructionReplayInput`. La liste outer inclut la cible et utilise les champs stables `instructionIndex`, `instructionPath`, `programId`, `payloadJson` et `payloadHash`. Cette extension lit les tables existantes et ne demande aucune migration. ## Marquage de cycle de vie diff --git a/docs/MATERIALIZATIONS.md b/docs/MATERIALIZATIONS.md index 7914f97..46c12ab 100644 --- a/docs/MATERIALIZATIONS.md +++ b/docs/MATERIALIZATIONS.md @@ -1,5 +1,5 @@ - + # Catalogue des matérialisations @@ -36,16 +36,26 @@ La famille décodée n'impose pas à elle seule la famille matérialisée. `auth `kb_lib::AdminMaterializer` produit des sorties `Admin` pour les assignations System, les écritures Config opaques et les changements d’autorité Loader. `kb_lib::ComplianceAuditMaterializer` produit des sorties `ComplianceAudit` pour les écritures/copies de bytecode Loader. `kb_lib::StakingMaterializer` produit les projections instructionnelles Stake/Vote commitées : comptes stake/vote, autorités, lockup, délégation, vote state, retraits et dépôt de rewards. Les données complètes ne sont jamais recopiées : seules les clés, autorités, offsets, tailles, hashes, préfixes et paramètres bornés disponibles sont conservés. -Les quatre implémentations résident respectivement dans `kb_lib::materializer::lifecycle`, `admin`, `compliance` et `staking`, mais sont réexportées à la racine de `kb-lib`. Les identités de processor historiques restent stables pour les replays ; les targets de tracing utilisent la hiérarchie consolidée `kb-lib.materializer.*`. +Les implémentations résident dans des modules privés et sont réexportées uniquement à la racine de `kb-lib`. Les identités de processor historiques restent stables pour les replays ; les targets de tracing utilisent la hiérarchie consolidée `kb-lib.materializer.*`. Le retrait d'un nonce account conserve une sémantique conditionnelle : le runtime ferme le compte uniquement lorsque la totalité du solde est retirée. La projection décrit l'opération commitée et ne prétend pas reconstruire l'état final transactionnel du compte. Les deltas SOL restent la responsabilité du graphe core. Une preuve ZK n'est jamais matérialisée. Seul le lifecycle du compte de contexte est projeté lorsqu'il existe. Un rapport Slashing conserve le signal de violation et son lifecycle, mais pas le contenu du compte de preuve externe ; `penaltyAppliedByProgram` reste faux car le programme ne retire pas lui-même du stake. L'ancien ZK Token Proof Program reste en decode/audit, car le runtime actuel est sans effet et aucun historique mainnet fiable n'a été observé. +## Projections SPL et Metaplex portées + +- `MtTransactionAnnotationMaterializer` accepte uniquement les observations Memo exactes, réussies et commitées, puis produit une annotation idempotente bornée avec texte, hash, génération et signataires vérifiés. +- `MtTokenAccountsMaterializer` projette les mutations SPL Token classique et Token‑2022, possède le lifecycle ATA et peut produire un snapshot borné Mint/Account/Multisig Token‑2022 à partir de l’état parsé. +- `MtFeesMaterializer` projette les instructions et snapshots de frais Token‑2022 publics ou confidentiels. Les blobs confidentiels restent opaques et `confidentialValuesDecrypted` demeure faux. +- `MtRiskMaterializer` produit uniquement des faits structurels SPL Token/ATA : délégation, freeze/thaw, autorités révoquées, multisig faible et récupération d’ATA imbriquée. Aucun score arbitraire n’est inventé. +- `MtMetadataMaterializer` projette les metadata incorporées Token‑2022 et les comptes Metaplex canoniques, avec provenance et lifecycle explicites. `externalUriFetched` reste faux. + +Le registre ElGamal ne possède pas un matérialiseur autonome : ses snapshots administratifs sont la responsabilité de `MtAdminMaterializer`. Le fetch HTTP/IPFS/Arweave des URI est off-chain et reste réservé à une future crate dédiée. + ## Matérialisations spécialisées à prévoir - `nft` : NFT classiques, programmables et compressés. -- `metadata` : metadata Metaplex, creators, collection, update authority, URI et symbol. +- `metadata` avancée : fetch off-chain borné, réconciliation de provenance et historique des changements. - `oracle` : prix, publisher, confidence, staleness et sources d'oracle. - `lending` : borrow, repay, collateral, liquidation et health factor. - `staking` avancé : snapshots de comptes Stake/Vote avant/après, activation par epoch, crédits Vote cumulés et réconciliation avec sysvars. diff --git a/docs/METAPLEX_TOKEN_METADATA_MATRIX.json b/docs/METAPLEX_TOKEN_METADATA_MATRIX.json index e0c5070..b1e9b41 100644 --- a/docs/METAPLEX_TOKEN_METADATA_MATRIX.json +++ b/docs/METAPLEX_TOKEN_METADATA_MATRIX.json @@ -313,7 +313,7 @@ ], "provenance_boundaries": [ "metaplex_token_metadata", - "token_2022_embedded_metadata", + "token2022_embedded_metadata", "metaplex_core", "metaplex_bubblegum" ], diff --git a/docs/NATIVE_SOLANA_MATERIALIZATION_AUDIT.md b/docs/NATIVE_SOLANA_MATERIALIZATION_AUDIT.md index c428a89..f5745b0 100644 --- a/docs/NATIVE_SOLANA_MATERIALIZATION_AUDIT.md +++ b/docs/NATIVE_SOLANA_MATERIALIZATION_AUDIT.md @@ -11,21 +11,21 @@ Les sorties ne sont pas des snapshots finaux de comptes ou de runtime. Les état ## Projections actives par matérialiseur -| Matérialiseur | Surfaces | Projection | -|------------------------------------|----------------------|---------------------------------------------------------------------------------------------------------------------| -| `LifecycleMaterializer` | Address Lookup Table | lifecycle create/freeze/extend/deactivate/close | -| `LifecycleMaterializer` | Feature | révocation de feature gate | -| `LifecycleMaterializer` | Loaders | déploiement, finalisation et transitions lifecycle stables | -| `LifecycleMaterializer` | System | durable nonce, create account et allocate | -| `LifecycleMaterializer` | ZK ElGamal | création ou fermeture d’un compte de contexte | -| `LifecycleMaterializer` | Slashing | initialisation ou fermeture d’un rapport de violation | -| `AdminMaterializer` | System | assign et assign with seed | -| `AdminMaterializer` | Config | écriture opaque bornée avec clés, taille, SHA-256 et préfixe | -| `AdminMaterializer` | Loaders | changements d’autorité | -| `ComplianceAuditMaterializer` | Loaders | écritures/copies de bytecode bornées par offsets, tailles, SHA-256 et préfixes | -| `ComplianceAuditMaterializer` | Compute Budget | profil transactionnel agrégé, last-write-wins, une seule sortie par transaction | -| `StakingMaterializer` | Stake | compte, délégation, désactivation, split, merge, withdraw, move stake/lamports, autorités et lockup instructionnels | -| `StakingMaterializer` | Vote | compte, autorités, identité, commission, vote state, retraits et dépôt de rewards instructionnels | +| Matérialiseur | Surfaces | Projection | +|---------------------------------|----------------------|---------------------------------------------------------------------------------------------------------------------| +| `MtLifecycleMaterializer` | Address Lookup Table | lifecycle create/freeze/extend/deactivate/close | +| `MtLifecycleMaterializer` | Feature | révocation de feature gate | +| `MtLifecycleMaterializer` | Loaders | déploiement, finalisation et transitions lifecycle stables | +| `MtLifecycleMaterializer` | System | durable nonce, create account et allocate | +| `MtLifecycleMaterializer` | ZK ElGamal | création ou fermeture d’un compte de contexte | +| `MtLifecycleMaterializer` | Slashing | initialisation ou fermeture d’un rapport de violation | +| `MtAdminMaterializer` | System | assign et assign with seed | +| `MtAdminMaterializer` | Config | écriture opaque bornée avec clés, taille, SHA-256 et préfixe | +| `MtAdminMaterializer` | Loaders | changements d’autorité | +| `MtComplianceAuditMaterializer` | Loaders | écritures/copies de bytecode bornées par offsets, tailles, SHA-256 et préfixes | +| `MtComplianceAuditMaterializer` | Compute Budget | profil transactionnel agrégé, last-write-wins, une seule sortie par transaction | +| `MtStakingMaterializer` | Stake | compte, délégation, désactivation, split, merge, withdraw, move stake/lamports, autorités et lockup instructionnels | +| `MtStakingMaterializer` | Vote | compte, autorités, identité, commission, vote state, retraits et dépôt de rewards instructionnels | ## Politique des transactions échouées diff --git a/docs/PROGRAM_REGISTRY_CONTROL.md b/docs/PROGRAM_REGISTRY_CONTROL.md index 036c144..8dfb277 100644 --- a/docs/PROGRAM_REGISTRY_CONTROL.md +++ b/docs/PROGRAM_REGISTRY_CONTROL.md @@ -54,52 +54,52 @@ Nouvelle règle : Ces identifiants sont détaillés dans `docs/CORE_PROGRAM_IDS.md`. Ils sont couverts par les décodeurs core/primitifs ou par des crates spécialisées SPL futures, pas par une crate DEX dédiée. -| Canonique | Program ID | Source | Type | Crate cible | Statut | -|--------------------------------------------|------------------------------------------------|-----------------------------------|----------------------|-------------------------------------------|-------------------------------------| -| `core_solana_address_lookup_table_v1` | `AddressLookupTab1e1111111111111111111111111` | `address_lookup_table` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_bpf_loader_deprecated_v1` | `BPFLoader1111111111111111111111111111111111` | `bpf_loader_deprecated` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_bpf_loader_v2` | `BPFLoader2111111111111111111111111111111111` | `bpf_loader` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_bpf_loader_upgradeable_v1` | `BPFLoaderUpgradeab1e11111111111111111111111` | `bpf_loader_upgradeable` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_compute_budget_v1` | `ComputeBudget111111111111111111111111111111` | `compute_budget` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_config_v1` | `Config1111111111111111111111111111111111111` | `config` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_ed25519_v1` | `Ed25519SigVerify111111111111111111111111111` | `ed25519` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_feature_v1` | `Feature111111111111111111111111111111111111` | `feature` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_incinerator_v1` | `1nc1nerator11111111111111111111111111111111` | `incinerator` | `well_known_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_loader_v4` | `LoaderV411111111111111111111111111111111111` | `loader_v4` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_native_loader_v1` | `NativeLoader1111111111111111111111111111111` | `native_loader` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_secp256k1_v1` | `KeccakSecp256k11111111111111111111111111111` | `secp256k1` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_secp256r1_v1` | `Secp256r1SigVerify1111111111111111111111111` | `secp256r1` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_stake_config_v1` | `StakeConfig11111111111111111111111111111111` | `stake_config` | `well_known_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_stake_v1` | `Stake11111111111111111111111111111111111111` | `stake` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_system_v1` | `11111111111111111111111111111111` | `system` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_sysvar_clock_v1` | `SysvarC1ock11111111111111111111111111111111` | `sysvar_clock` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_epoch_rewards_v1` | `SysvarEpochRewards1111111111111111111111111` | `sysvar_epoch_rewards` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_epoch_schedule_v1` | `SysvarEpochSchedu1e111111111111111111111111` | `sysvar_epoch_schedule` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_fees_v1` | `SysvarFees111111111111111111111111111111111` | `sysvar_fees` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_instructions_v1` | `Sysvar1nstructions1111111111111111111111111` | `sysvar_instructions` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_last_restart_slot_v1` | `SysvarLastRestartS1ot1111111111111111111111` | `sysvar_last_restart_slot` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_recent_blockhashes_v1` | `SysvarRecentB1ockHashes11111111111111111111` | `sysvar_recent_blockhashes` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_rent_v1` | `SysvarRent111111111111111111111111111111111` | `sysvar_rent` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_rewards_v1` | `SysvarRewards111111111111111111111111111111` | `sysvar_rewards` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_slot_hashes_v1` | `SysvarS1otHashes111111111111111111111111111` | `sysvar_slot_hashes` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_slot_history_v1` | `SysvarS1otHistory11111111111111111111111111` | `sysvar_slot_history` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_stake_history_v1` | `SysvarStakeHistory1111111111111111111111111` | `sysvar_stake_history` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_sysvar_v1` | `Sysvar1111111111111111111111111111111111111` | `sysvar` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | -| `core_solana_vote_v1` | `Vote111111111111111111111111111111111111111` | `vote` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_zk_elgamal_proof_v1` | `ZkE1Gama1Proof11111111111111111111111111111` | `zk_elgamal_proof` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_solana_zk_token_proof_v1` | `ZkTokenProof1111111111111111111111111111111` | `zk_token_proof` | `program` | `kb_decoder_solana_core` | `core_handled` | -| `core_spl_associated_token_account_v1` | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` | `associated_token_account` | `program` | `kb_decoder_spl_associated_token_account` | `core_handled` | -| `core_spl_account_compression_v1` | `cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK` | `spl_account_compression` | `program` | `kb_decoder_spl_account_compression` | `core_specialized_reserved_current` | -| `core_spl_memo_v1` | `Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo` | `spl_memo_v1` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | -| `core_spl_memo_v3` | `MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr` | `spl_memo_v3` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | -| `core_spl_memo_v4` | `Memo4c2pN8afCj432Lb7RMVKi9PbQnnW7ewFFaV3oAH` | `spl_memo_v4` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | -| `core_spl_noop_v1` | `noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV` | `spl_noop` | `program` | `kb_decoder_spl_noop` | `core_specialized_reserved_current` | -| `core_spl_single_pool_v1` | `SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE` | `spl_single_pool` | `program` | `kb_decoder_spl_single_pool` | `core_specialized_reserved_current` | -| `core_spl_name_service_v1` | `namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX` | `spl_name_service` | `program` | `kb_decoder_metadata_spl_name_service` | `core_specialized_reserved_current` | -| `core_spl_stake_pool_v1` | `SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy` | `stake_pool` | `program` | `kb_decoder_spl_stake_pool` | `core_specialized_reserved_current` | -| `core_spl_token_2022_v2022` | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | `token_2022` | `program` | `kb_decoder_spl_token_2022` | `core_handled` | -| `core_spl_token_2022_elgamal_registry_v1` | `regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg` | `spl_token_2022_elgamal_registry` | `program` | `kb_decoder_spl_token_2022` | `core_specialized_reserved_current` | -| `core_spl_token_v1` | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA` | `token` | `program` | `kb_decoder_spl_token` | `core_handled` | +| Canonique | Program ID | Source | Type | Crate cible | Statut | +|--------------------------------------------|------------------------------------------------|----------------------------------|----------------------|-------------------------------------------|-------------------------------------| +| `core_solana_address_lookup_table_v1` | `AddressLookupTab1e1111111111111111111111111` | `address_lookup_table` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_bpf_loader_deprecated_v1` | `BPFLoader1111111111111111111111111111111111` | `bpf_loader_deprecated` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_bpf_loader_v2` | `BPFLoader2111111111111111111111111111111111` | `bpf_loader` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_bpf_loader_upgradeable_v1` | `BPFLoaderUpgradeab1e11111111111111111111111` | `bpf_loader_upgradeable` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_compute_budget_v1` | `ComputeBudget111111111111111111111111111111` | `compute_budget` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_config_v1` | `Config1111111111111111111111111111111111111` | `config` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_ed25519_v1` | `Ed25519SigVerify111111111111111111111111111` | `ed25519` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_feature_v1` | `Feature111111111111111111111111111111111111` | `feature` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_incinerator_v1` | `1nc1nerator11111111111111111111111111111111` | `incinerator` | `well_known_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_loader_v4` | `LoaderV411111111111111111111111111111111111` | `loader_v4` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_native_loader_v1` | `NativeLoader1111111111111111111111111111111` | `native_loader` | `loader_program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_secp256k1_v1` | `KeccakSecp256k11111111111111111111111111111` | `secp256k1` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_secp256r1_v1` | `Secp256r1SigVerify1111111111111111111111111` | `secp256r1` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_stake_config_v1` | `StakeConfig11111111111111111111111111111111` | `stake_config` | `well_known_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_stake_v1` | `Stake11111111111111111111111111111111111111` | `stake` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_system_v1` | `11111111111111111111111111111111` | `system` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_sysvar_clock_v1` | `SysvarC1ock11111111111111111111111111111111` | `sysvar_clock` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_epoch_rewards_v1` | `SysvarEpochRewards1111111111111111111111111` | `sysvar_epoch_rewards` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_epoch_schedule_v1` | `SysvarEpochSchedu1e111111111111111111111111` | `sysvar_epoch_schedule` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_fees_v1` | `SysvarFees111111111111111111111111111111111` | `sysvar_fees` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_instructions_v1` | `Sysvar1nstructions1111111111111111111111111` | `sysvar_instructions` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_last_restart_slot_v1` | `SysvarLastRestartS1ot1111111111111111111111` | `sysvar_last_restart_slot` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_recent_blockhashes_v1` | `SysvarRecentB1ockHashes11111111111111111111` | `sysvar_recent_blockhashes` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_rent_v1` | `SysvarRent111111111111111111111111111111111` | `sysvar_rent` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_rewards_v1` | `SysvarRewards111111111111111111111111111111` | `sysvar_rewards` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_slot_hashes_v1` | `SysvarS1otHashes111111111111111111111111111` | `sysvar_slot_hashes` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_slot_history_v1` | `SysvarS1otHistory11111111111111111111111111` | `sysvar_slot_history` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_stake_history_v1` | `SysvarStakeHistory1111111111111111111111111` | `sysvar_stake_history` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_sysvar_v1` | `Sysvar1111111111111111111111111111111111111` | `sysvar` | `sysvar_account` | `kb_decoder_solana_core` | `core_recognized_account` | +| `core_solana_vote_v1` | `Vote111111111111111111111111111111111111111` | `vote` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_zk_elgamal_proof_v1` | `ZkE1Gama1Proof11111111111111111111111111111` | `zk_elgamal_proof` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_solana_zk_token_proof_v1` | `ZkTokenProof1111111111111111111111111111111` | `zk_token_proof` | `program` | `kb_decoder_solana_core` | `core_handled` | +| `core_spl_associated_token_account_v1` | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` | `associated_token_account` | `program` | `kb_decoder_spl_associated_token_account` | `core_handled` | +| `core_spl_account_compression_v1` | `cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK` | `spl_account_compression` | `program` | `kb_decoder_spl_account_compression` | `core_specialized_reserved_current` | +| `core_spl_memo_v1` | `Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo` | `spl_memo_v1` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | +| `core_spl_memo_v3` | `MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr` | `spl_memo_v3` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | +| `core_spl_memo_v4` | `Memo4c2pN8afCj432Lb7RMVKi9PbQnnW7ewFFaV3oAH` | `spl_memo_v4` | `program` | `kb_decoder_spl_memo` | `core_specialized_reserved_current` | +| `core_spl_noop_v1` | `noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV` | `spl_noop` | `program` | `kb_decoder_spl_noop` | `core_specialized_reserved_current` | +| `core_spl_single_pool_v1` | `SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE` | `spl_single_pool` | `program` | `kb_decoder_spl_single_pool` | `core_specialized_reserved_current` | +| `core_spl_name_service_v1` | `namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX` | `spl_name_service` | `program` | `kb_decoder_metadata_spl_name_service` | `core_specialized_reserved_current` | +| `core_spl_stake_pool_v1` | `SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy` | `stake_pool` | `program` | `kb_decoder_spl_stake_pool` | `core_specialized_reserved_current` | +| `core_spl_token_2022_v2022` | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | `token2022` | `program` | `kb_decoder_spl_token_2022` | `core_handled` | +| `core_spl_token_2022_elgamal_registry_v1` | `regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg` | `spl_token2022_elgamal_registry` | `program` | `kb_decoder_spl_token_2022` | `core_specialized_reserved_current` | +| `core_spl_token_v1` | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA` | `token` | `program` | `kb_decoder_spl_token` | `core_handled` | ## DEX, AMM, CPMM, CLMM, DLMM, stable swap, weighted swap et orderbooks @@ -245,15 +245,15 @@ Ces identifiants sont détaillés dans `docs/CORE_PROGRAM_IDS.md`. Ils sont couv ## NFT, metadata, admin, governance et locks -| Canonique | Program ID | Source | Normalisé | Crate actuelle | Crate cible | Statut | -|------------------------------------|------------------------------------------------|---------------------------|---------------------------|------------------------|-----------------------------------------------|--------------------| -| `lock_raydium_lp` | `LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE` | `raydium_lock_lp` | `raydium_lock_lp` | `-` | `kb_decoder_lock_raydium_lp` | `reserved_missing` | -| `admin_jupiter_lock` | `LocpQgucEQHbqNABEYvBvwoxCPsSbG91A1QaQhQQqjn` | `jupiter_lock` | `jupiter_lock` | `-` | `kb_decoder_admin_jupiter_lock` | `reserved_missing` | -| `admin_pump_fees` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | `pump_fees` | `pump_fees` | `kb_decoder_pump_fees` | `kb_decoder_admin_pump_fees` | `current_alias` | +| Canonique | Program ID | Source | Normalisé | Crate actuelle | Crate cible | Statut | +|------------------------------------|------------------------------------------------|---------------------------|---------------------------|------------------------|------------------------------------------------------|--------------------| +| `lock_raydium_lp` | `LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE` | `raydium_lock_lp` | `raydium_lock_lp` | `-` | `kb_decoder_lock_raydium_lp` | `reserved_missing` | +| `admin_jupiter_lock` | `LocpQgucEQHbqNABEYvBvwoxCPsSbG91A1QaQhQQqjn` | `jupiter_lock` | `jupiter_lock` | `-` | `kb_decoder_admin_jupiter_lock` | `reserved_missing` | +| `admin_pump_fees` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | `pump_fees` | `pump_fees` | `kb_decoder_pump_fees` | `kb_decoder_admin_pump_fees` | `current_alias` | | `metadata_metaplex_token_metadata` | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s` | `metaplex_token_metadata` | `metaplex_token_metadata` | `-` | `kb_lib::decoder::metadata::metaplex_token_metadata` | `current_migrated` | -| `metadata_name_service` | `namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX` | `name_service` | `name_service` | `-` | `kb_decoder_metadata_spl_name_service` | `reserved_missing` | -| `nft_metaplex_bubblegum` | `BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY` | `bubblegum` | `bubblegum` | `-` | `kb_decoder_nft_metaplex_bubblegum` | `reserved_missing` | -| `nft_metaplex_mpl_core` | `CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d` | `mpl_core` | `mpl_core` | `-` | `kb_decoder_nft_metaplex_mpl_core` | `reserved_missing` | +| `metadata_name_service` | `namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX` | `name_service` | `name_service` | `-` | `kb_decoder_metadata_spl_name_service` | `reserved_missing` | +| `nft_metaplex_bubblegum` | `BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY` | `bubblegum` | `bubblegum` | `-` | `kb_decoder_nft_metaplex_bubblegum` | `reserved_missing` | +| `nft_metaplex_mpl_core` | `CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d` | `mpl_core` | `mpl_core` | `-` | `kb_decoder_nft_metaplex_mpl_core` | `reserved_missing` | ## Surfaces à classifier diff --git a/docs/RUST_WORKSPACE_RULE_AUDIT.md b/docs/RUST_WORKSPACE_RULE_AUDIT.md index 83206a2..8be870f 100644 --- a/docs/RUST_WORKSPACE_RULE_AUDIT.md +++ b/docs/RUST_WORKSPACE_RULE_AUDIT.md @@ -229,7 +229,7 @@ La mise en conformité est découpée avant toute nouvelle prérelease : 1. `pre.035-delta-fix-002` : séparation des règles et audit automatisé reproductible ; 2. correctifs suivants : points d'entrée de crates, réexports `pub`/`pub(crate)`, rustdocs et chemins `crate::...` ; 3. correctifs suivants : imports de traits et suppression des imports ordinaires/groupés ; -4. correctifs suivants : `TRACING_TARGET`, dépendances `tracing`, macros et matrice de routes ; +4. correctifs suivants : `DC_METADATA_MTM_TRACING_TARGET`, dépendances `tracing`, macros et matrice de routes ; 5. correctifs suivants : helpers dupliqués et mutualisation inter-crates ; 6. fermeture : `cargo fmt --all`, audit strict, tests workspace et Clippy global. diff --git a/docs/SOLANA_INTERFACE_DEPENDENCIES.md b/docs/SOLANA_INTERFACE_DEPENDENCIES.md index 96b1062..2cbefa7 100644 --- a/docs/SOLANA_INTERFACE_DEPENDENCIES.md +++ b/docs/SOLANA_INTERFACE_DEPENDENCIES.md @@ -71,7 +71,7 @@ Le message à signer provient de `solana_transaction::Transaction::message_data( ## Identifiants natifs, Vote et loaders dans l’exécuteur -`solana-sdk-ids` est conservé intentionnellement comme registre officiel modulaire des adresses natives et sysvars. Les chemins `solana_sdk_ids::sysvar::{clock,rent,slot_hashes,instructions}` ne constituent pas un retour au SDK monolithique : ils fournissent uniquement des `Pubkey` canoniques. `solana-instructions-sysvar` ne doit être ajouté que lorsqu’une crate appelle réellement ses fonctions d’introspection d’instructions, pas pour remplacer un simple ID officiel. +`solana-sdk-ids` est conservé intentionnellement comme registre officiel modulaire des adresses natives et sysvars. Les chemins `solana_sdk_ids::sysvar::{clock,rent,slot_hashes,instructions}` ne constituent pas un retour au SDK monolithique : ils fournissent uniquement des `MdPubkey` canoniques. `solana-instructions-sysvar` ne doit être ajouté que lorsqu’une crate appelle réellement ses fonctions d’introspection d’instructions, pas pour remplacer un simple ID officiel. `kb_executor_solana_core` consomme `solana-vote-interface ^6.0` avec `serde` et `wincode` pour construire les vingt variantes wire Vote actuelles. Il utilise `solana-instruction` pour `Instruction`/`AccountMeta`, `solana-pubkey::Pubkey` pour les adresses publiques, `solana-hash::Hash` pour les hashes et `solana-sdk-ids` pour Rent, Clock et SlotHashes. Les quatre créations composées utilisent `solana-system-interface`; aucune dépendance `solana-sdk` ni feature `bincode` n’est ajoutée à la crate. @@ -214,7 +214,7 @@ longueurs de chaînes de `Initialize`, `UpdateField` et `RemoveKey`. Cette garde normative pour le décodeur ; `UpdateAuthority` et `Emit` restent sans chaîne. La migration `0.1.0-pre.008` conserve ces contrats dans -`kb_lib::decoder::spl::token_2022` et isole le registre dans +`kb_lib::decoder::spl::token2022` et isole le registre dans `kb_lib::decoder::spl::elgamal_registry`. Les targets de tracing, matrices et Program IDs restent distincts ; aucun pointeur TLV n’est interprété comme une preuve de l’état du programme externe pointé. diff --git a/docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json b/docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json index da78d8b..2d5f70f 100644 --- a/docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json +++ b/docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json @@ -1,13 +1,17 @@ { "file": "docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json", - "version": 10, + "version": 11, "schemaVersion": 1, "bot3Migration": { "target": "kb-lib.decoder.spl.associated_token_account", - "status": "ported_pending_operator_cargo_validation", + "status": "decoder_operator_validated_materializers_ported", "prerelease": "0.1.0-pre.007", "preservedDifferentialTests": 10, - "materializerPorted": false, + "materializerPorted": true, + "publicMaterializers": [ + "kb_lib::TokenAccountsMaterializer", + "kb_lib::RiskMaterializer" + ], "executorPorted": false, "pipelinePorted": false }, @@ -15,7 +19,7 @@ "systemProgramId": "11111111111111111111111111111111", "supportedTokenPrograms": [ {"code": "spl_token", "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", "scope": "classic_token_account_lifecycle_only"}, - {"code": "spl_token_2022", "programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", "scope": "ata_lifecycle_only_without_general_token_2022_instruction_or_extension_decode"} + {"code": "spl_token2022", "programId": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", "scope": "ata_lifecycle_only_without_general_token2022_instruction_or_extension_decode"} ], "interface": { "workspaceConstraint": "^2.0", @@ -85,10 +89,10 @@ "runtimeRules": ["fails if the associated account already exists", "funding account pays rent and creation cost", "mint and created account must be coherent with the selected token program"], "event": "spl_associated_token_account.create", "authorizedProjections": ["token_accounts:ata_created"], - "forbiddenProjections": ["token_balance_snapshot", "duplicate_spl_token_initialize_account_cpi", "token_2022_extension_fact"], + "forbiddenProjections": ["token_balance_snapshot", "duplicate_spl_token_initialize_account_cpi", "token2022_extension_fact"], "officialBuilder": {"available": true, "function": "create_associated_token_account", "canonicalWireOnly": true}, "executorSupport": {"status": "supported", "operationCode": "spl_associated_token_account.create", "builder": "create_associated_token_account", "simulation": "required", "defaultMode": "dry_run"}, - "proofs": {"synthetic": ["canonical_00", "legacy_empty", "classic_token_program", "token_2022_program", "wrong_ata", "missing_account", "extra_account", "duplicate_account", "wrong_flags", "unknown_suffix", "outer", "inner_cpi", "committed", "failed_intent"], "localnet": "not_tested", "devnet": "not_tested", "mainnetSignatures": []} + "proofs": {"synthetic": ["canonical_00", "legacy_empty", "classic_token_program", "token2022_program", "wrong_ata", "missing_account", "extra_account", "duplicate_account", "wrong_flags", "unknown_suffix", "outer", "inner_cpi", "committed", "failed_intent"], "localnet": "not_tested", "devnet": "not_tested", "mainnetSignatures": []} }, { "name": "create_idempotent", @@ -109,10 +113,10 @@ "runtimeRules": ["creates when absent", "succeeds without recreating when an initialized compatible ATA already exists", "fails when an existing account has a different wallet owner, mint or account owner program"], "event": "spl_associated_token_account.create_idempotent", "authorizedProjections": ["token_accounts:ata_created_or_reused_idempotently"], - "forbiddenProjections": ["token_balance_snapshot", "duplicate_spl_token_initialize_account_cpi", "token_2022_extension_fact"], + "forbiddenProjections": ["token_balance_snapshot", "duplicate_spl_token_initialize_account_cpi", "token2022_extension_fact"], "officialBuilder": {"available": true, "function": "create_associated_token_account_idempotent", "canonicalWireOnly": true}, "executorSupport": {"status": "supported", "operationCode": "spl_associated_token_account.create_idempotent", "builder": "create_associated_token_account_idempotent", "simulation": "required", "defaultMode": "dry_run"}, - "proofs": {"synthetic": ["canonical_01", "absent_account", "compatible_existing_account", "conflicting_existing_owner", "conflicting_existing_mint", "conflicting_existing_program", "classic_token_program", "token_2022_program", "wrong_ata", "wrong_flags", "unexpected_suffix", "outer", "inner_cpi", "committed", "failed_intent"], "localnet": "not_tested", "devnet": ["5Vw4QFpMa8oJ8MsLrvDg4RFzxqUh27mTFRFzzwJFoA4uAry8rZQc6GP92aidzWugn3CeZ5NYNxDp7tZ6bh8XyN1P", "2H9VfhDySdXMteazm2P3s2fTttJBQzMJinQtKqsLtkjDg7zbFFgiWG81UxRQF4va3bbR2pUV4QGo2qErisR8CPbP", "3wWTkx45LoDR3UaU8VUfsWxwHuLFyJyhrnDrmijCa7pXPdmJKz3rQ1LdyDvb78dvNRiKqw5ee7HuZ6Gjj1Gpfv6q", "bMMjoHcwbaTvLXerdQ4kbGXGb7wydiTyvSEwwmoKKLQcRWWBzqGUMYHZztonNnER1iWZ7yKp9p3neeMhypX4QAJ", "4RZKA3KwEbSqgU8UnemTgvd3fBgJmoSK2nmaaTNP8nJGTVh6DrFwrHVZYCBvLFvhvzUdi9p1KRFe4hHqYt7JbVSG"], "mainnetSignatures": ["2F9RvuCkevfJN7ju252hAWoCE58wagCXCWHQF9Wsdtsxvp3HcuNJQFCwU7zGqe3z3b8pv3vPp4xY5EH7KLcaHQCY"], "realCorpusStatus": "controlled classic and Token-2022 CreateIdempotent creation then compatible-existing reuse confirmed, materialized once per signature and replayed idempotently; search-discovered Token-2022 outer transaction remains additional corpus"} + "proofs": {"synthetic": ["canonical_01", "absent_account", "compatible_existing_account", "conflicting_existing_owner", "conflicting_existing_mint", "conflicting_existing_program", "classic_token_program", "token2022_program", "wrong_ata", "wrong_flags", "unexpected_suffix", "outer", "inner_cpi", "committed", "failed_intent"], "localnet": "not_tested", "devnet": ["5Vw4QFpMa8oJ8MsLrvDg4RFzxqUh27mTFRFzzwJFoA4uAry8rZQc6GP92aidzWugn3CeZ5NYNxDp7tZ6bh8XyN1P", "2H9VfhDySdXMteazm2P3s2fTttJBQzMJinQtKqsLtkjDg7zbFFgiWG81UxRQF4va3bbR2pUV4QGo2qErisR8CPbP", "3wWTkx45LoDR3UaU8VUfsWxwHuLFyJyhrnDrmijCa7pXPdmJKz3rQ1LdyDvb78dvNRiKqw5ee7HuZ6Gjj1Gpfv6q", "bMMjoHcwbaTvLXerdQ4kbGXGb7wydiTyvSEwwmoKKLQcRWWBzqGUMYHZztonNnER1iWZ7yKp9p3neeMhypX4QAJ", "4RZKA3KwEbSqgU8UnemTgvd3fBgJmoSK2nmaaTNP8nJGTVh6DrFwrHVZYCBvLFvhvzUdi9p1KRFe4hHqYt7JbVSG"], "mainnetSignatures": ["2F9RvuCkevfJN7ju252hAWoCE58wagCXCWHQF9Wsdtsxvp3HcuNJQFCwU7zGqe3z3b8pv3vPp4xY5EH7KLcaHQCY"], "realCorpusStatus": "controlled classic and Token-2022 CreateIdempotent creation then compatible-existing reuse confirmed, materialized once per signature and replayed idempotently; search-discovered Token-2022 outer transaction remains additional corpus"} }, { "name": "recover_nested", @@ -134,16 +138,16 @@ "runtimeRules": ["all three derived addresses must match their observed accounts", "owner and nested token accounts must be initialized and coherent with their respective mints", "wallet owner must sign", "complete nested token balance is moved to the wallet destination ATA", "nested account is closed and its lamports are returned to the wallet"], "event": "spl_associated_token_account.recover_nested", "authorizedProjections": ["token_accounts:nested_ata_recovered", "risk:nested_ata_anti_pattern_recovered"], - "forbiddenProjections": ["duplicate_spl_token_transfer_cpi", "duplicate_spl_token_close_account_cpi", "token_balance_snapshot", "token_2022_extension_fact"], + "forbiddenProjections": ["duplicate_spl_token_transfer_cpi", "duplicate_spl_token_close_account_cpi", "token_balance_snapshot", "token2022_extension_fact"], "officialBuilder": {"available": true, "function": "recover_nested", "canonicalWireOnly": true}, "executorSupport": {"status": "supported", "operationCode": "spl_associated_token_account.recover_nested", "builder": "recover_nested", "simulation": "required", "defaultMode": "dry_run"}, - "proofs": {"synthetic": ["canonical_02", "classic_token_program", "token_2022_program", "valid_three_pda_relationships", "wrong_nested_ata", "wrong_destination_ata", "wrong_owner_ata", "owner_and_nested_mints_not_inverted", "missing_account", "extra_account", "duplicate_account", "wrong_flags", "unexpected_suffix", "outer", "inner_cpi", "committed", "failed_intent"], "localnet": "not_tested", "devnet": ["37LG6GdMRp5ECG8qf1RSYxmriJk75UtCwqwzXZWpArebkKo6BQvGhYEnbDh2A6KWiUaHK28Zy1gGGZ5zihvrHskM"], "mainnetSignatures": [], "realCorpusStatus": "controlled classic RecoverNested confirmed with positive raw balance transfer, nested ATA closure, owner and destination post-validation, two distinct ATA lifecycle and risk projections, and idempotent second replay", "controlledDevnetFixture": {"walletOwner": "DwuAapPLg6pEJ4QhmxvPg8rzkavmYdg5FW4dfEMcg8B2", "ownerMint": "So11111111111111111111111111111111111111112", "ownerAssociatedTokenAccount": "3tdXq1W7vEbbkxQmT1r2fc349uYti98zpwLKhp7FFbF5", "nestedMint": "3fd5CqP1w4Y1xeMoAe3apA7Jf5SbL3vboxv7ihyXhC9A", "nestedAssociatedTokenAccount": "AAyvGeKpq6i3kxMcScJLcN2u5iyAsspr731LhgXygti5", "walletNestedMintAssociatedTokenAccount": "69TP2QoSx2inueFAEb6npjumH5o3wGJQDSwwAJLLfyWp", "rawAmountTransferred": "1000000000", "nestedAccountClosed": true, "destinationUiBalanceAfter": "1", "materializedOutputCount": 2}} + "proofs": {"synthetic": ["canonical_02", "classic_token_program", "token2022_program", "valid_three_pda_relationships", "wrong_nested_ata", "wrong_destination_ata", "wrong_owner_ata", "owner_and_nested_mints_not_inverted", "missing_account", "extra_account", "duplicate_account", "wrong_flags", "unexpected_suffix", "outer", "inner_cpi", "committed", "failed_intent"], "localnet": "not_tested", "devnet": ["37LG6GdMRp5ECG8qf1RSYxmriJk75UtCwqwzXZWpArebkKo6BQvGhYEnbDh2A6KWiUaHK28Zy1gGGZ5zihvrHskM"], "mainnetSignatures": [], "realCorpusStatus": "controlled classic RecoverNested confirmed with positive raw balance transfer, nested ATA closure, owner and destination post-validation, two distinct ATA lifecycle and risk projections, and idempotent second replay", "controlledDevnetFixture": {"walletOwner": "DwuAapPLg6pEJ4QhmxvPg8rzkavmYdg5FW4dfEMcg8B2", "ownerMint": "So11111111111111111111111111111111111111112", "ownerAssociatedTokenAccount": "3tdXq1W7vEbbkxQmT1r2fc349uYti98zpwLKhp7FFbF5", "nestedMint": "3fd5CqP1w4Y1xeMoAe3apA7Jf5SbL3vboxv7ihyXhC9A", "nestedAssociatedTokenAccount": "AAyvGeKpq6i3kxMcScJLcN2u5iyAsspr731LhgXygti5", "walletNestedMintAssociatedTokenAccount": "69TP2QoSx2inueFAEb6npjumH5o3wGJQDSwwAJLLfyWp", "rawAmountTransferred": "1000000000", "nestedAccountClosed": true, "destinationUiBalanceAfter": "1", "materializedOutputCount": 2}} } ], "offlineCorpus": { "status": "implemented_and_operator_validated_in_decoder_unit_tests", "wire": ["create_00", "legacy_empty_create", "create_idempotent_01", "recover_nested_02", "unknown_tag", "rejected_suffix"], - "tokenPrograms": ["spl_token_classic", "token_2022"], + "tokenPrograms": ["spl_token_classic", "token2022"], "locations": ["outer", "inner_cpi"], "transactionOutcomes": ["committed", "failed_uncommitted_intent"], "accountShapes": ["canonical", "missing", "extra", "duplicate", "wrong_flags", "wrong_derived_address", "unsupported_token_program", "wrong_system_program"], @@ -155,7 +159,8 @@ "idempotenceIdentity": "signature + instruction_path + program_id + normalized_operation + ata", "projectionOwners": [ { - "crate": "kb_materializer_token_accounts", + "crate": "kb-lib", + "component": "materializer.token.accounts", "facts": [ "ata_created", "ata_created_or_reused_idempotently", @@ -164,7 +169,8 @@ "justification": "ATA creation and recovery are stable token-account lifecycle facts; this crate already owns instruction-level token-account mutations." }, { - "crate": "kb_materializer_risk", + "crate": "kb-lib", + "component": "materializer.risk", "facts": [ "nested_ata_anti_pattern_recovered" ], @@ -173,15 +179,18 @@ ], "explicitNoProjection": [ { - "crate": "kb_materializer_lifecycle", - "reason": "Native program lifecycle remains owned here; duplicating ATA lifecycle would overlap kb_materializer_token_accounts." + "crate": "kb-lib", + "component": "materializer.lifecycle", + "reason": "Native program lifecycle remains owned here; duplicating ATA lifecycle would overlap the token-account materializer." }, { - "crate": "kb_materializer_admin", + "crate": "kb-lib", + "component": "materializer.admin", "reason": "ATA instructions do not change a mint authority, freeze authority, close authority or multisig configuration." }, { - "crate": "kb_materializer_fees", + "crate": "kb-lib", + "component": "materializer.fees", "reason": "ATA wire does not prove an exact rent or network-fee amount; core balance changes and execution validation retain those facts." } ], @@ -195,7 +204,7 @@ "deploymentAudit": { "localnet": {"status": "not_tested", "evidence": []}, "devnet": {"status": "classic and Token-2022 CreateIdempotent creation and compatible-existing reuse confirmed; classic RecoverNested positive-balance recovery confirmed", "evidence": ["5Vw4QFpMa8oJ8MsLrvDg4RFzxqUh27mTFRFzzwJFoA4uAry8rZQc6GP92aidzWugn3CeZ5NYNxDp7tZ6bh8XyN1P", "2H9VfhDySdXMteazm2P3s2fTttJBQzMJinQtKqsLtkjDg7zbFFgiWG81UxRQF4va3bbR2pUV4QGo2qErisR8CPbP", "3wWTkx45LoDR3UaU8VUfsWxwHuLFyJyhrnDrmijCa7pXPdmJKz3rQ1LdyDvb78dvNRiKqw5ee7HuZ6Gjj1Gpfv6q", "bMMjoHcwbaTvLXerdQ4kbGXGb7wydiTyvSEwwmoKKLQcRWWBzqGUMYHZztonNnER1iWZ7yKp9p3neeMhypX4QAJ", "4RZKA3KwEbSqgU8UnemTgvd3fBgJmoSK2nmaaTNP8nJGTVh6DrFwrHVZYCBvLFvhvzUdi9p1KRFe4hHqYt7JbVSG", "37LG6GdMRp5ECG8qf1RSYxmriJk75UtCwqwzXZWpArebkKo6BQvGhYEnbDh2A6KWiUaHK28Zy1gGGZ5zihvrHskM"], "controlledToken2022Fixture": {"mint": "3DxKAUfCZkR9oRfMXeRNpiVL464eKbTieymBrVhsoKTE", "mintOwner": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb", "mintBaseLength": 82, "walletOwner": "DwuAapPLg6pEJ4QhmxvPg8rzkavmYdg5FW4dfEMcg8B2", "associatedTokenAccount": "6WfCJPt7GZQyMJAUS1AMHJrD7Vid8e9xUEQVgi5Q9C9Y", "accountLength": 170, "accountExtension": "immutable_owner", "creationSlot": 476702448, "existingReuseSlot": 476703343}}, - "mainnet": {"status": "search_discovered_token_2022_create_idempotent_not_yet_replayed", "evidence": ["2F9RvuCkevfJN7ju252hAWoCE58wagCXCWHQF9Wsdtsxvp3HcuNJQFCwU7zGqe3z3b8pv3vPp4xY5EH7KLcaHQCY"]}, + "mainnet": {"status": "search_discovered_token2022_create_idempotent_not_yet_replayed", "evidence": ["2F9RvuCkevfJN7ju252hAWoCE58wagCXCWHQF9Wsdtsxvp3HcuNJQFCwU7zGqe3z3b8pv3vPp4xY5EH7KLcaHQCY"]}, "rateLimitRecovery": "preserve confirmed signatures and resume bounded hydration; never recreate accounts blindly after HTTP 429" }, "nonClaims": [ diff --git a/docs/SPL_MEMO_MATRIX.json b/docs/SPL_MEMO_MATRIX.json index 34a4b6b..1436b18 100644 --- a/docs/SPL_MEMO_MATRIX.json +++ b/docs/SPL_MEMO_MATRIX.json @@ -1,13 +1,14 @@ { "file": "docs/SPL_MEMO_MATRIX.json", - "version": 9, + "version": 10, "matrixVersion": 4, "scope": "SPL Memo v1, v3 et v4", "bot3Migration": { "decoderModule": "kb_lib::decoder::spl::memo", "publicDecoder": "kb_lib::SplMemoDecoder", "decoderStatus": "ported_in_0.1.0-pre.005", - "materializerStatus": "pending_later_tranche", + "publicMaterializer": "kb_lib::TransactionAnnotationMaterializer", + "materializerStatus": "ported_in_0.1.0-pre.011", "executorStatus": "pending_later_tranche" }, "interface": { @@ -113,7 +114,8 @@ "unknownProgramProducesObservation": false }, "materializationContract": { - "crate": "kb_materializer_transaction_annotations", + "crate": "kb-lib", + "component": "materializer.transaction.annotations", "processorName": "transaction_annotations", "materializedFamily": "transaction_annotation", "acceptedEntries": ["add_memo", "memo_intent", "invalid_memo_attempt"], diff --git a/docs/SPL_TOKEN_2022_CONFIDENTIAL_EXECUTION_AUDIT.md b/docs/SPL_TOKEN2022_CONFIDENTIAL_EXECUTION_AUDIT.md similarity index 99% rename from docs/SPL_TOKEN_2022_CONFIDENTIAL_EXECUTION_AUDIT.md rename to docs/SPL_TOKEN2022_CONFIDENTIAL_EXECUTION_AUDIT.md index f7670fa..125ae37 100644 --- a/docs/SPL_TOKEN_2022_CONFIDENTIAL_EXECUTION_AUDIT.md +++ b/docs/SPL_TOKEN2022_CONFIDENTIAL_EXECUTION_AUDIT.md @@ -1,4 +1,4 @@ - + # Audit d’exécution Confidential Transfer Token-2022 diff --git a/docs/SPL_TOKEN_2022_MATRIX.json b/docs/SPL_TOKEN2022_MATRIX.json similarity index 99% rename from docs/SPL_TOKEN_2022_MATRIX.json rename to docs/SPL_TOKEN2022_MATRIX.json index e492d21..ff28f44 100644 --- a/docs/SPL_TOKEN_2022_MATRIX.json +++ b/docs/SPL_TOKEN2022_MATRIX.json @@ -1,5 +1,5 @@ { - "file": "docs/SPL_TOKEN_2022_MATRIX.json", + "file": "docs/SPL_TOKEN2022_MATRIX.json", "version": "0.1.0-pre.008", "schemaVersion": 1, "matrixStatus": "exact_decoder_leaf_coverage_proven_pending_materialization_executor_preflight_and_cluster_corpus_completion", @@ -30,7 +30,7 @@ "default", "serde" ], - "leafConsumer": "kb-lib.decoder.spl.token_2022", + "leafConsumer": "kb-lib.decoder.spl.token2022", "operatorEvidence": "cargo tree -i spl-token-2022-interface -e features", "publishedCandidateAudited": "3.1.1", "publishedCandidateStatus": "matches_confirmed_workspace_resolution", @@ -2060,7 +2060,7 @@ "stable_fact_only_no_score" ], "lifecycle": [ - "no_token_2022_claim_until_non_overlap_is_proven" + "no_token2022_claim_until_non_overlap_is_proven" ] }, "forbiddenClaims": [ diff --git a/docs/SPL_TOKEN_2022_SOURCE_AUDIT.md b/docs/SPL_TOKEN2022_SOURCE_AUDIT.md similarity index 99% rename from docs/SPL_TOKEN_2022_SOURCE_AUDIT.md rename to docs/SPL_TOKEN2022_SOURCE_AUDIT.md index 00d2b2a..1127df3 100644 --- a/docs/SPL_TOKEN_2022_SOURCE_AUDIT.md +++ b/docs/SPL_TOKEN2022_SOURCE_AUDIT.md @@ -1,4 +1,4 @@ - + # Audit des sources Token-2022 résolues diff --git a/docs/SPL_TOKEN_2022_VALIDATION_MATRIX.json b/docs/SPL_TOKEN2022_VALIDATION_MATRIX.json similarity index 98% rename from docs/SPL_TOKEN_2022_VALIDATION_MATRIX.json rename to docs/SPL_TOKEN2022_VALIDATION_MATRIX.json index 8cedd27..2bea77b 100644 --- a/docs/SPL_TOKEN_2022_VALIDATION_MATRIX.json +++ b/docs/SPL_TOKEN2022_VALIDATION_MATRIX.json @@ -39,7 +39,7 @@ ] }, { - "id": "token_2022_public_devnet", + "id": "token2022_public_devnet", "environment": "devnet", "status": "not_run", "requiredEvidence": [ diff --git a/docs/TRACING_CONTRACT.md b/docs/TRACING_CONTRACT.md index e0fae05..006643a 100644 --- a/docs/TRACING_CONTRACT.md +++ b/docs/TRACING_CONTRACT.md @@ -1,5 +1,5 @@ - + # Contrat de tracing par crate et composant @@ -62,11 +62,14 @@ kb-lib.decoder.spl.associated_token_account kb-lib.decoder.spl.elgamal_registry kb-lib.decoder.spl.memo kb-lib.decoder.spl.token -kb-lib.decoder.spl.token_2022 +kb-lib.decoder.spl.token2022 kb-lib.materializer.admin kb-lib.materializer.compliance kb-lib.materializer.lifecycle +kb-lib.materializer.risk kb-lib.materializer.staking +kb-lib.materializer.token +kb-lib.materializer.transaction kb-logging kb-store ``` diff --git a/docs/legacy-khadhroony-bot2/CHANGELOG.md b/docs/legacy-khadhroony-bot2/CHANGELOG.md index b08dcc6..9414f72 100644 --- a/docs/legacy-khadhroony-bot2/CHANGELOG.md +++ b/docs/legacy-khadhroony-bot2/CHANGELOG.md @@ -35,7 +35,7 @@ Validation du jalon de cadrage stockage : conventions PostgreSQL définies autou ## 0.2.1 — contrats `kb_store_core` et replay instruction-level -Validation du jalon de contrats storage : `kb_store_core` expose les types communs backend-agnostiques pour pagination, healthcheck, migrations, erreurs de stockage, DTOs applicatifs, entities proches SQL et traits repositories sans implémentation PostgreSQL. Les contrats couvrent le raw RPC et WebSocket, le cycle de vie raw `Full` / `Compacted` / `Archived` / `Purged`, les états de traitement raw, la signature optionnelle des notifications WebSocket, la déduplication par `notification_key`, le lien futur optionnel notification vers transaction canonique, ainsi que le replay par instruction. Le replay est défini comme un scheduling au niveau instruction, mais le décodage reçoit un contexte extrait complet via `CoreInstructionReplayInput` : instruction ciblée, account keys, logs, balance changes et contexte transactionnel minimal. Les repositories restent abstraits et ne créent encore ni pool PostgreSQL, ni migration SQL réelle. Validation locale effectuée : `cargo test -p kb_store_core` avec 28 tests passés et `cargo clippy --all-targets` sans avertissement. Les validations précédentes du jalon ont également confirmé `kb_store_pg` sans test actif, `kb_config` avec 35 tests passés et `kb_app_demo` avec 28 tests passés. +Validation du jalon de contrats storage : `kb_store_core` expose les types communs backend-agnostiques pour pagination, healthcheck, migrations, erreurs de stockage, DTOs applicatifs, entities proches SQL et traits repositories sans implémentation PostgreSQL. Les contrats couvrent le raw RPC et WebSocket, le cycle de vie raw `Full` / `Compacted` / `Archived` / `Purged`, les états de traitement raw, la signature optionnelle des notifications WebSocket, la déduplication par `notification_key`, le lien futur optionnel notification vers transaction canonique, ainsi que le replay par instruction. Le replay est défini comme un scheduling au niveau instruction, mais le décodage reçoit un contexte extrait complet via `MdCoreInstructionReplayInput` : instruction ciblée, account keys, logs, balance changes et contexte transactionnel minimal. Les repositories restent abstraits et ne créent encore ni pool PostgreSQL, ni migration SQL réelle. Validation locale effectuée : `cargo test -p kb_store_core` avec 28 tests passés et `cargo clippy --all-targets` sans avertissement. Les validations précédentes du jalon ont également confirmé `kb_store_pg` sans test actif, `kb_config` avec 35 tests passés et `kb_app_demo` avec 28 tests passés. ## 0.2.2 — infrastructure PostgreSQL minimale @@ -47,7 +47,7 @@ Validation du jalon raw store minimal : `kb_store_pg` crée et initialise les de ## 0.2.4 — core Solana normalisé minimal -Validation du jalon core store minimal : `kb_store_pg` crée et initialise maintenant les tables core `kb_sol_core_transactions`, `kb_sol_core_account_keys`, `kb_sol_core_instructions`, `kb_sol_core_inner_instructions`, `kb_sol_core_logs` et `kb_sol_core_balance_changes`, en complément du raw store `0.2.3`, sans schema PostgreSQL applicatif explicite. Les migrations et l'initializer utilisent des noms SQL préfixés et explicites pour les contraintes et index : `pk_`, `fk_`, `ck_`, `ux_` et `ix_`. L'initialisation raw/core est sérialisée par un verrou PostgreSQL `pg_advisory_xact_lock` afin d'éviter les courses concurrentes pendant les tests ou les démarrages parallèles. `CoreTransactionStore` dispose de l'implémentation PostgreSQL minimale pour insérer les transactions core, account keys, instructions, inner instructions, logs et deltas de balances, puis reconstruire `CoreInstructionReplayInput` pour les futurs décodeurs. Le script de maintenance `kb_store_pg/maintenance/drop_raw_core_store.sql` permet de réinitialiser explicitement les tables raw/core locales dans l'ordre inverse des dépendances. Validation locale effectuée : `KB_POSTGRES_TEST_URL=postgres://solana:solana@localhost:5432/solana cargo test -p kb_store_pg -- --nocapture` avec 30 tests passés, création vérifiée des 8 tables dans PostgreSQL, réinitialisation validée via le script de maintenance, puis `cargo clippy --all-targets` sans avertissement. Le worker d'extraction raw RPC vers core, les observations et le ledger ops sont conservés pour les jalons suivants. +Validation du jalon core store minimal : `kb_store_pg` crée et initialise maintenant les tables core `kb_sol_core_transactions`, `kb_sol_core_account_keys`, `kb_sol_core_instructions`, `kb_sol_core_inner_instructions`, `kb_sol_core_logs` et `kb_sol_core_balance_changes`, en complément du raw store `0.2.3`, sans schema PostgreSQL applicatif explicite. Les migrations et l'initializer utilisent des noms SQL préfixés et explicites pour les contraintes et index : `pk_`, `fk_`, `ck_`, `ux_` et `ix_`. L'initialisation raw/core est sérialisée par un verrou PostgreSQL `pg_advisory_xact_lock` afin d'éviter les courses concurrentes pendant les tests ou les démarrages parallèles. `CoreTransactionStore` dispose de l'implémentation PostgreSQL minimale pour insérer les transactions core, account keys, instructions, inner instructions, logs et deltas de balances, puis reconstruire `MdCoreInstructionReplayInput` pour les futurs décodeurs. Le script de maintenance `kb_store_pg/maintenance/drop_raw_core_store.sql` permet de réinitialiser explicitement les tables raw/core locales dans l'ordre inverse des dépendances. Validation locale effectuée : `KB_POSTGRES_TEST_URL=postgres://solana:solana@localhost:5432/solana cargo test -p kb_store_pg -- --nocapture` avec 30 tests passés, création vérifiée des 8 tables dans PostgreSQL, réinitialisation validée via le script de maintenance, puis `cargo clippy --all-targets` sans avertissement. Le worker d'extraction raw RPC vers core, les observations et le ledger ops sont conservés pour les jalons suivants. ## 0.2.5 — diagnostics SQL PostgreSQL dans `kb_app_demo` diff --git a/docs/legacy-khadhroony-bot2/ROADMAP.md b/docs/legacy-khadhroony-bot2/ROADMAP.md index f21cd46..a49aa0b 100644 --- a/docs/legacy-khadhroony-bot2/ROADMAP.md +++ b/docs/legacy-khadhroony-bot2/ROADMAP.md @@ -172,7 +172,7 @@ Ce fichier contient les changements futurs et le phasage prévu. Il ne remplace - [x] Ajouter les types communs : pagination, tri, limites, healthcheck, statut migration. - [x] Ajouter les premiers DTO génériques : raw RPC transaction, raw WS notification, core transaction, core instruction. - [x] Ajouter les contrats core pour account keys, logs et balance changes extraits. -- [x] Ajouter `CoreInstructionReplayInput` pour fournir aux décodeurs une instruction avec contexte extrait. +- [x] Ajouter `MdCoreInstructionReplayInput` pour fournir aux décodeurs une instruction avec contexte extrait. - [x] Ajouter les contrats de cycle de vie raw : état de rétention, état de traitement et mark lifecycle. - [x] Ajouter les contrats de replay par instruction : état instruction, filtre de replay et lifecycle mark. - [x] Ajouter les premiers traits repository sans implémentation SQL. @@ -229,7 +229,7 @@ Ce fichier contient les changements futurs et le phasage prévu. Il ne remplace ### 0.2.4 — core Solana normalisé minimal - [x] Créer les tables core minimales : `kb_sol_core_transactions`, `kb_sol_core_account_keys`, `kb_sol_core_instructions`, `kb_sol_core_inner_instructions`, `kb_sol_core_logs`, `kb_sol_core_balance_changes`. -- [x] Construire `CoreInstructionReplayInput` depuis les tables `core` pour les décodeurs. +- [x] Construire `MdCoreInstructionReplayInput` depuis les tables `core` pour les décodeurs. - [x] Marquer les instructions insérées comme `Pending` pour permettre un replay instruction-level. - [x] Préparer le replay partiel par état, slot et program id via `CoreInstructionReplayFilter`. - [x] Ajouter une initialisation idempotente raw/core via `PostgresStore::initialize_store_schema()`. @@ -460,7 +460,7 @@ Les contrôles autrefois prévus dans `0.3.5` sont reclassés ainsi : la stabili - [x] Auditer les crates utilisant `tracing.workspace = true` et couvrir les treize crates alors actives par un test de constante canonique et par les routes des trois profils. - [x] Ajouter le tracing propriétaire manquant sur les clients/pools HTTP et WebSocket ainsi que sur le backfill ; promouvoir les inputs decode unmatched, statuts failed/unsupported et échecs de matérialisation/persistance au niveau `error`. - [x] Formaliser dans `docs/SOLANA_INTERFACE_DEPENDENCIES.md` la politique d’interfaces officielles : dépendance seulement au point de consommation, priorité `wincode` puis Borsh, parser borné lorsque l’interface n’expose que `bincode`. -- [x] Passer `CoreInstructionReplayInput` au contrat `2` avec une liste stable et numériquement ordonnée des instructions outer, sans migration SQL, afin de résoudre les références inter-instructions des précompiles. +- [x] Passer `MdCoreInstructionReplayInput` au contrat `2` avec une liste stable et numériquement ordonnée des instructions outer, sans migration SQL, afin de résoudre les références inter-instructions des précompiles. - [x] Décoder `zk_elgamal_proof` dans `pre.015` selon `solana-zk-elgamal-proof-interface ^0.1` et le runtime Agave : treize discriminants, preuves inline ou référencées par compte, contexte optionnel et fermeture du contexte, sans recalcul cryptographique. - [x] Décoder dans `pre.016` l’ancien `zk_token_proof` comme compatibilité historique, puis retirer dans `pre.019` la dépendance dépréciée `solana-zk-token-sdk` au profit d’un miroir wire local borné des dix-sept discriminants et tailles auditées. - [x] Décoder les loaders `native_loader`, `bpf_loader_deprecated`, `bpf_loader`, `bpf_loader_upgradeable` et `loader_v4` ; classer l’invocation Native Loader opaque comme `ignored` sans sémantique inventée. @@ -532,14 +532,14 @@ Les contrôles autrefois prévus dans `0.3.5` sont reclassés ainsi : la stabili #### Suite d’orchestration -- [x] `pre.004` : ajouter dans `kb_rpc` les adaptateurs typés `getGenesisHash`, `getLatestBlockhash`, `getFeeForMessage` et `simulateTransaction`, avec routage par rôle, classification des clusters publics, diagnostics runtime et conversion vers `ExecutionSimulationResult`, sans signature ni envoi. +- [x] `pre.004` : ajouter dans `kb_rpc` les adaptateurs typés `getGenesisHash`, `getLatestBlockhash`, `getFeeForMessage` et `simulateTransaction`, avec routage par rôle, classification des clusters publics, diagnostics runtime et conversion vers `ExApiExecutionSimulationResult`, sans signature ni envoi. - [x] `pre.004` : documenter dans `kb_executor_solana_core/README.md` chaque fonction publique, les six opérations constructibles, leurs paramètres, résultats, effets et frontières. - [x] Valider localement `pre.004` : `kb_rpc` 63 tests, `kb_execution_api` 21 tests, `kb_execution_safety` 13 tests, `kb_executor_solana_core` 10 tests, `kb_config` 40 tests et Clippy global propre. - [x] `pre.005` : ajouter `kb_execution_solana` pour assembler les instructions planifiées en transaction legacy, produire les payloads base64 de frais/simulation, lier la simulation au hash exact du message, résoudre exactement les signataires requis via l’interface Solana `Signer` et signer séparément hors Tauri. - [x] `pre.005` : renommer la constante interne en `MAINNET_GENESIS_HASH` sans changer sa valeur ; conserver `mainnet-beta` seulement comme alias historique des endpoints/CLI et renommer le variant public en `Mainnet` sérialisé `mainnet`. - [x] `pre.005` : distinguer la simulation exacte de la simulation avec remplacement de blockhash et interdire qu’un résultat `replaceRecentBlockhash=true` autorise la signature du message original. - [x] Valider localement les tests ciblés de `pre.005`/`pre.006` : `kb_execution_solana` 7 tests, `kb_execution_api` 22 tests, `kb_execution_safety` 15 tests, `kb_rpc` 63 tests, `kb_executor_solana_core` 10 tests, `kb_wallet` 6 tests et `kb_config` 40 tests. -- [x] `pre.006` : corriger la compilation croisée de `pre.005`, supprimer l’avertissement TS-rs sur l’alias historique `mainnet_beta`, utiliser le trait public `TypedInstructionExecutor` dans les tests d’assemblage, resynchroniser le contrat de simulation RPC et rendre les erreurs de routage tracing explicites. +- [x] `pre.006` : corriger la compilation croisée de `pre.005`, supprimer l’avertissement TS-rs sur l’alias historique `mainnet_beta`, utiliser le trait public `ExApiTypedInstructionExecutor` dans les tests d’assemblage, resynchroniser le contrat de simulation RPC et rendre les erreurs de routage tracing explicites. - [x] `pre.007` : supprimer le dernier opérateur `?` introduit dans un chemin de production de `kb_execution_api`, le remplacer par un `match` avec propagation explicite et auditer les fichiers d’exécution `0.4.2` contre `?`, `unwrap` et `expect` de production. - [x] Valider localement `pre.007` : `kb_execution_api` 22 tests et Clippy global propre. - [x] `pre.008` : ajouter les contrats RPC typés `getBalance`, `requestAirdrop`, `sendTransaction`, `getSignatureStatuses` et `getBlockHeight`, avec routage par rôle, préflight obligatoire, contrôle de la signature retournée et confirmation bornée jusqu’à succès, échec, expiration ou timeout. @@ -603,7 +603,7 @@ Les contrôles autrefois prévus dans `0.3.5` sont reclassés ainsi : la stabili - [x] Valider localement `pre.019` : `kb_executor_solana_core` 70 tests, `kb_execution_api` 22, `kb_execution_safety` 15, `kb_execution_solana` 12, `kb_rpc` 70 et Clippy global propre. - [x] `pre.020` : onze opérations Loader v3 et neuf opérations Loader v4 réellement constructibles, avec déploiement/upgrade/autorités/fermeture hors UI; BPF Loader v1/v2 restent historiques `decode-only` et Native Loader est classé sans instruction client. - [x] Valider localement `pre.020` : `kb_executor_solana_core` 81 tests, `kb_decoder_solana_core` 115, `kb_execution_api` 22, `kb_execution_safety` 15, `kb_execution_solana` 12 et `kb_rpc` 70. -- [x] `pre.021` : centraliser dans un module privé les parsers `Pubkey`/program ID et les validations communes de longueur, montant positif, comptes distincts, dérivation seedée et erreurs partagées ; supprimer les implémentations de production identiques sans modifier les 109 opérations ni leur wire. +- [x] `pre.021` : centraliser dans un module privé les parsers `MdPubkey`/program ID et les validations communes de longueur, montant positif, comptes distincts, dérivation seedée et erreurs partagées ; supprimer les implémentations de production identiques sans modifier les 109 opérations ni leur wire. - [x] Valider localement `pre.021` après `fix.001` : `kb_executor_solana_core` 86 tests et `cargo clippy --all-targets` propre ; ce Clippy couvre également les changements Loader de `pre.020`. - [x] `pre.022` : implémenter le préflight stateful Localnet/Devnet pour ALT, Config, Feature, Slashing et contextes ZK ElGamal ; ajouter `getEpochInfo` typé et la matrice machine-readable complète des 18 surfaces natives avec classification de toute opération non invocable. - [x] Valider localement `pre.022` : `kb_executor_solana_core` 87 tests, `kb_pipeline` 56 tests, `kb_rpc` 71 tests, `kb_execution_api` 22 tests, `kb_execution_safety` 15 tests, `kb_execution_solana` 12 tests, validateur de matrice réussi et `cargo clippy --all-targets` propre. diff --git a/docs/legacy-khadhroony-bot2/RULES.md b/docs/legacy-khadhroony-bot2/RULES.md index e0aeec2..245e53a 100644 --- a/docs/legacy-khadhroony-bot2/RULES.md +++ b/docs/legacy-khadhroony-bot2/RULES.md @@ -138,7 +138,7 @@ Aucun renommage massif de crates n'est autorisé sans étape de contrôle dédi - Une crate est opérationnelle lorsqu’elle effectue des I/O, orchestre un pipeline, décode, matérialise, exécute, applique une politique runtime ou prend une décision mutable observable. - Toute crate opérationnelle ajoutée ou modifiée doit dépendre de `tracing` depuis le workspace et déclarer exactement un `pub(crate) const TRACING_TARGET` dans `src/constants.rs`. -- La valeur canonique de `TRACING_TARGET` est le nom exact du package Cargo. Les targets historiques `khbot.*`, les suffixes de module et les targets de fenêtre sont interdits dans les nouvelles modifications. +- La valeur canonique de `DC_METADATA_MTM_TRACING_TARGET` est le nom exact du package Cargo. Les targets historiques `khbot.*`, les suffixes de module et les targets de fenêtre sont interdits dans les nouvelles modifications. - Les macros `tracing` doivent utiliser `target: crate::TRACING_TARGET` et des champs structurés stables. La granularité interne passe par `action`, `stage`, `window`, `campaign_id`, `signature`, `instruction_path`, `program_id`, `processor_name`, `processor_version`, `status` et `error_code`. - Les crates passives de types, contrats, DTO, API sans exécution, registres ou constantes restent sans dépendance `tracing`. `kb_config` reste une exception de bootstrap tant que sa validation précède l’installation du subscriber. - Il est interdit d’ajouter `tracing` sans événement réel ou de conserver un faux target uniquement consommé par `let _target`. @@ -150,14 +150,14 @@ Aucun renommage massif de crates n'est autorisé sans étape de contrôle dédi - Chaque profil doit router les événements vers les sorties globales `debug.log`, `info.log`, `error.jsonl` et `app.log`, puis vers `debug.log`, `info.log` et `error.jsonl` dans un répertoire propre à chaque crate utilisant `tracing`. - L’ajout ou la suppression de `tracing.workspace = true` dans une crate impose la mise à jour simultanée de la matrice de routes, de ses tests et de `docs/TRACING_CONTRACT.md`. - Le contrat détaillé est défini dans `docs/TRACING_CONTRACT.md`. -- L’audit mécanique spécifique au projet est exécuté par `python3 scripts/audit_khadhroony_workspace_rules.py`. Il couvre notamment `TRACING_TARGET` et l’usage obligatoire de `solana_pubkey::Pubkey` à la place de `solana_address::Address`. +- L’audit mécanique spécifique au projet est exécuté par `python3 scripts/audit_khadhroony_workspace_rules.py`. Il couvre notamment `DC_METADATA_MTM_TRACING_TARGET` et l’usage obligatoire de `solana_pubkey::Pubkey` à la place de `solana_address::Address`. ## Règles de réutilisation des interfaces Solana et SPL - Les dépendances déclarées dans `[workspace.dependencies]` forment un catalogue de versions et de features autorisées ; elles ne doivent être ajoutées à une crate consommatrice que lorsqu’un type, un encodeur, un décodeur ou un identifiant officiel est réellement utilisé. - Dans un `Cargo.toml`, placer dans `[dependencies]` toute crate référencée par le code de bibliothèque compilé en production. Réserver `[dev-dependencies]` aux références contenues exclusivement dans `#[cfg(test)]`, les tests d’intégration, benches ou exemples. Une dépendance de test vers un décodeur ou matérialiseur concret est légitime lorsqu’elle sert uniquement à éprouver une orchestration générique fondée sur les traits API ; elle ne prouve pas qu’une capacité de production manque. Toute promotion de `dev-dependencies` vers `dependencies` doit être motivée par un appel runtime réel, et toute dépendance runtime inutilisée doit être supprimée. -- Les registres de composition runtime des applications doivent énumérer explicitement chaque décodeur et matérialiseur concret activé. Toute nouvelle surface instructionnelle dotée d’un `EventMaterializer` doit être ajoutée au registre applicatif et couverte par un test d’inventaire ordonné ; une crate présente dans le workspace ou dans `kb_pipeline` n’est pas activée automatiquement. Les matérialiseurs exclusivement stateful qui n’implémentent pas `EventMaterializer` restent routés par leurs APIs de snapshots dédiées. +- Les registres de composition runtime des applications doivent énumérer explicitement chaque décodeur et matérialiseur concret activé. Toute nouvelle surface instructionnelle dotée d’un `MtApiEventMaterializer` doit être ajoutée au registre applicatif et couverte par un test d’inventaire ordonné ; une crate présente dans le workspace ou dans `kb_pipeline` n’est pas activée automatiquement. Les matérialiseurs exclusivement stateful qui n’implémentent pas `MtApiEventMaterializer` restent routés par leurs APIs de snapshots dédiées. - Les corrélations instruction/état doivent produire une issue explicite (`confirmed`, `contradicted` ou `not_applicable`) et ne doivent jamais transformer automatiquement une configuration observée en violation, score ou conclusion métier. - Une interface officielle Solana ou SPL étroite doit être préférée à `solana-sdk` lorsque son contrat suffit. - L’ordre de préférence des formats est : schéma officiel `wincode`, schéma officiel Borsh, puis parseur local borné reproduisant exactement le runtime lorsque l’interface officielle n’expose que `bincode`. diff --git a/kb-core/src/lib.rs b/kb-core/src/lib.rs index 84fddc9..6c42af2 100644 --- a/kb-core/src/lib.rs +++ b/kb-core/src/lib.rs @@ -10,12 +10,12 @@ mod error; mod module; /// Workspace-wide explicit error type. -pub use crate::error::Error; +pub use self::error::Error; /// Workspace-wide result alias. -pub use crate::error::Result; +pub use self::error::Result; /// Processing module category. -pub use crate::module::ModuleKind; +pub use self::module::ModuleKind; /// Stable module name. -pub use crate::module::ModuleName; +pub use self::module::ModuleName; /// Stable semantic module version. -pub use crate::module::ModuleVersion; +pub use self::module::ModuleVersion; diff --git a/kb-lib/README.md b/kb-lib/README.md index c34730b..57b1064 100644 --- a/kb-lib/README.md +++ b/kb-lib/README.md @@ -7,7 +7,7 @@ ## Décodeur Solana Core -`SolanaCoreDecoder` est le premier décodeur concret porté depuis bot2. Il implémente `InstructionDecoder` et `ProtocolDecoder` sans dépendre de PostgreSQL, du RPC, de Tauri ou du wallet. +`DcSolanaCoreDecoder` est le premier décodeur concret porté depuis bot2. Il implémente `DcApiInstructionDecoder` et `DcApiProtocolDecoder` sans dépendre de PostgreSQL, du RPC, de Tauri ou du wallet. Il couvre les 18 surfaces natives suivantes : @@ -25,13 +25,13 @@ La matrice `docs/NATIVE_SOLANA_DECODER_MATRIX.json` reste la source machine-read ## Décodeur SPL Memo -`SplMemoDecoder` couvre exactement les générations v1, v3 et v4. Le payload est lu comme un message brut sans discriminator, borné à 4 096 octets, puis projeté avec son texte UTF-8 complet, sa longueur, son SHA-256, les comptes ordonnés et le statut de commit. +`DcSplMemoDecoder` couvre exactement les générations v1, v3 et v4. Le payload est lu comme un message brut sans discriminator, borné à 4 096 octets, puis projeté avec son texte UTF-8 complet, sa longueur, son SHA-256, les comptes ordonnés et le statut de commit. Memo v1 ignore les comptes lors de la validation runtime. Memo v3 et v4 exigent que chaque compte fourni soit signer. Les transactions échouées restent des intentions non commitées et les payloads UTF-8 invalides ou signatures manquantes deviennent des tentatives invalides explicites. La matrice normative est `docs/SPL_MEMO_MATRIX.json`. ## Décodeur SPL Token classique -`SplTokenDecoder` couvre exclusivement le Program ID classique +`DcSplTokenDecoder` couvre exclusivement le Program ID classique `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`. Il publie 28 déclarations de couverture pour les tags `0..24`, `38`, `45` et `255`, y compris les variantes historiques, checked, `WithdrawExcessLamports`, `UnwrapLamports` et `Batch`. @@ -45,7 +45,7 @@ normative est `docs/SPL_TOKEN_MATRIX.json`. ## Décodeur SPL Associated Token Account -`SplAssociatedTokenAccountDecoder` couvre exclusivement +`DcSplAssociatedTokenAccountDecoder` couvre exclusivement `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL`. Il reconnaît les trois variantes publiées `Create`, `CreateIdempotent` et `RecoverNested`, ainsi que l’encodage historique vide de `Create`. @@ -58,7 +58,7 @@ Program ID sans reconstruire leur état ni interpréter leurs extensions. La mat ## Décodeur SPL Token‑2022 -`SplToken2022Decoder` couvre exclusivement +`DcSplToken2022Decoder` couvre exclusivement `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb`. Il conserve les 48 enveloppes de premier niveau, les sous-instructions d’extensions dont le wire est officiellement identifiable, les interfaces Token Metadata et Token Group exécutées directement par Token‑2022, ainsi que `Batch` sans batch @@ -67,22 +67,22 @@ imbriqué. Le décodeur borne les payloads, les chaînes de metadata, le nombre d’enfants et les comptes cumulés. Les comptes, autorités, offsets de preuve, suffixes et chemins outer/inner restent ordonnés et exacts. Une transaction échouée produit une intention non commitée. Le parseur public -`parse_token_2022_state()` distingue Mint, Account et Multisig, conserve la base exacte et expose +`decoder_spl_token2022_parse_token2022_state()` distingue Mint, Account et Multisig, conserve la base exacte et expose les entrées TLV ordonnées sans inventer l’état d’un programme externe pointé. La matrice normative est `docs/SPL_TOKEN_2022_MATRIX.json`. ## Décodeur du registre ElGamal -`SplElgamalRegistryDecoder` couvre le programme indépendant +`DcSplElgamalRegistryDecoder` couvre le programme indépendant `regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg`. Il décode exactement `CreateRegistry` et `UpdateRegistry`, conserve l’offset relatif de preuve et ne prétend jamais vérifier la preuve ZK. -`parse_elgamal_registry_state()` exige exactement 64 octets et restitue le wallet propriétaire, la +`decoder_spl_elgamal_registry_parse_elgamal_registry_state()` exige exactement 64 octets et restitue le wallet propriétaire, la clé publique ElGamal et le wire complet. La matrice normative est `docs/SPL_ELGAMAL_REGISTRY_MATRIX.json`. ## Décodeur Metaplex Token Metadata -`MetadataMetaplexTokenMetadataDecoder` couvre exclusivement +`DcMetadataMetaplexTokenMetadataDecoder` couvre exclusivement `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`. Il inventorie exactement les 58 discriminateurs `0..=57`, conserve les arguments Borsh, les comptes positionnels, les placeholders optionnels, les chemins outer/CPI et les transactions échouées @@ -100,22 +100,22 @@ politique d’exécution définitivement interdite. La matrice normative est ## API publique utile -- `EventMaterializer`, `MaterializerIdentity`, `MaterializationTransactionPolicy`, `MaterializerExecutionResult` et `MaterializedOutput` : contrat complet utilisable par un matérialiseur interne ou externe ; -- `LifecycleMaterializer`, `AdminMaterializer`, `ComplianceAuditMaterializer` et `StakingMaterializer` : matérialisateurs Solana natifs concrets ; -- `materialize_token_2022_admin_state_snapshots()` et `materialize_elgamal_registry_state_snapshot()` : projections stateful d’administration déjà exposées ; -- `SolanaCoreDecoder` : décodeur concret natif ; -- `SplMemoDecoder` : décodeur exact des trois générations SPL Memo ; -- `SplTokenDecoder` : décodeur exact du programme SPL Token classique ; -- `SplAssociatedTokenAccountDecoder` : décodeur exact du programme Associated Token Account ; -- `SplToken2022Decoder` : décodeur exact des instructions Token‑2022 ; -- `Token2022State`, `Token2022StateKind`, `Token2022TlvEntry` et `parse_token_2022_state()` : API publique de lecture d’état Token‑2022 ; -- `SplElgamalRegistryDecoder`, `ElGamalRegistryState` et `parse_elgamal_registry_state()` : API publique du registre ElGamal ; -- `MetadataMetaplexTokenMetadataDecoder` : décodeur exact du programme Metaplex Token Metadata ; +- `MtApiEventMaterializer`, `MtApiMaterializerIdentity`, `MtApiMaterializationTransactionPolicy`, `MtApiMaterializerExecutionResult` et `MtApiMaterializedOutput` : contrat complet utilisable par un matérialiseur interne ou externe ; +- `MtLifecycleMaterializer`, `MtAdminMaterializer`, `MtComplianceAuditMaterializer` et `MtStakingMaterializer` : matérialisateurs Solana natifs concrets ; +- `materialize_token2022_admin_state_snapshots()` et `materialize_elgamal_registry_state_snapshot()` : projections stateful d’administration déjà exposées ; +- `DcSolanaCoreDecoder` : décodeur concret natif ; +- `DcSplMemoDecoder` : décodeur exact des trois générations SPL Memo ; +- `DcSplTokenDecoder` : décodeur exact du programme SPL Token classique ; +- `DcSplAssociatedTokenAccountDecoder` : décodeur exact du programme Associated Token Account ; +- `DcSplToken2022Decoder` : décodeur exact des instructions Token‑2022 ; +- `DcToken2022State`, `DcToken2022StateKind`, `DcToken2022TlvEntry` et `decoder_spl_token2022_token2022_state()` : API publique de lecture d’état Token‑2022 ; +- `DcSplElgamalRegistryDecoder`, `DcSplElGamalRegistryState` et `decoder_spl_elgamal_registry_parse_elgamal_registry_state()` : API publique du registre ElGamal ; +- `DcMetadataMetaplexTokenMetadataDecoder` : décodeur exact du programme Metaplex Token Metadata ; - `kb_lib::decoder::metadata::metaplex_token_metadata` : parseurs et snapshots publics des comptes Metaplex ; -- `InstructionDecoder` : contrat de reconnaissance, couverture et décodage contextualisé ; -- `ProtocolDecoder` : contrat de compatibilité avec les observations historiques ; -- `CoreInstructionReplayInput` : input source-neutral produit par l’extraction core ; -- `DecoderExecutionResult`, `DecoderRecognition` et `DecoderCoverageDeclaration` : résultats typés du pipeline ; +- `DcApiInstructionDecoder` : contrat de reconnaissance, couverture et décodage contextualisé ; +- `DcApiProtocolDecoder` : contrat de compatibilité avec les observations historiques ; +- `MdCoreInstructionReplayInput` : input source-neutral produit par l’extraction core ; +- `DcApiDecoderExecutionResult`, `DcApiDecoderRecognition` et `DcApiDecoderCoverageDeclaration` : résultats typés du pipeline ; - modèles canoniques et nomenclature réexportés depuis la façade. Les helpers, constantes wire et types intermédiaires de chaque composant restent internes. Leurs noms sont préfixés au niveau de la façade interne afin d’éviter les collisions lors de la fusion des anciens crates. diff --git a/kb-lib/src/decoder.rs b/kb-lib/src/decoder.rs index f1d889a..cede0e6 100644 --- a/kb-lib/src/decoder.rs +++ b/kb-lib/src/decoder.rs @@ -3,164 +3,498 @@ //! Consolidated decoder modules. -pub mod adapter; -pub mod admin; -pub mod amm; -pub mod anchor; -pub mod api; -pub mod bridge; -pub mod clmm; -pub mod cpmm; -pub mod dlmm; -pub mod fees; -pub mod governance; -pub mod launchpad; -pub mod lending; -pub mod lock; -pub mod metadata; -pub mod nft; -pub mod orderbook; -pub mod perpetuals; -pub mod router; -pub mod rwa; -pub mod solana; -pub mod spl; -pub mod stable; -pub mod staking; -pub mod treasury; -pub mod vault; -pub mod vesting; -pub mod wallet; -pub mod weighted; +mod adapter; +mod admin; +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 treasury; +mod vault; +mod vesting; +mod wallet; +mod weighted; -/// One parsed SPL ElGamal registry instruction. -pub(crate) use self::spl::ParsedRegistryInstruction; +/// 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; +/// Tracing target for this decoder. +/// Maximum retained instruction payload size. +pub(crate) use self::metadata::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES; +/// 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; +/// Canonical tracing target for this crate. +pub(crate) use self::metadata::DC_METADATA_MTM_TRACING_TARGET; +/// 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; +/// Crate-root access to `decode` from `instruction`. +pub(crate) use self::metadata::decoder_metadata_metaplex_token_metadata_decode; +/// 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; +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_TRACING_TARGET; +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; +pub(crate) use self::solana::DcSolanaCoreResolvedInstructionPayload; +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::SPL_ASSOCIATED_TOKEN_ACCOUNT_EVENT_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::SPL_ASSOCIATED_TOKEN_ACCOUNT_INSTRUCTION_ENTRIES; +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::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNT_KEY_BYTES; +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::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNTS; +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::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_DIAGNOSTICS; +pub(crate) use self::spl::DC_SPL_ATA_MAX_DIAGNOSTICS; /// Maximum retained Associated Token Account instruction payload size. -pub(crate) use self::spl::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_INSTRUCTION_BYTES; +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::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_TRANSACTION_KEYS; +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::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE; +pub(crate) use self::spl::DC_SPL_ATA_SURFACE_CODE; /// Canonical tracing target for the Associated Token Account decoder. -pub(crate) use self::spl::SPL_ASSOCIATED_TOKEN_ACCOUNT_TRACING_TARGET; +pub(crate) use self::spl::DC_SPL_ATA_TRACING_TARGET; /// Current stable SPL ElGamal registry event contract version. -pub(crate) use self::spl::SPL_ELGAMAL_REGISTRY_EVENT_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::SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES; +pub(crate) use self::spl::DC_SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES; /// Stable SPL ElGamal registry surface code. -pub(crate) use self::spl::SPL_ELGAMAL_REGISTRY_SURFACE_CODE; +pub(crate) use self::spl::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE; /// Canonical tracing target for the SPL ElGamal registry decoder. -pub(crate) use self::spl::SPL_ELGAMAL_REGISTRY_TRACING_TARGET; +pub(crate) use self::spl::DC_SPL_ELGAMAL_REGISTRY_TRACING_TARGET; /// Maximum payload prefix retained for bounded diagnostics. -pub(crate) use self::spl::SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; +pub(crate) use self::spl::DC_SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; /// Current stable Memo decoded event contract version. -pub(crate) use self::spl::SPL_MEMO_EVENT_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::SPL_MEMO_MAX_PAYLOAD_BYTES; +pub(crate) use self::spl::DC_SPL_MEMO_MAX_PAYLOAD_BYTES; /// Stable protocol code shared by Memo generations. -pub(crate) use self::spl::SPL_MEMO_PROTOCOL_CODE; +pub(crate) use self::spl::DC_SPL_MEMO_PROTOCOL_CODE; /// Canonical tracing target for the SPL Memo decoder. -pub(crate) use self::spl::SPL_MEMO_TRACING_TARGET; +pub(crate) use self::spl::DC_SPL_MEMO_TRACING_TARGET; /// Stable Memo v1 surface code. -pub(crate) use self::spl::SPL_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::SPL_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::SPL_MEMO_V4_SURFACE_CODE; -/// Maximum prefix retained in bounded Token-2022 diagnostics. -pub(crate) use self::spl::SPL_TOKEN_2022_DIAGNOSTIC_PREFIX_BYTES; -/// Current stable Token-2022 decoded event contract version. -pub(crate) use self::spl::SPL_TOKEN_2022_EVENT_VERSION; -/// Exact top-level instruction inventory published by the resolved Token-2022 interface. -pub(crate) use self::spl::SPL_TOKEN_2022_INSTRUCTION_ENTRIES; -/// Maximum total account metas consumed by one Token-2022 batch. -pub(crate) use self::spl::SPL_TOKEN_2022_MAX_BATCH_ACCOUNTS; -/// Maximum decoded sub-instructions in one Token-2022 batch. -pub(crate) use self::spl::SPL_TOKEN_2022_MAX_BATCH_INSTRUCTIONS; -/// Maximum retained Token-2022 instruction payload size. -pub(crate) use self::spl::SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES; -/// Maximum retained UTF-8 string size for embedded Token Metadata instructions. -pub(crate) use self::spl::SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES; -/// Stable Token-2022 surface code. -pub(crate) use self::spl::SPL_TOKEN_2022_SURFACE_CODE; -/// Canonical tracing target for the Token-2022 decoder. -pub(crate) use self::spl::SPL_TOKEN_2022_TRACING_TARGET; +pub(crate) use self::spl::DC_SPL_MEMO_V4_SURFACE_CODE; /// Maximum prefix retained in bounded classic SPL Token diagnostics. -pub(crate) use self::spl::SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES; +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::SPL_TOKEN_EVENT_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::SPL_TOKEN_INSTRUCTION_ENTRIES; +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::SPL_TOKEN_MAX_BATCH_ACCOUNTS; +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::SPL_TOKEN_MAX_BATCH_INSTRUCTIONS; +pub(crate) use self::spl::DC_SPL_TOKEN_MAX_BATCH_INSTRUCTIONS; /// Maximum retained classic SPL Token instruction payload size. -pub(crate) use self::spl::SPL_TOKEN_MAX_INSTRUCTION_BYTES; +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::SPL_TOKEN_SURFACE_CODE; +pub(crate) use self::spl::DC_SPL_TOKEN_SURFACE_CODE; /// Canonical tracing target for the classic SPL Token decoder. -pub(crate) use self::spl::SPL_TOKEN_TRACING_TARGET; +pub(crate) use self::spl::DC_SPL_TOKEN_TRACING_TARGET; +/// Maximum prefix retained in bounded Token-2022 diagnostics. +pub(crate) use self::spl::DC_SPL_TOKEN2022_DIAGNOSTIC_PREFIX_BYTES; +/// Current stable Token-2022 decoded event contract version. +pub(crate) use self::spl::DC_SPL_TOKEN2022_EVENT_VERSION; +/// Exact top-level instruction inventory published by the resolved Token-2022 interface. +pub(crate) use self::spl::DC_SPL_TOKEN2022_INSTRUCTION_ENTRIES; +/// Maximum total account metas consumed by one Token-2022 batch. +pub(crate) use self::spl::DC_SPL_TOKEN2022_MAX_BATCH_ACCOUNTS; +/// Maximum decoded sub-instructions in one Token-2022 batch. +pub(crate) use self::spl::DC_SPL_TOKEN2022_MAX_BATCH_INSTRUCTIONS; +/// Maximum retained Token-2022 instruction payload size. +pub(crate) use self::spl::DC_SPL_TOKEN2022_MAX_INSTRUCTION_BYTES; +/// Maximum retained UTF-8 string size for embedded Token Metadata instructions. +pub(crate) use self::spl::DC_SPL_TOKEN2022_MAX_METADATA_STRING_BYTES; +/// Stable Token-2022 surface code. +pub(crate) use self::spl::DC_SPL_TOKEN2022_SURFACE_CODE; +/// Canonical tracing target for the Token-2022 decoder. +pub(crate) use self::spl::DC_SPL_TOKEN2022_TRACING_TARGET; +/// One parsed SPL ElGamal registry instruction. +pub(crate) use self::spl::DcSplElGamalRegistryParsedRegistryInstruction; /// Decodes one bounded Associated Token Account instruction. -pub(crate) use self::spl::spl_associated_token_account_decode; +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::spl_associated_token_account_entry; +pub(crate) use self::spl::decoder_spl_associated_token_account_entry; /// Reads one bounded Associated Token Account payload. -pub(crate) use self::spl::spl_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::spl_elgamal_registry_decode; +pub(crate) use self::spl::decoder_spl_elgamal_registry_decode; /// Decodes one bounded SPL ElGamal registry instruction payload. -pub(crate) use self::spl::spl_elgamal_registry_decode_payload; +pub(crate) use self::spl::decoder_spl_elgamal_registry_decode_payload; /// Parses one exact SPL ElGamal registry instruction. -pub(crate) use self::spl::spl_elgamal_registry_parse; +pub(crate) use self::spl::decoder_spl_elgamal_registry_parse; /// Decodes one bounded SPL Memo instruction. -pub(crate) use self::spl::spl_memo_decode; -/// Decodes one bounded Token-2022 instruction. -pub(crate) use self::spl::spl_token_2022_decode; -/// Returns the exact entry matching one Token-2022 tag. -pub(crate) use self::spl::spl_token_2022_entry_for_tag; -/// Returns the first byte of one retained Token-2022 payload. -pub(crate) use self::spl::spl_token_2022_payload_tag; +pub(crate) use self::spl::decoder_spl_memo_decode; /// Decodes one bounded classic SPL Token instruction. -pub(crate) use self::spl::spl_token_decode; +pub(crate) use self::spl::decoder_spl_token_decode; /// Returns the published entry matching one classic SPL Token tag. -pub(crate) use self::spl::spl_token_entry_for_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::spl_token_payload_tag; +pub(crate) use self::spl::decoder_spl_token_payload_tag; +/// Decodes one bounded Token-2022 instruction. +pub(crate) use self::spl::decoder_spl_token2022_decode; +/// Returns the exact entry matching one Token-2022 tag. +pub(crate) use self::spl::decoder_spl_token2022_entry_for_tag; +/// Returns the first byte of one retained Token-2022 payload. +pub(crate) use self::spl::decoder_spl_token2022_payload_tag; +/// 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_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; +/// Exhaustive published Metaplex account-key inventory. +pub use self::metadata::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT; /// Exact decoder for the Metaplex Token Metadata program. -pub use self::metadata::MetadataMetaplexTokenMetadataDecoder; +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; +/// 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; +/// Runtime-native Solana decoder with phased maximal native coverage. +pub use self::solana::DcSolanaCoreDecoder; /// Exact byte length of one SPL ElGamal registry account. -pub use self::spl::ELGAMAL_REGISTRY_ACCOUNT_LEN; -/// Parsed SPL ElGamal public-key registry account. -pub use self::spl::ElGamalRegistryState; +pub use self::spl::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; /// Exact decoder for the SPL Associated Token Account program. -pub use self::spl::SplAssociatedTokenAccountDecoder; +pub use self::spl::DcSplAssociatedTokenAccountDecoder; +/// Parsed SPL ElGamal public-key registry account. +pub use self::spl::DcSplElGamalRegistryState; /// Exact decoder for the SPL ElGamal registry program. -pub use self::spl::SplElgamalRegistryDecoder; +pub use self::spl::DcSplElgamalRegistryDecoder; /// Exact decoder for the three registered SPL Memo generations. -pub use self::spl::SplMemoDecoder; +pub use self::spl::DcSplMemoDecoder; /// Exact decoder for the Token-2022 program. -pub use self::spl::SplToken2022Decoder; +pub use self::spl::DcSplToken2022Decoder; /// Exact decoder for the classic SPL Token program. -pub use self::spl::SplTokenDecoder; +pub use self::spl::DcSplTokenDecoder; /// Parsed Token-2022 Mint, Account, or Multisig state. -pub use self::spl::Token2022State; +pub use self::spl::DcToken2022State; /// Exact Token-2022 base account state kind. -pub use self::spl::Token2022StateKind; +pub use self::spl::DcToken2022StateKind; /// One exact Token-2022 TLV entry. -pub use self::spl::Token2022TlvEntry; +pub use self::spl::DcToken2022TlvEntry; /// Parses one exact SPL ElGamal registry account. -pub use self::spl::parse_elgamal_registry_state; +pub use self::spl::decoder_spl_elgamal_registry_parse_elgamal_registry_state; /// Parses one Token-2022 Mint, Account, or Multisig state. -pub use self::spl::parse_token_2022_state; +pub use self::spl::decoder_spl_token2022_parse_token2022_state; diff --git a/kb-lib/src/decoder/adapter.rs b/kb-lib/src/decoder/adapter.rs index ca70eed..f6d1336 100644 --- a/kb-lib/src/decoder/adapter.rs +++ b/kb-lib/src/decoder/adapter.rs @@ -3,4 +3,4 @@ //! `adapter` decoder family. -pub mod saber_decimal_wrapper; +mod saber_decimal_wrapper; diff --git a/kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs b/kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs index 00d06f4..348f001 100644 --- a/kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs +++ b/kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_adapter_saber_decimal_wrapper`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_adapter_saber_decimal_wrapper"; +const LEGACY_CRATE: &str = "kb_decoder_adapter_saber_decimal_wrapper"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/admin.rs b/kb-lib/src/decoder/admin.rs index 9ccca03..671be3c 100644 --- a/kb-lib/src/decoder/admin.rs +++ b/kb-lib/src/decoder/admin.rs @@ -3,5 +3,5 @@ //! `admin` decoder family. -pub mod jupiter_lock; -pub mod pump_fees; +mod jupiter_lock; +mod pump_fees; diff --git a/kb-lib/src/decoder/admin/jupiter_lock.rs b/kb-lib/src/decoder/admin/jupiter_lock.rs index 8895fbf..1364b72 100644 --- a/kb-lib/src/decoder/admin/jupiter_lock.rs +++ b/kb-lib/src/decoder/admin/jupiter_lock.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_admin_jupiter_lock`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_admin_jupiter_lock"; +const LEGACY_CRATE: &str = "kb_decoder_admin_jupiter_lock"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/admin/pump_fees.rs b/kb-lib/src/decoder/admin/pump_fees.rs index da344e1..c94c4cb 100644 --- a/kb-lib/src/decoder/admin/pump_fees.rs +++ b/kb-lib/src/decoder/admin/pump_fees.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_admin_pump_fees`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_admin_pump_fees"; +const LEGACY_CRATE: &str = "kb_decoder_admin_pump_fees"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm.rs b/kb-lib/src/decoder/amm.rs index 74d2d79..9560350 100644 --- a/kb-lib/src/decoder/amm.rs +++ b/kb-lib/src/decoder/amm.rs @@ -3,29 +3,29 @@ //! `amm` decoder family. -pub mod aldrin_v1; -pub mod aldrin_v2; -pub mod alphaq; -pub mod believe; -pub mod bonk_swap; -pub mod fluxbeam; -pub mod goon_fi; -pub mod goosefx_gamma; -pub mod goosefx_v2; -pub mod guac_swap; -pub mod lifinity_swap_v2; -pub mod metadao_futarchy_amm; -pub mod metadao_v0_5; -pub mod meteora_damm_v1; -pub mod meteora_damm_v2; -pub mod obric_v2; -pub mod one_dex; -pub mod pump_swap; -pub mod raydium_lp_v4; -pub mod solfi; -pub mod solfi_v2; -pub mod vertigo; -pub mod virtuals; -pub mod woofi; -pub mod zero_fi; -pub mod zora; +mod aldrin_v1; +mod aldrin_v2; +mod alphaq; +mod believe; +mod bonk_swap; +mod fluxbeam; +mod goon_fi; +mod goosefx_gamma; +mod goosefx_v2; +mod guac_swap; +mod lifinity_swap_v2; +mod metadao_futarchy_amm; +mod metadao_v0_5; +mod meteora_damm_v1; +mod meteora_damm_v2; +mod obric_v2; +mod one_dex; +mod pump_swap; +mod raydium_lp_v4; +mod solfi; +mod solfi_v2; +mod vertigo; +mod virtuals; +mod woofi; +mod zero_fi; +mod zora; diff --git a/kb-lib/src/decoder/amm/aldrin_v1.rs b/kb-lib/src/decoder/amm/aldrin_v1.rs index 35b6c97..c59f5da 100644 --- a/kb-lib/src/decoder/amm/aldrin_v1.rs +++ b/kb-lib/src/decoder/amm/aldrin_v1.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_aldrin_v1`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v1"; +const LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v1"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/aldrin_v2.rs b/kb-lib/src/decoder/amm/aldrin_v2.rs index da05b00..c9f848b 100644 --- a/kb-lib/src/decoder/amm/aldrin_v2.rs +++ b/kb-lib/src/decoder/amm/aldrin_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_aldrin_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v2"; +const LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/alphaq.rs b/kb-lib/src/decoder/amm/alphaq.rs index 3be8b6f..6dda808 100644 --- a/kb-lib/src/decoder/amm/alphaq.rs +++ b/kb-lib/src/decoder/amm/alphaq.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_alphaq`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_alphaq"; +const LEGACY_CRATE: &str = "kb_decoder_amm_alphaq"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/believe.rs b/kb-lib/src/decoder/amm/believe.rs index 4f0aef3..9681f27 100644 --- a/kb-lib/src/decoder/amm/believe.rs +++ b/kb-lib/src/decoder/amm/believe.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_believe`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_believe"; +const LEGACY_CRATE: &str = "kb_decoder_amm_believe"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/bonk_swap.rs b/kb-lib/src/decoder/amm/bonk_swap.rs index 73cd749..2411554 100644 --- a/kb-lib/src/decoder/amm/bonk_swap.rs +++ b/kb-lib/src/decoder/amm/bonk_swap.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_bonk_swap`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_bonk_swap"; +const LEGACY_CRATE: &str = "kb_decoder_amm_bonk_swap"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/fluxbeam.rs b/kb-lib/src/decoder/amm/fluxbeam.rs index c9e1561..14bd937 100644 --- a/kb-lib/src/decoder/amm/fluxbeam.rs +++ b/kb-lib/src/decoder/amm/fluxbeam.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_fluxbeam`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_fluxbeam"; +const LEGACY_CRATE: &str = "kb_decoder_amm_fluxbeam"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/goon_fi.rs b/kb-lib/src/decoder/amm/goon_fi.rs index de23f47..c1b3d05 100644 --- a/kb-lib/src/decoder/amm/goon_fi.rs +++ b/kb-lib/src/decoder/amm/goon_fi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_goon_fi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_goon_fi"; +const LEGACY_CRATE: &str = "kb_decoder_amm_goon_fi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/goosefx_gamma.rs b/kb-lib/src/decoder/amm/goosefx_gamma.rs index deee864..a6d4dc0 100644 --- a/kb-lib/src/decoder/amm/goosefx_gamma.rs +++ b/kb-lib/src/decoder/amm/goosefx_gamma.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_goosefx_gamma`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_gamma"; +const LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_gamma"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/goosefx_v2.rs b/kb-lib/src/decoder/amm/goosefx_v2.rs index caf2c50..436909b 100644 --- a/kb-lib/src/decoder/amm/goosefx_v2.rs +++ b/kb-lib/src/decoder/amm/goosefx_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_goosefx_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_v2"; +const LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/guac_swap.rs b/kb-lib/src/decoder/amm/guac_swap.rs index e312008..f5766ea 100644 --- a/kb-lib/src/decoder/amm/guac_swap.rs +++ b/kb-lib/src/decoder/amm/guac_swap.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_guac_swap`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_guac_swap"; +const LEGACY_CRATE: &str = "kb_decoder_amm_guac_swap"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/lifinity_swap_v2.rs b/kb-lib/src/decoder/amm/lifinity_swap_v2.rs index 938cfe8..229c16c 100644 --- a/kb-lib/src/decoder/amm/lifinity_swap_v2.rs +++ b/kb-lib/src/decoder/amm/lifinity_swap_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_lifinity_swap_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_lifinity_swap_v2"; +const LEGACY_CRATE: &str = "kb_decoder_amm_lifinity_swap_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/metadao_futarchy_amm.rs b/kb-lib/src/decoder/amm/metadao_futarchy_amm.rs index b859227..ae60d50 100644 --- a/kb-lib/src/decoder/amm/metadao_futarchy_amm.rs +++ b/kb-lib/src/decoder/amm/metadao_futarchy_amm.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_metadao_futarchy_amm`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_metadao_futarchy_amm"; +const LEGACY_CRATE: &str = "kb_decoder_amm_metadao_futarchy_amm"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/metadao_v0_5.rs b/kb-lib/src/decoder/amm/metadao_v0_5.rs index f1e0619..d45301b 100644 --- a/kb-lib/src/decoder/amm/metadao_v0_5.rs +++ b/kb-lib/src/decoder/amm/metadao_v0_5.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_metadao_v0_5`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_metadao_v0_5"; +const LEGACY_CRATE: &str = "kb_decoder_amm_metadao_v0_5"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/meteora_damm_v1.rs b/kb-lib/src/decoder/amm/meteora_damm_v1.rs index 97a5f68..ed3e442 100644 --- a/kb-lib/src/decoder/amm/meteora_damm_v1.rs +++ b/kb-lib/src/decoder/amm/meteora_damm_v1.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_meteora_damm_v1`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v1"; +const LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v1"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/meteora_damm_v2.rs b/kb-lib/src/decoder/amm/meteora_damm_v2.rs index a451730..e2f5a78 100644 --- a/kb-lib/src/decoder/amm/meteora_damm_v2.rs +++ b/kb-lib/src/decoder/amm/meteora_damm_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_meteora_damm_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v2"; +const LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/obric_v2.rs b/kb-lib/src/decoder/amm/obric_v2.rs index 6af2996..1019ce1 100644 --- a/kb-lib/src/decoder/amm/obric_v2.rs +++ b/kb-lib/src/decoder/amm/obric_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_obric_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_obric_v2"; +const LEGACY_CRATE: &str = "kb_decoder_amm_obric_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/one_dex.rs b/kb-lib/src/decoder/amm/one_dex.rs index c1007a4..3d3033d 100644 --- a/kb-lib/src/decoder/amm/one_dex.rs +++ b/kb-lib/src/decoder/amm/one_dex.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_one_dex`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_one_dex"; +const LEGACY_CRATE: &str = "kb_decoder_amm_one_dex"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/pump_swap.rs b/kb-lib/src/decoder/amm/pump_swap.rs index a32b64c..79a7c8c 100644 --- a/kb-lib/src/decoder/amm/pump_swap.rs +++ b/kb-lib/src/decoder/amm/pump_swap.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_pump_swap`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_pump_swap"; +const LEGACY_CRATE: &str = "kb_decoder_amm_pump_swap"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/raydium_lp_v4.rs b/kb-lib/src/decoder/amm/raydium_lp_v4.rs index e0d50ee..7d7157f 100644 --- a/kb-lib/src/decoder/amm/raydium_lp_v4.rs +++ b/kb-lib/src/decoder/amm/raydium_lp_v4.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_raydium_lp_v4`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_raydium_lp_v4"; +const LEGACY_CRATE: &str = "kb_decoder_amm_raydium_lp_v4"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/solfi.rs b/kb-lib/src/decoder/amm/solfi.rs index 4e3fb65..4a5803b 100644 --- a/kb-lib/src/decoder/amm/solfi.rs +++ b/kb-lib/src/decoder/amm/solfi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_solfi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_solfi"; +const LEGACY_CRATE: &str = "kb_decoder_amm_solfi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/solfi_v2.rs b/kb-lib/src/decoder/amm/solfi_v2.rs index 2901585..8469ecf 100644 --- a/kb-lib/src/decoder/amm/solfi_v2.rs +++ b/kb-lib/src/decoder/amm/solfi_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_solfi_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_solfi_v2"; +const LEGACY_CRATE: &str = "kb_decoder_amm_solfi_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/vertigo.rs b/kb-lib/src/decoder/amm/vertigo.rs index 20d79ab..03573d3 100644 --- a/kb-lib/src/decoder/amm/vertigo.rs +++ b/kb-lib/src/decoder/amm/vertigo.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_vertigo`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_vertigo"; +const LEGACY_CRATE: &str = "kb_decoder_amm_vertigo"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/virtuals.rs b/kb-lib/src/decoder/amm/virtuals.rs index f7515c0..c4085fa 100644 --- a/kb-lib/src/decoder/amm/virtuals.rs +++ b/kb-lib/src/decoder/amm/virtuals.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_virtuals`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_virtuals"; +const LEGACY_CRATE: &str = "kb_decoder_amm_virtuals"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/woofi.rs b/kb-lib/src/decoder/amm/woofi.rs index 2e31857..26f7cd3 100644 --- a/kb-lib/src/decoder/amm/woofi.rs +++ b/kb-lib/src/decoder/amm/woofi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_woofi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_woofi"; +const LEGACY_CRATE: &str = "kb_decoder_amm_woofi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/zero_fi.rs b/kb-lib/src/decoder/amm/zero_fi.rs index 031e0c1..89dcde4 100644 --- a/kb-lib/src/decoder/amm/zero_fi.rs +++ b/kb-lib/src/decoder/amm/zero_fi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_zero_fi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_zero_fi"; +const LEGACY_CRATE: &str = "kb_decoder_amm_zero_fi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/amm/zora.rs b/kb-lib/src/decoder/amm/zora.rs index a204a63..c70003e 100644 --- a/kb-lib/src/decoder/amm/zora.rs +++ b/kb-lib/src/decoder/amm/zora.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_amm_zora`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_amm_zora"; +const LEGACY_CRATE: &str = "kb_decoder_amm_zora"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/anchor.rs b/kb-lib/src/decoder/anchor.rs index e775a2c..2a52d7a 100644 --- a/kb-lib/src/decoder/anchor.rs +++ b/kb-lib/src/decoder/anchor.rs @@ -3,4 +3,4 @@ //! `anchor` decoder family. -pub mod core; +mod core; diff --git a/kb-lib/src/decoder/anchor/core.rs b/kb-lib/src/decoder/anchor/core.rs index 4c2eaaa..5f8aced 100644 --- a/kb-lib/src/decoder/anchor/core.rs +++ b/kb-lib/src/decoder/anchor/core.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_anchor`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_anchor"; +const LEGACY_CRATE: &str = "kb_decoder_anchor"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/api.rs b/kb-lib/src/decoder/api.rs index 0a95548..5553a24 100644 --- a/kb-lib/src/decoder/api.rs +++ b/kb-lib/src/decoder/api.rs @@ -3,45 +3,46 @@ //! Decoder contracts consolidated from `kb_decoder_api`. -pub mod contracts; -pub mod decoder; +mod contracts; +mod decoder; + /// Current contextual core instruction input contract version. -pub use crate::decoder::api::contracts::CORE_INSTRUCTION_INPUT_CONTRACT_VERSION; +pub use self::contracts::DC_API_CORE_INSTRUCTION_INPUT_CONTRACT_VERSION; /// Stable contextual decoded observation. -pub use crate::decoder::api::contracts::DecodedObservation; +pub use self::contracts::DcApiDecodedObservation; /// Machine-readable decoder coverage declaration. -pub use crate::decoder::api::contracts::DecoderCoverageDeclaration; +pub use self::contracts::DcApiDecoderCoverageDeclaration; /// Declared decoder coverage entry kind. -pub use crate::decoder::api::contracts::DecoderCoverageEntryKind; +pub use self::contracts::DcApiDecoderCoverageEntryKind; /// Structured decoder diagnostic. -pub use crate::decoder::api::contracts::DecoderDiagnostic; +pub use self::contracts::DcApiDecoderDiagnostic; /// Complete decoder execution result. -pub use crate::decoder::api::contracts::DecoderExecutionResult; +pub use self::contracts::DcApiDecoderExecutionResult; /// Stable decoder identity. -pub use crate::decoder::api::contracts::DecoderIdentity; +pub use self::contracts::DcApiDecoderIdentity; /// Decoder terminal result status. -pub use crate::decoder::api::contracts::DecoderOutcomeStatus; +pub use self::contracts::DcApiDecoderOutcomeStatus; /// Explicit decoding proof. -pub use crate::decoder::api::contracts::DecoderProof; +pub use self::contracts::DcApiDecoderProof; /// Decoding proof category. -pub use crate::decoder::api::contracts::DecoderProofKind; +pub use self::contracts::DcApiDecoderProofKind; /// Deterministic decoder recognition result. -pub use crate::decoder::api::contracts::DecoderRecognition; +pub use self::contracts::DcApiDecoderRecognition; /// One statically declared decoder surface. -pub use crate::decoder::api::contracts::DecoderSurface; +pub use self::contracts::DcApiDecoderSurface; /// Contextual instruction decoder contract. -pub use crate::decoder::api::contracts::InstructionDecoder; +pub use self::contracts::DcApiInstructionDecoder; /// Computes the deterministic contextual input hash. -pub use crate::decoder::api::contracts::contextual_input_hash; +pub use self::contracts::decoder_api_decoder_api_contextual_input_hash; /// Returns true when a decoder declares the exact program id. -pub use crate::decoder::api::contracts::decoder_handles_program_id; +pub use self::contracts::decoder_api_decoder_handles_program_id; /// Computes a deterministic lowercase SHA-256 hash for one JSON value. -pub use crate::decoder::api::contracts::deterministic_json_hash; +pub use self::contracts::decoder_api_deterministic_json_hash; /// Extracts the first eight payload bytes as hexadecimal when available. -pub use crate::decoder::api::contracts::discriminator_8_hex; +pub use self::contracts::decoder_api_discriminator_8_hex; /// Exposes the decoder support level. -pub use crate::decoder::api::decoder::DecoderSupport; +pub use self::decoder::DcApiDecoderSupport; /// Initial decoder implementation placeholder for API-level tests. -pub use crate::decoder::api::decoder::InitialDecoder; +pub use self::decoder::DcApiInitialDecoder; /// Exposes the common protocol decoder trait. -pub use crate::decoder::api::decoder::ProtocolDecoder; +pub use self::decoder::DcApiProtocolDecoder; diff --git a/kb-lib/src/decoder/api/contracts.rs b/kb-lib/src/decoder/api/contracts.rs index b7d4fb0..7e31de3 100644 --- a/kb-lib/src/decoder/api/contracts.rs +++ b/kb-lib/src/decoder/api/contracts.rs @@ -6,18 +6,19 @@ use sha2::Digest; // rust-rules: trait-import /// Current contextual core instruction input contract version. -pub const CORE_INSTRUCTION_INPUT_CONTRACT_VERSION: u32 = crate::CORE_REPLAY_INPUT_CONTRACT_VERSION; +pub const DC_API_CORE_INSTRUCTION_INPUT_CONTRACT_VERSION: u32 = + crate::MD_CORE_REPLAY_INPUT_CONTRACT_VERSION; /// Stable identity of one contextual instruction decoder. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct DecoderIdentity { +pub struct DcApiDecoderIdentity { /// Stable lower snake case processor name. pub name: std::string::String, /// Semantic or deterministic implementation version. pub version: std::string::String, } -impl DecoderIdentity { +impl DcApiDecoderIdentity { /// Builds a validated decoder identity. pub fn new( name: impl std::convert::Into, @@ -38,7 +39,7 @@ impl DecoderIdentity { /// One statically declared Solana surface supported by a decoder. #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub struct DecoderSurface { +pub struct DcApiDecoderSurface { /// Exact Solana program identifier. pub program_id: &'static str, /// Stable surface code. @@ -49,7 +50,7 @@ pub struct DecoderSurface { /// Declared decoder coverage entry kind. #[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub enum DecoderCoverageEntryKind { +pub enum DcApiDecoderCoverageEntryKind { /// Program instruction entry. Instruction, /// Program event entry. @@ -60,13 +61,13 @@ pub enum DecoderCoverageEntryKind { /// Machine-readable decoder coverage declaration. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct DecoderCoverageDeclaration { +pub struct DcApiDecoderCoverageDeclaration { /// Solana program identifier. pub program_id: std::string::String, /// Optional stable surface code. pub surface_code: std::option::Option, /// Entry kind. - pub entry_kind: DecoderCoverageEntryKind, + pub entry_kind: DcApiDecoderCoverageEntryKind, /// Stable instruction, event or discriminator code. pub entry_code: std::string::String, /// Optional normalized lowercase hexadecimal discriminator. @@ -75,12 +76,12 @@ pub struct DecoderCoverageDeclaration { pub historical: bool, } -impl DecoderCoverageDeclaration { +impl DcApiDecoderCoverageDeclaration { /// Builds a validated coverage declaration. pub fn new( program_id: impl std::convert::Into, surface_code: std::option::Option, - entry_kind: DecoderCoverageEntryKind, + entry_kind: DcApiDecoderCoverageEntryKind, entry_code: impl std::convert::Into, discriminator_hex: std::option::Option, historical: bool, @@ -122,7 +123,7 @@ impl DecoderCoverageDeclaration { /// Deterministic recognition result used by dispatch. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct DecoderRecognition { +pub struct DcApiDecoderRecognition { /// Whether the decoder is compatible with the input. pub compatible: bool, /// Whether recognition is exact rather than program-only. @@ -137,7 +138,7 @@ pub struct DecoderRecognition { pub discriminator_hex: std::option::Option, } -impl DecoderRecognition { +impl DcApiDecoderRecognition { /// Builds a non-compatible recognition result. pub fn incompatible() -> Self { return Self { @@ -171,7 +172,7 @@ impl DecoderRecognition { /// Decoder terminal result status. #[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub enum DecoderOutcomeStatus { +pub enum DcApiDecoderOutcomeStatus { /// At least one stable decoded observation was produced. Decoded, /// The decoder intentionally ignored a recognized input. @@ -184,7 +185,7 @@ pub enum DecoderOutcomeStatus { /// Proof category attached to one decoded observation. #[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub enum DecoderProofKind { +pub enum DcApiDecoderProofKind { /// Exact instruction discriminator match. ExactDiscriminator, /// Exact binary layout decode. @@ -207,18 +208,18 @@ pub enum DecoderProofKind { /// Explicit proof attached to one decoded observation. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct DecoderProof { +pub struct DcApiDecoderProof { /// Proof category. - pub kind: DecoderProofKind, + pub kind: DcApiDecoderProofKind, /// Decoder confidence. - pub confidence: crate::DecoderConfidence, + pub confidence: crate::MdDecoderConfidence, /// Stable evidence strings, hashes or classifier codes. pub evidence: std::vec::Vec, } /// Structured decoder diagnostic without third-party error wrappers. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct DecoderDiagnostic { +pub struct DcApiDecoderDiagnostic { /// Stable machine-readable diagnostic code. pub code: std::string::String, /// Human-readable diagnostic message. @@ -227,7 +228,7 @@ pub struct DecoderDiagnostic { pub retriable: bool, } -impl DecoderDiagnostic { +impl DcApiDecoderDiagnostic { /// Builds a validated decoder diagnostic. pub fn new( code: impl std::convert::Into, @@ -250,11 +251,11 @@ impl DecoderDiagnostic { /// Stable contextual decoded observation persisted by the decode pipeline. #[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct DecodedObservation { +pub struct DcApiDecodedObservation { /// Stable processor-owned event key within one input. pub event_key: std::string::String, /// Shared typed protocol event identity. - pub event: crate::DecodedProtocolEvent, + pub event: crate::MdDecodedProtocolEvent, /// Typed event payload serialized as deterministic JSON. pub payload_json: serde_json::Value, /// Whether the source transaction failed on-chain. @@ -264,10 +265,10 @@ pub struct DecodedObservation { /// Whether the observed state mutation was committed on-chain. pub observation_committed: bool, /// Explicit decoding proof. - pub proof: DecoderProof, + pub proof: DcApiDecoderProof, } -impl DecodedObservation { +impl DcApiDecodedObservation { /// Validates failed transaction commit semantics and stable identity fields. pub fn validate(&self) -> kb_core::Result<()> { if self.event_key.trim().is_empty() { @@ -295,22 +296,22 @@ impl DecodedObservation { /// Complete explicit result produced by one decoder invocation. #[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct DecoderExecutionResult { +pub struct DcApiDecoderExecutionResult { /// Terminal decoder status. - pub status: DecoderOutcomeStatus, + pub status: DcApiDecoderOutcomeStatus, /// Optional recognized instruction or discriminator code. pub recognized_entry_code: std::option::Option, /// Decoded observations. - pub observations: std::vec::Vec, + pub observations: std::vec::Vec, /// Structured diagnostics. - pub diagnostics: std::vec::Vec, + pub diagnostics: std::vec::Vec, } -impl DecoderExecutionResult { +impl DcApiDecoderExecutionResult { /// Builds an unsupported result with no false decoded observation. pub fn unsupported(entry_code: std::option::Option) -> Self { return Self { - status: DecoderOutcomeStatus::Unsupported, + status: DcApiDecoderOutcomeStatus::Unsupported, recognized_entry_code: entry_code, observations: std::vec::Vec::new(), diagnostics: std::vec::Vec::new(), @@ -320,7 +321,7 @@ impl DecoderExecutionResult { /// Builds an ignored result. pub fn ignored(entry_code: std::option::Option) -> Self { return Self { - status: DecoderOutcomeStatus::Ignored, + status: DcApiDecoderOutcomeStatus::Ignored, recognized_entry_code: entry_code, observations: std::vec::Vec::new(), diagnostics: std::vec::Vec::new(), @@ -329,17 +330,17 @@ impl DecoderExecutionResult { /// Validates status and observation consistency. pub fn validate(&self) -> kb_core::Result<()> { - if self.status == DecoderOutcomeStatus::Decoded && self.observations.is_empty() { + if self.status == DcApiDecoderOutcomeStatus::Decoded && self.observations.is_empty() { return std::result::Result::Err(kb_core::Error::invalid_state( "decoded status requires at least one observation", )); } - if self.status != DecoderOutcomeStatus::Decoded && !self.observations.is_empty() { + if self.status != DcApiDecoderOutcomeStatus::Decoded && !self.observations.is_empty() { return std::result::Result::Err(kb_core::Error::invalid_state( "non-decoded status must not contain observations", )); } - if self.status == DecoderOutcomeStatus::Failed && self.diagnostics.is_empty() { + if self.status == DcApiDecoderOutcomeStatus::Failed && self.diagnostics.is_empty() { return std::result::Result::Err(kb_core::Error::invalid_state( "failed decoder status requires at least one diagnostic", )); @@ -355,21 +356,24 @@ impl DecoderExecutionResult { } /// Contextual instruction decoder contract used by the common pipeline. -pub trait InstructionDecoder: std::marker::Send + std::marker::Sync { +pub trait DcApiInstructionDecoder: std::marker::Send + std::marker::Sync { /// Returns the stable decoder identity. - fn identity(&self) -> DecoderIdentity; + fn identity(&self) -> DcApiDecoderIdentity; /// Returns every exact Solana surface supported by the decoder. - fn surfaces(&self) -> &'static [DecoderSurface]; + fn surfaces(&self) -> &'static [DcApiDecoderSurface]; /// Returns the machine-readable declared coverage matrix. - fn coverage(&self) -> std::vec::Vec; + fn coverage(&self) -> std::vec::Vec; /// Recognizes one contextual core instruction for deterministic dispatch. - fn recognize(&self, input: &crate::CoreInstructionReplayInput) -> DecoderRecognition; + fn recognize(&self, input: &crate::MdCoreInstructionReplayInput) -> DcApiDecoderRecognition; /// Decodes one recognized contextual core instruction. - fn decode(&self, input: &crate::CoreInstructionReplayInput) -> DecoderExecutionResult; + fn decode(&self, input: &crate::MdCoreInstructionReplayInput) -> DcApiDecoderExecutionResult; } /// Returns true when a decoder declares the exact program id. -pub fn decoder_handles_program_id(decoder: &dyn InstructionDecoder, program_id: &str) -> bool { +pub fn decoder_api_decoder_handles_program_id( + decoder: &dyn DcApiInstructionDecoder, + program_id: &str, +) -> bool { for surface in decoder.surfaces() { if surface.program_id == program_id { return true; @@ -379,8 +383,8 @@ pub fn decoder_handles_program_id(decoder: &dyn InstructionDecoder, program_id: } /// Computes a deterministic lowercase SHA-256 hash for one contextual input. -pub fn contextual_input_hash( - input: &crate::CoreInstructionReplayInput, +pub fn decoder_api_decoder_api_contextual_input_hash( + input: &crate::MdCoreInstructionReplayInput, ) -> kb_core::Result { let serialization_result = serde_json::to_value(input); let mut value = match serialization_result { @@ -391,11 +395,11 @@ pub fn contextual_input_hash( ))); }, }; - return crate::deterministic_json_hash(&mut value); + return crate::decoder_api_deterministic_json_hash(&mut value); } /// Computes a deterministic lowercase SHA-256 hash for one JSON value. -pub fn deterministic_json_hash( +pub fn decoder_api_deterministic_json_hash( value: &mut serde_json::Value, ) -> kb_core::Result { sort_json_value(value); @@ -417,8 +421,8 @@ pub fn deterministic_json_hash( } /// Extracts the first eight payload bytes as normalized lowercase hexadecimal when available. -pub fn discriminator_8_hex( - input: &crate::CoreInstructionReplayInput, +pub fn decoder_api_discriminator_8_hex( + input: &crate::MdCoreInstructionReplayInput, ) -> std::option::Option { let payload = match &input.instruction_payload_json { std::option::Option::Some(value) => value, @@ -465,8 +469,8 @@ fn sort_json_value(value: &mut serde_json::Value) { #[cfg(test)] mod tests { - fn replay_input() -> crate::CoreInstructionReplayInput { - let result = crate::CoreInstructionReplayInput::new( + fn replay_input() -> crate::MdCoreInstructionReplayInput { + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -497,8 +501,8 @@ mod tests { #[test] fn contextual_input_hash_is_stable() { - let first = crate::contextual_input_hash(&replay_input()); - let second = crate::contextual_input_hash(&replay_input()); + let first = crate::decoder_api_decoder_api_contextual_input_hash(&replay_input()); + let second = crate::decoder_api_decoder_api_contextual_input_hash(&replay_input()); assert!(first.is_ok()); assert_eq!(first, second); } @@ -514,8 +518,8 @@ mod tests { "payloadJson": {"dataBase64": "CAcGBQQDAgE="}, "payloadHash": "different-payload-hash" }]); - let first_hash = crate::contextual_input_hash(&first); - let second_hash = crate::contextual_input_hash(&second); + let first_hash = crate::decoder_api_decoder_api_contextual_input_hash(&first); + let second_hash = crate::decoder_api_decoder_api_contextual_input_hash(&second); assert!(first_hash.is_ok()); assert!(second_hash.is_ok()); assert_ne!(first_hash, second_hash); @@ -538,26 +542,26 @@ mod tests { #[test] fn discriminator_uses_first_eight_bytes() { - let value = crate::discriminator_8_hex(&replay_input()); + let value = crate::decoder_api_discriminator_8_hex(&replay_input()); assert_eq!(value.as_deref(), std::option::Option::Some("0102030405060708")); } #[test] fn failed_observation_cannot_be_committed() { - let observation = crate::DecodedObservation { + let observation = crate::DcApiDecodedObservation { event_key: "event".to_string(), - event: crate::DecodedProtocolEvent { - signature: crate::Signature("signature".to_string()), - slot: crate::Slot(42), - instruction_path: crate::InstructionPath("0".to_string()), - program_id: crate::ProgramId("program".to_string()), - protocol_code: crate::ProtocolCode("solana".to_string()), - surface_code: crate::SurfaceCode("system_program".to_string()), - event_code: crate::EventCode("system_program.attempt".to_string()), - event_name: crate::EventName("attempt".to_string()), - event_family: crate::EventFamily::Audit, - source_kind: crate::EventSourceKind::Instruction, - confidence: crate::DecoderConfidence::Exact, + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId("program".to_string()), + protocol_code: crate::MdProtocolCode("solana".to_string()), + surface_code: crate::MdSurfaceCode("system_program".to_string()), + event_code: crate::MdEventCode("system_program.attempt".to_string()), + event_name: crate::MdEventName("attempt".to_string()), + event_family: crate::MdEventFamily::Audit, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::Exact, }, payload_json: serde_json::json!({}), transaction_failed: true, @@ -565,9 +569,9 @@ mod tests { serde_json::json!({"InstructionError": [0, "Custom"]}), ), observation_committed: true, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::ExactLayout, - confidence: crate::DecoderConfidence::Exact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::ExactLayout, + confidence: crate::MdDecoderConfidence::Exact, evidence: std::vec!["layout".to_string()], }, }; diff --git a/kb-lib/src/decoder/api/decoder.rs b/kb-lib/src/decoder/api/decoder.rs index 85a1acf..ec4cbd6 100644 --- a/kb-lib/src/decoder/api/decoder.rs +++ b/kb-lib/src/decoder/api/decoder.rs @@ -5,7 +5,7 @@ /// Decoder support level for a program observation. #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum DecoderSupport { +pub enum DcApiDecoderSupport { /// The decoder does not support the observation. No, /// The decoder may support the observation after deeper inspection. @@ -15,7 +15,7 @@ pub enum DecoderSupport { } /// Common trait implemented by every protocol decoder crate. -pub trait ProtocolDecoder { +pub trait DcApiProtocolDecoder { /// Returns the stable decoder name. fn decoder_name(&self) -> &'static str; /// Returns the decoder implementation version. @@ -23,7 +23,7 @@ pub trait ProtocolDecoder { /// Returns the Solana program ids handled by this decoder. fn program_ids(&self) -> &'static [&'static str]; /// Checks whether the decoder handles a program id. - fn handles_program_id(&self, program_id: &crate::ProgramId) -> bool { + fn handles_program_id(&self, program_id: &crate::MdProgramId) -> bool { for candidate in self.program_ids() { if program_id.0.as_str() == *candidate { return true; @@ -32,19 +32,22 @@ pub trait ProtocolDecoder { return false; } /// Checks whether the decoder supports a generic program observation. - fn supports_observation(&self, observation: &crate::ProgramObservation) -> DecoderSupport; + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> DcApiDecoderSupport; /// Decodes a generic program observation into protocol events. fn decode_observation( &self, - observation: &crate::ProgramObservation, - ) -> kb_core::Result>; + observation: &crate::MdProgramObservation, + ) -> kb_core::Result>; } /// Initial decoder implementation placeholder for API-level tests. #[derive(Clone, Debug, Default)] -pub struct InitialDecoder; +pub struct DcApiInitialDecoder; -impl ProtocolDecoder for InitialDecoder { +impl DcApiProtocolDecoder for DcApiInitialDecoder { fn decoder_name(&self) -> &'static str { return "kb_decoder_api"; } @@ -57,17 +60,20 @@ impl ProtocolDecoder for InitialDecoder { return &[]; } - fn supports_observation(&self, observation: &crate::ProgramObservation) -> DecoderSupport { - if ProtocolDecoder::handles_program_id(self, &observation.program_id) { - return DecoderSupport::Maybe; + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> DcApiDecoderSupport { + if DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return DcApiDecoderSupport::Maybe; } - return DecoderSupport::No; + return DcApiDecoderSupport::No; } fn decode_observation( &self, - _observation: &crate::ProgramObservation, - ) -> kb_core::Result> { + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { return std::result::Result::Ok(std::vec::Vec::new()); } } diff --git a/kb-lib/src/decoder/bridge.rs b/kb-lib/src/decoder/bridge.rs index 762d024..1d688ec 100644 --- a/kb-lib/src/decoder/bridge.rs +++ b/kb-lib/src/decoder/bridge.rs @@ -3,7 +3,7 @@ //! `bridge` decoder family. -pub mod circle_cctp_token_messenger_minter; -pub mod circle_cctp_token_messenger_minter_v2; -pub mod layer_zero_endpoint; -pub mod layer_zero_executor; +mod circle_cctp_token_messenger_minter; +mod circle_cctp_token_messenger_minter_v2; +mod layer_zero_endpoint; +mod layer_zero_executor; diff --git a/kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter.rs b/kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter.rs index 3bd5c51..6ac6abd 100644 --- a/kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter.rs +++ b/kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_bridge_circle_cctp_token_messenger_minter`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_bridge_circle_cctp_token_messenger_minter"; +const LEGACY_CRATE: &str = "kb_decoder_bridge_circle_cctp_token_messenger_minter"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter_v2.rs b/kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter_v2.rs index ad1880a..97ca630 100644 --- a/kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter_v2.rs +++ b/kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_bridge_circle_cctp_token_messenger_minter_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_bridge_circle_cctp_token_messenger_minter_v2"; +const LEGACY_CRATE: &str = "kb_decoder_bridge_circle_cctp_token_messenger_minter_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/bridge/layer_zero_endpoint.rs b/kb-lib/src/decoder/bridge/layer_zero_endpoint.rs index 9482c28..1a2815b 100644 --- a/kb-lib/src/decoder/bridge/layer_zero_endpoint.rs +++ b/kb-lib/src/decoder/bridge/layer_zero_endpoint.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_bridge_layer_zero_endpoint`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_bridge_layer_zero_endpoint"; +const LEGACY_CRATE: &str = "kb_decoder_bridge_layer_zero_endpoint"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/bridge/layer_zero_executor.rs b/kb-lib/src/decoder/bridge/layer_zero_executor.rs index 16a1b6c..59c5f19 100644 --- a/kb-lib/src/decoder/bridge/layer_zero_executor.rs +++ b/kb-lib/src/decoder/bridge/layer_zero_executor.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_bridge_layer_zero_executor`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_bridge_layer_zero_executor"; +const LEGACY_CRATE: &str = "kb_decoder_bridge_layer_zero_executor"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/clmm.rs b/kb-lib/src/decoder/clmm.rs index e9c1013..3052e29 100644 --- a/kb-lib/src/decoder/clmm.rs +++ b/kb-lib/src/decoder/clmm.rs @@ -3,9 +3,9 @@ //! `clmm` decoder family. -pub mod byreal; -pub mod fusion; -pub mod orca_whirlpool; -pub mod pancake_swap; -pub mod raydium; -pub mod stabble; +mod byreal; +mod fusion; +mod orca_whirlpool; +mod pancake_swap; +mod raydium; +mod stabble; diff --git a/kb-lib/src/decoder/clmm/byreal.rs b/kb-lib/src/decoder/clmm/byreal.rs index fcf0022..efddb16 100644 --- a/kb-lib/src/decoder/clmm/byreal.rs +++ b/kb-lib/src/decoder/clmm/byreal.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_clmm_byreal`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_clmm_byreal"; +const LEGACY_CRATE: &str = "kb_decoder_clmm_byreal"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/clmm/fusion.rs b/kb-lib/src/decoder/clmm/fusion.rs index f0e0438..462ed4d 100644 --- a/kb-lib/src/decoder/clmm/fusion.rs +++ b/kb-lib/src/decoder/clmm/fusion.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_clmm_fusion`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_clmm_fusion"; +const LEGACY_CRATE: &str = "kb_decoder_clmm_fusion"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/clmm/orca_whirlpool.rs b/kb-lib/src/decoder/clmm/orca_whirlpool.rs index 52ee4e9..f883d91 100644 --- a/kb-lib/src/decoder/clmm/orca_whirlpool.rs +++ b/kb-lib/src/decoder/clmm/orca_whirlpool.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_clmm_orca_whirlpool`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_clmm_orca_whirlpool"; +const LEGACY_CRATE: &str = "kb_decoder_clmm_orca_whirlpool"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/clmm/pancake_swap.rs b/kb-lib/src/decoder/clmm/pancake_swap.rs index 1652ec2..e5b6747 100644 --- a/kb-lib/src/decoder/clmm/pancake_swap.rs +++ b/kb-lib/src/decoder/clmm/pancake_swap.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_clmm_pancake_swap`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_clmm_pancake_swap"; +const LEGACY_CRATE: &str = "kb_decoder_clmm_pancake_swap"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/clmm/raydium.rs b/kb-lib/src/decoder/clmm/raydium.rs index a5063e6..d430148 100644 --- a/kb-lib/src/decoder/clmm/raydium.rs +++ b/kb-lib/src/decoder/clmm/raydium.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_clmm_raydium`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_clmm_raydium"; +const LEGACY_CRATE: &str = "kb_decoder_clmm_raydium"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/clmm/stabble.rs b/kb-lib/src/decoder/clmm/stabble.rs index 3165488..35aaef1 100644 --- a/kb-lib/src/decoder/clmm/stabble.rs +++ b/kb-lib/src/decoder/clmm/stabble.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_clmm_stabble`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_clmm_stabble"; +const LEGACY_CRATE: &str = "kb_decoder_clmm_stabble"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/cpmm.rs b/kb-lib/src/decoder/cpmm.rs index 1210730..3895c9e 100644 --- a/kb-lib/src/decoder/cpmm.rs +++ b/kb-lib/src/decoder/cpmm.rs @@ -3,4 +3,4 @@ //! `cpmm` decoder family. -pub mod raydium; +mod raydium; diff --git a/kb-lib/src/decoder/cpmm/raydium.rs b/kb-lib/src/decoder/cpmm/raydium.rs index d8b4bc5..fe83f3c 100644 --- a/kb-lib/src/decoder/cpmm/raydium.rs +++ b/kb-lib/src/decoder/cpmm/raydium.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_cpmm_raydium`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_cpmm_raydium"; +const LEGACY_CRATE: &str = "kb_decoder_cpmm_raydium"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/dlmm.rs b/kb-lib/src/decoder/dlmm.rs index 5a5e9cf..b878ca3 100644 --- a/kb-lib/src/decoder/dlmm.rs +++ b/kb-lib/src/decoder/dlmm.rs @@ -3,4 +3,4 @@ //! `dlmm` decoder family. -pub mod meteora; +mod meteora; diff --git a/kb-lib/src/decoder/dlmm/meteora.rs b/kb-lib/src/decoder/dlmm/meteora.rs index e9f251c..73a2b50 100644 --- a/kb-lib/src/decoder/dlmm/meteora.rs +++ b/kb-lib/src/decoder/dlmm/meteora.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_dlmm_meteora`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_dlmm_meteora"; +const LEGACY_CRATE: &str = "kb_decoder_dlmm_meteora"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/fees.rs b/kb-lib/src/decoder/fees.rs index a095265..e99509e 100644 --- a/kb-lib/src/decoder/fees.rs +++ b/kb-lib/src/decoder/fees.rs @@ -3,5 +3,5 @@ //! `fees` decoder family. -pub mod bags_fee_share_v1; -pub mod bags_fee_share_v2; +mod bags_fee_share_v1; +mod bags_fee_share_v2; diff --git a/kb-lib/src/decoder/fees/bags_fee_share_v1.rs b/kb-lib/src/decoder/fees/bags_fee_share_v1.rs index 70ea157..8f1ab4f 100644 --- a/kb-lib/src/decoder/fees/bags_fee_share_v1.rs +++ b/kb-lib/src/decoder/fees/bags_fee_share_v1.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_fees_bags_fee_share_v1`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v1"; +const LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v1"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/fees/bags_fee_share_v2.rs b/kb-lib/src/decoder/fees/bags_fee_share_v2.rs index eec53f8..a669c83 100644 --- a/kb-lib/src/decoder/fees/bags_fee_share_v2.rs +++ b/kb-lib/src/decoder/fees/bags_fee_share_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_fees_bags_fee_share_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v2"; +const LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/governance.rs b/kb-lib/src/decoder/governance.rs index efce434..d0a2e40 100644 --- a/kb-lib/src/decoder/governance.rs +++ b/kb-lib/src/decoder/governance.rs @@ -3,4 +3,4 @@ //! `governance` decoder family. -pub mod metadao_bid_wall; +mod metadao_bid_wall; diff --git a/kb-lib/src/decoder/governance/metadao_bid_wall.rs b/kb-lib/src/decoder/governance/metadao_bid_wall.rs index b8eabe2..c9ea897 100644 --- a/kb-lib/src/decoder/governance/metadao_bid_wall.rs +++ b/kb-lib/src/decoder/governance/metadao_bid_wall.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_governance_metadao_bid_wall`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_governance_metadao_bid_wall"; +const LEGACY_CRATE: &str = "kb_decoder_governance_metadao_bid_wall"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/launchpad.rs b/kb-lib/src/decoder/launchpad.rs index 508b611..0c30872 100644 --- a/kb-lib/src/decoder/launchpad.rs +++ b/kb-lib/src/decoder/launchpad.rs @@ -3,12 +3,12 @@ //! `launchpad` decoder family. -pub mod boop_fun; -pub mod metadao_ico; -pub mod meteora_dbc; -pub mod moonit; -pub mod orca_wavebreak; -pub mod printr; -pub mod pump_fun; -pub mod pump_pumpup_ai; -pub mod raydium_launchlab; +mod boop_fun; +mod metadao_ico; +mod meteora_dbc; +mod moonit; +mod orca_wavebreak; +mod printr; +mod pump_fun; +mod pump_pumpup_ai; +mod raydium_launchlab; diff --git a/kb-lib/src/decoder/launchpad/boop_fun.rs b/kb-lib/src/decoder/launchpad/boop_fun.rs index ceb2683..452d8dc 100644 --- a/kb-lib/src/decoder/launchpad/boop_fun.rs +++ b/kb-lib/src/decoder/launchpad/boop_fun.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_launchpad_boop_fun`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_launchpad_boop_fun"; +const LEGACY_CRATE: &str = "kb_decoder_launchpad_boop_fun"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/launchpad/metadao_ico.rs b/kb-lib/src/decoder/launchpad/metadao_ico.rs index edc4d37..b954102 100644 --- a/kb-lib/src/decoder/launchpad/metadao_ico.rs +++ b/kb-lib/src/decoder/launchpad/metadao_ico.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_launchpad_metadao_ico`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_launchpad_metadao_ico"; +const LEGACY_CRATE: &str = "kb_decoder_launchpad_metadao_ico"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/launchpad/meteora_dbc.rs b/kb-lib/src/decoder/launchpad/meteora_dbc.rs index 920ad2d..1ea5fc1 100644 --- a/kb-lib/src/decoder/launchpad/meteora_dbc.rs +++ b/kb-lib/src/decoder/launchpad/meteora_dbc.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_launchpad_meteora_dbc`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_launchpad_meteora_dbc"; +const LEGACY_CRATE: &str = "kb_decoder_launchpad_meteora_dbc"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/launchpad/moonit.rs b/kb-lib/src/decoder/launchpad/moonit.rs index 301a630..1cb1e4d 100644 --- a/kb-lib/src/decoder/launchpad/moonit.rs +++ b/kb-lib/src/decoder/launchpad/moonit.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_launchpad_moonit`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_launchpad_moonit"; +const LEGACY_CRATE: &str = "kb_decoder_launchpad_moonit"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/launchpad/orca_wavebreak.rs b/kb-lib/src/decoder/launchpad/orca_wavebreak.rs index 3daea74..2aefc1c 100644 --- a/kb-lib/src/decoder/launchpad/orca_wavebreak.rs +++ b/kb-lib/src/decoder/launchpad/orca_wavebreak.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_launchpad_orca_wavebreak`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_launchpad_orca_wavebreak"; +const LEGACY_CRATE: &str = "kb_decoder_launchpad_orca_wavebreak"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/launchpad/printr.rs b/kb-lib/src/decoder/launchpad/printr.rs index 00b719c..c21d092 100644 --- a/kb-lib/src/decoder/launchpad/printr.rs +++ b/kb-lib/src/decoder/launchpad/printr.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_launchpad_printr`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_launchpad_printr"; +const LEGACY_CRATE: &str = "kb_decoder_launchpad_printr"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/launchpad/pump_fun.rs b/kb-lib/src/decoder/launchpad/pump_fun.rs index 51282e7..2aa8db6 100644 --- a/kb-lib/src/decoder/launchpad/pump_fun.rs +++ b/kb-lib/src/decoder/launchpad/pump_fun.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_launchpad_pump_fun`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_launchpad_pump_fun"; +const LEGACY_CRATE: &str = "kb_decoder_launchpad_pump_fun"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs b/kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs index edf05fa..97e7381 100644 --- a/kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs +++ b/kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_launchpad_pump_pumpup_ai`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_launchpad_pump_pumpup_ai"; +const LEGACY_CRATE: &str = "kb_decoder_launchpad_pump_pumpup_ai"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/launchpad/raydium_launchlab.rs b/kb-lib/src/decoder/launchpad/raydium_launchlab.rs index 39702b8..a477d45 100644 --- a/kb-lib/src/decoder/launchpad/raydium_launchlab.rs +++ b/kb-lib/src/decoder/launchpad/raydium_launchlab.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_launchpad_raydium_launchlab`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_launchpad_raydium_launchlab"; +const LEGACY_CRATE: &str = "kb_decoder_launchpad_raydium_launchlab"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/lending.rs b/kb-lib/src/decoder/lending.rs index f943cd0..e6734b9 100644 --- a/kb-lib/src/decoder/lending.rs +++ b/kb-lib/src/decoder/lending.rs @@ -3,10 +3,10 @@ //! `lending` decoder family. -pub mod clone; -pub mod jupiter_lend_borrow; -pub mod jupiter_lend_earn; -pub mod jupiter_lend_flash_loan; -pub mod jupiter_lend_liquidity; -pub mod kamino; -pub mod marginfi_v2; +mod clone; +mod jupiter_lend_borrow; +mod jupiter_lend_earn; +mod jupiter_lend_flash_loan; +mod jupiter_lend_liquidity; +mod kamino; +mod marginfi_v2; diff --git a/kb-lib/src/decoder/lending/clone.rs b/kb-lib/src/decoder/lending/clone.rs index 88b796b..2dabd03 100644 --- a/kb-lib/src/decoder/lending/clone.rs +++ b/kb-lib/src/decoder/lending/clone.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_lending_clone`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_lending_clone"; +const LEGACY_CRATE: &str = "kb_decoder_lending_clone"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/lending/jupiter_lend_borrow.rs b/kb-lib/src/decoder/lending/jupiter_lend_borrow.rs index 58cf9b7..ee5c08d 100644 --- a/kb-lib/src/decoder/lending/jupiter_lend_borrow.rs +++ b/kb-lib/src/decoder/lending/jupiter_lend_borrow.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_borrow`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_borrow"; +const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_borrow"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/lending/jupiter_lend_earn.rs b/kb-lib/src/decoder/lending/jupiter_lend_earn.rs index 02d5aeb..eec4405 100644 --- a/kb-lib/src/decoder/lending/jupiter_lend_earn.rs +++ b/kb-lib/src/decoder/lending/jupiter_lend_earn.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_earn`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_earn"; +const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_earn"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/lending/jupiter_lend_flash_loan.rs b/kb-lib/src/decoder/lending/jupiter_lend_flash_loan.rs index 2cce758..b5df193 100644 --- a/kb-lib/src/decoder/lending/jupiter_lend_flash_loan.rs +++ b/kb-lib/src/decoder/lending/jupiter_lend_flash_loan.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_flash_loan`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_flash_loan"; +const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_flash_loan"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs b/kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs index 56f13c6..f4bf409 100644 --- a/kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs +++ b/kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_liquidity`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_liquidity"; +const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_liquidity"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/lending/kamino.rs b/kb-lib/src/decoder/lending/kamino.rs index cf79836..6635f29 100644 --- a/kb-lib/src/decoder/lending/kamino.rs +++ b/kb-lib/src/decoder/lending/kamino.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_lending_kamino`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_lending_kamino"; +const LEGACY_CRATE: &str = "kb_decoder_lending_kamino"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/lending/marginfi_v2.rs b/kb-lib/src/decoder/lending/marginfi_v2.rs index ef173b9..2cd4ee2 100644 --- a/kb-lib/src/decoder/lending/marginfi_v2.rs +++ b/kb-lib/src/decoder/lending/marginfi_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_lending_marginfi_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_lending_marginfi_v2"; +const LEGACY_CRATE: &str = "kb_decoder_lending_marginfi_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/lock.rs b/kb-lib/src/decoder/lock.rs index 4e47726..160fc6c 100644 --- a/kb-lib/src/decoder/lock.rs +++ b/kb-lib/src/decoder/lock.rs @@ -3,4 +3,4 @@ //! `lock` decoder family. -pub mod raydium_lp; +mod raydium_lp; diff --git a/kb-lib/src/decoder/lock/raydium_lp.rs b/kb-lib/src/decoder/lock/raydium_lp.rs index 0b387d4..15be905 100644 --- a/kb-lib/src/decoder/lock/raydium_lp.rs +++ b/kb-lib/src/decoder/lock/raydium_lp.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_lock_raydium_lp`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_lock_raydium_lp"; +const LEGACY_CRATE: &str = "kb_decoder_lock_raydium_lp"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/metadata.rs b/kb-lib/src/decoder/metadata.rs index dfbd5af..8270576 100644 --- a/kb-lib/src/decoder/metadata.rs +++ b/kb-lib/src/decoder/metadata.rs @@ -3,8 +3,216 @@ //! `metadata` decoder family. -pub mod metaplex_token_metadata; -pub mod spl_name_service; +mod metaplex_token_metadata; +mod spl_name_service; +/// Approve Collection Authority discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR; +/// Approve Use Authority discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR; +/// Bubblegum Set Collection Size discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR; +/// Burn discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_BURN_DISCRIMINATOR; +/// Historical Burn Edition NFT discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR; +/// Historical Burn NFT discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR; +/// Close Accounts discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR; +/// Close Escrow Account discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR; +/// Collect discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_COLLECT_DISCRIMINATOR; +/// Convert Master Edition V1 to V2 discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR; +/// Modern Create discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CREATE_DISCRIMINATOR; +/// Create Escrow Account discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR; +/// Historical Create Master Edition discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR; +/// Create Master Edition V3 discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR; +/// Historical Create Metadata Account discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR; +/// Historical Create Metadata Account V2 discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR; +/// Create Metadata Account V3 discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR; +/// Delegate discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_DELEGATE_DISCRIMINATOR; +/// Deprecated Create Master Edition discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR; +/// Deprecated Create Reservation List discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR; +/// Deprecated printing-token mint-new-edition discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR; +/// Deprecated Mint Printing Tokens discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR; +/// Deprecated Mint Printing Tokens Via Token discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR; +/// Deprecated Set Reservation List discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR; +/// Number of bytes retained in malformed-wire diagnostics. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_DIAGNOSTIC_PREFIX_BYTES; +/// Stable event payload contract version. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_EVENT_VERSION; +/// Freeze Delegated Account discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR; +/// Current pre-release instruction inventory. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_INSTRUCTION_ENTRIES; +/// Lock discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_LOCK_DISCRIMINATOR; +/// Maximum encoded base64 instruction payload size. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_MAX_BASE64_BYTES; +/// Maximum number of instruction accounts accepted by this decoder. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS; +/// Tracing target for this decoder. +/// Maximum retained instruction payload size. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES; +/// Migrate discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_MIGRATE_DISCRIMINATOR; +/// Modern Mint discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_MINT_DISCRIMINATOR; +/// Mint New Edition From Master Edition Via Token discriminator. +pub(crate) use self::metaplex_token_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::metaplex_token_metadata::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR; +/// Modern Print discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_PRINT_DISCRIMINATOR; +/// Puff Metadata discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR; +/// Remove Creator Verification discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR; +/// Resize discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_RESIZE_DISCRIMINATOR; +/// Revoke Collection Authority discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR; +/// Revoke discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_REVOKE_DISCRIMINATOR; +/// Revoke Use Authority discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR; +/// Set And Verify Collection discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR; +/// Set And Verify Sized Collection Item discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; +/// Set Collection Size discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR; +/// Set Token Standard discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR; +/// Sign Metadata discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR; +/// Stable decoder surface code. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_SURFACE_CODE; +/// Thaw Delegated Account discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR; +/// Canonical tracing target for this crate. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_TRACING_TARGET; +/// Transfer discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_TRANSFER_DISCRIMINATOR; +/// Transfer Out Of Escrow discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR; +/// Unlock discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_UNLOCK_DISCRIMINATOR; +/// Unverify Collection discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR; +/// Modern Unverify discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR; +/// Unverify Sized Collection Item discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; +/// Modern Update discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_UPDATE_DISCRIMINATOR; +/// Historical Update Metadata Account discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR; +/// Update Metadata Account V2 discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR; +/// Update Primary Sale Happened Via Token discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR; +/// Modern Use discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_USE_DISCRIMINATOR; +/// Utilize discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_UTILIZE_DISCRIMINATOR; +/// Verify Collection discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR; +/// Modern Verify discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_VERIFY_DISCRIMINATOR; +/// Verify Sized Collection Item discriminator. +pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; +/// Crate-root access to `decode` from `instruction`. +pub(crate) use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode; +/// Crate-root access to `entry_for_discriminator` from `instruction`. +pub(crate) use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_entry_for_discriminator; +/// Crate-root access to `payload_discriminator` from `instruction`. +pub(crate) use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_payload_discriminator; + +/// Exhaustive published Metaplex account-key inventory. +pub use self::metaplex_token_metadata::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT; /// Exact decoder for the Metaplex Token Metadata program. -pub use self::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; +pub use self::metaplex_token_metadata::DcMetadataMetaplexTokenMetadataDecoder; +/// Canonical projection shared by Collection and Use Authority records. +pub use self::metaplex_token_metadata::DcMetadataMtmAuthorityRecordAccountSnapshot; +/// Stable identity and policy of one canonical account snapshot. +pub use self::metaplex_token_metadata::DcMetadataMtmCanonicalAccountIdentity; +/// Lifecycle class of one canonical account layout. +pub use self::metaplex_token_metadata::DcMetadataMtmCanonicalAccountLifecycle; +/// Provenance retained for one canonical account observation. +pub use self::metaplex_token_metadata::DcMetadataMtmCanonicalAccountProvenance; +/// Execution policy separated from historical materialization. +pub use self::metaplex_token_metadata::DcMetadataMtmCanonicalExecutionPolicy; +/// Materialization policy for active or historical state. +pub use self::metaplex_token_metadata::DcMetadataMtmCanonicalMaterializationPolicy; +/// Canonical account envelope used by materializers and replay. +pub use self::metaplex_token_metadata::DcMetadataMtmCanonicalMetadataAccountSnapshot; +/// Typed canonical Metaplex account state. +pub use self::metaplex_token_metadata::DcMetadataMtmCanonicalMetadataAccountState; +/// Origin of one canonical account observation. +pub use self::metaplex_token_metadata::DcMetadataMtmCanonicalObservationSource; +/// Canonical projection shared by Metadata and Holder delegate records. +pub use self::metaplex_token_metadata::DcMetadataMtmDelegateRecordAccountSnapshot; +/// Supported edition account layout. +pub use self::metaplex_token_metadata::DcMetadataMtmEditionAccountKind; +/// Canonical bounded projection of one edition or master-edition account. +pub use self::metaplex_token_metadata::DcMetadataMtmEditionAccountSnapshot; +/// Supported Edition Marker account layout. +pub use self::metaplex_token_metadata::DcMetadataMtmEditionMarkerAccountKind; +/// Canonical bounded projection of one Edition Marker account. +pub use self::metaplex_token_metadata::DcMetadataMtmEditionMarkerAccountSnapshot; +/// Bounded error returned while decoding a Metadata account. +pub use self::metaplex_token_metadata::DcMetadataMtmMetadataAccountDecodeError; +/// One entry in the exhaustive published account-key audit. +pub use self::metaplex_token_metadata::DcMetadataMtmMetadataAccountLayoutAuditEntry; +/// Canonical bounded projection of one Metadata account. +pub use self::metaplex_token_metadata::DcMetadataMtmMetadataAccountSnapshot; +/// One bounded historical reservation entry. +pub use self::metaplex_token_metadata::DcMetadataMtmReservationEntrySnapshot; +/// Historical Reservation List account generation. +pub use self::metaplex_token_metadata::DcMetadataMtmReservationListAccountKind; +/// Canonical decode-only projection of a historical Reservation List account. +pub use self::metaplex_token_metadata::DcMetadataMtmReservationListAccountSnapshot; +/// Canonical projection of one Token Owned Escrow account. +pub use self::metaplex_token_metadata::DcMetadataMtmTokenOwnedEscrowAccountSnapshot; +/// Authority form used by one Token Owned Escrow account. +pub use self::metaplex_token_metadata::DcMetadataMtmTokenOwnedEscrowAuthorityKind; +/// Canonical bounded projection of one programmable Token Record account. +pub use self::metaplex_token_metadata::DcMetadataMtmTokenRecordAccountSnapshot; +/// Decodes one Collection Authority Record account. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_collection_authority_record_account; +/// Decodes and validates one edition or master-edition account snapshot. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_edition_account; +/// Decodes and validates one Edition Marker account snapshot. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account; +/// Decodes one Holder Delegate Record account. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_holder_delegate_record_account; +/// Decodes and validates one canonical Metadata account snapshot. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_metadata_account; +/// Decodes one Metadata Delegate Record account. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_metadata_delegate_record_account; +/// Decodes one historical Reservation List V1 or V2 account. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account; +/// Decodes one Token Owned Escrow account. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account; +/// Decodes and validates one programmable Token Record account snapshot. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_token_record_account; +/// Decodes one Use Authority Record account. +pub use self::metaplex_token_metadata::decoder_metadata_metaplex_token_metadata_decode_use_authority_record_account; diff --git a/kb-lib/src/decoder/metadata/metaplex_token_metadata.rs b/kb-lib/src/decoder/metadata/metaplex_token_metadata.rs index acdc764..136668b 100644 --- a/kb-lib/src/decoder/metadata/metaplex_token_metadata.rs +++ b/kb-lib/src/decoder/metadata/metaplex_token_metadata.rs @@ -10,214 +10,212 @@ mod decoder; mod instruction; /// Approve Collection Authority discriminator. -pub(crate) use self::constants::APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR; /// Approve Use Authority discriminator. -pub(crate) use self::constants::APPROVE_USE_AUTHORITY_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR; /// Bubblegum Set Collection Size discriminator. -pub(crate) use self::constants::BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR; /// Burn discriminator. -pub(crate) use self::constants::BURN_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_BURN_DISCRIMINATOR; /// Historical Burn Edition NFT discriminator. -pub(crate) use self::constants::BURN_EDITION_NFT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR; /// Historical Burn NFT discriminator. -pub(crate) use self::constants::BURN_NFT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR; /// Close Accounts discriminator. -pub(crate) use self::constants::CLOSE_ACCOUNTS_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR; /// Close Escrow Account discriminator. -pub(crate) use self::constants::CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR; /// Collect discriminator. -pub(crate) use self::constants::COLLECT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_COLLECT_DISCRIMINATOR; /// Convert Master Edition V1 to V2 discriminator. -pub(crate) use self::constants::CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR; /// Modern Create discriminator. -pub(crate) use self::constants::CREATE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CREATE_DISCRIMINATOR; /// Create Escrow Account discriminator. -pub(crate) use self::constants::CREATE_ESCROW_ACCOUNT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR; /// Historical Create Master Edition discriminator. -pub(crate) use self::constants::CREATE_MASTER_EDITION_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR; /// Create Master Edition V3 discriminator. -pub(crate) use self::constants::CREATE_MASTER_EDITION_V3_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR; /// Historical Create Metadata Account discriminator. -pub(crate) use self::constants::CREATE_METADATA_ACCOUNT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR; /// Historical Create Metadata Account V2 discriminator. -pub(crate) use self::constants::CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR; /// Create Metadata Account V3 discriminator. -pub(crate) use self::constants::CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR; /// Delegate discriminator. -pub(crate) use self::constants::DELEGATE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_DELEGATE_DISCRIMINATOR; /// Deprecated Create Master Edition discriminator. -pub(crate) use self::constants::DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR; /// Deprecated Create Reservation List discriminator. -pub(crate) use self::constants::DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR; /// Deprecated printing-token mint-new-edition discriminator. -pub(crate) use self::constants::DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR; /// Deprecated Mint Printing Tokens discriminator. -pub(crate) use self::constants::DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR; /// Deprecated Mint Printing Tokens Via Token discriminator. -pub(crate) use self::constants::DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR; /// Deprecated Set Reservation List discriminator. -pub(crate) use self::constants::DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR; /// Number of bytes retained in malformed-wire diagnostics. -pub(crate) use self::constants::DIAGNOSTIC_PREFIX_BYTES; +pub(crate) use self::constants::DC_METADATA_MTM_DIAGNOSTIC_PREFIX_BYTES; /// Stable event payload contract version. -pub(crate) use self::constants::EVENT_VERSION; +pub(crate) use self::constants::DC_METADATA_MTM_EVENT_VERSION; /// Freeze Delegated Account discriminator. -pub(crate) use self::constants::FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR; /// Current pre-release instruction inventory. -pub(crate) use self::constants::INSTRUCTION_ENTRIES; +pub(crate) use self::constants::DC_METADATA_MTM_INSTRUCTION_ENTRIES; /// Lock discriminator. -pub(crate) use self::constants::LOCK_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_LOCK_DISCRIMINATOR; /// Maximum encoded base64 instruction payload size. -pub(crate) use self::constants::MAX_BASE64_BYTES; +pub(crate) use self::constants::DC_METADATA_MTM_MAX_BASE64_BYTES; /// Maximum number of instruction accounts accepted by this decoder. -pub(crate) use self::constants::MAX_INSTRUCTION_ACCOUNTS; +pub(crate) use self::constants::DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS; /// Tracing target for this decoder. /// Maximum retained instruction payload size. -pub(crate) use self::constants::MAX_INSTRUCTION_BYTES; +pub(crate) use self::constants::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES; /// Migrate discriminator. -pub(crate) use self::constants::MIGRATE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_MIGRATE_DISCRIMINATOR; /// Modern Mint discriminator. -pub(crate) use self::constants::MINT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_MINT_DISCRIMINATOR; /// Mint New Edition From Master Edition Via Token discriminator. -pub(crate) use self::constants::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR; +pub(crate) use self::constants::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::constants::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR; /// Modern Print discriminator. -pub(crate) use self::constants::PRINT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_PRINT_DISCRIMINATOR; /// Puff Metadata discriminator. -pub(crate) use self::constants::PUFF_METADATA_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR; /// Remove Creator Verification discriminator. -pub(crate) use self::constants::REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR; /// Resize discriminator. -pub(crate) use self::constants::RESIZE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_RESIZE_DISCRIMINATOR; /// Revoke Collection Authority discriminator. -pub(crate) use self::constants::REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR; /// Revoke discriminator. -pub(crate) use self::constants::REVOKE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_REVOKE_DISCRIMINATOR; /// Revoke Use Authority discriminator. -pub(crate) use self::constants::REVOKE_USE_AUTHORITY_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR; /// Set And Verify Collection discriminator. -pub(crate) use self::constants::SET_AND_VERIFY_COLLECTION_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR; /// Set And Verify Sized Collection Item discriminator. -pub(crate) use self::constants::SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; /// Set Collection Size discriminator. -pub(crate) use self::constants::SET_COLLECTION_SIZE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR; /// Set Token Standard discriminator. -pub(crate) use self::constants::SET_TOKEN_STANDARD_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR; /// Sign Metadata discriminator. -pub(crate) use self::constants::SIGN_METADATA_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR; /// Stable decoder surface code. -pub(crate) use self::constants::SURFACE_CODE; +pub(crate) use self::constants::DC_METADATA_MTM_SURFACE_CODE; /// Thaw Delegated Account discriminator. -pub(crate) use self::constants::THAW_DELEGATED_ACCOUNT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR; /// Canonical tracing target for this crate. -pub(crate) use self::constants::TRACING_TARGET; +pub(crate) use self::constants::DC_METADATA_MTM_TRACING_TARGET; /// Transfer discriminator. -pub(crate) use self::constants::TRANSFER_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_TRANSFER_DISCRIMINATOR; /// Transfer Out Of Escrow discriminator. -pub(crate) use self::constants::TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR; /// Unlock discriminator. -pub(crate) use self::constants::UNLOCK_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_UNLOCK_DISCRIMINATOR; /// Unverify Collection discriminator. -pub(crate) use self::constants::UNVERIFY_COLLECTION_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR; /// Modern Unverify discriminator. -pub(crate) use self::constants::UNVERIFY_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR; /// Unverify Sized Collection Item discriminator. -pub(crate) use self::constants::UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; /// Modern Update discriminator. -pub(crate) use self::constants::UPDATE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_UPDATE_DISCRIMINATOR; /// Historical Update Metadata Account discriminator. -pub(crate) use self::constants::UPDATE_METADATA_ACCOUNT_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR; /// Update Metadata Account V2 discriminator. -pub(crate) use self::constants::UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR; /// Update Primary Sale Happened Via Token discriminator. -pub(crate) use self::constants::UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR; /// Modern Use discriminator. -pub(crate) use self::constants::USE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_USE_DISCRIMINATOR; /// Utilize discriminator. -pub(crate) use self::constants::UTILIZE_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_UTILIZE_DISCRIMINATOR; /// Verify Collection discriminator. -pub(crate) use self::constants::VERIFY_COLLECTION_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR; /// Modern Verify discriminator. -pub(crate) use self::constants::VERIFY_DISCRIMINATOR; +pub(crate) use self::constants::DC_METADATA_MTM_VERIFY_DISCRIMINATOR; /// Verify Sized Collection Item discriminator. -pub(crate) use self::constants::VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; -/// Crate-root access to `ParsedInstruction` from `instruction`. -pub(crate) use self::instruction::ParsedInstruction; +pub(crate) use self::constants::DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; /// Crate-root access to `decode` from `instruction`. -pub(crate) use self::instruction::decode; +pub(crate) use self::instruction::decoder_metadata_metaplex_token_metadata_decode; /// Crate-root access to `entry_for_discriminator` from `instruction`. -pub(crate) use self::instruction::entry_for_discriminator; +pub(crate) use self::instruction::decoder_metadata_metaplex_token_metadata_entry_for_discriminator; /// Crate-root access to `payload_discriminator` from `instruction`. -pub(crate) use self::instruction::payload_discriminator; +pub(crate) use self::instruction::decoder_metadata_metaplex_token_metadata_payload_discriminator; -/// Canonical projection shared by Collection and Use Authority records. -pub use self::account::AuthorityRecordAccountSnapshot; -/// Canonical projection shared by Metadata and Holder delegate records. -pub use self::account::DelegateRecordAccountSnapshot; -/// Supported edition account layout. -pub use self::account::EditionAccountKind; -/// Canonical bounded projection of one edition or master-edition account. -pub use self::account::EditionAccountSnapshot; -/// Supported Edition Marker account layout. -pub use self::account::EditionMarkerAccountKind; -/// Canonical bounded projection of one Edition Marker account. -pub use self::account::EditionMarkerAccountSnapshot; /// Exhaustive published Metaplex account-key inventory. -pub use self::account::METADATA_ACCOUNT_LAYOUT_AUDIT; +pub use self::account::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT; +/// Canonical projection shared by Collection and Use Authority records. +pub use self::account::DcMetadataMtmAuthorityRecordAccountSnapshot; +/// Canonical projection shared by Metadata and Holder delegate records. +pub use self::account::DcMetadataMtmDelegateRecordAccountSnapshot; +/// Supported edition account layout. +pub use self::account::DcMetadataMtmEditionAccountKind; +/// Canonical bounded projection of one edition or master-edition account. +pub use self::account::DcMetadataMtmEditionAccountSnapshot; +/// Supported Edition Marker account layout. +pub use self::account::DcMetadataMtmEditionMarkerAccountKind; +/// Canonical bounded projection of one Edition Marker account. +pub use self::account::DcMetadataMtmEditionMarkerAccountSnapshot; /// Bounded error returned while decoding a Metadata account. -pub use self::account::MetadataAccountDecodeError; +pub use self::account::DcMetadataMtmMetadataAccountDecodeError; /// One entry in the exhaustive published account-key audit. -pub use self::account::MetadataAccountLayoutAuditEntry; +pub use self::account::DcMetadataMtmMetadataAccountLayoutAuditEntry; /// Canonical bounded projection of one Metadata account. -pub use self::account::MetadataAccountSnapshot; +pub use self::account::DcMetadataMtmMetadataAccountSnapshot; /// One bounded historical reservation entry. -pub use self::account::ReservationEntrySnapshot; +pub use self::account::DcMetadataMtmReservationEntrySnapshot; /// Historical Reservation List account generation. -pub use self::account::ReservationListAccountKind; +pub use self::account::DcMetadataMtmReservationListAccountKind; /// Canonical decode-only projection of a historical Reservation List account. -pub use self::account::ReservationListAccountSnapshot; +pub use self::account::DcMetadataMtmReservationListAccountSnapshot; /// Canonical projection of one Token Owned Escrow account. -pub use self::account::TokenOwnedEscrowAccountSnapshot; +pub use self::account::DcMetadataMtmTokenOwnedEscrowAccountSnapshot; /// Authority form used by one Token Owned Escrow account. -pub use self::account::TokenOwnedEscrowAuthorityKind; +pub use self::account::DcMetadataMtmTokenOwnedEscrowAuthorityKind; /// Canonical bounded projection of one programmable Token Record account. -pub use self::account::TokenRecordAccountSnapshot; +pub use self::account::DcMetadataMtmTokenRecordAccountSnapshot; /// Decodes one Collection Authority Record account. -pub use self::account::decode_collection_authority_record_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_collection_authority_record_account; /// Decodes and validates one edition or master-edition account snapshot. -pub use self::account::decode_edition_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_edition_account; /// Decodes and validates one Edition Marker account snapshot. -pub use self::account::decode_edition_marker_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account; /// Decodes one Holder Delegate Record account. -pub use self::account::decode_holder_delegate_record_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_holder_delegate_record_account; /// Decodes and validates one canonical Metadata account snapshot. -pub use self::account::decode_metadata_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_metadata_account; /// Decodes one Metadata Delegate Record account. -pub use self::account::decode_metadata_delegate_record_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_metadata_delegate_record_account; /// Decodes one historical Reservation List V1 or V2 account. -pub use self::account::decode_reservation_list_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account; /// Decodes one Token Owned Escrow account. -pub use self::account::decode_token_owned_escrow_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account; /// Decodes and validates one programmable Token Record account snapshot. -pub use self::account::decode_token_record_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_token_record_account; /// Decodes one Use Authority Record account. -pub use self::account::decode_use_authority_record_account; +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_use_authority_record_account; /// Stable identity and policy of one canonical account snapshot. -pub use self::canonical::CanonicalAccountIdentity; +pub use self::canonical::DcMetadataMtmCanonicalAccountIdentity; /// Lifecycle class of one canonical account layout. -pub use self::canonical::CanonicalAccountLifecycle; +pub use self::canonical::DcMetadataMtmCanonicalAccountLifecycle; /// Provenance retained for one canonical account observation. -pub use self::canonical::CanonicalAccountProvenance; +pub use self::canonical::DcMetadataMtmCanonicalAccountProvenance; /// Execution policy separated from historical materialization. -pub use self::canonical::CanonicalExecutionPolicy; +pub use self::canonical::DcMetadataMtmCanonicalExecutionPolicy; /// Materialization policy for active or historical state. -pub use self::canonical::CanonicalMaterializationPolicy; +pub use self::canonical::DcMetadataMtmCanonicalMaterializationPolicy; /// Canonical account envelope used by materializers and replay. -pub use self::canonical::CanonicalMetadataAccountSnapshot; +pub use self::canonical::DcMetadataMtmCanonicalMetadataAccountSnapshot; /// Typed canonical Metaplex account state. -pub use self::canonical::CanonicalMetadataAccountState; +pub use self::canonical::DcMetadataMtmCanonicalMetadataAccountState; /// Origin of one canonical account observation. -pub use self::canonical::CanonicalObservationSource; +pub use self::canonical::DcMetadataMtmCanonicalObservationSource; /// Exact Metaplex Token Metadata decoder. -pub use self::decoder::MetadataMetaplexTokenMetadataDecoder; +pub use self::decoder::DcMetadataMetaplexTokenMetadataDecoder; diff --git a/kb-lib/src/decoder/metadata/metaplex_token_metadata/account.rs b/kb-lib/src/decoder/metadata/metaplex_token_metadata/account.rs index ffc6854..29f8807 100644 --- a/kb-lib/src/decoder/metadata/metaplex_token_metadata/account.rs +++ b/kb-lib/src/decoder/metadata/metaplex_token_metadata/account.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/metadata/metaplex_token_metadata/account.rs -// version: 11 +// version: 12 //! Bounded decoding and PDA validation for Metaplex Token Metadata accounts. @@ -13,7 +13,7 @@ const MAX_EDITION_MARKER_V2_LEDGER_BYTES: usize = 1_048_576; /// Bounded error returned while decoding a Metadata account. #[derive(Clone, Debug, Eq, PartialEq)] -pub enum MetadataAccountDecodeError { +pub enum DcMetadataMtmMetadataAccountDecodeError { /// The account key is not a valid Solana public key. InvalidAccountKey, /// The account owner is not a valid Solana public key. @@ -56,7 +56,7 @@ pub enum MetadataAccountDecodeError { ProjectionFailed, } -impl std::fmt::Display for MetadataAccountDecodeError { +impl std::fmt::Display for DcMetadataMtmMetadataAccountDecodeError { fn fmt(&self, formatter: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let message = match self { Self::InvalidAccountKey => "metadata account key is invalid", @@ -90,11 +90,11 @@ impl std::fmt::Display for MetadataAccountDecodeError { } } -impl std::error::Error for MetadataAccountDecodeError {} +impl std::error::Error for DcMetadataMtmMetadataAccountDecodeError {} /// One audited Metaplex account-key layout. #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub struct MetadataAccountLayoutAuditEntry { +pub struct DcMetadataMtmMetadataAccountLayoutAuditEntry { /// Published `Key` variant name. pub key_name: &'static str, /// Exact Borsh discriminant byte. @@ -106,92 +106,93 @@ pub struct MetadataAccountLayoutAuditEntry { } /// Exhaustive inventory of every published Metaplex Token Metadata `Key` variant. -pub const METADATA_ACCOUNT_LAYOUT_AUDIT: &[MetadataAccountLayoutAuditEntry] = &[ - MetadataAccountLayoutAuditEntry { +pub const DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT: + &[DcMetadataMtmMetadataAccountLayoutAuditEntry] = &[ + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "Uninitialized", discriminant: 0, decoder: "reject_uninitialized", lifecycle: "sentinel", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "EditionV1", discriminant: 1, decoder: "decode_edition_account", lifecycle: "active", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "MasterEditionV1", discriminant: 2, decoder: "decode_edition_account", lifecycle: "historical_materializable", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "ReservationListV1", discriminant: 3, decoder: "decode_reservation_list_account", lifecycle: "historical_materializable", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "MetadataV1", discriminant: 4, decoder: "decode_metadata_account", lifecycle: "active", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "ReservationListV2", discriminant: 5, decoder: "decode_reservation_list_account", lifecycle: "historical_materializable", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "MasterEditionV2", discriminant: 6, decoder: "decode_edition_account", lifecycle: "active", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "EditionMarker", discriminant: 7, decoder: "decode_edition_marker_account", lifecycle: "active", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "UseAuthorityRecord", discriminant: 8, decoder: "decode_use_authority_record_account", lifecycle: "active", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "CollectionAuthorityRecord", discriminant: 9, decoder: "decode_collection_authority_record_account", lifecycle: "active", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "TokenOwnedEscrow", discriminant: 10, decoder: "decode_token_owned_escrow_account", lifecycle: "active", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "TokenRecord", discriminant: 11, decoder: "decode_token_record_account", lifecycle: "active", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "MetadataDelegate", discriminant: 12, decoder: "decode_metadata_delegate_record_account", lifecycle: "active", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "EditionMarkerV2", discriminant: 13, decoder: "decode_edition_marker_account", lifecycle: "active_experimental", }, - MetadataAccountLayoutAuditEntry { + DcMetadataMtmMetadataAccountLayoutAuditEntry { key_name: "HolderDelegate", discriminant: 14, decoder: "decode_holder_delegate_record_account", @@ -201,7 +202,7 @@ pub const METADATA_ACCOUNT_LAYOUT_AUDIT: &[MetadataAccountLayoutAuditEntry] = &[ /// Canonical bounded projection of one Metadata account. #[derive(Clone, Debug, PartialEq)] -pub struct MetadataAccountSnapshot { +pub struct DcMetadataMtmMetadataAccountSnapshot { /// Canonical account address. pub account: String, /// Canonical Metadata PDA bump. @@ -227,21 +228,26 @@ pub struct MetadataAccountSnapshot { } /// Decodes one Metadata account after validating owner, bounds and canonical PDA. -pub fn decode_metadata_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_metadata_account( account: &str, owner: &str, data: &[u8], -) -> std::result::Result { +) -> std::result::Result< + DcMetadataMtmMetadataAccountSnapshot, + DcMetadataMtmMetadataAccountDecodeError, +> { let account_key = match ::from_str(account) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let owner_key = match ::from_str(owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; let expected_owner = match ::from_str( @@ -249,48 +255,62 @@ pub fn decode_metadata_account( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; if owner_key != expected_owner { - return std::result::Result::Err(MetadataAccountDecodeError::ForeignOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::ForeignOwner); } if data.is_empty() || data.len() > MAX_METADATA_ACCOUNT_BYTES { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let metadata = match mpl_token_metadata::accounts::Metadata::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; if metadata.key != mpl_token_metadata::types::Key::MetadataV1 { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataKey, + ); } let name = metadata.name.trim_end_matches('\0').to_string(); let symbol = metadata.symbol.trim_end_matches('\0').to_string(); let uri = metadata.uri.trim_end_matches('\0').to_string(); if name.len() > MAX_NAME_BYTES || symbol.len() > MAX_SYMBOL_BYTES || uri.len() > MAX_URI_BYTES { - return std::result::Result::Err(MetadataAccountDecodeError::MetadataBoundsExceeded); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::MetadataBoundsExceeded, + ); } if metadata .creators .as_ref() .is_some_and(|creators| return creators.len() > MAX_CREATORS) { - return std::result::Result::Err(MetadataAccountDecodeError::MetadataBoundsExceeded); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::MetadataBoundsExceeded, + ); } let (expected_pda, bump) = mpl_token_metadata::accounts::Metadata::find_pda(&metadata.mint); if account_key.to_string() != expected_pda.to_string() { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataPda, + ); } let payload_json = match serde_json::to_value(&metadata) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(MetadataAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmMetadataAccountSnapshot { account: account_key.to_string(), bump, mint: metadata.mint.to_string(), @@ -307,7 +327,7 @@ pub fn decode_metadata_account( /// Supported edition account layout. #[derive(Clone, Debug, Eq, PartialEq)] -pub enum EditionAccountKind { +pub enum DcMetadataMtmEditionAccountKind { /// Historical Master Edition V1 layout. MasterEditionV1, /// Current Master Edition V2 layout. @@ -318,7 +338,7 @@ pub enum EditionAccountKind { /// Canonical bounded projection of one edition or master-edition account. #[derive(Clone, Debug, PartialEq)] -pub struct EditionAccountSnapshot { +pub struct DcMetadataMtmEditionAccountSnapshot { /// Canonical account address. pub account: String, /// Canonical edition PDA bump. @@ -326,7 +346,7 @@ pub struct EditionAccountSnapshot { /// Mint used to derive the edition PDA. pub mint: String, /// Decoded account layout. - pub kind: EditionAccountKind, + pub kind: DcMetadataMtmEditionAccountKind, /// Current printed supply for a master edition. pub supply: std::option::Option, /// Optional maximum supply for a master edition. @@ -344,22 +364,25 @@ pub struct EditionAccountSnapshot { } /// Decodes one MasterEditionV1, MasterEditionV2 or Edition account with exact owner and PDA validation. -pub fn decode_edition_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_edition_account( account: &str, owner: &str, mint: &str, data: &[u8], -) -> std::result::Result { +) -> std::result::Result +{ let account_key = match ::from_str(account) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let owner_key = match ::from_str(owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; let expected_owner = match ::from_str( @@ -367,25 +390,31 @@ pub fn decode_edition_account( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; if owner_key != expected_owner { - return std::result::Result::Err(MetadataAccountDecodeError::ForeignOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::ForeignOwner); } if data.is_empty() || data.len() > 128 { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let (expected_pda, bump) = match mint.parse() { std::result::Result::Ok(mint_key) => { mpl_token_metadata::accounts::MasterEdition::find_pda(&mint_key) }, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; if account_key.to_string() != expected_pda.to_string() { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataPda, + ); } let key = data[0]; if key == mpl_token_metadata::types::Key::MasterEditionV1 as u8 { @@ -393,20 +422,24 @@ pub fn decode_edition_account( { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(EditionAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmEditionAccountSnapshot { account: account_key.to_string(), bump, mint: mint.to_string(), - kind: EditionAccountKind::MasterEditionV1, + kind: DcMetadataMtmEditionAccountKind::MasterEditionV1, supply: std::option::Option::Some(value.supply), max_supply: value.max_supply, parent: std::option::Option::None, @@ -422,20 +455,24 @@ pub fn decode_edition_account( let value = match mpl_token_metadata::accounts::MasterEdition::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(EditionAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmEditionAccountSnapshot { account: account_key.to_string(), bump, mint: mint.to_string(), - kind: EditionAccountKind::MasterEditionV2, + kind: DcMetadataMtmEditionAccountKind::MasterEditionV2, supply: std::option::Option::Some(value.supply), max_supply: value.max_supply, parent: std::option::Option::None, @@ -447,25 +484,31 @@ pub fn decode_edition_account( } if key == mpl_token_metadata::types::Key::EditionV1 as u8 { if data.len() != mpl_token_metadata::accounts::Edition::LEN { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let value = match mpl_token_metadata::accounts::Edition::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(EditionAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmEditionAccountSnapshot { account: account_key.to_string(), bump, mint: mint.to_string(), - kind: EditionAccountKind::EditionV1, + kind: DcMetadataMtmEditionAccountKind::EditionV1, supply: std::option::Option::None, max_supply: std::option::Option::None, parent: std::option::Option::Some(value.parent.to_string()), @@ -475,12 +518,12 @@ pub fn decode_edition_account( payload_json, }); } - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataKey); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataKey); } /// Supported Edition Marker account layout. #[derive(Clone, Debug, Eq, PartialEq)] -pub enum EditionMarkerAccountKind { +pub enum DcMetadataMtmEditionMarkerAccountKind { /// Fixed 248-edition historical/current marker layout. EditionMarkerV1, /// Extensible marker layout with one PDA per mint. @@ -489,7 +532,7 @@ pub enum EditionMarkerAccountKind { /// Canonical bounded projection of one Edition Marker account. #[derive(Clone, Debug, PartialEq)] -pub struct EditionMarkerAccountSnapshot { +pub struct DcMetadataMtmEditionMarkerAccountSnapshot { /// Canonical account address. pub account: String, /// Canonical PDA bump. @@ -497,7 +540,7 @@ pub struct EditionMarkerAccountSnapshot { /// Mint used to derive the marker PDA. pub mint: String, /// Decoded marker layout. - pub kind: EditionMarkerAccountKind, + pub kind: DcMetadataMtmEditionMarkerAccountKind, /// V1 group number (`edition / 248`), absent for V2. pub marker_group: std::option::Option, /// Requested edition used to inspect the bitmap. @@ -515,23 +558,28 @@ pub struct EditionMarkerAccountSnapshot { } /// Decodes EditionMarker or EditionMarkerV2 with exact owner, bounds, bitmap and PDA validation. -pub fn decode_edition_marker_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_edition_marker_account( account: &str, owner: &str, mint: &str, edition: u64, data: &[u8], -) -> std::result::Result { +) -> std::result::Result< + DcMetadataMtmEditionMarkerAccountSnapshot, + DcMetadataMtmMetadataAccountDecodeError, +> { let account_key = match ::from_str(account) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let owner_key = match ::from_str(owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; let program_key = match ::from_str( @@ -539,24 +587,30 @@ pub fn decode_edition_marker_account( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; if owner_key != program_key { - return std::result::Result::Err(MetadataAccountDecodeError::ForeignOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::ForeignOwner); } let mint_key = match ::from_str(mint) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; if data.is_empty() { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } if data[0] == mpl_token_metadata::types::Key::EditionMarker as u8 { if data.len() != mpl_token_metadata::accounts::EditionMarker::LEN { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let marker_group = edition / EDITION_MARKER_V1_BITS; let marker_seed = marker_group.to_string(); @@ -571,12 +625,16 @@ pub fn decode_edition_marker_account( &program_key, ); if account_key != expected_pda { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidEditionMarkerPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidEditionMarkerPda, + ); } let value = match mpl_token_metadata::accounts::EditionMarker::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let offset = (edition % EDITION_MARKER_V1_BITS) as usize; @@ -585,14 +643,16 @@ pub fn decode_edition_marker_account( let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(EditionMarkerAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmEditionMarkerAccountSnapshot { account: account_key.to_string(), bump, mint: mint_key.to_string(), - kind: EditionMarkerAccountKind::EditionMarkerV1, + kind: DcMetadataMtmEditionMarkerAccountKind::EditionMarkerV1, marker_group: std::option::Option::Some(marker_group), edition, byte_index, @@ -604,35 +664,43 @@ pub fn decode_edition_marker_account( } if data[0] == mpl_token_metadata::types::Key::EditionMarkerV2 as u8 { if data.len() < 5 || data.len() > MAX_EDITION_MARKER_V2_LEDGER_BYTES + 5 { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let (expected_pda, bump) = solana_pubkey::Pubkey::find_program_address( &[b"metadata", program_key.as_ref(), mint_key.as_ref(), b"edition", b"marker"], &program_key, ); if account_key != expected_pda { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidEditionMarkerPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidEditionMarkerPda, + ); } let value = match mpl_token_metadata::accounts::EditionMarkerV2::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; if value.ledger.len() > MAX_EDITION_MARKER_V2_LEDGER_BYTES { return std::result::Result::Err( - MetadataAccountDecodeError::EditionMarkerBoundsExceeded, + DcMetadataMtmMetadataAccountDecodeError::EditionMarkerBoundsExceeded, ); } if data.len() != value.ledger.len() + 5 { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let byte_index_u64 = edition / 8; let byte_index = match usize::try_from(byte_index_u64) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { return std::result::Result::Err( - MetadataAccountDecodeError::EditionMarkerBoundsExceeded, + DcMetadataMtmMetadataAccountDecodeError::EditionMarkerBoundsExceeded, ); }, }; @@ -642,14 +710,16 @@ pub fn decode_edition_marker_account( let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(EditionMarkerAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmEditionMarkerAccountSnapshot { account: account_key.to_string(), bump, mint: mint_key.to_string(), - kind: EditionMarkerAccountKind::EditionMarkerV2, + kind: DcMetadataMtmEditionMarkerAccountKind::EditionMarkerV2, marker_group: std::option::Option::None, edition, byte_index, @@ -659,12 +729,12 @@ pub fn decode_edition_marker_account( payload_json, }); } - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataKey); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataKey); } /// Canonical bounded projection of one programmable Token Record account. #[derive(Clone, Debug, PartialEq)] -pub struct TokenRecordAccountSnapshot { +pub struct DcMetadataMtmTokenRecordAccountSnapshot { /// Canonical Token Record account address. pub account: String, /// Canonical Token Record PDA bump computed from mint and token account. @@ -692,23 +762,28 @@ pub struct TokenRecordAccountSnapshot { } /// Decodes one Token Record account after exact owner, length, discriminant and PDA validation. -pub fn decode_token_record_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_token_record_account( account: &str, owner: &str, mint: &str, token: &str, data: &[u8], -) -> std::result::Result { +) -> std::result::Result< + DcMetadataMtmTokenRecordAccountSnapshot, + DcMetadataMtmMetadataAccountDecodeError, +> { let account_key = match ::from_str(account) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let owner_key = match ::from_str(owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; let expected_owner = match ::from_str( @@ -716,25 +791,31 @@ pub fn decode_token_record_account( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; if owner_key != expected_owner { - return std::result::Result::Err(MetadataAccountDecodeError::ForeignOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::ForeignOwner); } if data.len() != mpl_token_metadata::accounts::TokenRecord::LEN { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let mint_key = match ::from_str(mint) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let token_key = match ::from_str(token) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let (expected_pda, bump) = solana_pubkey::Pubkey::find_program_address( @@ -748,30 +829,40 @@ pub fn decode_token_record_account( &expected_owner, ); if account_key != expected_pda { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidTokenRecordPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidTokenRecordPda, + ); } let value = match mpl_token_metadata::accounts::TokenRecord::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; if value.key != mpl_token_metadata::types::Key::TokenRecord { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidTokenRecordKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidTokenRecordKey, + ); } if value.bump != bump { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidTokenRecordPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidTokenRecordPda, + ); } let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; let state = format!("{:?}", value.state); let delegate_role = value.delegate_role.as_ref().map(|role| return format!("{role:?}")); let locked = value.state == mpl_token_metadata::types::TokenState::Locked; - return std::result::Result::Ok(TokenRecordAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmTokenRecordAccountSnapshot { account: account_key.to_string(), bump, mint: mint_key.to_string(), @@ -791,7 +882,7 @@ pub fn decode_token_record_account( /// Canonical projection shared by Metadata and Holder delegate records. #[derive(Clone, Debug, PartialEq)] -pub struct DelegateRecordAccountSnapshot { +pub struct DcMetadataMtmDelegateRecordAccountSnapshot { /// Canonical delegate-record account address. pub account: String, /// Canonical PDA bump. @@ -817,18 +908,22 @@ pub struct DelegateRecordAccountSnapshot { fn parse_record_boundary( account: &str, owner: &str, -) -> std::result::Result<(solana_pubkey::Pubkey, solana_pubkey::Pubkey), MetadataAccountDecodeError> -{ +) -> std::result::Result< + (solana_pubkey::Pubkey, solana_pubkey::Pubkey), + DcMetadataMtmMetadataAccountDecodeError, +> { let account_key = match ::from_str(account) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let owner_key = match ::from_str(owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; let expected_owner = match ::from_str( @@ -836,44 +931,55 @@ fn parse_record_boundary( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; if owner_key != expected_owner { - return std::result::Result::Err(MetadataAccountDecodeError::ForeignOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::ForeignOwner); } return std::result::Result::Ok((account_key, expected_owner)); } /// Decodes a Metadata Delegate Record with exact role, authority, delegate and bump validation. -pub fn decode_metadata_delegate_record_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_metadata_delegate_record_account( account: &str, owner: &str, role: mpl_token_metadata::types::MetadataDelegateRole, data: &[u8], -) -> std::result::Result { +) -> std::result::Result< + DcMetadataMtmDelegateRecordAccountSnapshot, + DcMetadataMtmMetadataAccountDecodeError, +> { let (account_key, program) = match parse_record_boundary(account, owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; if data.len() != mpl_token_metadata::accounts::MetadataDelegateRecord::LEN { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let value = match mpl_token_metadata::accounts::MetadataDelegateRecord::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; if value.key != mpl_token_metadata::types::Key::MetadataDelegate { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordKey, + ); } let role_seed = role.to_string(); let mint = match ::from_str(&value.mint.to_string()) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let authority = match ::from_str( @@ -881,14 +987,18 @@ pub fn decode_metadata_delegate_record_account( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let delegate = match ::from_str(&value.delegate.to_string()) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let (expected_pda, bump) = solana_pubkey::Pubkey::find_program_address( @@ -903,15 +1013,19 @@ pub fn decode_metadata_delegate_record_account( &program, ); if account_key != expected_pda || value.bump != bump { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordPda, + ); } let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(DelegateRecordAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmDelegateRecordAccountSnapshot { account: account_key.to_string(), bump, kind: "MetadataDelegateRecord".to_string(), @@ -926,33 +1040,44 @@ pub fn decode_metadata_delegate_record_account( } /// Decodes a Holder Delegate Record with exact role, holder, delegate and bump validation. -pub fn decode_holder_delegate_record_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_holder_delegate_record_account( account: &str, owner: &str, holder: &str, role: mpl_token_metadata::types::HolderDelegateRole, data: &[u8], -) -> std::result::Result { +) -> std::result::Result< + DcMetadataMtmDelegateRecordAccountSnapshot, + DcMetadataMtmMetadataAccountDecodeError, +> { let (account_key, program) = match parse_record_boundary(account, owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; if data.len() != mpl_token_metadata::accounts::HolderDelegateRecord::LEN { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let value = match mpl_token_metadata::accounts::HolderDelegateRecord::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; if value.key != mpl_token_metadata::types::Key::HolderDelegate { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordKey, + ); } let holder_key = match ::from_str(holder) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let role_seed = role.to_string(); @@ -960,14 +1085,18 @@ pub fn decode_holder_delegate_record_account( { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let delegate = match ::from_str(&value.delegate.to_string()) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let (expected_pda, bump) = solana_pubkey::Pubkey::find_program_address( @@ -982,15 +1111,19 @@ pub fn decode_holder_delegate_record_account( &program, ); if account_key != expected_pda || value.bump != bump { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordPda, + ); } let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(DelegateRecordAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmDelegateRecordAccountSnapshot { account: account_key.to_string(), bump, kind: "HolderDelegateRecord".to_string(), @@ -1006,7 +1139,7 @@ pub fn decode_holder_delegate_record_account( /// Canonical projection of Collection Authority and Use Authority records. #[derive(Clone, Debug, PartialEq)] -pub struct AuthorityRecordAccountSnapshot { +pub struct DcMetadataMtmAuthorityRecordAccountSnapshot { /// Canonical record account address. pub account: String, /// Canonical PDA bump. @@ -1028,30 +1161,39 @@ pub struct AuthorityRecordAccountSnapshot { } /// Decodes a Collection Authority Record with exact PDA and bump validation. -pub fn decode_collection_authority_record_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_collection_authority_record_account( account: &str, owner: &str, mint: &str, authority: &str, data: &[u8], -) -> std::result::Result { +) -> std::result::Result< + DcMetadataMtmAuthorityRecordAccountSnapshot, + DcMetadataMtmMetadataAccountDecodeError, +> { let (account_key, program) = match parse_record_boundary(account, owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; if data.len() != 3 && data.len() != 35 { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let mint_key = match ::from_str(mint) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let authority_key = match ::from_str(authority) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let (expected_pda, bump) = solana_pubkey::Pubkey::find_program_address( @@ -1065,27 +1207,37 @@ pub fn decode_collection_authority_record_account( &program, ); if account_key != expected_pda { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordPda, + ); } let value = match mpl_token_metadata::accounts::CollectionAuthorityRecord::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; if value.key != mpl_token_metadata::types::Key::CollectionAuthorityRecord { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordKey, + ); } if value.bump != bump { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordPda, + ); } let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(AuthorityRecordAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmAuthorityRecordAccountSnapshot { account: account_key.to_string(), bump, kind: "CollectionAuthorityRecord".to_string(), @@ -1099,30 +1251,39 @@ pub fn decode_collection_authority_record_account( } /// Decodes a Use Authority Record with exact length, PDA and bump validation. -pub fn decode_use_authority_record_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_use_authority_record_account( account: &str, owner: &str, mint: &str, authority: &str, data: &[u8], -) -> std::result::Result { +) -> std::result::Result< + DcMetadataMtmAuthorityRecordAccountSnapshot, + DcMetadataMtmMetadataAccountDecodeError, +> { let (account_key, program) = match parse_record_boundary(account, owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; if data.len() != mpl_token_metadata::accounts::UseAuthorityRecord::LEN { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let mint_key = match ::from_str(mint) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let authority_key = match ::from_str(authority) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let (expected_pda, bump) = solana_pubkey::Pubkey::find_program_address( @@ -1136,27 +1297,37 @@ pub fn decode_use_authority_record_account( &program, ); if account_key != expected_pda { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordPda, + ); } let value = match mpl_token_metadata::accounts::UseAuthorityRecord::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; if value.key != mpl_token_metadata::types::Key::UseAuthorityRecord { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordKey, + ); } if value.bump != bump { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAuthorityRecordPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordPda, + ); } let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(AuthorityRecordAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmAuthorityRecordAccountSnapshot { account: account_key.to_string(), bump, kind: "UseAuthorityRecord".to_string(), @@ -1171,7 +1342,7 @@ pub fn decode_use_authority_record_account( /// Authority form used by one Token Owned Escrow account. #[derive(Clone, Debug, Eq, PartialEq)] -pub enum TokenOwnedEscrowAuthorityKind { +pub enum DcMetadataMtmTokenOwnedEscrowAuthorityKind { /// Escrow controlled by the owner of the base token. TokenOwner, /// Escrow controlled by an explicit creator key. @@ -1180,7 +1351,7 @@ pub enum TokenOwnedEscrowAuthorityKind { /// Canonical bounded projection of one Token Owned Escrow account. #[derive(Clone, Debug, PartialEq)] -pub struct TokenOwnedEscrowAccountSnapshot { +pub struct DcMetadataMtmTokenOwnedEscrowAccountSnapshot { /// Canonical escrow account address. pub account: String, /// Canonical PDA bump. @@ -1188,7 +1359,7 @@ pub struct TokenOwnedEscrowAccountSnapshot { /// Base token mint stored by the account. pub base_token: String, /// Authority form encoded by the account. - pub authority_kind: TokenOwnedEscrowAuthorityKind, + pub authority_kind: DcMetadataMtmTokenOwnedEscrowAuthorityKind, /// Optional creator authority. pub creator: std::option::Option, /// Bump stored by the account. @@ -1198,33 +1369,44 @@ pub struct TokenOwnedEscrowAccountSnapshot { } /// Decodes one Token Owned Escrow account with exact owner, layout, authority seeds and bump validation. -pub fn decode_token_owned_escrow_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account( account: &str, owner: &str, data: &[u8], -) -> std::result::Result { +) -> std::result::Result< + DcMetadataMtmTokenOwnedEscrowAccountSnapshot, + DcMetadataMtmMetadataAccountDecodeError, +> { let (account_key, program) = match parse_record_boundary(account, owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; if data.len() != 35 && data.len() != 67 { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); } let value = match mpl_token_metadata::accounts::TokenOwnedEscrow::from_bytes(data) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; if value.key != mpl_token_metadata::types::Key::TokenOwnedEscrow { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidTokenOwnedEscrowKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidTokenOwnedEscrowKey, + ); } let base_token = match ::from_str(&value.base_token.to_string()) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let (authority_kind, creator, expected_pda, bump) = match &value.authority { @@ -1234,7 +1416,7 @@ pub fn decode_token_owned_escrow_account( &program, ); ( - TokenOwnedEscrowAuthorityKind::TokenOwner, + DcMetadataMtmTokenOwnedEscrowAuthorityKind::TokenOwner, std::option::Option::None, expected_pda, bump, @@ -1247,7 +1429,7 @@ pub fn decode_token_owned_escrow_account( std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { return std::result::Result::Err( - MetadataAccountDecodeError::InvalidAccountKey, + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, ); }, }; @@ -1263,7 +1445,7 @@ pub fn decode_token_owned_escrow_account( &program, ); ( - TokenOwnedEscrowAuthorityKind::Creator, + DcMetadataMtmTokenOwnedEscrowAuthorityKind::Creator, std::option::Option::Some(creator_text), expected_pda, bump, @@ -1271,15 +1453,19 @@ pub fn decode_token_owned_escrow_account( }, }; if account_key != expected_pda || value.bump != bump { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidTokenOwnedEscrowPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidTokenOwnedEscrowPda, + ); } let payload_json = match serde_json::to_value(&value) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::ProjectionFailed); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ProjectionFailed, + ); }, }; - return std::result::Result::Ok(TokenOwnedEscrowAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmTokenOwnedEscrowAccountSnapshot { account: account_key.to_string(), bump, base_token: value.base_token.to_string(), @@ -1292,7 +1478,7 @@ pub fn decode_token_owned_escrow_account( /// Historical Reservation List account generation. #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum ReservationListAccountKind { +pub enum DcMetadataMtmReservationListAccountKind { /// Legacy layout with `u8` spot counters. V1, /// Later historical layout with `u64` spot counters and cached totals. @@ -1301,7 +1487,7 @@ pub enum ReservationListAccountKind { /// One bounded historical reservation entry. #[derive(Clone, Debug, Eq, PartialEq)] -pub struct ReservationEntrySnapshot { +pub struct DcMetadataMtmReservationEntrySnapshot { /// Reserved address. pub address: String, /// Spots still available for the address. @@ -1312,13 +1498,13 @@ pub struct ReservationEntrySnapshot { /// Canonical decode-only projection of a historical Reservation List account. #[derive(Clone, Debug, PartialEq)] -pub struct ReservationListAccountSnapshot { +pub struct DcMetadataMtmReservationListAccountSnapshot { /// Canonical account address. pub account: String, /// Canonical Reservation List PDA bump. pub bump: u8, /// Historical account generation. - pub kind: ReservationListAccountKind, + pub kind: DcMetadataMtmReservationListAccountKind, /// Master Edition stored by the account. pub master_edition: String, /// Resource key used by the PDA derivation. @@ -1326,7 +1512,7 @@ pub struct ReservationListAccountSnapshot { /// Master Edition supply captured when reservations were created. pub supply_snapshot: std::option::Option, /// Bounded reservation entries. - pub reservations: std::vec::Vec, + pub reservations: std::vec::Vec, /// Total reservation spots. V1 derives this value from entries. pub total_reservation_spots: u64, /// Current reservation spots. V1 derives this value from entries. @@ -1373,31 +1559,38 @@ fn read_reservation_pubkey( } /// Decodes a historical Reservation List V1 or V2 account as decode-only state. -pub fn decode_reservation_list_account( +pub fn decoder_metadata_metaplex_token_metadata_decode_reservation_list_account( account: &str, owner: &str, resource: &str, data: &[u8], -) -> std::result::Result { +) -> std::result::Result< + DcMetadataMtmReservationListAccountSnapshot, + DcMetadataMtmMetadataAccountDecodeError, +> { const MAX_RESERVATIONS: usize = 200; const MAX_V1_BYTES: usize = 6_949; const MAX_V2_BYTES: usize = 9_749; let account_key = match ::from_str(account) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let owner_key = match ::from_str(owner) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; let resource_key = match ::from_str(resource) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidAccountKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidAccountKey, + ); }, }; let program_key = match ::from_str( @@ -1405,39 +1598,49 @@ pub fn decode_reservation_list_account( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::InvalidOwner); }, }; if owner_key != program_key { - return std::result::Result::Err(MetadataAccountDecodeError::ForeignOwner); + return std::result::Result::Err(DcMetadataMtmMetadataAccountDecodeError::ForeignOwner); } let key = match data.first() { std::option::Option::Some(value) => *value, std::option::Option::None => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidDataLength); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength, + ); }, }; let (kind, maximum, entry_bytes) = match key { - 3 => (ReservationListAccountKind::V1, MAX_V1_BYTES, 34usize), - 5 => (ReservationListAccountKind::V2, MAX_V2_BYTES, 48usize), + 3 => (DcMetadataMtmReservationListAccountKind::V1, MAX_V1_BYTES, 34usize), + 5 => (DcMetadataMtmReservationListAccountKind::V2, MAX_V2_BYTES, 48usize), _ => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidReservationListKey); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidReservationListKey, + ); }, }; if data.len() > maximum { - return std::result::Result::Err(MetadataAccountDecodeError::ReservationListBoundsExceeded); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ReservationListBoundsExceeded, + ); } let mut offset = 1usize; let master_edition = match read_reservation_pubkey(data, &mut offset) { std::option::Option::Some(value) => value, std::option::Option::None => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let option_tag = match data.get(offset) { std::option::Option::Some(value) => *value, std::option::Option::None => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; offset += 1; @@ -1446,60 +1649,78 @@ pub fn decode_reservation_list_account( 1 => match read_reservation_u64(data, &mut offset) { std::option::Option::Some(value) => std::option::Option::Some(value), std::option::Option::None => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }, - _ => return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout), + _ => { + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); + }, }; let count_end = match offset.checked_add(4) { std::option::Option::Some(value) => value, std::option::Option::None => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let count_bytes = match data.get(offset..count_end) { std::option::Option::Some(value) => value, std::option::Option::None => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let count_array = match <[u8; 4]>::try_from(count_bytes) { std::result::Result::Ok(value) => value, std::result::Result::Err(_) => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let count = u32::from_le_bytes(count_array) as usize; offset = count_end; if count > MAX_RESERVATIONS { - return std::result::Result::Err(MetadataAccountDecodeError::ReservationListBoundsExceeded); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::ReservationListBoundsExceeded, + ); } let required_entries = match count.checked_mul(entry_bytes) { std::option::Option::Some(value) => value, std::option::Option::None => { return std::result::Result::Err( - MetadataAccountDecodeError::ReservationListBoundsExceeded, + DcMetadataMtmMetadataAccountDecodeError::ReservationListBoundsExceeded, ); }, }; if data.len().saturating_sub(offset) < required_entries { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); } let mut reservations = std::vec::Vec::with_capacity(count); for _ in 0..count { let address = match read_reservation_pubkey(data, &mut offset) { std::option::Option::Some(value) => value, std::option::Option::None => { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); }, }; let (spots_remaining, total_spots) = match kind { - ReservationListAccountKind::V1 => { + DcMetadataMtmReservationListAccountKind::V1 => { let remaining = match data.get(offset) { std::option::Option::Some(value) => *value as u64, std::option::Option::None => { return std::result::Result::Err( - MetadataAccountDecodeError::InvalidMetadataLayout, + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, ); }, }; @@ -1507,19 +1728,19 @@ pub fn decode_reservation_list_account( std::option::Option::Some(value) => *value as u64, std::option::Option::None => { return std::result::Result::Err( - MetadataAccountDecodeError::InvalidMetadataLayout, + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, ); }, }; offset += 2; (remaining, total) }, - ReservationListAccountKind::V2 => { + DcMetadataMtmReservationListAccountKind::V2 => { let remaining = match read_reservation_u64(data, &mut offset) { std::option::Option::Some(value) => value, std::option::Option::None => { return std::result::Result::Err( - MetadataAccountDecodeError::InvalidMetadataLayout, + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, ); }, }; @@ -1527,14 +1748,14 @@ pub fn decode_reservation_list_account( std::option::Option::Some(value) => value, std::option::Option::None => { return std::result::Result::Err( - MetadataAccountDecodeError::InvalidMetadataLayout, + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, ); }, }; (remaining, total) }, }; - reservations.push(ReservationEntrySnapshot { + reservations.push(DcMetadataMtmReservationEntrySnapshot { address: address.to_string(), spots_remaining, total_spots, @@ -1544,13 +1765,13 @@ pub fn decode_reservation_list_account( .iter() .fold(0u64, |sum, entry| return sum.saturating_add(entry.total_spots)); let (total_reservation_spots, current_reservation_spots) = match kind { - ReservationListAccountKind::V1 => (derived_total, derived_total), - ReservationListAccountKind::V2 => { + DcMetadataMtmReservationListAccountKind::V1 => (derived_total, derived_total), + DcMetadataMtmReservationListAccountKind::V2 => { let total = match read_reservation_u64(data, &mut offset) { std::option::Option::Some(value) => value, std::option::Option::None => { return std::result::Result::Err( - MetadataAccountDecodeError::InvalidMetadataLayout, + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, ); }, }; @@ -1558,7 +1779,7 @@ pub fn decode_reservation_list_account( std::option::Option::Some(value) => value, std::option::Option::None => { return std::result::Result::Err( - MetadataAccountDecodeError::InvalidMetadataLayout, + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, ); }, }; @@ -1569,7 +1790,9 @@ pub fn decode_reservation_list_account( .get(offset..) .is_some_and(|suffix| return suffix.iter().any(|byte| return *byte != 0)) { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidMetadataLayout); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout, + ); } let (expected_pda, bump) = solana_pubkey::Pubkey::find_program_address( &[ @@ -1582,10 +1805,12 @@ pub fn decode_reservation_list_account( &program_key, ); if account_key != expected_pda { - return std::result::Result::Err(MetadataAccountDecodeError::InvalidReservationListPda); + return std::result::Result::Err( + DcMetadataMtmMetadataAccountDecodeError::InvalidReservationListPda, + ); } let payload_json = serde_json::json!({ - "kind": match kind { ReservationListAccountKind::V1 => "reservation_list_v1", ReservationListAccountKind::V2 => "reservation_list_v2" }, + "kind": match kind { DcMetadataMtmReservationListAccountKind::V1 => "reservation_list_v1", DcMetadataMtmReservationListAccountKind::V2 => "reservation_list_v2" }, "master_edition": master_edition.to_string(), "resource": resource_key.to_string(), "supply_snapshot": supply_snapshot, @@ -1593,7 +1818,7 @@ pub fn decode_reservation_list_account( "total_reservation_spots": total_reservation_spots, "current_reservation_spots": current_reservation_spots, }); - return std::result::Result::Ok(ReservationListAccountSnapshot { + return std::result::Result::Ok(DcMetadataMtmReservationListAccountSnapshot { account: account_key.to_string(), bump, kind, @@ -1639,15 +1864,14 @@ mod tests { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("metadata serialization failed: {error}"), }; - let snapshot = - match crate::decoder::metadata::metaplex_token_metadata::decode_metadata_account( - &account.to_string(), - kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, - &data, - ) { - std::result::Result::Ok(value) => value, - std::result::Result::Err(error) => panic!("metadata decode failed: {error}"), - }; + let snapshot = match crate::decoder_metadata_metaplex_token_metadata_decode_metadata_account( + &account.to_string(), + kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, + &data, + ) { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => panic!("metadata decode failed: {error}"), + }; assert_eq!(snapshot.bump, expected_bump); assert_eq!(snapshot.mint, metadata.mint.to_string()); assert_eq!(snapshot.name, "Khadhroony"); @@ -1666,28 +1890,32 @@ mod tests { std::result::Result::Err(error) => panic!("metadata serialization failed: {error}"), }; assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_metadata_account( + crate::decoder_metadata_metaplex_token_metadata_decode_metadata_account( &account.to_string(), &solana_pubkey::Pubkey::new_unique().to_string(), &data ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::ForeignOwner), + std::result::Result::Err(crate::DcMetadataMtmMetadataAccountDecodeError::ForeignOwner), ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_metadata_account( + crate::decoder_metadata_metaplex_token_metadata_decode_metadata_account( &solana_pubkey::Pubkey::new_unique().to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &data ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidMetadataPda), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataPda + ), ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_metadata_account( + crate::decoder_metadata_metaplex_token_metadata_decode_metadata_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &[] ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidDataLength), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength + ), ); } @@ -1707,7 +1935,7 @@ mod tests { }, }; let master_v2_snapshot = - match crate::decoder::metadata::metaplex_token_metadata::decode_edition_account( + match crate::decoder_metadata_metaplex_token_metadata_decode_edition_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), @@ -1719,7 +1947,7 @@ mod tests { assert_eq!(master_v2_snapshot.bump, expected_bump); assert_eq!( master_v2_snapshot.kind, - crate::decoder::metadata::metaplex_token_metadata::EditionAccountKind::MasterEditionV2 + crate::DcMetadataMtmEditionAccountKind::MasterEditionV2 ); assert_eq!(master_v2_snapshot.supply, std::option::Option::Some(7)); assert_eq!(master_v2_snapshot.max_supply, std::option::Option::Some(100)); @@ -1733,7 +1961,7 @@ mod tests { std::result::Result::Err(error) => panic!("edition serialization failed: {error}"), }; let edition_snapshot = - match crate::decoder::metadata::metaplex_token_metadata::decode_edition_account( + match crate::decoder_metadata_metaplex_token_metadata_decode_edition_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), @@ -1742,10 +1970,7 @@ mod tests { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("edition decode failed: {error}"), }; - assert_eq!( - edition_snapshot.kind, - crate::decoder::metadata::metaplex_token_metadata::EditionAccountKind::EditionV1 - ); + assert_eq!(edition_snapshot.kind, crate::DcMetadataMtmEditionAccountKind::EditionV1); assert_eq!(edition_snapshot.parent, std::option::Option::Some(account.to_string())); assert_eq!(edition_snapshot.edition, std::option::Option::Some(u64::MAX)); } @@ -1767,43 +1992,43 @@ mod tests { panic!("historical master edition serialization failed: {error}") }, }; - let snapshot = - match crate::decoder::metadata::metaplex_token_metadata::decode_edition_account( - &account.to_string(), - kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, - &mint.to_string(), - &data, - ) { - std::result::Result::Ok(value) => value, - std::result::Result::Err(error) => { - panic!("historical master edition decode failed: {error}") - }, - }; - assert_eq!( - snapshot.kind, - crate::decoder::metadata::metaplex_token_metadata::EditionAccountKind::MasterEditionV1 - ); + let snapshot = match crate::decoder_metadata_metaplex_token_metadata_decode_edition_account( + &account.to_string(), + kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, + &mint.to_string(), + &data, + ) { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => { + panic!("historical master edition decode failed: {error}") + }, + }; + assert_eq!(snapshot.kind, crate::DcMetadataMtmEditionAccountKind::MasterEditionV1); assert_eq!( snapshot.printing_mint, std::option::Option::Some(mpl_token_metadata::ID.to_string()) ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_edition_account( + crate::decoder_metadata_metaplex_token_metadata_decode_edition_account( &solana_pubkey::Pubkey::new_unique().to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), &data ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidMetadataPda), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataPda + ), ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_edition_account( + crate::decoder_metadata_metaplex_token_metadata_decode_edition_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), &[255] ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidMetadataKey), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataKey + ), ); } @@ -1846,7 +2071,7 @@ mod tests { }, }; let snapshot = - match crate::decoder::metadata::metaplex_token_metadata::decode_edition_marker_account( + match crate::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint, @@ -1856,7 +2081,7 @@ mod tests { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("edition marker decode failed: {error}"), }; - assert_eq!(snapshot.kind, crate::decoder::metadata::metaplex_token_metadata::EditionMarkerAccountKind::EditionMarkerV1); + assert_eq!(snapshot.kind, crate::DcMetadataMtmEditionMarkerAccountKind::EditionMarkerV1); assert_eq!(snapshot.bump, expected_bump); assert_eq!(snapshot.marker_group, std::option::Option::Some(1)); assert_eq!(snapshot.byte_index, 0); @@ -1892,7 +2117,7 @@ mod tests { }, }; let snapshot = - match crate::decoder::metadata::metaplex_token_metadata::decode_edition_marker_account( + match crate::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint, @@ -1904,7 +2129,7 @@ mod tests { panic!("edition marker v2 decode failed: {error}") }, }; - assert_eq!(snapshot.kind, crate::decoder::metadata::metaplex_token_metadata::EditionMarkerAccountKind::EditionMarkerV2); + assert_eq!(snapshot.kind, crate::DcMetadataMtmEditionMarkerAccountKind::EditionMarkerV2); assert_eq!(snapshot.bump, expected_bump); assert_eq!(snapshot.marker_group, std::option::Option::None); assert_eq!(snapshot.byte_index, 1); @@ -1913,24 +2138,28 @@ mod tests { let mut suffixed = data.clone(); suffixed.push(0); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_edition_marker_account( + crate::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint, 9, &suffixed ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidDataLength), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength + ), ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_edition_marker_account( + crate::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account( &solana_pubkey::Pubkey::new_unique().to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint, 9, &data ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidEditionMarkerPda), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidEditionMarkerPda + ), ); } @@ -1965,7 +2194,7 @@ mod tests { }; data.resize(mpl_token_metadata::accounts::TokenRecord::LEN, 0); let snapshot = - match crate::decoder::metadata::metaplex_token_metadata::decode_token_record_account( + match crate::decoder_metadata_metaplex_token_metadata_decode_token_record_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), @@ -2026,57 +2255,65 @@ mod tests { }; let data = make_data(mpl_token_metadata::types::Key::TokenRecord, bump); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_token_record_account( + crate::decoder_metadata_metaplex_token_metadata_decode_token_record_account( &account.to_string(), &solana_pubkey::Pubkey::new_unique().to_string(), &mint.to_string(), &token.to_string(), &data ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::ForeignOwner), + std::result::Result::Err(crate::DcMetadataMtmMetadataAccountDecodeError::ForeignOwner), ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_token_record_account( + crate::decoder_metadata_metaplex_token_metadata_decode_token_record_account( &solana_pubkey::Pubkey::new_unique().to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), &token.to_string(), &data ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidTokenRecordPda), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidTokenRecordPda + ), ); let wrong_bump = make_data(mpl_token_metadata::types::Key::TokenRecord, bump.wrapping_add(1)); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_token_record_account( + crate::decoder_metadata_metaplex_token_metadata_decode_token_record_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), &token.to_string(), &wrong_bump ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidTokenRecordPda), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidTokenRecordPda + ), ); let wrong_key = make_data(mpl_token_metadata::types::Key::MetadataV1, bump); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_token_record_account( + crate::decoder_metadata_metaplex_token_metadata_decode_token_record_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), &token.to_string(), &wrong_key ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidTokenRecordKey), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidTokenRecordKey + ), ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_token_record_account( + crate::decoder_metadata_metaplex_token_metadata_decode_token_record_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), &token.to_string(), &data[..data.len() - 1] ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidDataLength), + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength + ), ); } @@ -2118,7 +2355,7 @@ mod tests { }, }; assert_eq!(data.len(), mpl_token_metadata::accounts::MetadataDelegateRecord::LEN); - let snapshot = match crate::decoder::metadata::metaplex_token_metadata::decode_metadata_delegate_record_account( + let snapshot = match crate::decoder_metadata_metaplex_token_metadata_decode_metadata_delegate_record_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, role, @@ -2155,7 +2392,7 @@ mod tests { panic!("holder delegate serialization failed: {error}") }, }; - let holder_snapshot = match crate::decoder::metadata::metaplex_token_metadata::decode_holder_delegate_record_account( + let holder_snapshot = match crate::decoder_metadata_metaplex_token_metadata_decode_holder_delegate_record_account( &holder_account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &authority.to_string(), @@ -2200,7 +2437,7 @@ mod tests { panic!("collection authority serialization failed: {error}") }, }; - let collection_snapshot = match crate::decoder::metadata::metaplex_token_metadata::decode_collection_authority_record_account( + let collection_snapshot = match crate::decoder_metadata_metaplex_token_metadata_decode_collection_authority_record_account( &collection_account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), @@ -2231,7 +2468,7 @@ mod tests { panic!("use authority serialization failed: {error}") }, }; - let use_snapshot = match crate::decoder::metadata::metaplex_token_metadata::decode_use_authority_record_account( + let use_snapshot = match crate::decoder_metadata_metaplex_token_metadata_decode_use_authority_record_account( &use_account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), @@ -2243,24 +2480,28 @@ mod tests { }; assert_eq!(use_snapshot.allowed_uses, std::option::Option::Some(u64::MAX)); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_use_authority_record_account( + crate::decoder_metadata_metaplex_token_metadata_decode_use_authority_record_account( &solana_pubkey::Pubkey::new_unique().to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), &authority.to_string(), &use_data ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidAuthorityRecordPda) + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidAuthorityRecordPda + ) ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_use_authority_record_account( + crate::decoder_metadata_metaplex_token_metadata_decode_use_authority_record_account( &use_account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &mint.to_string(), &authority.to_string(), &use_data[..9] ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidDataLength) + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength + ) ); } @@ -2289,15 +2530,19 @@ mod tests { std::result::Result::Err(error) => panic!("escrow serialization failed: {error}"), }; assert_eq!(owner_data.len(), 35); - let owner_snapshot = match crate::decoder::metadata::metaplex_token_metadata::decode_token_owned_escrow_account( - &owner_account.to_string(), - kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, - &owner_data, - ) { - std::result::Result::Ok(value) => value, - std::result::Result::Err(error) => panic!("escrow decode failed: {error}"), - }; - assert_eq!(owner_snapshot.authority_kind, crate::decoder::metadata::metaplex_token_metadata::TokenOwnedEscrowAuthorityKind::TokenOwner); + let owner_snapshot = + match crate::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account( + &owner_account.to_string(), + kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, + &owner_data, + ) { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => panic!("escrow decode failed: {error}"), + }; + assert_eq!( + owner_snapshot.authority_kind, + crate::DcMetadataMtmTokenOwnedEscrowAuthorityKind::TokenOwner + ); assert_eq!(owner_snapshot.creator, std::option::Option::None); let creator = mpl_token_metadata::ID; let (creator_account, creator_bump) = solana_pubkey::Pubkey::find_program_address( @@ -2324,15 +2569,19 @@ mod tests { }, }; assert_eq!(creator_data.len(), 67); - let creator_snapshot = match crate::decoder::metadata::metaplex_token_metadata::decode_token_owned_escrow_account( - &creator_account.to_string(), - kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, - &creator_data, - ) { - std::result::Result::Ok(value) => value, - std::result::Result::Err(error) => panic!("creator escrow decode failed: {error}"), - }; - assert_eq!(creator_snapshot.authority_kind, crate::decoder::metadata::metaplex_token_metadata::TokenOwnedEscrowAuthorityKind::Creator); + let creator_snapshot = + match crate::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account( + &creator_account.to_string(), + kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, + &creator_data, + ) { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => panic!("creator escrow decode failed: {error}"), + }; + assert_eq!( + creator_snapshot.authority_kind, + crate::DcMetadataMtmTokenOwnedEscrowAuthorityKind::Creator + ); assert_eq!( creator_snapshot.creator, std::option::Option::Some(mpl_token_metadata::ID.to_string()) @@ -2365,39 +2614,47 @@ mod tests { }; let data = make(mpl_token_metadata::types::Key::TokenOwnedEscrow, bump); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_token_owned_escrow_account( + crate::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account( &solana_pubkey::Pubkey::new_unique().to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &data ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidTokenOwnedEscrowPda) + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidTokenOwnedEscrowPda + ) ); let wrong_bump = make(mpl_token_metadata::types::Key::TokenOwnedEscrow, bump.wrapping_add(1)); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_token_owned_escrow_account( + crate::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &wrong_bump ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidTokenOwnedEscrowPda) + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidTokenOwnedEscrowPda + ) ); let wrong_key = make(mpl_token_metadata::types::Key::MetadataV1, bump); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_token_owned_escrow_account( + crate::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &wrong_key ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidTokenOwnedEscrowKey) + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidTokenOwnedEscrowKey + ) ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_token_owned_escrow_account( + crate::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &data[..34] ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidDataLength) + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidDataLength + ) ); } @@ -2431,7 +2688,7 @@ mod tests { v1.push(2); v1.push(3); let snapshot = - match crate::decoder::metadata::metaplex_token_metadata::decode_reservation_list_account( + match crate::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &resource.to_string(), @@ -2440,10 +2697,7 @@ mod tests { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("reservation v1 decode failed: {error}"), }; - assert_eq!( - snapshot.kind, - crate::decoder::metadata::metaplex_token_metadata::ReservationListAccountKind::V1 - ); + assert_eq!(snapshot.kind, crate::DcMetadataMtmReservationListAccountKind::V1); assert_eq!(snapshot.supply_snapshot, std::option::Option::Some(9)); assert_eq!(snapshot.total_reservation_spots, 3); let mut v2 = vec![5u8]; @@ -2456,7 +2710,7 @@ mod tests { v2.extend_from_slice(&11u64.to_le_bytes()); v2.extend_from_slice(&5u64.to_le_bytes()); let snapshot = - match crate::decoder::metadata::metaplex_token_metadata::decode_reservation_list_account( + match crate::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &resource.to_string(), @@ -2465,10 +2719,7 @@ mod tests { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("reservation v2 decode failed: {error}"), }; - assert_eq!( - snapshot.kind, - crate::decoder::metadata::metaplex_token_metadata::ReservationListAccountKind::V2 - ); + assert_eq!(snapshot.kind, crate::DcMetadataMtmReservationListAccountKind::V2); assert_eq!(snapshot.reservations[0].spots_remaining, u64::MAX); assert_eq!(snapshot.total_reservation_spots, 11); assert_eq!(snapshot.current_reservation_spots, 5); @@ -2493,19 +2744,14 @@ mod tests { mpl_token_metadata::types::Key::EditionMarkerV2, mpl_token_metadata::types::Key::HolderDelegate, ]; - assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::METADATA_ACCOUNT_LAYOUT_AUDIT.len(), - variants.len() - ); + assert_eq!(crate::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT.len(), variants.len()); for (index, variant) in variants.iter().enumerate() { let bytes = match borsh_0_10::to_vec(variant) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("key serialization failed: {error}"), }; assert_eq!(bytes, vec![index as u8]); - let entry = - crate::decoder::metadata::metaplex_token_metadata::METADATA_ACCOUNT_LAYOUT_AUDIT - [index]; + let entry = crate::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT[index]; assert_eq!(entry.discriminant, index as u8); assert!(!entry.key_name.is_empty()); assert!(!entry.decoder.is_empty()); @@ -2517,9 +2763,7 @@ mod tests { fn account_audit_matrix_covers_every_key_without_duplicate_discriminants() { let mut discriminants = std::collections::BTreeSet::new(); let mut names = std::collections::BTreeSet::new(); - for entry in - crate::decoder::metadata::metaplex_token_metadata::METADATA_ACCOUNT_LAYOUT_AUDIT - { + for entry in crate::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT { assert!(discriminants.insert(entry.discriminant)); assert!(names.insert(entry.key_name)); if entry.discriminant == 0 { @@ -2539,10 +2783,7 @@ mod tests { std::option::Option::Some(value) => value, std::option::Option::None => panic!("account_key_inventory missing"), }; - assert_eq!( - inventory.len(), - crate::decoder::metadata::metaplex_token_metadata::METADATA_ACCOUNT_LAYOUT_AUDIT.len() - ); + assert_eq!(inventory.len(), crate::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT.len()); for (index, item) in inventory.iter().enumerate() { assert_eq!( item.get("discriminant").and_then(serde_json::Value::as_u64), @@ -2550,11 +2791,15 @@ mod tests { ); assert_eq!( item.get("key").and_then(serde_json::Value::as_str), - std::option::Option::Some(crate::decoder::metadata::metaplex_token_metadata::METADATA_ACCOUNT_LAYOUT_AUDIT[index].key_name) + std::option::Option::Some( + crate::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT[index].key_name + ) ); assert_eq!( item.get("decoder").and_then(serde_json::Value::as_str), - std::option::Option::Some(crate::decoder::metadata::metaplex_token_metadata::METADATA_ACCOUNT_LAYOUT_AUDIT[index].decoder) + std::option::Option::Some( + crate::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT[index].decoder + ) ); } } @@ -2584,48 +2829,54 @@ mod tests { data.push(0); data.extend_from_slice(&0u32.to_le_bytes()); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_reservation_list_account( + crate::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account( &solana_pubkey::Pubkey::new_unique().to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &resource.to_string(), &data ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidReservationListPda) + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidReservationListPda + ) ); let mut wrong_key = data.clone(); wrong_key[0] = 4; assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_reservation_list_account( + crate::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &resource.to_string(), &wrong_key ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidReservationListKey) + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidReservationListKey + ) ); let mut too_many = data.clone(); too_many[34..38].copy_from_slice(&201u32.to_le_bytes()); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_reservation_list_account( + crate::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &resource.to_string(), &too_many ), std::result::Result::Err( - crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::ReservationListBoundsExceeded + crate::DcMetadataMtmMetadataAccountDecodeError::ReservationListBoundsExceeded ) ); let mut suffix = data.clone(); suffix.push(1); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::decode_reservation_list_account( + crate::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account( &account.to_string(), kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, &resource.to_string(), &suffix ), - std::result::Result::Err(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountDecodeError::InvalidMetadataLayout) + std::result::Result::Err( + crate::DcMetadataMtmMetadataAccountDecodeError::InvalidMetadataLayout + ) ); } } diff --git a/kb-lib/src/decoder/metadata/metaplex_token_metadata/canonical.rs b/kb-lib/src/decoder/metadata/metaplex_token_metadata/canonical.rs index 702ec94..bf350e7 100644 --- a/kb-lib/src/decoder/metadata/metaplex_token_metadata/canonical.rs +++ b/kb-lib/src/decoder/metadata/metaplex_token_metadata/canonical.rs @@ -5,7 +5,7 @@ /// Lifecycle class of one decoded Metaplex account layout. #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum CanonicalAccountLifecycle { +pub enum DcMetadataMtmCanonicalAccountLifecycle { /// Current account layout used by supported runtime flows. Active, /// Published account layout whose runtime surface is still experimental. @@ -16,7 +16,7 @@ pub enum CanonicalAccountLifecycle { /// Materialization policy attached to one canonical account snapshot. #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum CanonicalMaterializationPolicy { +pub enum DcMetadataMtmCanonicalMaterializationPolicy { /// Materialize the latest committed state of an active account. ActiveState, /// Materialize historical state with explicit lifecycle provenance. @@ -25,7 +25,7 @@ pub enum CanonicalMaterializationPolicy { /// Execution policy attached to one canonical account layout. #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum CanonicalExecutionPolicy { +pub enum DcMetadataMtmCanonicalExecutionPolicy { /// The layout belongs to current operations that may later be executable. CurrentCandidate, /// The layout belongs to an experimental operation requiring explicit activation. @@ -36,7 +36,7 @@ pub enum CanonicalExecutionPolicy { /// Origin of one canonical account observation. #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum CanonicalObservationSource { +pub enum DcMetadataMtmCanonicalObservationSource { /// Account observed from a live subscription or direct live read. Live, /// Account reconstructed while replaying already stored transactions. @@ -51,9 +51,9 @@ pub enum CanonicalObservationSource { /// Provenance retained for one canonical account observation. #[derive(Clone, Debug, Eq, PartialEq)] -pub struct CanonicalAccountProvenance { +pub struct DcMetadataMtmCanonicalAccountProvenance { /// Observation source. - pub source: CanonicalObservationSource, + pub source: DcMetadataMtmCanonicalObservationSource, /// Slot associated with the account state when known. pub slot: std::option::Option, /// Provider write version when available. @@ -70,7 +70,7 @@ pub struct CanonicalAccountProvenance { /// Stable identity and policy of one canonical Metaplex account snapshot. #[derive(Clone, Debug, Eq, PartialEq)] -pub struct CanonicalAccountIdentity { +pub struct DcMetadataMtmCanonicalAccountIdentity { /// Stable identity formed from program id and canonical account address. pub stable_id: String, /// Canonical Metaplex Token Metadata program id. @@ -84,74 +84,73 @@ pub struct CanonicalAccountIdentity { /// Internal canonical-model version. pub canonical_version: u16, /// Published lifecycle class. - pub lifecycle: CanonicalAccountLifecycle, + pub lifecycle: DcMetadataMtmCanonicalAccountLifecycle, /// Materialization policy, including historical backfill state. - pub materialization: CanonicalMaterializationPolicy, + pub materialization: DcMetadataMtmCanonicalMaterializationPolicy, /// Execution policy separated from materialization. - pub execution: CanonicalExecutionPolicy, + pub execution: DcMetadataMtmCanonicalExecutionPolicy, } /// Typed state carried by one canonical Metaplex account snapshot. #[derive(Clone, Debug, PartialEq)] -pub enum CanonicalMetadataAccountState { +pub enum DcMetadataMtmCanonicalMetadataAccountState { /// Metadata account state. - Metadata(crate::decoder::metadata::metaplex_token_metadata::MetadataAccountSnapshot), + Metadata(crate::DcMetadataMtmMetadataAccountSnapshot), /// Master Edition or printed Edition state. - Edition(crate::decoder::metadata::metaplex_token_metadata::EditionAccountSnapshot), + Edition(crate::DcMetadataMtmEditionAccountSnapshot), /// Edition Marker state. - EditionMarker(crate::decoder::metadata::metaplex_token_metadata::EditionMarkerAccountSnapshot), + EditionMarker(crate::DcMetadataMtmEditionMarkerAccountSnapshot), /// Programmable Token Record state. - TokenRecord(crate::decoder::metadata::metaplex_token_metadata::TokenRecordAccountSnapshot), + TokenRecord(crate::DcMetadataMtmTokenRecordAccountSnapshot), /// Metadata or holder delegate state. - DelegateRecord( - crate::decoder::metadata::metaplex_token_metadata::DelegateRecordAccountSnapshot, - ), + DelegateRecord(crate::DcMetadataMtmDelegateRecordAccountSnapshot), /// Collection or use authority state. - AuthorityRecord( - crate::decoder::metadata::metaplex_token_metadata::AuthorityRecordAccountSnapshot, - ), + AuthorityRecord(crate::DcMetadataMtmAuthorityRecordAccountSnapshot), /// Token-owned escrow state. - TokenOwnedEscrow( - crate::decoder::metadata::metaplex_token_metadata::TokenOwnedEscrowAccountSnapshot, - ), + TokenOwnedEscrow(crate::DcMetadataMtmTokenOwnedEscrowAccountSnapshot), /// Historical Reservation List state. - ReservationList( - crate::decoder::metadata::metaplex_token_metadata::ReservationListAccountSnapshot, - ), + ReservationList(crate::DcMetadataMtmReservationListAccountSnapshot), } /// Canonical envelope used by future materializers and stateful replay. #[derive(Clone, Debug, PartialEq)] -pub struct CanonicalMetadataAccountSnapshot { +pub struct DcMetadataMtmCanonicalMetadataAccountSnapshot { /// Stable identity and lifecycle policy. - pub identity: CanonicalAccountIdentity, + pub identity: DcMetadataMtmCanonicalAccountIdentity, /// Observation provenance. - pub provenance: CanonicalAccountProvenance, + pub provenance: DcMetadataMtmCanonicalAccountProvenance, /// Typed bounded state. - pub state: CanonicalMetadataAccountState, + pub state: DcMetadataMtmCanonicalMetadataAccountState, } fn canonical_identity( account: &str, layout: &str, discriminant: u8, - lifecycle: CanonicalAccountLifecycle, -) -> CanonicalAccountIdentity { + lifecycle: DcMetadataMtmCanonicalAccountLifecycle, +) -> DcMetadataMtmCanonicalAccountIdentity { let program_id = kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID.to_string(); let materialization = match lifecycle { - CanonicalAccountLifecycle::Historical => CanonicalMaterializationPolicy::HistoricalState, - CanonicalAccountLifecycle::Active | CanonicalAccountLifecycle::ActiveExperimental => { - CanonicalMaterializationPolicy::ActiveState + DcMetadataMtmCanonicalAccountLifecycle::Historical => { + DcMetadataMtmCanonicalMaterializationPolicy::HistoricalState + }, + DcMetadataMtmCanonicalAccountLifecycle::Active + | DcMetadataMtmCanonicalAccountLifecycle::ActiveExperimental => { + DcMetadataMtmCanonicalMaterializationPolicy::ActiveState }, }; let execution = match lifecycle { - CanonicalAccountLifecycle::Historical => CanonicalExecutionPolicy::NeverHistorical, - CanonicalAccountLifecycle::Active => CanonicalExecutionPolicy::CurrentCandidate, - CanonicalAccountLifecycle::ActiveExperimental => { - CanonicalExecutionPolicy::ExperimentalCandidate + DcMetadataMtmCanonicalAccountLifecycle::Historical => { + DcMetadataMtmCanonicalExecutionPolicy::NeverHistorical + }, + DcMetadataMtmCanonicalAccountLifecycle::Active => { + DcMetadataMtmCanonicalExecutionPolicy::CurrentCandidate + }, + DcMetadataMtmCanonicalAccountLifecycle::ActiveExperimental => { + DcMetadataMtmCanonicalExecutionPolicy::ExperimentalCandidate }, }; - return CanonicalAccountIdentity { + return DcMetadataMtmCanonicalAccountIdentity { stable_id: format!("{program_id}:{account}"), program_id, account: account.to_string(), @@ -164,102 +163,102 @@ fn canonical_identity( }; } -impl CanonicalMetadataAccountSnapshot { +impl DcMetadataMtmCanonicalMetadataAccountSnapshot { /// Wraps one Metadata account snapshot with stable identity and provenance. pub fn from_metadata( - snapshot: crate::decoder::metadata::metaplex_token_metadata::MetadataAccountSnapshot, - provenance: CanonicalAccountProvenance, + snapshot: crate::DcMetadataMtmMetadataAccountSnapshot, + provenance: DcMetadataMtmCanonicalAccountProvenance, ) -> Self { let identity = canonical_identity( &snapshot.account, "MetadataV1", mpl_token_metadata::types::Key::MetadataV1 as u8, - CanonicalAccountLifecycle::Active, + DcMetadataMtmCanonicalAccountLifecycle::Active, ); return Self { identity, provenance, - state: CanonicalMetadataAccountState::Metadata(snapshot), + state: DcMetadataMtmCanonicalMetadataAccountState::Metadata(snapshot), }; } /// Wraps one Edition or Master Edition snapshot with exact lifecycle policy. pub fn from_edition( - snapshot: crate::decoder::metadata::metaplex_token_metadata::EditionAccountSnapshot, - provenance: CanonicalAccountProvenance, + snapshot: crate::DcMetadataMtmEditionAccountSnapshot, + provenance: DcMetadataMtmCanonicalAccountProvenance, ) -> Self { let (layout, discriminant, lifecycle) = match snapshot.kind { - crate::decoder::metadata::metaplex_token_metadata::EditionAccountKind::MasterEditionV1 => ( + crate::DcMetadataMtmEditionAccountKind::MasterEditionV1 => ( "MasterEditionV1", mpl_token_metadata::types::Key::MasterEditionV1 as u8, - CanonicalAccountLifecycle::Historical, + DcMetadataMtmCanonicalAccountLifecycle::Historical, ), - crate::decoder::metadata::metaplex_token_metadata::EditionAccountKind::MasterEditionV2 => ( + crate::DcMetadataMtmEditionAccountKind::MasterEditionV2 => ( "MasterEditionV2", mpl_token_metadata::types::Key::MasterEditionV2 as u8, - CanonicalAccountLifecycle::Active, + DcMetadataMtmCanonicalAccountLifecycle::Active, ), - crate::decoder::metadata::metaplex_token_metadata::EditionAccountKind::EditionV1 => ( + crate::DcMetadataMtmEditionAccountKind::EditionV1 => ( "EditionV1", mpl_token_metadata::types::Key::EditionV1 as u8, - CanonicalAccountLifecycle::Active, + DcMetadataMtmCanonicalAccountLifecycle::Active, ), }; let identity = canonical_identity(&snapshot.account, layout, discriminant, lifecycle); return Self { identity, provenance, - state: CanonicalMetadataAccountState::Edition(snapshot), + state: DcMetadataMtmCanonicalMetadataAccountState::Edition(snapshot), }; } /// Wraps one Edition Marker snapshot with exact lifecycle policy. pub fn from_edition_marker( - snapshot: crate::decoder::metadata::metaplex_token_metadata::EditionMarkerAccountSnapshot, - provenance: CanonicalAccountProvenance, + snapshot: crate::DcMetadataMtmEditionMarkerAccountSnapshot, + provenance: DcMetadataMtmCanonicalAccountProvenance, ) -> Self { let (layout, discriminant, lifecycle) = match snapshot.kind { - crate::decoder::metadata::metaplex_token_metadata::EditionMarkerAccountKind::EditionMarkerV1 => ( + crate::DcMetadataMtmEditionMarkerAccountKind::EditionMarkerV1 => ( "EditionMarker", mpl_token_metadata::types::Key::EditionMarker as u8, - CanonicalAccountLifecycle::Active, + DcMetadataMtmCanonicalAccountLifecycle::Active, ), - crate::decoder::metadata::metaplex_token_metadata::EditionMarkerAccountKind::EditionMarkerV2 => ( + crate::DcMetadataMtmEditionMarkerAccountKind::EditionMarkerV2 => ( "EditionMarkerV2", mpl_token_metadata::types::Key::EditionMarkerV2 as u8, - CanonicalAccountLifecycle::ActiveExperimental, + DcMetadataMtmCanonicalAccountLifecycle::ActiveExperimental, ), }; let identity = canonical_identity(&snapshot.account, layout, discriminant, lifecycle); return Self { identity, provenance, - state: CanonicalMetadataAccountState::EditionMarker(snapshot), + state: DcMetadataMtmCanonicalMetadataAccountState::EditionMarker(snapshot), }; } /// Wraps one Token Record snapshot. pub fn from_token_record( - snapshot: crate::decoder::metadata::metaplex_token_metadata::TokenRecordAccountSnapshot, - provenance: CanonicalAccountProvenance, + snapshot: crate::DcMetadataMtmTokenRecordAccountSnapshot, + provenance: DcMetadataMtmCanonicalAccountProvenance, ) -> Self { let identity = canonical_identity( &snapshot.account, "TokenRecord", mpl_token_metadata::types::Key::TokenRecord as u8, - CanonicalAccountLifecycle::Active, + DcMetadataMtmCanonicalAccountLifecycle::Active, ); return Self { identity, provenance, - state: CanonicalMetadataAccountState::TokenRecord(snapshot), + state: DcMetadataMtmCanonicalMetadataAccountState::TokenRecord(snapshot), }; } /// Wraps one Metadata or Holder Delegate snapshot. pub fn from_delegate_record( - snapshot: crate::decoder::metadata::metaplex_token_metadata::DelegateRecordAccountSnapshot, - provenance: CanonicalAccountProvenance, + snapshot: crate::DcMetadataMtmDelegateRecordAccountSnapshot, + provenance: DcMetadataMtmCanonicalAccountProvenance, ) -> Self { let (layout, discriminant) = if snapshot.kind == "MetadataDelegateRecord" { ("MetadataDelegate", mpl_token_metadata::types::Key::MetadataDelegate as u8) @@ -270,19 +269,19 @@ impl CanonicalMetadataAccountSnapshot { &snapshot.account, layout, discriminant, - CanonicalAccountLifecycle::Active, + DcMetadataMtmCanonicalAccountLifecycle::Active, ); return Self { identity, provenance, - state: CanonicalMetadataAccountState::DelegateRecord(snapshot), + state: DcMetadataMtmCanonicalMetadataAccountState::DelegateRecord(snapshot), }; } /// Wraps one Collection or Use Authority snapshot. pub fn from_authority_record( - snapshot: crate::decoder::metadata::metaplex_token_metadata::AuthorityRecordAccountSnapshot, - provenance: CanonicalAccountProvenance, + snapshot: crate::DcMetadataMtmAuthorityRecordAccountSnapshot, + provenance: DcMetadataMtmCanonicalAccountProvenance, ) -> Self { let (layout, discriminant) = if snapshot.kind == "CollectionAuthorityRecord" { ( @@ -296,43 +295,43 @@ impl CanonicalMetadataAccountSnapshot { &snapshot.account, layout, discriminant, - CanonicalAccountLifecycle::Active, + DcMetadataMtmCanonicalAccountLifecycle::Active, ); return Self { identity, provenance, - state: CanonicalMetadataAccountState::AuthorityRecord(snapshot), + state: DcMetadataMtmCanonicalMetadataAccountState::AuthorityRecord(snapshot), }; } /// Wraps one Token Owned Escrow snapshot. pub fn from_token_owned_escrow( - snapshot: crate::decoder::metadata::metaplex_token_metadata::TokenOwnedEscrowAccountSnapshot, - provenance: CanonicalAccountProvenance, + snapshot: crate::DcMetadataMtmTokenOwnedEscrowAccountSnapshot, + provenance: DcMetadataMtmCanonicalAccountProvenance, ) -> Self { let identity = canonical_identity( &snapshot.account, "TokenOwnedEscrow", mpl_token_metadata::types::Key::TokenOwnedEscrow as u8, - CanonicalAccountLifecycle::Active, + DcMetadataMtmCanonicalAccountLifecycle::Active, ); return Self { identity, provenance, - state: CanonicalMetadataAccountState::TokenOwnedEscrow(snapshot), + state: DcMetadataMtmCanonicalMetadataAccountState::TokenOwnedEscrow(snapshot), }; } /// Wraps one historical Reservation List snapshot as materializable historical state. pub fn from_reservation_list( - snapshot: crate::decoder::metadata::metaplex_token_metadata::ReservationListAccountSnapshot, - provenance: CanonicalAccountProvenance, + snapshot: crate::DcMetadataMtmReservationListAccountSnapshot, + provenance: DcMetadataMtmCanonicalAccountProvenance, ) -> Self { let (layout, discriminant) = match snapshot.kind { - crate::decoder::metadata::metaplex_token_metadata::ReservationListAccountKind::V1 => { + crate::DcMetadataMtmReservationListAccountKind::V1 => { ("ReservationListV1", mpl_token_metadata::types::Key::ReservationListV1 as u8) }, - crate::decoder::metadata::metaplex_token_metadata::ReservationListAccountKind::V2 => { + crate::DcMetadataMtmReservationListAccountKind::V2 => { ("ReservationListV2", mpl_token_metadata::types::Key::ReservationListV2 as u8) }, }; @@ -340,12 +339,12 @@ impl CanonicalMetadataAccountSnapshot { &snapshot.account, layout, discriminant, - CanonicalAccountLifecycle::Historical, + DcMetadataMtmCanonicalAccountLifecycle::Historical, ); return Self { identity, provenance, - state: CanonicalMetadataAccountState::ReservationList(snapshot), + state: DcMetadataMtmCanonicalMetadataAccountState::ReservationList(snapshot), }; } } @@ -354,10 +353,10 @@ impl CanonicalMetadataAccountSnapshot { mod tests { #[test] fn historical_state_is_materializable_but_never_executable() { - let snapshot = crate::decoder::metadata::metaplex_token_metadata::ReservationListAccountSnapshot { + let snapshot = crate::DcMetadataMtmReservationListAccountSnapshot { account: "reservation-account".to_string(), bump: 1, - kind: crate::decoder::metadata::metaplex_token_metadata::ReservationListAccountKind::V1, + kind: crate::DcMetadataMtmReservationListAccountKind::V1, master_edition: "master-edition".to_string(), resource: "resource".to_string(), supply_snapshot: std::option::Option::Some(7), @@ -366,8 +365,8 @@ mod tests { current_reservation_spots: 0, payload_json: serde_json::json!({}), }; - let provenance = super::CanonicalAccountProvenance { - source: super::CanonicalObservationSource::Backfill, + let provenance = super::DcMetadataMtmCanonicalAccountProvenance { + source: super::DcMetadataMtmCanonicalObservationSource::Backfill, slot: std::option::Option::Some(42), write_version: std::option::Option::None, signature: std::option::Option::Some("historical-signature".to_string()), @@ -375,21 +374,31 @@ mod tests { inner_instruction_index: std::option::Option::None, committed: true, }; - let canonical = - super::CanonicalMetadataAccountSnapshot::from_reservation_list(snapshot, provenance); - assert_eq!(canonical.identity.lifecycle, super::CanonicalAccountLifecycle::Historical); + let canonical = super::DcMetadataMtmCanonicalMetadataAccountSnapshot::from_reservation_list( + snapshot, provenance, + ); + assert_eq!( + canonical.identity.lifecycle, + super::DcMetadataMtmCanonicalAccountLifecycle::Historical + ); assert_eq!( canonical.identity.materialization, - super::CanonicalMaterializationPolicy::HistoricalState + super::DcMetadataMtmCanonicalMaterializationPolicy::HistoricalState + ); + assert_eq!( + canonical.identity.execution, + super::DcMetadataMtmCanonicalExecutionPolicy::NeverHistorical + ); + assert_eq!( + canonical.provenance.source, + super::DcMetadataMtmCanonicalObservationSource::Backfill ); - assert_eq!(canonical.identity.execution, super::CanonicalExecutionPolicy::NeverHistorical); - assert_eq!(canonical.provenance.source, super::CanonicalObservationSource::Backfill); assert!(canonical.identity.stable_id.ends_with(":reservation-account")); } #[test] fn active_and_experimental_layouts_keep_distinct_policies() { - let metadata = crate::decoder::metadata::metaplex_token_metadata::MetadataAccountSnapshot { + let metadata = crate::DcMetadataMtmMetadataAccountSnapshot { account: "metadata-account".to_string(), bump: 1, mint: "mint".to_string(), @@ -402,8 +411,8 @@ mod tests { is_mutable: true, payload_json: serde_json::json!({}), }; - let provenance = super::CanonicalAccountProvenance { - source: super::CanonicalObservationSource::Live, + let provenance = super::DcMetadataMtmCanonicalAccountProvenance { + source: super::DcMetadataMtmCanonicalObservationSource::Live, slot: std::option::Option::Some(1), write_version: std::option::Option::Some(2), signature: std::option::Option::None, @@ -411,14 +420,21 @@ mod tests { inner_instruction_index: std::option::Option::None, committed: true, }; - let canonical = - super::CanonicalMetadataAccountSnapshot::from_metadata(metadata, provenance); - assert_eq!(canonical.identity.lifecycle, super::CanonicalAccountLifecycle::Active); + let canonical = super::DcMetadataMtmCanonicalMetadataAccountSnapshot::from_metadata( + metadata, provenance, + ); + assert_eq!( + canonical.identity.lifecycle, + super::DcMetadataMtmCanonicalAccountLifecycle::Active + ); assert_eq!( canonical.identity.materialization, - super::CanonicalMaterializationPolicy::ActiveState + super::DcMetadataMtmCanonicalMaterializationPolicy::ActiveState + ); + assert_eq!( + canonical.identity.execution, + super::DcMetadataMtmCanonicalExecutionPolicy::CurrentCandidate ); - assert_eq!(canonical.identity.execution, super::CanonicalExecutionPolicy::CurrentCandidate); assert_eq!(canonical.identity.discriminant, 4); assert_eq!(canonical.identity.canonical_version, 1); } diff --git a/kb-lib/src/decoder/metadata/metaplex_token_metadata/constants.rs b/kb-lib/src/decoder/metadata/metaplex_token_metadata/constants.rs index e169601..a8bcb59 100644 --- a/kb-lib/src/decoder/metadata/metaplex_token_metadata/constants.rs +++ b/kb-lib/src/decoder/metadata/metaplex_token_metadata/constants.rs @@ -4,254 +4,325 @@ //! Internal constants for Metaplex Token Metadata decoding. /// Stable decoder surface code. -pub(crate) const SURFACE_CODE: &str = "metadata_metaplex_token_metadata"; +pub(crate) const DC_METADATA_MTM_SURFACE_CODE: &str = "metadata_metaplex_token_metadata"; /// Maximum retained instruction payload size. -pub(crate) const MAX_INSTRUCTION_BYTES: usize = 16_384; +pub(crate) const DC_METADATA_MTM_MAX_INSTRUCTION_BYTES: usize = 16_384; /// Maximum encoded base64 instruction payload size. -pub(crate) const MAX_BASE64_BYTES: usize = 21_852; +pub(crate) const DC_METADATA_MTM_MAX_BASE64_BYTES: usize = 21_852; /// Maximum number of instruction accounts accepted by this decoder. -pub(crate) const MAX_INSTRUCTION_ACCOUNTS: usize = 64; +pub(crate) const DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS: usize = 64; /// Number of bytes retained in malformed-wire diagnostics. -pub(crate) const DIAGNOSTIC_PREFIX_BYTES: usize = 32; +pub(crate) const DC_METADATA_MTM_DIAGNOSTIC_PREFIX_BYTES: usize = 32; /// Stable event payload contract version. -pub(crate) const EVENT_VERSION: u32 = 1; +pub(crate) const DC_METADATA_MTM_EVENT_VERSION: u32 = 1; /// Deprecated Create Master Edition discriminator. -pub(crate) const DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR: u8 = 2; +pub(crate) const DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR: u8 = 2; /// Deprecated Set Reservation List discriminator. -pub(crate) const DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR: u8 = 5; +pub(crate) const DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR: u8 = 5; /// Deprecated Create Reservation List discriminator. -pub(crate) const DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR: u8 = 6; +pub(crate) const DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR: u8 = 6; /// Deprecated Mint Printing Tokens Via Token discriminator. -pub(crate) const DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR: u8 = 8; +pub(crate) const DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR: u8 = 8; /// Deprecated Mint Printing Tokens discriminator. -pub(crate) const DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR: u8 = 9; +pub(crate) const DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR: u8 = 9; /// Historical Create Master Edition discriminator. -pub(crate) const CREATE_MASTER_EDITION_DISCRIMINATOR: u8 = 10; +pub(crate) const DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR: u8 = 10; /// Deprecated printing-token mint-new-edition discriminator. -pub(crate) const DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR: u8 = 3; +pub(crate) const DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR: u8 = + 3; /// Historical Create Metadata Account discriminator. -pub(crate) const CREATE_METADATA_ACCOUNT_DISCRIMINATOR: u8 = 0; +pub(crate) const DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR: u8 = 0; /// Historical Update Metadata Account discriminator. -pub(crate) const UPDATE_METADATA_ACCOUNT_DISCRIMINATOR: u8 = 1; +pub(crate) const DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR: u8 = 1; /// Historical Create Metadata Account V2 discriminator. -pub(crate) const CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR: u8 = 16; +pub(crate) const DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR: u8 = 16; /// Create Metadata Account V3 discriminator. -pub(crate) const CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR: u8 = 33; +pub(crate) const DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR: u8 = 33; /// Update Metadata Account V2 discriminator. -pub(crate) const UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR: u8 = 15; +pub(crate) const DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR: u8 = 15; /// Verify Collection discriminator. -pub(crate) const VERIFY_COLLECTION_DISCRIMINATOR: u8 = 18; +pub(crate) const DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR: u8 = 18; /// Unverify Collection discriminator. -pub(crate) const UNVERIFY_COLLECTION_DISCRIMINATOR: u8 = 22; +pub(crate) const DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR: u8 = 22; /// Set And Verify Collection discriminator. -pub(crate) const SET_AND_VERIFY_COLLECTION_DISCRIMINATOR: u8 = 25; +pub(crate) const DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR: u8 = 25; /// Approve Collection Authority discriminator. -pub(crate) const APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR: u8 = 23; +pub(crate) const DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR: u8 = 23; /// Revoke Collection Authority discriminator. -pub(crate) const REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR: u8 = 24; +pub(crate) const DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR: u8 = 24; /// Verify Sized Collection Item discriminator. -pub(crate) const VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR: u8 = 30; +pub(crate) const DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR: u8 = 30; /// Unverify Sized Collection Item discriminator. -pub(crate) const UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR: u8 = 31; +pub(crate) const DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR: u8 = 31; /// Set And Verify Sized Collection Item discriminator. -pub(crate) const SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR: u8 = 32; +pub(crate) const DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR: u8 = 32; /// Sign Metadata discriminator. -pub(crate) const SIGN_METADATA_DISCRIMINATOR: u8 = 7; +pub(crate) const DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR: u8 = 7; /// Update Primary Sale Happened Via Token discriminator. -pub(crate) const UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR: u8 = 4; +pub(crate) const DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR: u8 = 4; /// Utilize discriminator. -pub(crate) const UTILIZE_DISCRIMINATOR: u8 = 19; +pub(crate) const DC_METADATA_MTM_UTILIZE_DISCRIMINATOR: u8 = 19; /// Approve Use Authority discriminator. -pub(crate) const APPROVE_USE_AUTHORITY_DISCRIMINATOR: u8 = 20; +pub(crate) const DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR: u8 = 20; /// Revoke Use Authority discriminator. -pub(crate) const REVOKE_USE_AUTHORITY_DISCRIMINATOR: u8 = 21; +pub(crate) const DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR: u8 = 21; /// Puff Metadata discriminator. -pub(crate) const PUFF_METADATA_DISCRIMINATOR: u8 = 14; +pub(crate) const DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR: u8 = 14; /// Freeze Delegated Account discriminator. -pub(crate) const FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR: u8 = 26; +pub(crate) const DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR: u8 = 26; /// Thaw Delegated Account discriminator. -pub(crate) const THAW_DELEGATED_ACCOUNT_DISCRIMINATOR: u8 = 27; +pub(crate) const DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR: u8 = 27; /// Remove Creator Verification discriminator. -pub(crate) const REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR: u8 = 28; +pub(crate) const DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR: u8 = 28; /// Set Token Standard discriminator. -pub(crate) const SET_TOKEN_STANDARD_DISCRIMINATOR: u8 = 35; +pub(crate) const DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR: u8 = 35; /// Mint New Edition From Master Edition Via Token discriminator. -pub(crate) const MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR: u8 = 11; +pub(crate) const DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR: u8 = + 11; /// Mint New Edition From Master Edition Via Vault Proxy discriminator. -pub(crate) const MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR: u8 = 13; +pub(crate) const DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR: u8 = 13; /// Convert Master Edition V1 to V2 discriminator. -pub(crate) const CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR: u8 = 12; +pub(crate) const DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR: u8 = 12; /// Create Master Edition V3 discriminator. -pub(crate) const CREATE_MASTER_EDITION_V3_DISCRIMINATOR: u8 = 17; +pub(crate) const DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR: u8 = 17; /// Set Collection Size discriminator. -pub(crate) const SET_COLLECTION_SIZE_DISCRIMINATOR: u8 = 34; +pub(crate) const DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR: u8 = 34; /// Bubblegum Set Collection Size discriminator. -pub(crate) const BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR: u8 = 36; +pub(crate) const DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR: u8 = 36; /// Create Escrow Account discriminator. -pub(crate) const CREATE_ESCROW_ACCOUNT_DISCRIMINATOR: u8 = 38; +pub(crate) const DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR: u8 = 38; /// Close Escrow Account discriminator. -pub(crate) const CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR: u8 = 39; +pub(crate) const DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR: u8 = 39; /// Transfer Out Of Escrow discriminator. -pub(crate) const TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR: u8 = 40; +pub(crate) const DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR: u8 = 40; /// Collect discriminator. -pub(crate) const COLLECT_DISCRIMINATOR: u8 = 54; +pub(crate) const DC_METADATA_MTM_COLLECT_DISCRIMINATOR: u8 = 54; /// Historical Burn NFT discriminator. -pub(crate) const BURN_NFT_DISCRIMINATOR: u8 = 29; +pub(crate) const DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR: u8 = 29; /// Historical Burn Edition NFT discriminator. -pub(crate) const BURN_EDITION_NFT_DISCRIMINATOR: u8 = 37; +pub(crate) const DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR: u8 = 37; /// Burn discriminator. -pub(crate) const BURN_DISCRIMINATOR: u8 = 41; +pub(crate) const DC_METADATA_MTM_BURN_DISCRIMINATOR: u8 = 41; /// Lock discriminator. -pub(crate) const LOCK_DISCRIMINATOR: u8 = 46; +pub(crate) const DC_METADATA_MTM_LOCK_DISCRIMINATOR: u8 = 46; /// Unlock discriminator. -pub(crate) const UNLOCK_DISCRIMINATOR: u8 = 47; +pub(crate) const DC_METADATA_MTM_UNLOCK_DISCRIMINATOR: u8 = 47; /// Transfer discriminator. -pub(crate) const TRANSFER_DISCRIMINATOR: u8 = 49; +pub(crate) const DC_METADATA_MTM_TRANSFER_DISCRIMINATOR: u8 = 49; /// Close Accounts discriminator. -pub(crate) const CLOSE_ACCOUNTS_DISCRIMINATOR: u8 = 57; +pub(crate) const DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR: u8 = 57; /// Modern Create discriminator. -pub(crate) const CREATE_DISCRIMINATOR: u8 = 42; +pub(crate) const DC_METADATA_MTM_CREATE_DISCRIMINATOR: u8 = 42; /// Modern Mint discriminator. -pub(crate) const MINT_DISCRIMINATOR: u8 = 43; +pub(crate) const DC_METADATA_MTM_MINT_DISCRIMINATOR: u8 = 43; /// Modern Print discriminator. -pub(crate) const PRINT_DISCRIMINATOR: u8 = 55; +pub(crate) const DC_METADATA_MTM_PRINT_DISCRIMINATOR: u8 = 55; /// Modern Update discriminator. -pub(crate) const UPDATE_DISCRIMINATOR: u8 = 50; +pub(crate) const DC_METADATA_MTM_UPDATE_DISCRIMINATOR: u8 = 50; /// Modern Use discriminator. -pub(crate) const USE_DISCRIMINATOR: u8 = 51; +pub(crate) const DC_METADATA_MTM_USE_DISCRIMINATOR: u8 = 51; /// Modern Verify discriminator. -pub(crate) const VERIFY_DISCRIMINATOR: u8 = 52; +pub(crate) const DC_METADATA_MTM_VERIFY_DISCRIMINATOR: u8 = 52; /// Modern Unverify discriminator. -pub(crate) const UNVERIFY_DISCRIMINATOR: u8 = 53; +pub(crate) const DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR: u8 = 53; /// Migrate discriminator. -pub(crate) const MIGRATE_DISCRIMINATOR: u8 = 48; +pub(crate) const DC_METADATA_MTM_MIGRATE_DISCRIMINATOR: u8 = 48; /// Resize discriminator. -pub(crate) const RESIZE_DISCRIMINATOR: u8 = 56; +pub(crate) const DC_METADATA_MTM_RESIZE_DISCRIMINATOR: u8 = 56; /// Delegate discriminator. -pub(crate) const DELEGATE_DISCRIMINATOR: u8 = 44; +pub(crate) const DC_METADATA_MTM_DELEGATE_DISCRIMINATOR: u8 = 44; /// Revoke discriminator. -pub(crate) const REVOKE_DISCRIMINATOR: u8 = 45; +pub(crate) const DC_METADATA_MTM_REVOKE_DISCRIMINATOR: u8 = 45; /// Current pre-release instruction inventory. -pub(crate) const INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ - (CREATE_METADATA_ACCOUNT_DISCRIMINATOR, "create_metadata_account", true), +pub(crate) const DC_METADATA_MTM_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ ( - DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR, + DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR, + "create_metadata_account", + true, + ), + ( + DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR, "deprecated_create_master_edition", true, ), ( - DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR, + DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR, "deprecated_mint_new_edition_from_master_edition_via_printing_token", true, ), - (UPDATE_METADATA_ACCOUNT_DISCRIMINATOR, "update_metadata_account", true), ( - UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR, + DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR, + "update_metadata_account", + true, + ), + ( + DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR, "update_primary_sale_happened_via_token", false, ), ( - DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR, + DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR, "deprecated_set_reservation_list", true, ), ( - DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR, + DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR, "deprecated_create_reservation_list", true, ), - (SIGN_METADATA_DISCRIMINATOR, "sign_metadata", false), + (DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR, "sign_metadata", false), ( - DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR, + DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR, "deprecated_mint_printing_tokens_via_token", true, ), ( - DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR, + DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR, "deprecated_mint_printing_tokens", true, ), - (CREATE_MASTER_EDITION_DISCRIMINATOR, "create_master_edition", true), - (PUFF_METADATA_DISCRIMINATOR, "puff_metadata", false), ( - MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR, + DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR, + "create_master_edition", + true, + ), + (DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR, "puff_metadata", false), + ( + DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR, "mint_new_edition_from_master_edition_via_token", false, ), ( - MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR, + DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR, "mint_new_edition_from_master_edition_via_vault_proxy", true, ), ( - CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR, + DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR, "convert_master_edition_v1_to_v2", true, ), - (UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR, "update_metadata_account_v2", false), - (CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR, "create_metadata_account_v2", true), - (CREATE_MASTER_EDITION_V3_DISCRIMINATOR, "create_master_edition_v3", false), - (CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR, "create_metadata_account_v3", false), - (VERIFY_COLLECTION_DISCRIMINATOR, "verify_collection", false), - (UNVERIFY_COLLECTION_DISCRIMINATOR, "unverify_collection", false), - (SET_AND_VERIFY_COLLECTION_DISCRIMINATOR, "set_and_verify_collection", false), ( - APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR, + DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR, + "update_metadata_account_v2", + false, + ), + ( + DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR, + "create_metadata_account_v2", + true, + ), + ( + DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR, + "create_master_edition_v3", + false, + ), + ( + DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR, + "create_metadata_account_v3", + false, + ), + (DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR, "verify_collection", false), + (DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR, "unverify_collection", false), + ( + DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR, + "set_and_verify_collection", + false, + ), + ( + DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR, "approve_collection_authority", false, ), - (REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR, "revoke_collection_authority", false), ( - VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, + DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR, + "revoke_collection_authority", + false, + ), + ( + DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, "verify_sized_collection_item", false, ), ( - UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, + DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, "unverify_sized_collection_item", false, ), ( - SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, + DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, "set_and_verify_sized_collection_item", false, ), - (UTILIZE_DISCRIMINATOR, "utilize", false), - (APPROVE_USE_AUTHORITY_DISCRIMINATOR, "approve_use_authority", false), - (REVOKE_USE_AUTHORITY_DISCRIMINATOR, "revoke_use_authority", false), - (FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR, "freeze_delegated_account", true), - (THAW_DELEGATED_ACCOUNT_DISCRIMINATOR, "thaw_delegated_account", true), - (REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR, "remove_creator_verification", false), - (SET_TOKEN_STANDARD_DISCRIMINATOR, "set_token_standard", false), - (SET_COLLECTION_SIZE_DISCRIMINATOR, "set_collection_size", false), + (DC_METADATA_MTM_UTILIZE_DISCRIMINATOR, "utilize", false), ( - BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR, + DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR, + "approve_use_authority", + false, + ), + ( + DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR, + "revoke_use_authority", + false, + ), + ( + DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR, + "freeze_delegated_account", + true, + ), + ( + DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR, + "thaw_delegated_account", + true, + ), + ( + DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR, + "remove_creator_verification", + false, + ), + (DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR, "set_token_standard", false), + (DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR, "set_collection_size", false), + ( + DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR, "bubblegum_set_collection_size", false, ), - (CREATE_ESCROW_ACCOUNT_DISCRIMINATOR, "create_escrow_account", false), - (CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR, "close_escrow_account", false), - (TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR, "transfer_out_of_escrow", false), - (BURN_NFT_DISCRIMINATOR, "burn_nft", true), - (BURN_EDITION_NFT_DISCRIMINATOR, "burn_edition_nft", true), - (BURN_DISCRIMINATOR, "burn", false), - (CREATE_DISCRIMINATOR, "create", false), - (MINT_DISCRIMINATOR, "mint", false), - (LOCK_DISCRIMINATOR, "lock", false), - (UNLOCK_DISCRIMINATOR, "unlock", false), - (TRANSFER_DISCRIMINATOR, "transfer", false), - (COLLECT_DISCRIMINATOR, "collect", false), - (PRINT_DISCRIMINATOR, "print", false), - (UPDATE_DISCRIMINATOR, "update", false), - (USE_DISCRIMINATOR, "use", false), - (VERIFY_DISCRIMINATOR, "verify", false), - (UNVERIFY_DISCRIMINATOR, "unverify", false), - (MIGRATE_DISCRIMINATOR, "migrate", false), - (RESIZE_DISCRIMINATOR, "resize", false), - (CLOSE_ACCOUNTS_DISCRIMINATOR, "close_accounts", false), - (DELEGATE_DISCRIMINATOR, "delegate", false), - (REVOKE_DISCRIMINATOR, "revoke", false), + ( + DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR, + "create_escrow_account", + false, + ), + ( + DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR, + "close_escrow_account", + false, + ), + ( + DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR, + "transfer_out_of_escrow", + false, + ), + (DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR, "burn_nft", true), + (DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR, "burn_edition_nft", true), + (DC_METADATA_MTM_BURN_DISCRIMINATOR, "burn", false), + (DC_METADATA_MTM_CREATE_DISCRIMINATOR, "create", false), + (DC_METADATA_MTM_MINT_DISCRIMINATOR, "mint", false), + (DC_METADATA_MTM_LOCK_DISCRIMINATOR, "lock", false), + (DC_METADATA_MTM_UNLOCK_DISCRIMINATOR, "unlock", false), + (DC_METADATA_MTM_TRANSFER_DISCRIMINATOR, "transfer", false), + (DC_METADATA_MTM_COLLECT_DISCRIMINATOR, "collect", false), + (DC_METADATA_MTM_PRINT_DISCRIMINATOR, "print", false), + (DC_METADATA_MTM_UPDATE_DISCRIMINATOR, "update", false), + (DC_METADATA_MTM_USE_DISCRIMINATOR, "use", false), + (DC_METADATA_MTM_VERIFY_DISCRIMINATOR, "verify", false), + (DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR, "unverify", false), + (DC_METADATA_MTM_MIGRATE_DISCRIMINATOR, "migrate", false), + (DC_METADATA_MTM_RESIZE_DISCRIMINATOR, "resize", false), + (DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR, "close_accounts", false), + (DC_METADATA_MTM_DELEGATE_DISCRIMINATOR, "delegate", false), + (DC_METADATA_MTM_REVOKE_DISCRIMINATOR, "revoke", false), ]; /// Canonical tracing target for this decoder. -pub(crate) const TRACING_TARGET: &str = "kb-lib.decoder.metadata.metaplex_token_metadata"; +pub(crate) const DC_METADATA_MTM_TRACING_TARGET: &str = + "kb-lib.decoder.metadata.metaplex_token_metadata"; diff --git a/kb-lib/src/decoder/metadata/metaplex_token_metadata/decoder.rs b/kb-lib/src/decoder/metadata/metaplex_token_metadata/decoder.rs index abd637f..b9080cf 100644 --- a/kb-lib/src/decoder/metadata/metaplex_token_metadata/decoder.rs +++ b/kb-lib/src/decoder/metadata/metaplex_token_metadata/decoder.rs @@ -3,9 +3,9 @@ //! Exact contextual dispatch for Metaplex Token Metadata. -const SURFACES: &[crate::DecoderSurface] = &[crate::DecoderSurface { +const SURFACES: &[crate::DcApiDecoderSurface] = &[crate::DcApiDecoderSurface { program_id: kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, - surface_code: crate::decoder::metadata::metaplex_token_metadata::SURFACE_CODE, + surface_code: crate::DC_METADATA_MTM_SURFACE_CODE, priority: 100, }]; @@ -13,11 +13,9 @@ const PROGRAM_IDS: &[&str] = &[kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_ /// Exact decoder for the Metaplex Token Metadata program. #[derive(Clone, Debug, Default)] -pub struct MetadataMetaplexTokenMetadataDecoder; +pub struct DcMetadataMetaplexTokenMetadataDecoder; -impl crate::ProtocolDecoder - for crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder -{ +impl crate::DcApiProtocolDecoder for crate::DcMetadataMetaplexTokenMetadataDecoder { fn decoder_name(&self) -> &'static str { return "kb_decoder_metadata_metaplex_token_metadata"; } @@ -32,48 +30,46 @@ impl crate::ProtocolDecoder fn supports_observation( &self, - observation: &crate::ProgramObservation, - ) -> crate::DecoderSupport { - return if crate::ProtocolDecoder::handles_program_id(self, &observation.program_id) { - crate::DecoderSupport::Yes + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + return if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + crate::DcApiDecoderSupport::Yes } else { - crate::DecoderSupport::No + crate::DcApiDecoderSupport::No }; } fn decode_observation( &self, - _observation: &crate::ProgramObservation, - ) -> kb_core::Result> { + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::InstructionDecoder - for crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder -{ - fn identity(&self) -> crate::DecoderIdentity { - return crate::DecoderIdentity { - name: crate::decoder::metadata::metaplex_token_metadata::SURFACE_CODE.to_string(), +impl crate::DcApiInstructionDecoder for crate::DcMetadataMetaplexTokenMetadataDecoder { + fn identity(&self) -> crate::DcApiDecoderIdentity { + return crate::DcApiDecoderIdentity { + name: crate::DC_METADATA_MTM_SURFACE_CODE.to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn surfaces(&self) -> &'static [crate::DecoderSurface] { + fn surfaces(&self) -> &'static [crate::DcApiDecoderSurface] { return SURFACES; } - fn coverage(&self) -> std::vec::Vec { - return crate::decoder::metadata::metaplex_token_metadata::INSTRUCTION_ENTRIES + fn coverage(&self) -> std::vec::Vec { + return crate::DC_METADATA_MTM_INSTRUCTION_ENTRIES .iter() .map(|(discriminator, code, historical)| { - return crate::DecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID .to_string(), surface_code: std::option::Option::Some( - crate::decoder::metadata::metaplex_token_metadata::SURFACE_CODE.to_string(), + crate::DC_METADATA_MTM_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: (*code).to_string(), discriminator_hex: std::option::Option::Some(format!("{discriminator:02x}")), historical: *historical, @@ -82,42 +78,47 @@ impl crate::InstructionDecoder .collect(); } - fn recognize(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderRecognition { + fn recognize( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderRecognition { if input.program_id != kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID { - return crate::DecoderRecognition::incompatible(); + return crate::DcApiDecoderRecognition::incompatible(); } let discriminator = - crate::decoder::metadata::metaplex_token_metadata::payload_discriminator(input); + crate::decoder_metadata_metaplex_token_metadata_payload_discriminator(input); let entry = discriminator - .and_then(crate::decoder::metadata::metaplex_token_metadata::entry_for_discriminator); - return crate::DecoderRecognition::compatible( + .and_then(crate::decoder_metadata_metaplex_token_metadata_entry_for_discriminator); + return crate::DcApiDecoderRecognition::compatible( entry.is_some(), 100, - std::option::Option::Some( - crate::decoder::metadata::metaplex_token_metadata::SURFACE_CODE.to_string(), - ), + std::option::Option::Some(crate::DC_METADATA_MTM_SURFACE_CODE.to_string()), entry.map(|(_, code, _)| return code.to_string()), discriminator.map(|value| return format!("{value:02x}")), ); } - fn decode(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { + fn decode( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderExecutionResult { if input.program_id != kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID { - return crate::DecoderExecutionResult::unsupported(std::option::Option::None); + return crate::DcApiDecoderExecutionResult::unsupported(std::option::Option::None); } - let result = crate::decoder::metadata::metaplex_token_metadata::decode(input); + let result = crate::decoder_metadata_metaplex_token_metadata_decode(input); if matches!( result.status, - crate::DecoderOutcomeStatus::Failed | crate::DecoderOutcomeStatus::Unsupported + crate::DcApiDecoderOutcomeStatus::Failed + | crate::DcApiDecoderOutcomeStatus::Unsupported ) { tracing::error!( - target: crate::decoder::metadata::metaplex_token_metadata::TRACING_TARGET, + target: crate::DC_METADATA_MTM_TRACING_TARGET, action = "decode_failure", signature = %input.signature, slot = input.slot, instruction_path = %input.instruction_path, program_id = %input.program_id, - processor_name = crate::decoder::metadata::metaplex_token_metadata::SURFACE_CODE, + processor_name = crate::DC_METADATA_MTM_SURFACE_CODE, processor_version = env!("CARGO_PKG_VERSION"), input_key = %input.replay_input_key, result_status = ?result.status, @@ -126,7 +127,7 @@ impl crate::InstructionDecoder ); } tracing::debug!( - target: crate::decoder::metadata::metaplex_token_metadata::TRACING_TARGET, + target: crate::DC_METADATA_MTM_TRACING_TARGET, action = "decode", signature = %input.signature, instruction_path = %input.instruction_path, @@ -155,7 +156,7 @@ mod tests { account_count: usize, failed: bool, path: &str, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let keys = (0..account_count).map(|position| return serde_json::json!({ "accountIndex": position, "accountKey": format!("account{position}"), @@ -171,7 +172,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( format!("signature:{path}"), "signature", 42, @@ -205,7 +206,7 @@ mod tests { flags: &[(bool, bool)], failed: bool, path: &str, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let keys = flags .iter() .enumerate() @@ -229,7 +230,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( format!("signature:{path}"), "signature", 42, @@ -280,7 +281,7 @@ mod tests { is_mutable: true, collection_details: std::option::Option::None, }; - let mut wire = std::vec![crate::decoder::metadata::metaplex_token_metadata::CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR]; + let mut wire = std::vec![crate::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR]; let encoded = borsh_0_10::to_vec(&args); match encoded { std::result::Result::Ok(mut value) => wire.append(&mut value), @@ -298,7 +299,7 @@ mod tests { primary_sale_happened: std::option::Option::Some(true), is_mutable: std::option::Option::Some(false), }; - let mut wire = std::vec![crate::decoder::metadata::metaplex_token_metadata::UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR]; + let mut wire = std::vec![crate::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR]; let encoded = borsh_0_10::to_vec(&args); match encoded { std::result::Result::Ok(mut value) => wire.append(&mut value), @@ -312,9 +313,7 @@ mod tests { fn approve_use_authority_wire(number_of_uses: u64) -> std::vec::Vec { let args = mpl_token_metadata::instructions::ApproveUseAuthorityInstructionArgs { number_of_uses }; - let mut wire = std::vec![ - crate::decoder::metadata::metaplex_token_metadata::APPROVE_USE_AUTHORITY_DISCRIMINATOR - ]; + let mut wire = std::vec![crate::DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR]; let encoded = borsh_0_10::to_vec(&args); match encoded { std::result::Result::Ok(mut value) => wire.append(&mut value), @@ -325,8 +324,7 @@ mod tests { fn utilize_wire(number_of_uses: u64) -> std::vec::Vec { let args = mpl_token_metadata::instructions::UtilizeInstructionArgs { number_of_uses }; - let mut wire = - std::vec![crate::decoder::metadata::metaplex_token_metadata::UTILIZE_DISCRIMINATOR]; + let mut wire = std::vec![crate::DC_METADATA_MTM_UTILIZE_DISCRIMINATOR]; let encoded = borsh_0_10::to_vec(&args); match encoded { std::result::Result::Ok(mut value) => wire.append(&mut value), @@ -346,7 +344,7 @@ mod tests { } fn historical_create_v1_wire() -> std::vec::Vec { - let mut wire = std::vec![crate::decoder::metadata::metaplex_token_metadata::CREATE_METADATA_ACCOUNT_DISCRIMINATOR]; + let mut wire = std::vec![crate::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR]; match borsh_0_10::to_vec(&historical_data()) { std::result::Result::Ok(mut value) => wire.append(&mut value), std::result::Result::Err(error) => { @@ -363,7 +361,7 @@ mod tests { } fn historical_update_v1_wire() -> std::vec::Vec { - let mut wire = std::vec![crate::decoder::metadata::metaplex_token_metadata::UPDATE_METADATA_ACCOUNT_DISCRIMINATOR]; + let mut wire = std::vec![crate::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR]; let data = std::option::Option::Some(historical_data()); let authority = std::option::Option::Some([7_u8; 32]); let primary_sale = std::option::Option::Some(true); @@ -392,7 +390,7 @@ mod tests { collection: std::option::Option::None, uses: std::option::Option::None, }; - let mut wire = std::vec![crate::decoder::metadata::metaplex_token_metadata::CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR]; + let mut wire = std::vec![crate::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR]; let encoded_data = borsh_0_10::to_vec(&data); match encoded_data { std::result::Result::Ok(mut value) => wire.append(&mut value), @@ -425,7 +423,7 @@ mod tests { } fn create_master_edition_v3_wire(max_supply: std::option::Option) -> std::vec::Vec { - let mut wire = std::vec![crate::decoder::metadata::metaplex_token_metadata::CREATE_MASTER_EDITION_V3_DISCRIMINATOR]; + let mut wire = std::vec![crate::DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR]; let encoded = borsh_0_10::to_vec(&max_supply); match encoded { std::result::Result::Ok(mut value) => wire.append(&mut value), @@ -465,8 +463,7 @@ mod tests { } fn delegate_wire(args: &mpl_token_metadata::types::DelegateArgs) -> std::vec::Vec { - let mut wire = - std::vec![crate::decoder::metadata::metaplex_token_metadata::DELEGATE_DISCRIMINATOR]; + let mut wire = std::vec![crate::DC_METADATA_MTM_DELEGATE_DISCRIMINATOR]; let encoded = match borsh_0_10::BorshSerialize::try_to_vec(args) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { @@ -478,8 +475,7 @@ mod tests { } fn revoke_wire(args: &mpl_token_metadata::types::RevokeArgs) -> std::vec::Vec { - let mut wire = - std::vec![crate::decoder::metadata::metaplex_token_metadata::REVOKE_DISCRIMINATOR]; + let mut wire = std::vec![crate::DC_METADATA_MTM_REVOKE_DISCRIMINATOR]; let encoded = match borsh_0_10::BorshSerialize::try_to_vec(args) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { @@ -492,32 +488,30 @@ mod tests { #[test] fn decoder_identity_program_boundary_and_coverage_are_exact() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; assert_eq!( - crate::ProtocolDecoder::decoder_name(&decoder), + crate::DcApiProtocolDecoder::decoder_name(&decoder), "kb_decoder_metadata_metaplex_token_metadata" ); assert_eq!( - crate::ProtocolDecoder::program_ids(&decoder), + crate::DcApiProtocolDecoder::program_ids(&decoder), &[kb_program_ids::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID] ); assert_eq!( - crate::decoder::metadata::metaplex_token_metadata::TRACING_TARGET, + crate::DC_METADATA_MTM_TRACING_TARGET, "kb-lib.decoder.metadata.metaplex_token_metadata" ); - assert_eq!(crate::InstructionDecoder::coverage(&decoder).len(), 58); + assert_eq!(crate::DcApiInstructionDecoder::coverage(&decoder).len(), 58); } #[test] fn printed_edition_mint_variants_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let token = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let token = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( mint_new_edition_wire( - crate::decoder::metadata::metaplex_token_metadata::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR, + crate::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR, u64::MAX, ) .as_slice(), @@ -540,18 +534,18 @@ mod tests { "printed_edition_token", ), ); - assert_eq!(token.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(token.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( token.recognized_entry_code.as_deref(), std::option::Option::Some("mint_new_edition_from_master_edition_via_token") ); assert_eq!(token.observations[0].payload_json["parameters"]["edition"], u64::MAX); assert_eq!(token.observations[0].payload_json["accounts"][4]["role"], "edition_marker"); - let vault = crate::InstructionDecoder::decode( + let vault = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( mint_new_edition_wire( - crate::decoder::metadata::metaplex_token_metadata::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR, + crate::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR, 248, ) .as_slice(), @@ -577,7 +571,7 @@ mod tests { "printed_edition_vault", ), ); - assert_eq!(vault.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(vault.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( vault.recognized_entry_code.as_deref(), std::option::Option::Some("mint_new_edition_from_master_edition_via_vault_proxy") @@ -607,17 +601,13 @@ mod tests { decimals: std::option::Option::None, print_supply: std::option::Option::None, }; - return programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::CREATE_DISCRIMINATOR, - &args, - ); + return programmable_wire(crate::DC_METADATA_MTM_CREATE_DISCRIMINATOR, &args); } #[test] fn modern_create_decodes_exact_contract() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let result = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let result = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_create_wire().as_slice(), @@ -636,7 +626,7 @@ mod tests { "modern_create", ), ); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.recognized_entry_code.as_deref(), std::option::Option::Some("create")); assert_eq!(result.observations[0].payload_json["accounts"][0]["role"], "metadata"); assert_eq!( @@ -647,12 +637,11 @@ mod tests { #[test] fn modern_create_rejects_truncated_invalid_and_suffix_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CREATE_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_CREATE_DISCRIMINATOR], &[ (false, true), (false, true), @@ -668,8 +657,8 @@ mod tests { "modern_create_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let invalid = crate::InstructionDecoder::decode( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_create_wire().as_slice(), @@ -688,10 +677,10 @@ mod tests { "modern_create_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut suffix_wire = modern_create_wire(); suffix_wire.push(1); - let suffix = crate::InstructionDecoder::decode( + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( suffix_wire.as_slice(), @@ -710,7 +699,7 @@ mod tests { "modern_create_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } fn modern_mint_wire(amount: u64) -> std::vec::Vec { @@ -718,17 +707,13 @@ mod tests { amount, authorization_data: std::option::Option::None, }; - return programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::MINT_DISCRIMINATOR, - &args, - ); + return programmable_wire(crate::DC_METADATA_MTM_MINT_DISCRIMINATOR, &args); } #[test] fn modern_mint_decodes_exact_contract() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let result = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let result = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_mint_wire(u64::MAX).as_slice(), @@ -753,7 +738,7 @@ mod tests { "modern_mint", ), ); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.recognized_entry_code.as_deref(), std::option::Option::Some("mint")); assert_eq!(result.observations[0].payload_json["parameters"]["V1"]["amount"], u64::MAX); assert_eq!(result.observations[0].payload_json["accounts"][4]["role"], "token_record"); @@ -765,8 +750,7 @@ mod tests { #[test] fn modern_mint_rejects_truncated_invalid_and_suffix_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let flags = [ (false, true), (false, false), @@ -784,19 +768,19 @@ mod tests { (false, false), (false, false), ]; - let truncated = crate::InstructionDecoder::decode( + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::MINT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_MINT_DISCRIMINATOR], &flags, false, "modern_mint_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut invalid_flags = flags; invalid_flags[6] = (false, false); - let invalid = crate::InstructionDecoder::decode( + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_mint_wire(1).as_slice(), @@ -805,36 +789,29 @@ mod tests { "modern_mint_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut suffix_wire = modern_mint_wire(2); suffix_wire.push(1); - let suffix = crate::InstructionDecoder::decode( + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(suffix_wire.as_slice(), &flags, false, "modern_mint_suffix"), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } fn modern_print_wire_v1(edition: u64) -> std::vec::Vec { let args = mpl_token_metadata::types::PrintArgs::V1 { edition }; - return programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::PRINT_DISCRIMINATOR, - &args, - ); + return programmable_wire(crate::DC_METADATA_MTM_PRINT_DISCRIMINATOR, &args); } fn modern_print_wire_v2(edition: u64) -> std::vec::Vec { let args = mpl_token_metadata::types::PrintArgs::V2 { edition }; - return programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::PRINT_DISCRIMINATOR, - &args, - ); + return programmable_wire(crate::DC_METADATA_MTM_PRINT_DISCRIMINATOR, &args); } #[test] fn modern_print_v1_and_v2_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let flags = [ (false, true), (false, true), @@ -855,7 +832,7 @@ mod tests { (false, false), (false, false), ]; - let v1 = crate::InstructionDecoder::decode( + let v1 = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_print_wire_v1(u64::MAX).as_slice(), @@ -864,23 +841,22 @@ mod tests { "modern_print_v1", ), ); - assert_eq!(v1.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(v1.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(v1.recognized_entry_code.as_deref(), std::option::Option::Some("print")); assert_eq!(v1.observations[0].payload_json["parameters"]["V1"]["edition"], u64::MAX); assert_eq!(v1.observations[0].payload_json["accounts"][8]["role"], "edition_marker_pda"); - let v2 = crate::InstructionDecoder::decode( + let v2 = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(modern_print_wire_v2(42).as_slice(), &flags, true, "modern_print_v2"), ); - assert_eq!(v2.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(v2.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(v2.observations[0].payload_json["parameters"]["V2"]["edition"], 42); assert!(!v2.observations[0].observation_committed); } #[test] fn modern_print_rejects_truncated_invalid_and_suffix_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let flags = [ (false, true), (false, true), @@ -901,19 +877,19 @@ mod tests { (false, false), (false, false), ]; - let truncated = crate::InstructionDecoder::decode( + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::PRINT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_PRINT_DISCRIMINATOR], &flags, false, "modern_print_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut invalid_flags = flags; invalid_flags[10] = (false, false); - let invalid = crate::InstructionDecoder::decode( + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_print_wire_v1(1).as_slice(), @@ -922,14 +898,14 @@ mod tests { "modern_print_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut suffix_wire = modern_print_wire_v2(2); suffix_wire.push(1); - let suffix = crate::InstructionDecoder::decode( + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(suffix_wire.as_slice(), &flags, false, "modern_print_suffix"), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } fn modern_update_wire() -> std::vec::Vec { @@ -937,16 +913,12 @@ mod tests { collection: mpl_token_metadata::types::CollectionToggle::None, authorization_data: std::option::Option::None, }; - return programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::UPDATE_DISCRIMINATOR, - &args, - ); + return programmable_wire(crate::DC_METADATA_MTM_UPDATE_DISCRIMINATOR, &args); } #[test] fn modern_update_variants_decode_exact_contract() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let flags = [ (true, false), (false, false), @@ -960,11 +932,11 @@ mod tests { (false, false), (false, false), ]; - let result = crate::InstructionDecoder::decode( + let result = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(modern_update_wire().as_slice(), &flags, false, "modern_update"), ); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.recognized_entry_code.as_deref(), std::option::Option::Some("update")); assert_eq!( result.observations[0].payload_json["parameters"]["AsCollectionDelegateV2"]["collection"], @@ -979,8 +951,7 @@ mod tests { #[test] fn modern_update_rejects_truncated_invalid_and_suffix_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let flags = [ (true, false), (false, false), @@ -994,19 +965,19 @@ mod tests { (false, false), (false, false), ]; - let truncated = crate::InstructionDecoder::decode( + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::UPDATE_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_UPDATE_DISCRIMINATOR], &flags, false, "modern_update_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut invalid_flags = flags; invalid_flags[0] = (false, false); - let invalid = crate::InstructionDecoder::decode( + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_update_wire().as_slice(), @@ -1015,24 +986,21 @@ mod tests { "modern_update_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut suffix_wire = modern_update_wire(); suffix_wire.push(1); - let suffix = crate::InstructionDecoder::decode( + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(suffix_wire.as_slice(), &flags, false, "modern_update_suffix"), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } fn modern_use_wire() -> std::vec::Vec { let args = mpl_token_metadata::types::UseArgs::V1 { authorization_data: std::option::Option::None, }; - return programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::USE_DISCRIMINATOR, - &args, - ); + return programmable_wire(crate::DC_METADATA_MTM_USE_DISCRIMINATOR, &args); } fn modern_verification_wire( @@ -1044,8 +1012,7 @@ mod tests { #[test] fn modern_use_verify_and_unverify_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let use_flags = [ (true, false), (false, true), @@ -1060,11 +1027,11 @@ mod tests { (false, false), (false, false), ]; - let use_result = crate::InstructionDecoder::decode( + let use_result = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(modern_use_wire().as_slice(), &use_flags, false, "modern_use"), ); - assert_eq!(use_result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(use_result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(use_result.recognized_entry_code.as_deref(), std::option::Option::Some("use")); assert_eq!( use_result.observations[0].payload_json["parameters"]["V1"]["authorization_data"], @@ -1080,11 +1047,11 @@ mod tests { (false, false), (false, false), ]; - let verify = crate::InstructionDecoder::decode( + let verify = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_verification_wire( - crate::decoder::metadata::metaplex_token_metadata::VERIFY_DISCRIMINATOR, + crate::DC_METADATA_MTM_VERIFY_DISCRIMINATOR, mpl_token_metadata::types::VerificationArgs::CollectionV1, ) .as_slice(), @@ -1093,13 +1060,13 @@ mod tests { "modern_verify", ), ); - assert_eq!(verify.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(verify.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(verify.observations[0].payload_json["parameters"], "CollectionV1"); - let unverify = crate::InstructionDecoder::decode( + let unverify = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_verification_wire( - crate::decoder::metadata::metaplex_token_metadata::UNVERIFY_DISCRIMINATOR, + crate::DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR, mpl_token_metadata::types::VerificationArgs::CreatorV1, ) .as_slice(), @@ -1108,7 +1075,7 @@ mod tests { "modern_unverify", ), ); - assert_eq!(unverify.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(unverify.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( unverify.recognized_entry_code.as_deref(), std::option::Option::Some("unverify") @@ -1118,8 +1085,7 @@ mod tests { #[test] fn modern_use_verify_and_unverify_reject_invalid_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let use_flags = [ (true, false), (false, true), @@ -1134,19 +1100,19 @@ mod tests { (false, false), (false, false), ]; - let truncated = crate::InstructionDecoder::decode( + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::USE_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_USE_DISCRIMINATOR], &use_flags, false, "modern_use_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut invalid_flags = use_flags; invalid_flags[0] = (false, false); - let invalid = crate::InstructionDecoder::decode( + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( modern_use_wire().as_slice(), @@ -1155,7 +1121,7 @@ mod tests { "modern_use_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); let verify_flags = [ (true, false), (false, false), @@ -1167,36 +1133,35 @@ mod tests { (false, false), ]; let mut suffix_wire = modern_verification_wire( - crate::decoder::metadata::metaplex_token_metadata::VERIFY_DISCRIMINATOR, + crate::DC_METADATA_MTM_VERIFY_DISCRIMINATOR, mpl_token_metadata::types::VerificationArgs::CreatorV1, ); suffix_wire.push(1); - let suffix = crate::InstructionDecoder::decode( + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(suffix_wire.as_slice(), &verify_flags, false, "modern_verify_suffix"), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn printed_edition_mint_variants_reject_truncated_wire_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR], &[(false, true); 13], false, "printed_edition_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let invalid = crate::InstructionDecoder::decode( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( mint_new_edition_wire( - crate::decoder::metadata::metaplex_token_metadata::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR, + crate::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR, 1, ) .as_slice(), @@ -1219,13 +1184,13 @@ mod tests { "printed_edition_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut suffix_wire = mint_new_edition_wire( - crate::decoder::metadata::metaplex_token_metadata::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR, + crate::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR, 2, ); suffix_wire.push(1); - let suffix = crate::InstructionDecoder::decode( + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( suffix_wire.as_slice(), @@ -1251,14 +1216,13 @@ mod tests { "printed_edition_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn master_edition_creation_and_conversion_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let create = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let create = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( create_master_edition_v3_wire(std::option::Option::Some(u64::MAX)).as_slice(), @@ -1276,23 +1240,23 @@ mod tests { "master_edition_create", ), ); - assert_eq!(create.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(create.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( create.recognized_entry_code.as_deref(), std::option::Option::Some("create_master_edition_v3") ); assert_eq!(create.observations[0].payload_json["parameters"]["max_supply"], u64::MAX); assert_eq!(create.observations[0].payload_json["accounts"][0]["role"], "master_edition"); - let convert = crate::InstructionDecoder::decode( + let convert = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR], &[(false, true), (false, true), (false, true)], true, "master_edition_convert", ), ); - assert_eq!(convert.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(convert.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( convert.recognized_entry_code.as_deref(), std::option::Option::Some("convert_master_edition_v1_to_v2") @@ -1302,12 +1266,11 @@ mod tests { #[test] fn master_edition_group_rejects_truncated_wire_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CREATE_MASTER_EDITION_V3_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR], &[ (false, true), (false, true), @@ -1322,8 +1285,8 @@ mod tests { "master_edition_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let invalid = crate::InstructionDecoder::decode( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( create_master_edition_v3_wire(std::option::Option::None).as_slice(), @@ -1341,24 +1304,23 @@ mod tests { "master_edition_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR, 1], + &[crate::DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR, 1], &[(false, true), (false, true), (false, true)], false, "master_edition_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn historical_v1_create_and_update_decode_exact_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let create = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let create = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( historical_create_v1_wire().as_slice(), @@ -1375,13 +1337,13 @@ mod tests { "legacy_create_v1", ), ); - assert_eq!(create.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(create.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( create.recognized_entry_code.as_deref(), std::option::Option::Some("create_metadata_account") ); assert_eq!(create.observations[0].payload_json["parameters"]["data"]["name"], "Legacy V1"); - let update = crate::InstructionDecoder::decode( + let update = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( historical_update_v1_wire().as_slice(), @@ -1390,7 +1352,7 @@ mod tests { "legacy_update_v1", ), ); - assert_eq!(update.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(update.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( update.recognized_entry_code.as_deref(), std::option::Option::Some("update_metadata_account") @@ -1404,19 +1366,18 @@ mod tests { #[test] fn historical_v1_wires_reject_truncation_and_invalid_accounts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::UPDATE_METADATA_ACCOUNT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR], &[(false, true), (true, false)], false, "legacy_update_v1_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let invalid = crate::InstructionDecoder::decode( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( historical_create_v1_wire().as_slice(), @@ -1433,14 +1394,13 @@ mod tests { "legacy_create_v1_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn historical_create_metadata_account_v2_decodes_bounded_data_v2() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let result = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let result = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( historical_create_v2_wire().as_slice(), @@ -1457,7 +1417,7 @@ mod tests { "legacy_create_v2", ), ); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("create_metadata_account_v2") @@ -1471,12 +1431,11 @@ mod tests { #[test] fn historical_create_metadata_account_v2_rejects_truncated_wire_and_invalid_flags() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR], &[ (false, true), (false, false), @@ -1489,8 +1448,8 @@ mod tests { "legacy_create_v2_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let invalid = crate::InstructionDecoder::decode( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( historical_create_v2_wire().as_slice(), @@ -1506,18 +1465,17 @@ mod tests { "legacy_create_v2_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn create_metadata_account_v3_decodes_official_borsh_wire() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let result = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let result = crate::DcApiInstructionDecoder::decode( &decoder, &input(create_wire().as_slice(), 6, false, "0"), ); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("create_metadata_account_v3") @@ -1529,16 +1487,15 @@ mod tests { #[test] fn update_metadata_account_v2_preserves_failed_transaction_as_uncommitted() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let result = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let result = crate::DcApiInstructionDecoder::decode( &decoder, &input(update_wire().as_slice(), 2, true, "1/0"), ); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.observations[0].event.source_kind, - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction ); assert!(!result.observations[0].observation_committed); assert_eq!( @@ -1549,12 +1506,11 @@ mod tests { #[test] fn collection_verification_family_decodes_exact_account_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let verify = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let verify = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::VERIFY_COLLECTION_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR], &[ (false, true), (true, true), @@ -1568,7 +1524,7 @@ mod tests { "2/0", ), ); - assert_eq!(verify.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(verify.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( verify.recognized_entry_code.as_deref(), std::option::Option::Some("verify_collection") @@ -1577,21 +1533,21 @@ mod tests { verify.observations[0].payload_json["accounts"][6]["role"], "collection_authority_record" ); - let unverify = crate::InstructionDecoder::decode( + let unverify = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::UNVERIFY_COLLECTION_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR], &[(false, true), (true, true), (false, false), (false, false), (false, false)], true, "2/1", ), ); - assert_eq!(unverify.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(unverify.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!unverify.observations[0].observation_committed); - let set_and_verify = crate::InstructionDecoder::decode( + let set_and_verify = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::SET_AND_VERIFY_COLLECTION_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR], &[ (false, true), (true, true), @@ -1606,7 +1562,7 @@ mod tests { "3", ), ); - assert_eq!(set_and_verify.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(set_and_verify.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( set_and_verify.observations[0].payload_json["accounts"][3]["role"], "update_authority" @@ -1615,12 +1571,11 @@ mod tests { #[test] fn collection_authority_administration_decodes_exact_account_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let approve = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let approve = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR], &[ (false, true), (false, false), @@ -1635,7 +1590,7 @@ mod tests { "approve_collection_authority", ), ); - assert_eq!(approve.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(approve.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( approve.recognized_entry_code.as_deref(), std::option::Option::Some("approve_collection_authority") @@ -1649,16 +1604,16 @@ mod tests { "new_collection_authority" ); assert_eq!(approve.observations[0].payload_json["accounts"][7]["role"], "rent"); - let revoke = crate::InstructionDecoder::decode( + let revoke = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR], &[(false, true), (false, true), (true, true), (false, false), (false, false)], true, "4/0", ), ); - assert_eq!(revoke.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(revoke.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!revoke.observations[0].observation_committed); assert_eq!( revoke.observations[0].payload_json["accounts"][1]["role"], @@ -1669,12 +1624,11 @@ mod tests { #[test] fn collection_authority_administration_rejects_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let invalid = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR], &[ (false, true), (false, false), @@ -1688,24 +1642,23 @@ mod tests { "approve-invalid-flags", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR, 0], &[(false, true), (false, true), (true, true), (false, false), (false, false)], false, "revoke-suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn use_authority_family_decodes_parameters_and_exact_account_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let approve = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let approve = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( approve_use_authority_wire(u64::MAX).as_slice(), @@ -1726,7 +1679,7 @@ mod tests { "approve_use_authority", ), ); - assert_eq!(approve.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(approve.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(approve.observations[0].payload_json["parameters"]["number_of_uses"], u64::MAX); assert_eq!( approve.observations[0].payload_json["accounts"][0]["role"], @@ -1734,10 +1687,10 @@ mod tests { ); assert_eq!(approve.observations[0].payload_json["accounts"][7]["role"], "burner"); assert_eq!(approve.observations[0].payload_json["accounts"][10]["role"], "rent"); - let revoke = crate::InstructionDecoder::decode( + let revoke = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::REVOKE_USE_AUTHORITY_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR], &[ (false, true), (true, true), @@ -1753,13 +1706,13 @@ mod tests { "revoke_use_authority/0", ), ); - assert_eq!(revoke.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(revoke.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!revoke.observations[0].observation_committed); assert_eq!( revoke.observations[0].payload_json["accounts"][3]["role"], "owner_token_account" ); - let utilize = crate::InstructionDecoder::decode( + let utilize = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( utilize_wire(3).as_slice(), @@ -1780,7 +1733,7 @@ mod tests { "utilize", ), ); - assert_eq!(utilize.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(utilize.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(utilize.observations[0].payload_json["parameters"]["number_of_uses"], 3); assert_eq!( utilize.observations[0].payload_json["accounts"][9]["role"], @@ -1791,19 +1744,18 @@ mod tests { #[test] fn use_authority_family_rejects_truncated_wire_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::APPROVE_USE_AUTHORITY_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR], &[(false, true); 10], false, "approve_use_authority_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let invalid_flags = crate::InstructionDecoder::decode( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid_flags = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( utilize_wire(1).as_slice(), @@ -1822,11 +1774,11 @@ mod tests { "utilize_invalid_flags", ), ); - assert_eq!(invalid_flags.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid_flags.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::REVOKE_USE_AUTHORITY_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR, 0], &[ (false, true), (true, true), @@ -1841,35 +1793,34 @@ mod tests { "revoke_use_authority_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn creator_signature_and_primary_sale_family_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let sign = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let sign = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::SIGN_METADATA_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR], &[(false, true), (true, false)], false, "sign_metadata", ), ); - assert_eq!(sign.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(sign.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(sign.observations[0].payload_json["accounts"][0]["role"], "metadata"); assert_eq!(sign.observations[0].payload_json["accounts"][1]["role"], "creator"); - let primary_sale = crate::InstructionDecoder::decode( + let primary_sale = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR], &[(false, true), (true, false), (false, false)], true, "update_primary_sale_happened_via_token/0", ), ); - assert_eq!(primary_sale.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(primary_sale.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!primary_sale.observations[0].observation_committed); assert_eq!(primary_sale.observations[0].payload_json["accounts"][1]["role"], "owner"); assert_eq!( @@ -1880,34 +1831,32 @@ mod tests { #[test] fn creator_signature_and_primary_sale_family_reject_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let invalid = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::SIGN_METADATA_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR], &[(false, true), (false, false)], false, "sign_metadata_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR, 0], &[(false, true), (true, false), (false, false)], false, "primary_sale_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn sized_collection_verification_family_preserves_writable_collection_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let flags = &[ (false, true), (true, false), @@ -1919,19 +1868,19 @@ mod tests { ]; for (discriminator, code) in [ ( - crate::decoder::metadata::metaplex_token_metadata::VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, + crate::DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, "verify_sized_collection_item", ), ( - crate::decoder::metadata::metaplex_token_metadata::UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, + crate::DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, "unverify_sized_collection_item", ), ] { - let result = crate::InstructionDecoder::decode( + let result = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(&[discriminator], flags, false, code), ); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.recognized_entry_code.as_deref(), std::option::Option::Some(code)); assert_eq!( result.observations[0].payload_json["accounts"][4]["role"], @@ -1943,10 +1892,10 @@ mod tests { "collection_authority_record" ); } - let set_and_verify = crate::InstructionDecoder::decode( + let set_and_verify = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR], &[ (false, true), (true, false), @@ -1961,7 +1910,7 @@ mod tests { "set_and_verify_sized_collection_item", ), ); - assert_eq!(set_and_verify.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(set_and_verify.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!set_and_verify.observations[0].observation_committed); assert_eq!( set_and_verify.observations[0].payload_json["accounts"][3]["role"], @@ -1972,12 +1921,11 @@ mod tests { #[test] fn sized_collection_verification_rejects_non_writable_collection_and_suffix() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let invalid_collection = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let invalid_collection = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR], &[ (false, true), (true, false), @@ -1990,11 +1938,11 @@ mod tests { "sized-invalid-flags", ), ); - assert_eq!(invalid_collection.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid_collection.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR, 0], &[ (false, true), (true, false), @@ -2007,17 +1955,16 @@ mod tests { "sized-suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn collection_verification_rejects_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let invalid_flags = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let invalid_flags = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::VERIFY_COLLECTION_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR], &[ (false, true), (false, true), @@ -2030,40 +1977,47 @@ mod tests { "4", ), ); - assert_eq!(invalid_flags.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid_flags.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::UNVERIFY_COLLECTION_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR, 0], &[(false, true), (true, true), (false, false), (false, false), (false, false)], false, "5", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn unknown_truncated_suffix_and_invalid_accounts_fail_closed() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let unknown = crate::InstructionDecoder::decode(&decoder, &input(&[254], 0, false, "0")); - assert_eq!(unknown.status, crate::DecoderOutcomeStatus::Unsupported); - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let unknown = + crate::DcApiInstructionDecoder::decode(&decoder, &input(&[254], 0, false, "0")); + assert_eq!(unknown.status, crate::DcApiDecoderOutcomeStatus::Unsupported); + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, - &input(&[crate::decoder::metadata::metaplex_token_metadata::CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR], 6, false, "0"), + &input( + &[crate::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR], + 6, + false, + "0", + ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut suffix = update_wire(); suffix.push(7); - let suffix_result = - crate::InstructionDecoder::decode(&decoder, &input(suffix.as_slice(), 2, false, "0")); - assert_eq!(suffix_result.status, crate::DecoderOutcomeStatus::Failed); - let accounts = crate::InstructionDecoder::decode( + let suffix_result = crate::DcApiInstructionDecoder::decode( + &decoder, + &input(suffix.as_slice(), 2, false, "0"), + ); + assert_eq!(suffix_result.status, crate::DcApiDecoderOutcomeStatus::Failed); + let accounts = crate::DcApiInstructionDecoder::decode( &decoder, &input(create_wire().as_slice(), 2, false, "0"), ); - assert_eq!(accounts.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(accounts.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] @@ -2095,114 +2049,114 @@ mod tests { #[test] fn metadata_normalization_and_creator_unverification_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let puff = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let puff = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::PUFF_METADATA_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR], &[(false, true)], false, "puff_metadata", ), ); - assert_eq!(puff.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(puff.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(puff.observations[0].payload_json["accounts"][0]["role"], "metadata"); - let remove = crate::InstructionDecoder::decode( + let remove = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR], &[(false, true), (true, false)], true, "remove_creator_verification/0", ), ); - assert_eq!(remove.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(remove.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!remove.observations[0].observation_committed); assert_eq!(remove.observations[0].payload_json["accounts"][1]["role"], "creator"); - let token_standard = crate::InstructionDecoder::decode( + let token_standard = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::SET_TOKEN_STANDARD_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR], &[(false, true), (true, false), (false, false), (false, false)], false, "set_token_standard", ), ); - assert_eq!(token_standard.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(token_standard.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(token_standard.observations[0].payload_json["accounts"][3]["role"], "edition"); } #[test] fn metadata_normalization_family_rejects_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let invalid = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR], &[(false, true), (false, false)], false, "remove_creator_verification_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[ - crate::decoder::metadata::metaplex_token_metadata::PUFF_METADATA_DISCRIMINATOR, - 0, - ], + &[crate::DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR, 0], &[(false, true)], false, "puff_metadata_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); - let invalid_standard = crate::InstructionDecoder::decode( + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid_standard = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::SET_TOKEN_STANDARD_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR], &[(false, true), (false, false), (false, false)], false, "set_token_standard_invalid", ), ); - assert_eq!(invalid_standard.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid_standard.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn collection_size_variants_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let direct = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let direct = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - set_collection_size_wire(crate::decoder::metadata::metaplex_token_metadata::SET_COLLECTION_SIZE_DISCRIMINATOR, u64::MAX) - .as_slice(), + set_collection_size_wire( + crate::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR, + u64::MAX, + ) + .as_slice(), &[(false, true), (true, true), (false, false), (false, false)], false, "set_collection_size", ), ); - assert_eq!(direct.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(direct.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(direct.observations[0].payload_json["parameters"]["size"], u64::MAX); assert_eq!( direct.observations[0].payload_json["accounts"][3]["role"], "collection_authority_record" ); - let bubblegum = crate::InstructionDecoder::decode( + let bubblegum = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - set_collection_size_wire(crate::decoder::metadata::metaplex_token_metadata::BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR, 42) - .as_slice(), + set_collection_size_wire( + crate::DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR, + 42, + ) + .as_slice(), &[(false, true), (true, false), (false, false), (true, false), (false, false)], true, "bubblegum_set_collection_size/0", ), ); - assert_eq!(bubblegum.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(bubblegum.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(bubblegum.observations[0].payload_json["parameters"]["size"], 42); assert_eq!( bubblegum.observations[0].payload_json["accounts"][3]["role"], @@ -2213,35 +2167,35 @@ mod tests { #[test] fn collection_size_variants_reject_truncated_wire_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::SET_COLLECTION_SIZE_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR], &[(false, true), (true, true), (false, false)], false, "set_collection_size_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let invalid = crate::InstructionDecoder::decode( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - set_collection_size_wire(crate::decoder::metadata::metaplex_token_metadata::BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR, 1) - .as_slice(), + set_collection_size_wire( + crate::DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR, + 1, + ) + .as_slice(), &[(false, true), (true, true), (false, false), (true, false)], false, "bubblegum_set_collection_size_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let mut suffix_wire = set_collection_size_wire( - crate::decoder::metadata::metaplex_token_metadata::SET_COLLECTION_SIZE_DISCRIMINATOR, - 2, - ); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let mut suffix_wire = + set_collection_size_wire(crate::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR, 2); suffix_wire.push(0); - let suffix = crate::InstructionDecoder::decode( + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( suffix_wire.as_slice(), @@ -2250,13 +2204,12 @@ mod tests { "set_collection_size_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn programmable_delegate_and_revoke_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let flags = &[ (false, true), (false, false), @@ -2273,7 +2226,7 @@ mod tests { (false, false), (false, false), ]; - let delegate = crate::InstructionDecoder::decode( + let delegate = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( delegate_wire(&mpl_token_metadata::types::DelegateArgs::StandardV1 { @@ -2285,7 +2238,7 @@ mod tests { "delegate", ), ); - assert_eq!(delegate.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(delegate.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( delegate.observations[0].payload_json["parameters"]["StandardV1"]["amount"], u64::MAX @@ -2294,7 +2247,7 @@ mod tests { delegate.observations[0].payload_json["accounts"][10]["role"], "sysvar_instructions" ); - let revoke = crate::InstructionDecoder::decode( + let revoke = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( revoke_wire(&mpl_token_metadata::types::RevokeArgs::StandardV1).as_slice(), @@ -2303,15 +2256,14 @@ mod tests { "revoke/0", ), ); - assert_eq!(revoke.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(revoke.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!revoke.observations[0].observation_committed); assert_eq!(revoke.observations[0].payload_json["parameters"], "StandardV1"); } #[test] fn programmable_delegate_and_revoke_reject_truncated_invalid_and_suffix_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let flags = &[ (false, false), (false, false), @@ -2328,19 +2280,19 @@ mod tests { (false, false), (false, false), ]; - let truncated = crate::InstructionDecoder::decode( + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::DELEGATE_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_DELEGATE_DISCRIMINATOR], flags, false, "delegate_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut invalid_flags = flags.to_vec(); invalid_flags[7] = (false, false); - let invalid = crate::InstructionDecoder::decode( + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( revoke_wire(&mpl_token_metadata::types::RevokeArgs::TransferV1).as_slice(), @@ -2349,23 +2301,22 @@ mod tests { "revoke_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut suffix_wire = delegate_wire(&mpl_token_metadata::types::DelegateArgs::CollectionV1 { authorization_data: std::option::Option::None, }); suffix_wire.push(0); - let suffix = crate::InstructionDecoder::decode( + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(suffix_wire.as_slice(), flags, false, "delegate_suffix"), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn programmable_lifecycle_transfer_lock_unlock_burn_and_close_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let transfer_flags = &[ (false, true), (false, false), @@ -2385,11 +2336,11 @@ mod tests { (false, false), (false, false), ]; - let transfer = crate::InstructionDecoder::decode( + let transfer = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::TRANSFER_DISCRIMINATOR, + crate::DC_METADATA_MTM_TRANSFER_DISCRIMINATOR, &mpl_token_metadata::types::TransferArgs::V1 { amount: u64::MAX, authorization_data: std::option::Option::None, @@ -2401,7 +2352,7 @@ mod tests { "transfer", ), ); - assert_eq!(transfer.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(transfer.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(transfer.observations[0].payload_json["parameters"]["V1"]["amount"], u64::MAX); assert_eq!( transfer.observations[0].payload_json["accounts"][8]["role"], @@ -2422,11 +2373,11 @@ mod tests { (false, false), (false, false), ]; - let lock = crate::InstructionDecoder::decode( + let lock = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::LOCK_DISCRIMINATOR, + crate::DC_METADATA_MTM_LOCK_DISCRIMINATOR, &mpl_token_metadata::types::LockArgs::V1 { authorization_data: std::option::Option::None, }, @@ -2437,12 +2388,12 @@ mod tests { "lock", ), ); - assert_eq!(lock.status, crate::DecoderOutcomeStatus::Decoded); - let unlock = crate::InstructionDecoder::decode( + assert_eq!(lock.status, crate::DcApiDecoderOutcomeStatus::Decoded); + let unlock = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::UNLOCK_DISCRIMINATOR, + crate::DC_METADATA_MTM_UNLOCK_DISCRIMINATOR, &mpl_token_metadata::types::UnlockArgs::V1 { authorization_data: std::option::Option::None, }, @@ -2453,7 +2404,7 @@ mod tests { "unlock/0", ), ); - assert_eq!(unlock.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(unlock.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!unlock.observations[0].observation_committed); let burn_flags = &[ (true, true), @@ -2471,11 +2422,11 @@ mod tests { (false, false), (false, false), ]; - let burn = crate::InstructionDecoder::decode( + let burn = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::BURN_DISCRIMINATOR, + crate::DC_METADATA_MTM_BURN_DISCRIMINATOR, &mpl_token_metadata::types::BurnArgs::V1 { amount: u64::MAX }, ) .as_slice(), @@ -2484,40 +2435,39 @@ mod tests { "burn", ), ); - assert_eq!(burn.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(burn.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(burn.observations[0].payload_json["parameters"]["V1"]["amount"], u64::MAX); - let close = crate::InstructionDecoder::decode( + let close = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CLOSE_ACCOUNTS_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR], &[(false, true), (false, true), (false, true), (true, false), (false, true)], false, "close_accounts", ), ); - assert_eq!(close.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(close.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(close.observations[0].payload_json["accounts"][4]["role"], "destination"); } #[test] fn programmable_lifecycle_rejects_truncated_invalid_and_suffix_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::TRANSFER_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_TRANSFER_DISCRIMINATOR], &[(false, true); 17], false, "transfer_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let invalid = crate::InstructionDecoder::decode( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( programmable_wire( - crate::decoder::metadata::metaplex_token_metadata::BURN_DISCRIMINATOR, + crate::DC_METADATA_MTM_BURN_DISCRIMINATOR, &mpl_token_metadata::types::BurnArgs::V1 { amount: 1 }, ) .as_slice(), @@ -2541,86 +2491,80 @@ mod tests { "burn_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[ - crate::decoder::metadata::metaplex_token_metadata::CLOSE_ACCOUNTS_DISCRIMINATOR, - 0, - ], + &[crate::DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR, 0], &[(false, true), (false, true), (false, true), (true, false), (false, true)], false, "close_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn legacy_delegated_freeze_and_thaw_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; let flags = &[(true, true), (false, true), (false, false), (false, false), (false, false)]; - let freeze = crate::InstructionDecoder::decode( + let freeze = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR], flags, false, "freeze_delegated_account", ), ); - assert_eq!(freeze.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(freeze.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(freeze.observations[0].payload_json["accounts"][0]["role"], "delegate"); assert_eq!(freeze.observations[0].payload_json["accounts"][4]["role"], "token_program"); - let thaw = crate::InstructionDecoder::decode( + let thaw = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::THAW_DELEGATED_ACCOUNT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR], flags, true, "thaw_delegated_account/0", ), ); - assert_eq!(thaw.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(thaw.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!thaw.observations[0].observation_committed); } #[test] fn legacy_delegated_freeze_and_thaw_reject_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let invalid = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR], &[(false, true), (false, true), (false, false), (false, false), (false, false)], false, "freeze_delegated_account_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::THAW_DELEGATED_ACCOUNT_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR, 0], &[(true, true), (false, true), (false, false), (false, false), (false, false)], false, "thaw_delegated_account_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn legacy_nft_burn_and_printing_token_mint_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let burn_nft = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let burn_nft = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::BURN_NFT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR], &[ (false, true), (true, true), @@ -2634,15 +2578,15 @@ mod tests { "burn_nft", ), ); - assert_eq!(burn_nft.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(burn_nft.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( burn_nft.observations[0].payload_json["accounts"][6]["role"], "collection_metadata" ); - let burn_edition = crate::InstructionDecoder::decode( + let burn_edition = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::BURN_EDITION_NFT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR], &[ (false, true), (true, true), @@ -2659,16 +2603,16 @@ mod tests { "burn_edition_nft/0", ), ); - assert_eq!(burn_edition.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(burn_edition.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!burn_edition.observations[0].observation_committed); assert_eq!( burn_edition.observations[0].payload_json["accounts"][8]["role"], "edition_marker_account" ); - let printing = crate::InstructionDecoder::decode( + let printing = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR], &[ (false, true), (false, true), @@ -2691,7 +2635,7 @@ mod tests { "deprecated_printing_token", ), ); - assert_eq!(printing.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(printing.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( printing.observations[0].payload_json["accounts"][15]["role"], "reservation_list" @@ -2700,12 +2644,11 @@ mod tests { #[test] fn legacy_nft_burn_and_printing_token_mint_reject_invalid_flags_and_suffixes() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let invalid = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::BURN_NFT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR], &[ (false, true), (false, true), @@ -2718,11 +2661,11 @@ mod tests { "burn_nft_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::BURN_EDITION_NFT_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR, 0], &[ (false, true), (true, true), @@ -2739,27 +2682,26 @@ mod tests { "burn_edition_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); - let truncated_accounts = crate::InstructionDecoder::decode( + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); + let truncated_accounts = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR], &[(false, true); 14], false, "deprecated_printing_token_truncated", ), ); - assert_eq!(truncated_accounts.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(truncated_accounts.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn escrow_and_collect_family_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let create = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let create = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CREATE_ESCROW_ACCOUNT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR], &[ (false, true), (false, true), @@ -2775,12 +2717,12 @@ mod tests { "create_escrow_account", ), ); - assert_eq!(create.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(create.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(create.observations[0].payload_json["accounts"][8]["role"], "authority"); - let close = crate::InstructionDecoder::decode( + let close = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR], &[ (false, true), (false, true), @@ -2795,13 +2737,11 @@ mod tests { "close_escrow_account/0", ), ); - assert_eq!(close.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(close.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!close.observations[0].observation_committed); - let mut transfer_wire = vec![ - crate::decoder::metadata::metaplex_token_metadata::TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR, - ]; + let mut transfer_wire = vec![crate::DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR]; transfer_wire.extend_from_slice(&u64::MAX.to_le_bytes()); - let transfer = crate::InstructionDecoder::decode( + let transfer = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( transfer_wire.as_slice(), @@ -2824,30 +2764,29 @@ mod tests { "transfer_out_of_escrow", ), ); - assert_eq!(transfer.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(transfer.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(transfer.observations[0].payload_json["parameters"]["amount"], u64::MAX); assert_eq!(transfer.observations[0].payload_json["accounts"][12]["role"], "authority"); - let collect = crate::InstructionDecoder::decode( + let collect = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::COLLECT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_COLLECT_DISCRIMINATOR], &[(true, false), (false, false)], false, "collect", ), ); - assert_eq!(collect.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(collect.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(collect.observations[0].payload_json["accounts"][1]["role"], "recipient"); } #[test] fn escrow_and_collect_family_reject_truncated_invalid_and_suffix_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let truncated = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let truncated = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR], &[ (false, false), (false, true), @@ -2866,11 +2805,11 @@ mod tests { "transfer_out_of_escrow_truncated", ), ); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let invalid = crate::InstructionDecoder::decode( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CREATE_ESCROW_ACCOUNT_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR], &[ (false, true), (false, true), @@ -2885,27 +2824,26 @@ mod tests { "create_escrow_account_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::COLLECT_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_COLLECT_DISCRIMINATOR, 0], &[(true, false), (false, false)], false, "collect_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn resize_and_migrate_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let resize = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let resize = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::RESIZE_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_RESIZE_DISCRIMINATOR], &[ (false, true), (false, true), @@ -2919,12 +2857,12 @@ mod tests { "resize", ), ); - assert_eq!(resize.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(resize.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(resize.observations[0].payload_json["accounts"][4]["role"], "authority"); - let migrate = crate::InstructionDecoder::decode( + let migrate = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::MIGRATE_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_MIGRATE_DISCRIMINATOR], &[ (false, true), (false, true), @@ -2946,19 +2884,18 @@ mod tests { "migrate/0", ), ); - assert_eq!(migrate.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(migrate.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!migrate.observations[0].observation_committed); assert_eq!(migrate.observations[0].payload_json["accounts"][9]["role"], "token_record"); } #[test] fn resize_and_migrate_reject_invalid_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let invalid_resize = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let invalid_resize = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::RESIZE_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_RESIZE_DISCRIMINATOR], &[ (false, true), (false, true), @@ -2972,11 +2909,11 @@ mod tests { "resize_invalid", ), ); - assert_eq!(invalid_resize.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid_resize.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::MIGRATE_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_MIGRATE_DISCRIMINATOR, 0], &[ (false, true), (false, true), @@ -2998,17 +2935,16 @@ mod tests { "migrate_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn omitted_historical_discriminators_decode_exact_contracts() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; type HistoricalCase<'a> = (&'a [u8], &'a [(bool, bool)], &'a str, usize, &'a str); let cases: &[HistoricalCase<'_>] = &[ ( - &[crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR], &[ (false, true), (false, true), @@ -3029,14 +2965,14 @@ mod tests { "one_time_printing_authorization_mint_authority", ), ( - &[crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR], &[(false, true), (false, true), (true, false)], "deprecated_set_reservation_list", 2, "resource", ), ( - &[crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR], &[ (false, true), (true, false), @@ -3052,7 +2988,7 @@ mod tests { "resource", ), ( - &[crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR], &[ (false, true), (false, true), @@ -3069,7 +3005,7 @@ mod tests { "burn_authority", ), ( - &[crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR], &[ (false, true), (false, true), @@ -3084,7 +3020,7 @@ mod tests { "update_authority", ), ( - &[crate::decoder::metadata::metaplex_token_metadata::CREATE_MASTER_EDITION_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR], &[ (false, true), (false, true), @@ -3102,11 +3038,11 @@ mod tests { ), ]; for (wire, flags, path, role_index, role) in cases { - let decoded = crate::InstructionDecoder::decode( + let decoded = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags(wire, flags, false, path), ); - assert_eq!(decoded.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(decoded.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( decoded.observations[0].payload_json["accounts"][*role_index]["role"], *role @@ -3116,22 +3052,21 @@ mod tests { #[test] fn omitted_historical_discriminators_reject_invalid_wires() { - let decoder = - crate::decoder::metadata::metaplex_token_metadata::MetadataMetaplexTokenMetadataDecoder; - let invalid = crate::InstructionDecoder::decode( + let decoder = crate::DcMetadataMetaplexTokenMetadataDecoder; + let invalid = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR], + &[crate::DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR], &[(false, true), (false, true), (false, false)], false, "deprecated_set_reservation_list_invalid", ), ); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); - let suffix = crate::InstructionDecoder::decode( + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); + let suffix = crate::DcApiInstructionDecoder::decode( &decoder, &input_with_flags( - &[crate::decoder::metadata::metaplex_token_metadata::CREATE_MASTER_EDITION_DISCRIMINATOR, 0], + &[crate::DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR, 0], &[ (false, true), (false, true), @@ -3147,6 +3082,6 @@ mod tests { "create_master_edition_suffix", ), ); - assert_eq!(suffix.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(suffix.status, crate::DcApiDecoderOutcomeStatus::Failed); } } diff --git a/kb-lib/src/decoder/metadata/metaplex_token_metadata/instruction.rs b/kb-lib/src/decoder/metadata/metaplex_token_metadata/instruction.rs index 0815ff1..6c83882 100644 --- a/kb-lib/src/decoder/metadata/metaplex_token_metadata/instruction.rs +++ b/kb-lib/src/decoder/metadata/metaplex_token_metadata/instruction.rs @@ -6,7 +6,7 @@ use base64::Engine; // rust-rules: trait-import use sha2::Digest; // rust-rules: trait-import -pub(crate) struct ParsedInstruction { +struct ParsedInstruction { pub(crate) code: &'static str, pub(crate) discriminator: u8, pub(crate) parameters: serde_json::Value, @@ -23,22 +23,24 @@ struct ResolvedAccount { source: serde_json::Value, } -pub(crate) fn entry_for_discriminator( +pub(crate) fn decoder_metadata_metaplex_token_metadata_entry_for_discriminator( discriminator: u8, ) -> std::option::Option<(u8, &'static str, bool)> { - return crate::decoder::metadata::metaplex_token_metadata::INSTRUCTION_ENTRIES + return crate::DC_METADATA_MTM_INSTRUCTION_ENTRIES .iter() .copied() .find(|(candidate, _, _)| return *candidate == discriminator); } -pub(crate) fn payload_discriminator( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_metadata_metaplex_token_metadata_payload_discriminator( + input: &crate::MdCoreInstructionReplayInput, ) -> std::option::Option { return decode_payload(input).ok().and_then(|value| return value.first().copied()); } -pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { +pub(crate) fn decoder_metadata_metaplex_token_metadata_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { let bytes = match decode_payload(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { @@ -59,16 +61,16 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode ); }, }; - let entry = match crate::decoder::metadata::metaplex_token_metadata::entry_for_discriminator( + let entry = match crate::decoder_metadata_metaplex_token_metadata_entry_for_discriminator( discriminator, ) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Unsupported, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Unsupported, recognized_entry_code: std::option::Option::None, observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: "unknown_metaplex_token_metadata_discriminator".to_string(), message: format!( "unknown Metaplex Token Metadata discriminator {discriminator}; payloadPrefixHex={}", @@ -121,15 +123,17 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode project_accounts(parsed.code, accounts.as_slice()), bytes.as_slice(), ); - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Decoded, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Decoded, recognized_entry_code: std::option::Option::Some(parsed.code.to_string()), observations: std::vec![observation], diagnostics: std::vec::Vec::new(), }; } -fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result> { +fn decode_payload( + input: &crate::MdCoreInstructionReplayInput, +) -> kb_core::Result> { let payload = match input.instruction_payload_json.as_ref() { std::option::Option::Some(value) => value, std::option::Option::None => { @@ -146,10 +150,10 @@ fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result< )); }, }; - if encoded.len() > crate::decoder::metadata::metaplex_token_metadata::MAX_BASE64_BYTES { + if encoded.len() > crate::DC_METADATA_MTM_MAX_BASE64_BYTES { return std::result::Result::Err(kb_core::Error::invalid_state(format!( "Metaplex Token Metadata base64 payload exceeds {} bytes", - crate::decoder::metadata::metaplex_token_metadata::MAX_BASE64_BYTES + crate::DC_METADATA_MTM_MAX_BASE64_BYTES ))); } let decoded = match base64::engine::general_purpose::STANDARD.decode(encoded.as_bytes()) { @@ -160,21 +164,16 @@ fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result< ))); }, }; - if decoded.len() > crate::decoder::metadata::metaplex_token_metadata::MAX_INSTRUCTION_BYTES { + if decoded.len() > crate::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES { return std::result::Result::Err(kb_core::Error::invalid_state(format!( "Metaplex Token Metadata payload exceeds {} decoded bytes", - crate::decoder::metadata::metaplex_token_metadata::MAX_INSTRUCTION_BYTES + crate::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES ))); } return std::result::Result::Ok(decoded); } -fn parse_instruction( - bytes: &[u8], -) -> std::result::Result< - crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction, - std::string::String, -> { +fn parse_instruction(bytes: &[u8]) -> std::result::Result { let discriminator = match bytes.first().copied() { std::option::Option::Some(value) => value, std::option::Option::None => { @@ -182,92 +181,92 @@ fn parse_instruction( }, }; return match discriminator { - crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + crate::DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "deprecated_create_master_edition", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "deprecated_set_reservation_list", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "deprecated_create_reservation_list", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "deprecated_mint_printing_tokens_via_token", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "deprecated_mint_printing_tokens", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::CREATE_MASTER_EDITION_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "create_master_edition", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "deprecated_mint_new_edition_from_master_edition_via_printing_token", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR - | crate::decoder::metadata::metaplex_token_metadata::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR + | crate::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(format!("MintNewEditionFromMasterEdition edition Borsh decode failed: {error}")), }; let code = if discriminator - == crate::decoder::metadata::metaplex_token_metadata::MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR + == crate::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_TOKEN_DISCRIMINATOR { "mint_new_edition_from_master_edition_via_token" } else { "mint_new_edition_from_master_edition_via_vault_proxy" }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code, discriminator, parameters: serde_json::json!({"edition": args.edition}), consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "convert_master_edition_v1_to_v2", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::CREATE_MASTER_EDITION_V3_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let max_supply = match as borsh_0_10::BorshDeserialize>::deserialize( @@ -280,50 +279,50 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "create_master_edition_v3", discriminator, parameters: serde_json::json!({"max_supply": max_supply}), consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "update_primary_sale_happened_via_token", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::SIGN_METADATA_DISCRIMINATOR => std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR => std::result::Result::Ok(ParsedInstruction { code: "sign_metadata", discriminator, parameters: serde_json::json!({}), consumed: 1, }), - crate::decoder::metadata::metaplex_token_metadata::PUFF_METADATA_DISCRIMINATOR => std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + crate::DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR => std::result::Result::Ok(ParsedInstruction { code: "puff_metadata", discriminator, parameters: serde_json::json!({}), consumed: 1, }), - crate::decoder::metadata::metaplex_token_metadata::REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + crate::DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "remove_creator_verification", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::SET_TOKEN_STANDARD_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "set_token_standard", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::CREATE_METADATA_ACCOUNT_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let data = match ::deserialize( @@ -357,14 +356,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "create_metadata_account", discriminator, parameters: serde_json::json!({"data": data_json, "is_mutable": is_mutable}), consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::UPDATE_METADATA_ACCOUNT_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let data = match as borsh_0_10::BorshDeserialize>::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -407,14 +406,14 @@ fn parse_instruction( }, }; let authority_json = new_update_authority.map(|value| return hex_bytes(&value)); - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "update_metadata_account", discriminator, parameters: serde_json::json!({"data": data_json, "new_update_authority_hex": authority_json, "primary_sale_happened": primary_sale_happened}), consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let data = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -441,7 +440,7 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "create_metadata_account_v2", discriminator, parameters: serde_json::json!({ @@ -450,8 +449,8 @@ fn parse_instruction( }), consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -469,14 +468,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "create_metadata_account_v3", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::TRANSFER_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_TRANSFER_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -490,14 +489,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "transfer", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::LOCK_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_LOCK_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -511,14 +510,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "lock", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::UNLOCK_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_UNLOCK_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -532,30 +531,30 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "unlock", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::CREATE_ESCROW_ACCOUNT_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "create_escrow_account", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "close_escrow_account", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let amount = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -565,34 +564,34 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "transfer_out_of_escrow", discriminator, parameters: serde_json::json!({"amount": amount}), consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::COLLECT_DISCRIMINATOR => std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_COLLECT_DISCRIMINATOR => std::result::Result::Ok(ParsedInstruction { code: "collect", discriminator, parameters: serde_json::json!({}), consumed: 1, }), - crate::decoder::metadata::metaplex_token_metadata::BURN_NFT_DISCRIMINATOR => std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + crate::DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR => std::result::Result::Ok(ParsedInstruction { code: "burn_nft", discriminator, parameters: serde_json::json!({}), consumed: 1, }), - crate::decoder::metadata::metaplex_token_metadata::BURN_EDITION_NFT_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + crate::DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "burn_edition_nft", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::CREATE_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_CREATE_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -606,14 +605,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "create", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::MINT_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_MINT_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -627,14 +626,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "mint", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::PRINT_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_PRINT_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -648,26 +647,26 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "print", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::MIGRATE_DISCRIMINATOR => std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_MIGRATE_DISCRIMINATOR => std::result::Result::Ok(ParsedInstruction { code: "migrate", discriminator, parameters: serde_json::json!({}), consumed: 1, }), - crate::decoder::metadata::metaplex_token_metadata::RESIZE_DISCRIMINATOR => std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + crate::DC_METADATA_MTM_RESIZE_DISCRIMINATOR => std::result::Result::Ok(ParsedInstruction { code: "resize", discriminator, parameters: serde_json::json!({}), consumed: 1, }), - crate::decoder::metadata::metaplex_token_metadata::USE_DISCRIMINATOR => { + crate::DC_METADATA_MTM_USE_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -681,14 +680,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "use", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::VERIFY_DISCRIMINATOR | crate::decoder::metadata::metaplex_token_metadata::UNVERIFY_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_VERIFY_DISCRIMINATOR | crate::DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -703,15 +702,15 @@ fn parse_instruction( }, }; let code = - if discriminator == crate::decoder::metadata::metaplex_token_metadata::VERIFY_DISCRIMINATOR { "verify" } else { "unverify" }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + if discriminator == crate::DC_METADATA_MTM_VERIFY_DISCRIMINATOR { "verify" } else { "unverify" }; + std::result::Result::Ok(ParsedInstruction { code, discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::UPDATE_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_UPDATE_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -725,14 +724,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "update", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::BURN_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_BURN_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -746,20 +745,20 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "burn", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::CLOSE_ACCOUNTS_DISCRIMINATOR => std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR => std::result::Result::Ok(ParsedInstruction { code: "close_accounts", discriminator, parameters: serde_json::json!({}), consumed: 1, }), - crate::decoder::metadata::metaplex_token_metadata::DELEGATE_DISCRIMINATOR => { + crate::DC_METADATA_MTM_DELEGATE_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -773,14 +772,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "delegate", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::REVOKE_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_REVOKE_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -794,97 +793,97 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "revoke", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::SET_COLLECTION_SIZE_DISCRIMINATOR - | crate::decoder::metadata::metaplex_token_metadata::BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR + | crate::DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(format!("SetCollectionSize Borsh decode failed: {error}")), }; - let code = if discriminator == crate::decoder::metadata::metaplex_token_metadata::SET_COLLECTION_SIZE_DISCRIMINATOR { + let code = if discriminator == crate::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR { "set_collection_size" } else { "bubblegum_set_collection_size" }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code, discriminator, parameters: serde_json::json!({"size": args.size}), consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::VERIFY_COLLECTION_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "verify_collection", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::UNVERIFY_COLLECTION_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "unverify_collection", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::SET_AND_VERIFY_COLLECTION_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "set_and_verify_collection", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "approve_collection_authority", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "revoke_collection_authority", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "verify_sized_collection_item", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "unverify_sized_collection_item", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "set_and_verify_sized_collection_item", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::UTILIZE_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_UTILIZE_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -898,14 +897,14 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "utilize", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::APPROVE_USE_AUTHORITY_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -919,38 +918,38 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "approve_use_authority", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, - crate::decoder::metadata::metaplex_token_metadata::REVOKE_USE_AUTHORITY_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "revoke_use_authority", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "freeze_delegated_account", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::THAW_DELEGATED_ACCOUNT_DISCRIMINATOR => { - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + } + crate::DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR => { + std::result::Result::Ok(ParsedInstruction { code: "thaw_delegated_account", discriminator, parameters: serde_json::json!({}), consumed: 1, }) - }, - crate::decoder::metadata::metaplex_token_metadata::UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR => { + } + crate::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR => { let mut remaining = &bytes[1..]; let args = match ::deserialize(&mut remaining) { std::result::Result::Ok(value) => value, @@ -970,13 +969,13 @@ fn parse_instruction( )); }, }; - std::result::Result::Ok(crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction { + std::result::Result::Ok(ParsedInstruction { code: "update_metadata_account_v2", discriminator, parameters, consumed: bytes.len().saturating_sub(remaining.len()), }) - }, + } _ => std::result::Result::Err(format!("unsupported discriminator {discriminator}")), }; } @@ -1032,7 +1031,7 @@ fn validate_data_v2( } fn resolve_accounts( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, ) -> kb_core::Result> { let instruction_accounts = match input.instruction_accounts_json.as_array() { std::option::Option::Some(value) => value, @@ -1042,9 +1041,7 @@ fn resolve_accounts( )); }, }; - if instruction_accounts.len() - > crate::decoder::metadata::metaplex_token_metadata::MAX_INSTRUCTION_ACCOUNTS - { + if instruction_accounts.len() > crate::DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS { return std::result::Result::Err(kb_core::Error::invalid_state( "Metaplex Token Metadata instruction account count exceeds bound", )); @@ -2642,43 +2639,39 @@ fn project_accounts(code: &str, accounts: &[ResolvedAccount]) -> serde_json::Val } fn observation( - input: &crate::CoreInstructionReplayInput, - parsed: &crate::decoder::metadata::metaplex_token_metadata::ParsedInstruction, + input: &crate::MdCoreInstructionReplayInput, + parsed: &ParsedInstruction, accounts: serde_json::Value, wire: &[u8], -) -> crate::DecodedObservation { +) -> crate::DcApiDecodedObservation { let wire_hash = hash(wire); let committed = !input.transaction_failed; - let event = crate::DecodedProtocolEvent { - signature: crate::Signature(input.signature.clone()), - slot: crate::Slot(input.slot), - instruction_path: crate::InstructionPath(input.instruction_path.clone()), - program_id: crate::ProgramId(input.program_id.clone()), - protocol_code: crate::ProtocolCode( - crate::decoder::metadata::metaplex_token_metadata::SURFACE_CODE.to_string(), - ), - surface_code: crate::SurfaceCode( - crate::decoder::metadata::metaplex_token_metadata::SURFACE_CODE.to_string(), - ), - event_code: crate::EventCode(format!( + let event = crate::MdDecodedProtocolEvent { + signature: crate::MdSignature(input.signature.clone()), + slot: crate::MdSlot(input.slot), + instruction_path: crate::MdInstructionPath(input.instruction_path.clone()), + program_id: crate::MdProgramId(input.program_id.clone()), + protocol_code: crate::MdProtocolCode(crate::DC_METADATA_MTM_SURFACE_CODE.to_string()), + surface_code: crate::MdSurfaceCode(crate::DC_METADATA_MTM_SURFACE_CODE.to_string()), + event_code: crate::MdEventCode(format!( "{}.{}", - crate::decoder::metadata::metaplex_token_metadata::SURFACE_CODE, + crate::DC_METADATA_MTM_SURFACE_CODE, parsed.code )), - event_name: crate::EventName(parsed.code.to_string()), - event_family: crate::EventFamily::Metadata, + event_name: crate::MdEventName(parsed.code.to_string()), + event_family: crate::MdEventFamily::Metadata, source_kind: if input.instruction_path.contains('/') { - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction } else { - crate::EventSourceKind::Instruction + crate::MdEventSourceKind::Instruction }, - confidence: crate::DecoderConfidence::ManualExact, + confidence: crate::MdDecoderConfidence::ManualExact, }; - return crate::DecodedObservation { + return crate::DcApiDecodedObservation { event_key: format!("metaplex_token_metadata:{}:0", parsed.code), event, payload_json: serde_json::json!({ - "eventVersion": crate::decoder::metadata::metaplex_token_metadata::EVENT_VERSION, + "eventVersion": crate::DC_METADATA_MTM_EVENT_VERSION, "programId": input.program_id, "instruction": parsed.code, "wireDiscriminator": parsed.discriminator, @@ -2695,9 +2688,9 @@ fn observation( transaction_failed: input.transaction_failed, transaction_error: input.transaction_err_json.clone(), observation_committed: committed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: std::vec![ "mpl_token_metadata_5_1_1_generated_wire".to_string(), format!("wire_discriminator:{}", parsed.discriminator), @@ -2717,10 +2710,7 @@ fn hash(bytes: &[u8]) -> std::string::String { } fn hex_prefix(bytes: &[u8]) -> std::string::String { - let length = std::cmp::min( - bytes.len(), - crate::decoder::metadata::metaplex_token_metadata::DIAGNOSTIC_PREFIX_BYTES, - ); + let length = std::cmp::min(bytes.len(), crate::DC_METADATA_MTM_DIAGNOSTIC_PREFIX_BYTES); let mut output = std::string::String::with_capacity(length.saturating_mul(2)); for byte in &bytes[..length] { output.push_str(format!("{byte:02x}").as_str()); @@ -2732,12 +2722,12 @@ fn failed( entry_code: std::option::Option<&str>, code: &str, message: std::string::String, -) -> crate::DecoderExecutionResult { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Failed, +) -> crate::DcApiDecoderExecutionResult { + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Failed, recognized_entry_code: entry_code.map(str::to_string), observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: code.to_string(), message, retriable: false diff --git a/kb-lib/src/decoder/metadata/spl_name_service.rs b/kb-lib/src/decoder/metadata/spl_name_service.rs index 108c6e9..11dce57 100644 --- a/kb-lib/src/decoder/metadata/spl_name_service.rs +++ b/kb-lib/src/decoder/metadata/spl_name_service.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_metadata_spl_name_service`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_metadata_spl_name_service"; +const LEGACY_CRATE: &str = "kb_decoder_metadata_spl_name_service"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/nft.rs b/kb-lib/src/decoder/nft.rs index bdf5c67..96c59e8 100644 --- a/kb-lib/src/decoder/nft.rs +++ b/kb-lib/src/decoder/nft.rs @@ -3,4 +3,4 @@ //! `nft` decoder family. -pub mod metaplex_bubblegum; +mod metaplex_bubblegum; diff --git a/kb-lib/src/decoder/nft/metaplex_bubblegum.rs b/kb-lib/src/decoder/nft/metaplex_bubblegum.rs index 18fc116..182571b 100644 --- a/kb-lib/src/decoder/nft/metaplex_bubblegum.rs +++ b/kb-lib/src/decoder/nft/metaplex_bubblegum.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_nft_metaplex_bubblegum`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_nft_metaplex_bubblegum"; +const LEGACY_CRATE: &str = "kb_decoder_nft_metaplex_bubblegum"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/orderbook.rs b/kb-lib/src/decoder/orderbook.rs index fd86e45..c9204aa 100644 --- a/kb-lib/src/decoder/orderbook.rs +++ b/kb-lib/src/decoder/orderbook.rs @@ -3,6 +3,6 @@ //! `orderbook` decoder family. -pub mod jupiter_limit_order; -pub mod jupiter_limit_order_v2; -pub mod openbook_v2; +mod jupiter_limit_order; +mod jupiter_limit_order_v2; +mod openbook_v2; diff --git a/kb-lib/src/decoder/orderbook/jupiter_limit_order.rs b/kb-lib/src/decoder/orderbook/jupiter_limit_order.rs index 8d5c111..18ebf24 100644 --- a/kb-lib/src/decoder/orderbook/jupiter_limit_order.rs +++ b/kb-lib/src/decoder/orderbook/jupiter_limit_order.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_orderbook_jupiter_limit_order`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_orderbook_jupiter_limit_order"; +const LEGACY_CRATE: &str = "kb_decoder_orderbook_jupiter_limit_order"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/orderbook/jupiter_limit_order_v2.rs b/kb-lib/src/decoder/orderbook/jupiter_limit_order_v2.rs index 148be1d..4d9ebd7 100644 --- a/kb-lib/src/decoder/orderbook/jupiter_limit_order_v2.rs +++ b/kb-lib/src/decoder/orderbook/jupiter_limit_order_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_orderbook_jupiter_limit_order_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_orderbook_jupiter_limit_order_v2"; +const LEGACY_CRATE: &str = "kb_decoder_orderbook_jupiter_limit_order_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/orderbook/openbook_v2.rs b/kb-lib/src/decoder/orderbook/openbook_v2.rs index a01b635..5a40204 100644 --- a/kb-lib/src/decoder/orderbook/openbook_v2.rs +++ b/kb-lib/src/decoder/orderbook/openbook_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_orderbook_openbook_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_orderbook_openbook_v2"; +const LEGACY_CRATE: &str = "kb_decoder_orderbook_openbook_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/perpetuals.rs b/kb-lib/src/decoder/perpetuals.rs index 7e2f027..d60238b 100644 --- a/kb-lib/src/decoder/perpetuals.rs +++ b/kb-lib/src/decoder/perpetuals.rs @@ -3,6 +3,6 @@ //! `perpetuals` decoder family. -pub mod drift_v2; -pub mod jupiter; -pub mod zeta; +mod drift_v2; +mod jupiter; +mod zeta; diff --git a/kb-lib/src/decoder/perpetuals/drift_v2.rs b/kb-lib/src/decoder/perpetuals/drift_v2.rs index f0c503a..7cf6f36 100644 --- a/kb-lib/src/decoder/perpetuals/drift_v2.rs +++ b/kb-lib/src/decoder/perpetuals/drift_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_perpetuals_drift_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_perpetuals_drift_v2"; +const LEGACY_CRATE: &str = "kb_decoder_perpetuals_drift_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/perpetuals/jupiter.rs b/kb-lib/src/decoder/perpetuals/jupiter.rs index 3fd691c..6900b7e 100644 --- a/kb-lib/src/decoder/perpetuals/jupiter.rs +++ b/kb-lib/src/decoder/perpetuals/jupiter.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_perpetuals_jupiter`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_perpetuals_jupiter"; +const LEGACY_CRATE: &str = "kb_decoder_perpetuals_jupiter"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/perpetuals/zeta.rs b/kb-lib/src/decoder/perpetuals/zeta.rs index 04db283..9ed6d85 100644 --- a/kb-lib/src/decoder/perpetuals/zeta.rs +++ b/kb-lib/src/decoder/perpetuals/zeta.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_perpetuals_zeta`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_perpetuals_zeta"; +const LEGACY_CRATE: &str = "kb_decoder_perpetuals_zeta"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/router.rs b/kb-lib/src/decoder/router.rs index da9fb10..db89189 100644 --- a/kb-lib/src/decoder/router.rs +++ b/kb-lib/src/decoder/router.rs @@ -3,9 +3,9 @@ //! `router` decoder family. -pub mod dflow_aggregator_v4; -pub mod jupiter_aggregator_v4; -pub mod jupiter_aggregator_v6; -pub mod jupiter_dca; -pub mod okx_labs_v1; -pub mod okx_labs_v2; +mod dflow_aggregator_v4; +mod jupiter_aggregator_v4; +mod jupiter_aggregator_v6; +mod jupiter_dca; +mod okx_labs_v1; +mod okx_labs_v2; diff --git a/kb-lib/src/decoder/router/dflow_aggregator_v4.rs b/kb-lib/src/decoder/router/dflow_aggregator_v4.rs index 7150dc0..ea335f5 100644 --- a/kb-lib/src/decoder/router/dflow_aggregator_v4.rs +++ b/kb-lib/src/decoder/router/dflow_aggregator_v4.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_router_dflow_aggregator_v4`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_router_dflow_aggregator_v4"; +const LEGACY_CRATE: &str = "kb_decoder_router_dflow_aggregator_v4"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/router/jupiter_aggregator_v4.rs b/kb-lib/src/decoder/router/jupiter_aggregator_v4.rs index cac6b3b..15fac7c 100644 --- a/kb-lib/src/decoder/router/jupiter_aggregator_v4.rs +++ b/kb-lib/src/decoder/router/jupiter_aggregator_v4.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_router_jupiter_aggregator_v4`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_router_jupiter_aggregator_v4"; +const LEGACY_CRATE: &str = "kb_decoder_router_jupiter_aggregator_v4"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/router/jupiter_aggregator_v6.rs b/kb-lib/src/decoder/router/jupiter_aggregator_v6.rs index d59ea39..ee4d9c7 100644 --- a/kb-lib/src/decoder/router/jupiter_aggregator_v6.rs +++ b/kb-lib/src/decoder/router/jupiter_aggregator_v6.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_router_jupiter_aggregator_v6`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_router_jupiter_aggregator_v6"; +const LEGACY_CRATE: &str = "kb_decoder_router_jupiter_aggregator_v6"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/router/jupiter_dca.rs b/kb-lib/src/decoder/router/jupiter_dca.rs index 4ca27be..5c7cc29 100644 --- a/kb-lib/src/decoder/router/jupiter_dca.rs +++ b/kb-lib/src/decoder/router/jupiter_dca.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_router_jupiter_dca`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_router_jupiter_dca"; +const LEGACY_CRATE: &str = "kb_decoder_router_jupiter_dca"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/router/okx_labs_v1.rs b/kb-lib/src/decoder/router/okx_labs_v1.rs index 96e8576..0abbe74 100644 --- a/kb-lib/src/decoder/router/okx_labs_v1.rs +++ b/kb-lib/src/decoder/router/okx_labs_v1.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_router_okx_labs_v1`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_router_okx_labs_v1"; +const LEGACY_CRATE: &str = "kb_decoder_router_okx_labs_v1"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/router/okx_labs_v2.rs b/kb-lib/src/decoder/router/okx_labs_v2.rs index cdd22a9..59839ea 100644 --- a/kb-lib/src/decoder/router/okx_labs_v2.rs +++ b/kb-lib/src/decoder/router/okx_labs_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_router_okx_labs_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_router_okx_labs_v2"; +const LEGACY_CRATE: &str = "kb_decoder_router_okx_labs_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/rwa.rs b/kb-lib/src/decoder/rwa.rs index 1099e82..007477d 100644 --- a/kb-lib/src/decoder/rwa.rs +++ b/kb-lib/src/decoder/rwa.rs @@ -3,4 +3,4 @@ //! `rwa` decoder family. -pub mod ondo_global_markets; +mod ondo_global_markets; diff --git a/kb-lib/src/decoder/rwa/ondo_global_markets.rs b/kb-lib/src/decoder/rwa/ondo_global_markets.rs index 68bfa69..446eb84 100644 --- a/kb-lib/src/decoder/rwa/ondo_global_markets.rs +++ b/kb-lib/src/decoder/rwa/ondo_global_markets.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_rwa_ondo_global_markets`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_rwa_ondo_global_markets"; +const LEGACY_CRATE: &str = "kb_decoder_rwa_ondo_global_markets"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/solana.rs b/kb-lib/src/decoder/solana.rs index caba2b8..3529201 100644 --- a/kb-lib/src/decoder/solana.rs +++ b/kb-lib/src/decoder/solana.rs @@ -5,91 +5,91 @@ mod core; -pub(crate) use self::core::SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_BPF_LOADER_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_CONFIG_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES; -pub(crate) use self::core::SOLANA_CORE_ED25519_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_FEATURE_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_LOADER_V4_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES; -pub(crate) use self::core::SOLANA_CORE_NATIVE_EVENT_VERSION; -pub(crate) use self::core::SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES; -pub(crate) use self::core::SOLANA_CORE_PROTOCOL_CODE; -pub(crate) use self::core::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; -pub(crate) use self::core::SOLANA_CORE_SECP256K1_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_SECP256R1_MAX_SIGNATURES; -pub(crate) use self::core::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES; -pub(crate) use self::core::SOLANA_CORE_SECP256R1_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_SIGNATURE_BYTES; -pub(crate) use self::core::SOLANA_CORE_SLASHING_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_STAKE_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_SYSTEM_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_TRACING_TARGET; -pub(crate) use self::core::SOLANA_CORE_U8_OFFSETS_BYTES; -pub(crate) use self::core::SOLANA_CORE_U16_OFFSETS_BYTES; -pub(crate) use self::core::SOLANA_CORE_VOTE_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE; -pub(crate) use self::core::SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE; -pub(crate) use self::core::SolanaCoreAccountRole; -pub(crate) use self::core::SolanaCoreResolvedInstructionPayload; -pub(crate) use self::core::solana_core_address_lookup_table_coverage; -pub(crate) use self::core::solana_core_address_lookup_table_decode; -pub(crate) use self::core::solana_core_address_lookup_table_recognize; -pub(crate) use self::core::solana_core_bounded_hexadecimal_prefix; -pub(crate) use self::core::solana_core_bounded_slice; -pub(crate) use self::core::solana_core_compute_budget_coverage; -pub(crate) use self::core::solana_core_compute_budget_decode; -pub(crate) use self::core::solana_core_compute_budget_recognize; -pub(crate) use self::core::solana_core_config_coverage; -pub(crate) use self::core::solana_core_config_decode; -pub(crate) use self::core::solana_core_config_recognize; -pub(crate) use self::core::solana_core_decode_instruction_data; -pub(crate) use self::core::solana_core_decoded_payload_length; -pub(crate) use self::core::solana_core_decoded_payload_sha256; -pub(crate) use self::core::solana_core_decoded_result; -pub(crate) use self::core::solana_core_failed_result; -pub(crate) use self::core::solana_core_feature_coverage; -pub(crate) use self::core::solana_core_feature_decode; -pub(crate) use self::core::solana_core_feature_recognize; -pub(crate) use self::core::solana_core_hash_bytes; -pub(crate) use self::core::solana_core_hexadecimal_prefix; -pub(crate) use self::core::solana_core_loaders_coverage; -pub(crate) use self::core::solana_core_loaders_decode; -pub(crate) use self::core::solana_core_loaders_recognize; -pub(crate) use self::core::solana_core_payload_hash; -pub(crate) use self::core::solana_core_precompiles_coverage; -pub(crate) use self::core::solana_core_precompiles_decode; -pub(crate) use self::core::solana_core_precompiles_recognize; -pub(crate) use self::core::solana_core_read_u32_le; -pub(crate) use self::core::solana_core_read_u64_le; -pub(crate) use self::core::solana_core_resolve_accounts; -pub(crate) use self::core::solana_core_resolve_u8_instruction_payload; -pub(crate) use self::core::solana_core_resolve_u16_instruction_payload; -pub(crate) use self::core::solana_core_slashing_coverage; -pub(crate) use self::core::solana_core_slashing_decode; -pub(crate) use self::core::solana_core_slashing_recognize; -pub(crate) use self::core::solana_core_stake_coverage; -pub(crate) use self::core::solana_core_stake_decode; -pub(crate) use self::core::solana_core_stake_recognize; -pub(crate) use self::core::solana_core_system_coverage; -pub(crate) use self::core::solana_core_system_decode; -pub(crate) use self::core::solana_core_system_recognize; -pub(crate) use self::core::solana_core_target_outer_instruction_index; -pub(crate) use self::core::solana_core_unsupported_result; -pub(crate) use self::core::solana_core_vote_coverage; -pub(crate) use self::core::solana_core_vote_decode; -pub(crate) use self::core::solana_core_vote_recognize; -pub(crate) use self::core::solana_core_zk_elgamal_coverage; -pub(crate) use self::core::solana_core_zk_elgamal_decode; -pub(crate) use self::core::solana_core_zk_elgamal_recognize; -pub(crate) use self::core::solana_core_zk_token_proof_coverage; -pub(crate) use self::core::solana_core_zk_token_proof_decode; -pub(crate) use self::core::solana_core_zk_token_proof_recognize; +pub(crate) use self::core::DC_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_BPF_LOADER_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_CONFIG_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES; +pub(crate) use self::core::DC_SOLANA_CORE_ED25519_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_FEATURE_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES; +pub(crate) use self::core::DC_SOLANA_CORE_NATIVE_EVENT_VERSION; +pub(crate) use self::core::DC_SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES; +pub(crate) use self::core::DC_SOLANA_CORE_PROTOCOL_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; +pub(crate) use self::core::DC_SOLANA_CORE_SECP256K1_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_SECP256R1_MAX_SIGNATURES; +pub(crate) use self::core::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES; +pub(crate) use self::core::DC_SOLANA_CORE_SECP256R1_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_SIGNATURE_BYTES; +pub(crate) use self::core::DC_SOLANA_CORE_SLASHING_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_STAKE_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_SYSTEM_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_TRACING_TARGET; +pub(crate) use self::core::DC_SOLANA_CORE_U8_OFFSETS_BYTES; +pub(crate) use self::core::DC_SOLANA_CORE_U16_OFFSETS_BYTES; +pub(crate) use self::core::DC_SOLANA_CORE_VOTE_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE; +pub(crate) use self::core::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE; +pub(crate) use self::core::DcSolanaCoreAccountRole; +pub(crate) use self::core::DcSolanaCoreResolvedInstructionPayload; +pub(crate) use self::core::decoder_solana_core_address_lookup_table_coverage; +pub(crate) use self::core::decoder_solana_core_address_lookup_table_decode; +pub(crate) use self::core::decoder_solana_core_address_lookup_table_recognize; +pub(crate) use self::core::decoder_solana_core_bounded_hexadecimal_prefix; +pub(crate) use self::core::decoder_solana_core_bounded_slice; +pub(crate) use self::core::decoder_solana_core_compute_budget_coverage; +pub(crate) use self::core::decoder_solana_core_compute_budget_decode; +pub(crate) use self::core::decoder_solana_core_compute_budget_recognize; +pub(crate) use self::core::decoder_solana_core_config_coverage; +pub(crate) use self::core::decoder_solana_core_config_decode; +pub(crate) use self::core::decoder_solana_core_config_recognize; +pub(crate) use self::core::decoder_solana_core_decode_instruction_data; +pub(crate) use self::core::decoder_solana_core_decoded_payload_length; +pub(crate) use self::core::decoder_solana_core_decoded_payload_sha256; +pub(crate) use self::core::decoder_solana_core_decoded_result; +pub(crate) use self::core::decoder_solana_core_failed_result; +pub(crate) use self::core::decoder_solana_core_feature_coverage; +pub(crate) use self::core::decoder_solana_core_feature_decode; +pub(crate) use self::core::decoder_solana_core_feature_recognize; +pub(crate) use self::core::decoder_solana_core_hash_bytes; +pub(crate) use self::core::decoder_solana_core_hexadecimal_prefix; +pub(crate) use self::core::decoder_solana_core_loaders_coverage; +pub(crate) use self::core::decoder_solana_core_loaders_decode; +pub(crate) use self::core::decoder_solana_core_loaders_recognize; +pub(crate) use self::core::decoder_solana_core_payload_hash; +pub(crate) use self::core::decoder_solana_core_precompiles_coverage; +pub(crate) use self::core::decoder_solana_core_precompiles_decode; +pub(crate) use self::core::decoder_solana_core_precompiles_recognize; +pub(crate) use self::core::decoder_solana_core_read_u32_le; +pub(crate) use self::core::decoder_solana_core_read_u64_le; +pub(crate) use self::core::decoder_solana_core_resolve_accounts; +pub(crate) use self::core::decoder_solana_core_resolve_u8_instruction_payload; +pub(crate) use self::core::decoder_solana_core_resolve_u16_instruction_payload; +pub(crate) use self::core::decoder_solana_core_slashing_coverage; +pub(crate) use self::core::decoder_solana_core_slashing_decode; +pub(crate) use self::core::decoder_solana_core_slashing_recognize; +pub(crate) use self::core::decoder_solana_core_stake_coverage; +pub(crate) use self::core::decoder_solana_core_stake_decode; +pub(crate) use self::core::decoder_solana_core_stake_recognize; +pub(crate) use self::core::decoder_solana_core_system_coverage; +pub(crate) use self::core::decoder_solana_core_system_decode; +pub(crate) use self::core::decoder_solana_core_system_recognize; +pub(crate) use self::core::decoder_solana_core_target_outer_instruction_index; +pub(crate) use self::core::decoder_solana_core_unsupported_result; +pub(crate) use self::core::decoder_solana_core_vote_coverage; +pub(crate) use self::core::decoder_solana_core_vote_decode; +pub(crate) use self::core::decoder_solana_core_vote_recognize; +pub(crate) use self::core::decoder_solana_core_zk_elgamal_coverage; +pub(crate) use self::core::decoder_solana_core_zk_elgamal_decode; +pub(crate) use self::core::decoder_solana_core_zk_elgamal_recognize; +pub(crate) use self::core::decoder_solana_core_zk_token_proof_coverage; +pub(crate) use self::core::decoder_solana_core_zk_token_proof_decode; +pub(crate) use self::core::decoder_solana_core_zk_token_proof_recognize; /// Runtime-native Solana decoder with phased maximal native coverage. -pub use self::core::SolanaCoreDecoder; +pub use self::core::DcSolanaCoreDecoder; diff --git a/kb-lib/src/decoder/solana/core.rs b/kb-lib/src/decoder/solana/core.rs index c6203c6..86303b1 100644 --- a/kb-lib/src/decoder/solana/core.rs +++ b/kb-lib/src/decoder/solana/core.rs @@ -22,176 +22,176 @@ mod zk_elgamal; mod zk_token_proof; /// Expected role and privileges for one positional instruction account. -pub(crate) use self::accounts::AccountRole as SolanaCoreAccountRole; +pub(crate) use self::accounts::DcSolanaCoreAccountRole; /// Resolves positional instruction accounts and validates their core indexes. -pub(crate) use self::accounts::resolve_accounts as solana_core_resolve_accounts; +pub(crate) use self::accounts::decoder_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; +pub(crate) use self::address_lookup_table::decoder_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; +pub(crate) use self::address_lookup_table::decoder_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; +pub(crate) use self::address_lookup_table::decoder_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; +pub(crate) use self::compute_budget::decoder_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; +pub(crate) use self::compute_budget::decoder_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; +pub(crate) use self::compute_budget::decoder_solana_core_compute_budget_recognize; /// Returns declared Config Program instruction coverage. -pub(crate) use self::config::config_coverage as solana_core_config_coverage; +pub(crate) use self::config::decoder_solana_core_config_coverage; /// Decodes one generic Config Program store instruction. -pub(crate) use self::config::config_decode as solana_core_config_decode; +pub(crate) use self::config::decoder_solana_core_config_decode; /// Recognizes one generic Config Program store instruction. -pub(crate) use self::config::config_recognize as solana_core_config_recognize; +pub(crate) use self::config::decoder_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_SOLANA_CORE_ED25519_SURFACE_CODE; /// Stable Feature Gate surface code. -pub(crate) use self::constants::FEATURE_SURFACE_CODE as SOLANA_CORE_FEATURE_SURFACE_CODE; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_SOLANA_CORE_SIGNATURE_BYTES; /// Stable Slashing Program decoder surface code. -pub(crate) use self::constants::SLASHING_SURFACE_CODE as SOLANA_CORE_SLASHING_SURFACE_CODE; +pub(crate) use self::constants::DC_SOLANA_CORE_SLASHING_SURFACE_CODE; /// Stable Stake Program surface code. -pub(crate) use self::constants::STAKE_SURFACE_CODE as SOLANA_CORE_STAKE_SURFACE_CODE; +pub(crate) use self::constants::DC_SOLANA_CORE_STAKE_SURFACE_CODE; /// Stable System Program surface code. -pub(crate) use self::constants::SYSTEM_SURFACE_CODE as SOLANA_CORE_SYSTEM_SURFACE_CODE; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_SOLANA_CORE_U16_OFFSETS_BYTES; /// Stable Vote Program surface code. -pub(crate) use self::constants::VOTE_SURFACE_CODE as SOLANA_CORE_VOTE_SURFACE_CODE; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::constants::DC_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; +pub(crate) use self::event::decoder_solana_core_decoded_result; /// Builds one failed native decode result. -pub(crate) use self::event::failed_result as solana_core_failed_result; +pub(crate) use self::event::decoder_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; +pub(crate) use self::event::decoder_solana_core_unsupported_result; /// Returns declared Feature Gate instruction coverage. -pub(crate) use self::feature::feature_coverage as solana_core_feature_coverage; +pub(crate) use self::feature::decoder_solana_core_feature_coverage; /// Decodes one Feature Gate instruction. -pub(crate) use self::feature::feature_decode as solana_core_feature_decode; +pub(crate) use self::feature::decoder_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; +pub(crate) use self::feature::decoder_solana_core_feature_recognize; /// Returns declared loader instruction coverage. -pub(crate) use self::loaders::loaders_coverage as solana_core_loaders_coverage; +pub(crate) use self::loaders::decoder_solana_core_loaders_coverage; /// Decodes one loader instruction. -pub(crate) use self::loaders::loaders_decode as solana_core_loaders_decode; +pub(crate) use self::loaders::decoder_solana_core_loaders_decode; /// Recognizes one loader instruction without producing an event. -pub(crate) use self::loaders::loaders_recognize as solana_core_loaders_recognize; +pub(crate) use self::loaders::decoder_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; +pub(crate) use self::payload::DcSolanaCoreResolvedInstructionPayload; /// 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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_solana_core_hash_bytes; /// Returns a normalized lowercase hexadecimal prefix. -pub(crate) use self::payload::hexadecimal_prefix as solana_core_hexadecimal_prefix; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_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; +pub(crate) use self::payload::decoder_solana_core_target_outer_instruction_index; /// Returns declared signature precompile coverage. -pub(crate) use self::precompiles::precompiles_coverage as solana_core_precompiles_coverage; +pub(crate) use self::precompiles::decoder_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; +pub(crate) use self::precompiles::decoder_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; +pub(crate) use self::precompiles::decoder_solana_core_precompiles_recognize; /// Returns declared Slashing Program instruction coverage. -pub(crate) use self::slashing::slashing_coverage as solana_core_slashing_coverage; +pub(crate) use self::slashing::decoder_solana_core_slashing_coverage; /// Decodes one Slashing Program instruction. -pub(crate) use self::slashing::slashing_decode as solana_core_slashing_decode; +pub(crate) use self::slashing::decoder_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; +pub(crate) use self::slashing::decoder_solana_core_slashing_recognize; /// Returns declared Stake Program instruction coverage. -pub(crate) use self::stake::stake_coverage as solana_core_stake_coverage; +pub(crate) use self::stake::decoder_solana_core_stake_coverage; /// Decodes one Stake Program instruction. -pub(crate) use self::stake::stake_decode as solana_core_stake_decode; +pub(crate) use self::stake::decoder_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; +pub(crate) use self::stake::decoder_solana_core_stake_recognize; /// Returns declared System Program instruction coverage. -pub(crate) use self::system::system_coverage as solana_core_system_coverage; +pub(crate) use self::system::decoder_solana_core_system_coverage; /// Decodes one System Program instruction. -pub(crate) use self::system::system_decode as solana_core_system_decode; +pub(crate) use self::system::decoder_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; +pub(crate) use self::system::decoder_solana_core_system_recognize; /// Returns declared Vote Program instruction coverage. -pub(crate) use self::vote::vote_coverage as solana_core_vote_coverage; +pub(crate) use self::vote::decoder_solana_core_vote_coverage; /// Decodes one Vote Program instruction. -pub(crate) use self::vote::vote_decode as solana_core_vote_decode; +pub(crate) use self::vote::decoder_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; +pub(crate) use self::vote::decoder_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; +pub(crate) use self::zk_elgamal::decoder_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; +pub(crate) use self::zk_elgamal::decoder_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; +pub(crate) use self::zk_elgamal::decoder_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; +pub(crate) use self::zk_token_proof::decoder_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; +pub(crate) use self::zk_token_proof::decoder_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; +pub(crate) use self::zk_token_proof::decoder_solana_core_zk_token_proof_recognize; /// Runtime-native Solana decoder with phased maximal native coverage. -pub use self::decoder::SolanaCoreDecoder; +pub use self::decoder::DcSolanaCoreDecoder; diff --git a/kb-lib/src/decoder/solana/core/accounts.rs b/kb-lib/src/decoder/solana/core/accounts.rs index b991ef8..26d100f 100644 --- a/kb-lib/src/decoder/solana/core/accounts.rs +++ b/kb-lib/src/decoder/solana/core/accounts.rs @@ -5,7 +5,7 @@ /// Expected role and privileges for one positional instruction account. #[derive(Clone, Copy, Debug)] -pub(crate) struct AccountRole { +pub(crate) struct DcSolanaCoreAccountRole { /// Stable role code. pub(crate) role: &'static str, /// Whether the official instruction contract marks the account writable. @@ -14,7 +14,7 @@ pub(crate) struct AccountRole { pub(crate) expected_signer: std::option::Option, } -impl AccountRole { +impl DcSolanaCoreAccountRole { /// Builds one account role declaration. pub(crate) const fn new( role: &'static str, @@ -39,9 +39,9 @@ impl AccountRole { } /// Resolves positional instruction accounts and validates their core indexes. -pub(crate) fn resolve_accounts( - input: &crate::CoreInstructionReplayInput, - roles: &[crate::SolanaCoreAccountRole], +pub(crate) fn decoder_solana_core_resolve_accounts( + input: &crate::MdCoreInstructionReplayInput, + roles: &[crate::DcSolanaCoreAccountRole], minimum_count: usize, maximum_count: std::option::Option, ) -> kb_core::Result { diff --git a/kb-lib/src/decoder/solana/core/address_lookup_table.rs b/kb-lib/src/decoder/solana/core/address_lookup_table.rs index 2ddd9aa..2b11763 100644 --- a/kb-lib/src/decoder/solana/core/address_lookup_table.rs +++ b/kb-lib/src/decoder/solana/core/address_lookup_table.rs @@ -6,30 +6,31 @@ const SOURCE: &str = "solana-address-lookup-table-interface@3.1.0 ProgramInstruction wincode contract"; -const CREATE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("lookup_table", true, false), - crate::SolanaCoreAccountRole::optional_signer("authority", false), - crate::SolanaCoreAccountRole::new("payer", true, true), - crate::SolanaCoreAccountRole::new("system_program", false, false), +const CREATE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("lookup_table", true, false), + crate::DcSolanaCoreAccountRole::optional_signer("authority", false), + crate::DcSolanaCoreAccountRole::new("payer", true, true), + crate::DcSolanaCoreAccountRole::new("system_program", false, false), ]; -const AUTHORITY_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("lookup_table", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), +const AUTHORITY_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("lookup_table", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), ]; -const EXTEND_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("lookup_table", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), - crate::SolanaCoreAccountRole::new("payer", true, true), - crate::SolanaCoreAccountRole::new("system_program", false, false), +const EXTEND_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("lookup_table", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), + crate::DcSolanaCoreAccountRole::new("payer", true, true), + crate::DcSolanaCoreAccountRole::new("system_program", false, false), ]; -const CLOSE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("lookup_table", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), - crate::SolanaCoreAccountRole::new("recipient", true, false), +const CLOSE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("lookup_table", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), + crate::DcSolanaCoreAccountRole::new("recipient", true, false), ]; /// Returns declared Address Lookup Table instruction coverage. -pub(crate) fn address_lookup_table_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_address_lookup_table_coverage() +-> std::vec::Vec { return vec![ coverage_entry( "create_lookup_table", @@ -60,37 +61,37 @@ pub(crate) fn address_lookup_table_coverage() -> std::vec::Vec crate::DecoderRecognition { - let bytes_result = crate::solana_core_decode_instruction_data(input); +) -> crate::DcApiDecoderRecognition { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, std::option::Option::Some( - crate::SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE.to_string(), ), std::option::Option::Some("malformed_address_lookup_table_instruction".to_string()), std::option::Option::None, ); }, }; - let tag_result = crate::solana_core_read_u32_le(bytes.as_slice(), 0); + let tag_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 0); let tag = match tag_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, std::option::Option::Some( - crate::SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE.to_string(), ), std::option::Option::Some("malformed_address_lookup_table_instruction".to_string()), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(4)), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(4)), ); }, }; @@ -103,39 +104,41 @@ pub(crate) fn address_lookup_table_recognize( } else { false }; - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( exact, priority, - std::option::Option::Some(crate::SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE.to_string()), + std::option::Option::Some( + crate::DC_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE.to_string(), + ), entry_code.map(str::to_string).or_else(|| { return std::option::Option::Some( "unknown_address_lookup_table_instruction".to_string(), ); }), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), 4), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), 4), ); } /// Decodes one Address Lookup Table instruction. -pub(crate) fn address_lookup_table_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +pub(crate) fn decoder_solana_core_address_lookup_table_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_address_lookup_table_instruction"), "address_lookup_table_payload_invalid", error.to_string(), ); }, }; - let tag_result = crate::solana_core_read_u32_le(bytes.as_slice(), 0); + let tag_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 0); let tag = match tag_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_address_lookup_table_instruction"), "address_lookup_table_tag_truncated", error.to_string(), @@ -145,12 +148,12 @@ pub(crate) fn address_lookup_table_decode( let entry_code = match entry_code(tag) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_unsupported_result( + return crate::decoder_solana_core_unsupported_result( "unknown_address_lookup_table_instruction", "address_lookup_table_tag_unknown", format!( "unknown Address Lookup Table instruction tag {tag}; payload_sha256={}", - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ); }, @@ -161,7 +164,7 @@ pub(crate) fn address_lookup_table_decode( let instruction = match instruction_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "address_lookup_table_wincode_invalid", format!("cannot decode exact Address Lookup Table {entry_code}: {error}"), @@ -172,9 +175,9 @@ pub(crate) fn address_lookup_table_decode( } fn decoded_instruction( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, instruction: solana_address_lookup_table_interface::instruction::ProgramInstruction, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { return match instruction { solana_address_lookup_table_interface::instruction::ProgramInstruction::CreateLookupTable { recent_slot, @@ -210,7 +213,7 @@ fn decoded_instruction( .map(std::vec::Vec::len) .unwrap_or(0); if account_count != 2 && account_count != 4 { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("extend_lookup_table"), "address_lookup_table_extend_accounts_invalid", format!( @@ -259,30 +262,30 @@ fn decoded_instruction( } fn build( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, entry_code: &str, - roles: &[crate::SolanaCoreAccountRole], + roles: &[crate::DcSolanaCoreAccountRole], minimum_count: usize, maximum_count: std::option::Option, parameters: serde_json::Value, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let accounts_result = - crate::solana_core_resolve_accounts(input, roles, minimum_count, maximum_count); + crate::decoder_solana_core_resolve_accounts(input, roles, minimum_count, maximum_count); let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "address_lookup_table_accounts_invalid", error.to_string(), ); }, }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE, + crate::DC_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE, entry_code, - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, accounts, parameters, @@ -304,19 +307,19 @@ fn entry_code(tag: u32) -> std::option::Option<&'static str> { fn coverage_entry( entry_code: &str, instruction: solana_address_lookup_table_interface::instruction::ProgramInstruction, -) -> crate::DecoderCoverageDeclaration { +) -> crate::DcApiDecoderCoverageDeclaration { let discriminator_hex = match wincode::serialize(&instruction) { std::result::Result::Ok(bytes) => { - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), 4) + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), 4) }, std::result::Result::Err(_error) => std::option::Option::None, }; - return crate::DecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::ADDRESS_LOOKUP_TABLE_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: entry_code.to_string(), discriminator_hex, historical: false, @@ -331,7 +334,7 @@ mod tests { instruction: &solana_address_lookup_table_interface::instruction::ProgramInstruction, account_count: usize, transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let bytes_result = wincode::serialize(instruction); let bytes = match bytes_result { std::result::Result::Ok(value) => value, @@ -344,7 +347,7 @@ mod tests { bytes: &[u8], account_count: usize, transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let encoded = base64::engine::general_purpose::STANDARD.encode(bytes); let account_keys = (0..account_count) .map(|index| { @@ -366,7 +369,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -429,12 +432,12 @@ mod tests { ), ]; for (instruction, account_count, expected) in fixtures { - let result = crate::solana_core_address_lookup_table_decode(&replay_input( + let result = crate::decoder_solana_core_address_lookup_table_decode(&replay_input( &instruction, account_count, false, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) @@ -448,28 +451,30 @@ mod tests { let instruction = solana_address_lookup_table_interface::instruction::ProgramInstruction::ExtendLookupTable { new_addresses: std::vec::Vec::new(), }; - let without_funding = - crate::solana_core_address_lookup_table_decode(&replay_input(&instruction, 2, false)); - assert_eq!(without_funding.status, crate::DecoderOutcomeStatus::Decoded); - let incomplete = - crate::solana_core_address_lookup_table_decode(&replay_input(&instruction, 3, false)); - assert_eq!(incomplete.status, crate::DecoderOutcomeStatus::Failed); + let without_funding = crate::decoder_solana_core_address_lookup_table_decode( + &replay_input(&instruction, 2, false), + ); + assert_eq!(without_funding.status, crate::DcApiDecoderOutcomeStatus::Decoded); + let incomplete = crate::decoder_solana_core_address_lookup_table_decode(&replay_input( + &instruction, + 3, + false, + )); + assert_eq!(incomplete.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn truncated_unknown_and_trailing_payloads_are_distinguished() { - let truncated = crate::solana_core_address_lookup_table_decode(&replay_input_bytes( - &[0, 0, 0], - 4, - false, - )); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let unknown = crate::solana_core_address_lookup_table_decode(&replay_input_bytes( + let truncated = crate::decoder_solana_core_address_lookup_table_decode( + &replay_input_bytes(&[0, 0, 0], 4, false), + ); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let unknown = crate::decoder_solana_core_address_lookup_table_decode(&replay_input_bytes( &[255, 0, 0, 0], 0, false, )); - assert_eq!(unknown.status, crate::DecoderOutcomeStatus::Unsupported); + assert_eq!(unknown.status, crate::DcApiDecoderOutcomeStatus::Unsupported); let mut valid = match wincode::serialize( &solana_address_lookup_table_interface::instruction::ProgramInstruction::FreezeLookupTable, ) { @@ -477,27 +482,30 @@ mod tests { std::result::Result::Err(error) => panic!("ALT fixture serialization failed: {error}"), }; valid.push(1); - let trailing = crate::solana_core_address_lookup_table_decode(&replay_input_bytes( + let trailing = crate::decoder_solana_core_address_lookup_table_decode(&replay_input_bytes( valid.as_slice(), 2, false, )); - assert_eq!(trailing.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(trailing.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn failed_transaction_is_decoded_as_uncommitted_lifecycle_intent() { let instruction = solana_address_lookup_table_interface::instruction::ProgramInstruction::DeactivateLookupTable; - let result = - crate::solana_core_address_lookup_table_decode(&replay_input(&instruction, 2, true)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_address_lookup_table_decode(&replay_input( + &instruction, + 2, + true, + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); assert_eq!(result.observations[0].payload_json["transactionSucceeded"], false); } #[test] fn coverage_uses_official_encoder_discriminants() { - let coverage = crate::solana_core_address_lookup_table_coverage(); + let coverage = crate::decoder_solana_core_address_lookup_table_coverage(); assert_eq!(coverage.len(), 5); assert_eq!(coverage[0].discriminator_hex.as_deref(), std::option::Option::Some("00000000")); assert_eq!(coverage[4].discriminator_hex.as_deref(), std::option::Option::Some("04000000")); diff --git a/kb-lib/src/decoder/solana/core/compute_budget.rs b/kb-lib/src/decoder/solana/core/compute_budget.rs index 9375122..589c740 100644 --- a/kb-lib/src/decoder/solana/core/compute_budget.rs +++ b/kb-lib/src/decoder/solana/core/compute_budget.rs @@ -10,7 +10,8 @@ const SOURCE_HISTORICAL: &str = "solana-sdk compute_budget::ComputeBudgetInstruction RequestUnitsDeprecated"; /// Returns declared Compute Budget instruction coverage. -pub(crate) fn compute_budget_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_compute_budget_coverage() +-> std::vec::Vec { return vec![ coverage_entry("unused_reserved", "00", false), coverage_entry("request_units_deprecated", "00", true), @@ -22,19 +23,19 @@ pub(crate) fn compute_budget_coverage() -> std::vec::Vec crate::DecoderRecognition { - let bytes_result = crate::solana_core_decode_instruction_data(input); +) -> crate::DcApiDecoderRecognition { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, std::option::Option::Some( - crate::SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE.to_string(), ), std::option::Option::Some("malformed_compute_budget_instruction".to_string()), std::option::Option::None, @@ -42,26 +43,26 @@ pub(crate) fn compute_budget_recognize( }, }; let entry_code = entry_code(bytes.as_slice()); - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( entry_code.is_some(), priority, - std::option::Option::Some(crate::SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE.to_string()), entry_code.map(str::to_string).or_else(|| { return std::option::Option::Some("unknown_compute_budget_instruction".to_string()); }), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), 1), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), 1), ); } /// Decodes one Compute Budget instruction. -pub(crate) fn compute_budget_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +pub(crate) fn decoder_solana_core_compute_budget_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_compute_budget_instruction"), "compute_budget_payload_invalid", error.to_string(), @@ -69,18 +70,18 @@ pub(crate) fn compute_budget_decode( }, }; if bytes.is_empty() { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_compute_budget_instruction"), "compute_budget_payload_empty", "Compute Budget instruction payload is empty", ); } let accounts_result = - crate::solana_core_resolve_accounts(input, &[], 0, std::option::Option::None); + crate::decoder_solana_core_resolve_accounts(input, &[], 0, std::option::Option::None); let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( entry_code(bytes.as_slice()), "compute_budget_accounts_invalid", error.to_string(), @@ -88,26 +89,26 @@ pub(crate) fn compute_budget_decode( }, }; return match bytes[0] { - 0 if bytes.len() == 1 => crate::DecoderExecutionResult::ignored(std::option::Option::Some( - "unused_reserved".to_string(), - )), + 0 if bytes.len() == 1 => crate::DcApiDecoderExecutionResult::ignored( + std::option::Option::Some("unused_reserved".to_string()), + ), 0 if bytes.len() == 9 => { - let units_result = crate::solana_core_read_u32_le(bytes.as_slice(), 1); + let units_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 1); let units = match units_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("request_units_deprecated"), "compute_budget_request_units_truncated", error.to_string(), ); }, }; - let additional_fee_result = crate::solana_core_read_u32_le(bytes.as_slice(), 5); + let additional_fee_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 5); let additional_fee = match additional_fee_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("request_units_deprecated"), "compute_budget_request_units_truncated", error.to_string(), @@ -118,18 +119,18 @@ pub(crate) fn compute_budget_decode( parameters.insert("units".to_string(), serde_json::json!(units)); parameters.insert("additionalFee".to_string(), serde_json::json!(additional_fee)); append_transaction_profile(input, &mut parameters); - crate::solana_core_decoded_result( + crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE, + crate::DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE, "request_units_deprecated", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, true, accounts, serde_json::Value::Object(parameters), SOURCE_HISTORICAL, ) }, - 0 => crate::solana_core_failed_result( + 0 => crate::decoder_solana_core_failed_result( std::option::Option::Some("request_units_deprecated"), "compute_budget_request_units_size_invalid", format!( @@ -161,26 +162,26 @@ pub(crate) fn compute_budget_decode( "set_loaded_accounts_data_size_limit", "bytes", ), - tag => crate::solana_core_unsupported_result( + tag => crate::decoder_solana_core_unsupported_result( "unknown_compute_budget_instruction", "compute_budget_tag_unknown", format!( "unknown Compute Budget instruction tag {tag}; payload_sha256={}", - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ), }; } fn decode_u32_instruction( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], accounts: serde_json::Value, entry_code: &str, field_name: &str, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { if bytes.len() < 5 { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "compute_budget_instruction_size_invalid", format!( @@ -189,11 +190,11 @@ fn decode_u32_instruction( ), ); } - let value_result = crate::solana_core_read_u32_le(bytes, 1); + let value_result = crate::decoder_solana_core_read_u32_le(bytes, 1); let value = match value_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "compute_budget_instruction_truncated", error.to_string(), @@ -204,11 +205,11 @@ fn decode_u32_instruction( parameters.insert(field_name.to_string(), serde_json::json!(value)); append_runtime_ignored_trailing_data(&mut parameters, bytes, 5); append_transaction_profile(input, &mut parameters); - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE, + crate::DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE, entry_code, - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, false, accounts, serde_json::Value::Object(parameters), @@ -217,14 +218,14 @@ fn decode_u32_instruction( } fn decode_u64_instruction( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], accounts: serde_json::Value, entry_code: &str, field_name: &str, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { if bytes.len() < 9 { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "compute_budget_instruction_size_invalid", format!( @@ -233,11 +234,11 @@ fn decode_u64_instruction( ), ); } - let value_result = crate::solana_core_read_u64_le(bytes, 1); + let value_result = crate::decoder_solana_core_read_u64_le(bytes, 1); let value = match value_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "compute_budget_instruction_truncated", error.to_string(), @@ -248,11 +249,11 @@ fn decode_u64_instruction( parameters.insert(field_name.to_string(), serde_json::json!(value)); append_runtime_ignored_trailing_data(&mut parameters, bytes, 9); append_transaction_profile(input, &mut parameters); - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE, + crate::DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE, entry_code, - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, false, accounts, serde_json::Value::Object(parameters), @@ -261,13 +262,13 @@ fn decode_u64_instruction( } fn append_transaction_profile( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, parameters: &mut serde_json::Map, ) { parameters.insert("transactionProfile".to_string(), transaction_profile(input)); } -fn transaction_profile(input: &crate::CoreInstructionReplayInput) -> serde_json::Value { +fn transaction_profile(input: &crate::MdCoreInstructionReplayInput) -> serde_json::Value { let target_path = input.instruction_path.as_str(); let mut instruction_rows = std::vec::Vec::new(); let mut effective = serde_json::Map::new(); @@ -337,7 +338,7 @@ impl ComputeBudgetProfileRow { } fn compute_budget_outer_rows( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, ) -> std::vec::Vec { let mut rows = std::vec::Vec::new(); let outer_values = match input.outer_instructions_json.as_array() { @@ -393,14 +394,14 @@ fn compute_budget_outer_rows( )); } if rows.is_empty() && input.program_id == kb_program_ids::COMPUTE_BUDGET_PROGRAM_ID { - let bytes_result = crate::solana_core_decode_instruction_data(input); + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { rows.push(profile_failure_row( input.instruction_path.parse::().unwrap_or(0), input.instruction_path.clone(), - serde_json::Value::String(crate::solana_core_payload_hash(input)), + serde_json::Value::String(crate::decoder_solana_core_payload_hash(input)), "payload_invalid", error.to_string().as_str(), )); @@ -410,7 +411,7 @@ fn compute_budget_outer_rows( rows.push(profile_row_from_bytes( input.instruction_path.parse::().unwrap_or(0), input.instruction_path.clone(), - serde_json::Value::String(crate::solana_core_payload_hash(input)), + serde_json::Value::String(crate::decoder_solana_core_payload_hash(input)), bytes.as_slice(), )); } @@ -432,10 +433,14 @@ fn profile_row_from_bytes( "unused_reserved" => {}, "request_units_deprecated" => { if bytes.len() == 9 { - if let std::result::Result::Ok(value) = crate::solana_core_read_u32_le(bytes, 1) { + if let std::result::Result::Ok(value) = + crate::decoder_solana_core_read_u32_le(bytes, 1) + { parameters.insert("units".to_string(), serde_json::json!(value)); } - if let std::result::Result::Ok(value) = crate::solana_core_read_u32_le(bytes, 5) { + if let std::result::Result::Ok(value) = + crate::decoder_solana_core_read_u32_le(bytes, 5) + { parameters.insert("additionalFee".to_string(), serde_json::json!(value)); } } else { @@ -445,7 +450,9 @@ fn profile_row_from_bytes( }, "request_heap_frame" | "set_compute_unit_limit" | "set_loaded_accounts_data_size_limit" => { if bytes.len() >= 5 { - if let std::result::Result::Ok(value) = crate::solana_core_read_u32_le(bytes, 1) { + if let std::result::Result::Ok(value) = + crate::decoder_solana_core_read_u32_le(bytes, 1) + { let field_name = match entry { "request_heap_frame" => "bytes", "set_compute_unit_limit" => "computeUnitLimit", @@ -461,7 +468,9 @@ fn profile_row_from_bytes( }, "set_compute_unit_price" => { if bytes.len() >= 9 { - if let std::result::Result::Ok(value) = crate::solana_core_read_u64_le(bytes, 1) { + if let std::result::Result::Ok(value) = + crate::decoder_solana_core_read_u64_le(bytes, 1) + { parameters.insert("microLamports".to_string(), serde_json::json!(value)); } trailing_data_present = bytes.len() > 9; @@ -515,7 +524,7 @@ fn decode_payload_json_for_profile( return std::result::Result::Err("payload does not contain dataBase64".to_string()); }, }; - let maximum_encoded_length = crate::SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES + let maximum_encoded_length = crate::DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES .saturating_mul(4) .saturating_div(3) .saturating_add(4); @@ -531,10 +540,10 @@ fn decode_payload_json_for_profile( return std::result::Result::Err(format!("payload is not valid base64: {error}")); }, }; - if decoded.len() > crate::SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES { + if decoded.len() > crate::DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES { return std::result::Result::Err(format!( "payload exceeds {} decoded bytes", - crate::SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES + crate::DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES )); } return std::result::Result::Ok(decoded); @@ -612,11 +621,11 @@ fn append_runtime_ignored_trailing_data( parameters.insert("trailingDataByteLength".to_string(), serde_json::json!(trailing_data.len())); parameters.insert( "trailingDataSha256".to_string(), - serde_json::json!(crate::solana_core_hash_bytes(trailing_data)), + serde_json::json!(crate::decoder_solana_core_hash_bytes(trailing_data)), ); parameters.insert( "trailingDataPrefixHex".to_string(), - serde_json::json!(crate::solana_core_hexadecimal_prefix( + serde_json::json!(crate::decoder_solana_core_hexadecimal_prefix( trailing_data, trailing_data.len().min(16), )), @@ -647,13 +656,13 @@ fn coverage_entry( entry_code: &str, discriminator_hex: &str, historical: bool, -) -> crate::DecoderCoverageDeclaration { - return crate::DecoderCoverageDeclaration { +) -> crate::DcApiDecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::COMPUTE_BUDGET_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: entry_code.to_string(), discriminator_hex: std::option::Option::Some(discriminator_hex.to_string()), historical, @@ -664,9 +673,9 @@ fn coverage_entry( mod tests { use base64::Engine; // rust-rules: trait-import - fn replay_input(bytes: &[u8], transaction_failed: bool) -> crate::CoreInstructionReplayInput { + fn replay_input(bytes: &[u8], transaction_failed: bool) -> crate::MdCoreInstructionReplayInput { let encoded = base64::engine::general_purpose::STANDARD.encode(bytes); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -697,9 +706,9 @@ mod tests { bytes: &[u8], instruction_path: &str, outer_instructions_json: serde_json::Value, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let encoded = base64::engine::general_purpose::STANDARD.encode(bytes); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -761,12 +770,12 @@ mod tests { &[2, 128, 132, 30, 0], ), ]); - let result = crate::solana_core_compute_budget_decode(&replay_input_with_outer( + let result = crate::decoder_solana_core_compute_budget_decode(&replay_input_with_outer( &[2, 64, 66, 15, 0], "0", outer, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); let profile = &result.observations[0].payload_json["parameters"]["transactionProfile"]; assert_eq!(profile["currentInstructionIsProfileEmitter"], true); assert_eq!(profile["computeBudgetInstructionCount"], 3); @@ -790,9 +799,11 @@ mod tests { }, }; assert_eq!(bytes, [3, 7, 0, 0, 0, 0, 0, 0, 0]); - let result = - crate::solana_core_compute_budget_decode(&replay_input(bytes.as_slice(), false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_compute_budget_decode(&replay_input( + bytes.as_slice(), + false, + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("set_compute_unit_price") @@ -808,9 +819,11 @@ mod tests { (vec![4, 0, 0, 0, 1], "set_loaded_accounts_data_size_limit"), ]; for (bytes, expected) in fixtures { - let result = - crate::solana_core_compute_budget_decode(&replay_input(bytes.as_slice(), false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_compute_budget_decode(&replay_input( + bytes.as_slice(), + false, + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) @@ -821,11 +834,11 @@ mod tests { #[test] fn historical_request_units_is_decoded() { - let result = crate::solana_core_compute_budget_decode(&replay_input( + let result = crate::decoder_solana_core_compute_budget_decode(&replay_input( &[0, 64, 13, 3, 0, 7, 0, 0, 0], false, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("request_units_deprecated") @@ -836,27 +849,28 @@ mod tests { #[test] fn reserved_unused_tag_is_ignored_without_false_event() { - let result = crate::solana_core_compute_budget_decode(&replay_input(&[0], false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Ignored); + let result = crate::decoder_solana_core_compute_budget_decode(&replay_input(&[0], false)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Ignored); assert!(result.observations.is_empty()); } #[test] fn truncated_and_unknown_payloads_are_distinguished() { - let truncated = crate::solana_core_compute_budget_decode(&replay_input(&[2, 1, 2], false)); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); + let truncated = + crate::decoder_solana_core_compute_budget_decode(&replay_input(&[2, 1, 2], false)); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); let unknown = - crate::solana_core_compute_budget_decode(&replay_input(&[255, 1, 2, 3], false)); - assert_eq!(unknown.status, crate::DecoderOutcomeStatus::Unsupported); + crate::decoder_solana_core_compute_budget_decode(&replay_input(&[255, 1, 2, 3], false)); + assert_eq!(unknown.status, crate::DcApiDecoderOutcomeStatus::Unsupported); } #[test] fn current_variants_accept_and_preserve_runtime_ignored_trailing_bytes() { - let result = crate::solana_core_compute_budget_decode(&replay_input( + let result = crate::decoder_solana_core_compute_budget_decode(&replay_input( &[2, 64, 13, 3, 0, 1, 2, 3, 4, 5, 6, 7], true, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("set_compute_unit_limit") @@ -877,9 +891,11 @@ mod tests { #[test] fn failed_transaction_event_is_not_committed() { - let result = - crate::solana_core_compute_budget_decode(&replay_input(&[2, 64, 13, 3, 0], true)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_compute_budget_decode(&replay_input( + &[2, 64, 13, 3, 0], + true, + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(result.observations[0].transaction_failed); assert!(!result.observations[0].observation_committed); assert_eq!(result.observations[0].payload_json["transactionSucceeded"], false); @@ -887,7 +903,7 @@ mod tests { #[test] fn coverage_declares_current_and_historical_entries() { - let coverage = crate::solana_core_compute_budget_coverage(); + let coverage = crate::decoder_solana_core_compute_budget_coverage(); assert_eq!(coverage.len(), 6); assert!(coverage.iter().any(|entry| { return entry.entry_code == "request_units_deprecated" && entry.historical; diff --git a/kb-lib/src/decoder/solana/core/config.rs b/kb-lib/src/decoder/solana/core/config.rs index a50ec7d..23c5fb8 100644 --- a/kb-lib/src/decoder/solana/core/config.rs +++ b/kb-lib/src/decoder/solana/core/config.rs @@ -14,11 +14,14 @@ struct ParsedConfigPayload { } /// Returns declared Config Program instruction coverage. -pub(crate) fn config_coverage() -> std::vec::Vec { - return vec![crate::DecoderCoverageDeclaration { +pub(crate) fn decoder_solana_core_config_coverage() +-> std::vec::Vec { + return vec![crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::CONFIG_PROGRAM_ID.to_string(), - surface_code: std::option::Option::Some(crate::SOLANA_CORE_CONFIG_SURFACE_CODE.to_string()), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + surface_code: std::option::Option::Some( + crate::DC_SOLANA_CORE_CONFIG_SURFACE_CODE.to_string(), + ), + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: "store".to_string(), discriminator_hex: std::option::Option::None, historical: false, @@ -26,46 +29,46 @@ pub(crate) fn config_coverage() -> std::vec::Vec crate::DecoderRecognition { - let bytes_result = crate::solana_core_decode_instruction_data(input); +) -> crate::DcApiDecoderRecognition { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, - std::option::Option::Some(crate::SOLANA_CORE_CONFIG_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_CONFIG_SURFACE_CODE.to_string()), std::option::Option::Some("malformed_config_store".to_string()), std::option::Option::None, ); }, }; let exact = parse_payload(bytes.as_slice()).is_ok(); - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( exact, priority, - std::option::Option::Some(crate::SOLANA_CORE_CONFIG_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_CONFIG_SURFACE_CODE.to_string()), std::option::Option::Some(if exact { "store".to_string() } else { "malformed_config_store".to_string() }), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(3)), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(3)), ); } /// Decodes one generic Config Program store instruction. -pub(crate) fn config_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +pub(crate) fn decoder_solana_core_config_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_config_store"), "config_payload_invalid", error.to_string(), @@ -76,7 +79,7 @@ pub(crate) fn config_decode( let parsed = match parsed_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("store"), "config_keys_invalid", error.to_string(), @@ -87,7 +90,7 @@ pub(crate) fn config_decode( let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("store"), "config_accounts_invalid", error.to_string(), @@ -97,7 +100,7 @@ pub(crate) fn config_decode( let data = match bytes.get(parsed.data_offset..) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("store"), "config_data_offset_invalid", "Config data offset exceeds retained payload", @@ -112,11 +115,11 @@ pub(crate) fn config_decode( }) .collect::>(); let signer_count = parsed.keys.iter().filter(|(_, signer)| return *signer).count(); - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_CONFIG_SURFACE_CODE, + crate::DC_SOLANA_CORE_CONFIG_SURFACE_CODE, "store", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, accounts, serde_json::json!({ @@ -124,8 +127,8 @@ pub(crate) fn config_decode( "configuredKeyCount": parsed.keys.len(), "configuredSignerCount": signer_count, "configDataByteLength": data.len(), - "configDataSha256": crate::solana_core_hash_bytes(data), - "configDataPrefixHex": crate::solana_core_hexadecimal_prefix(data, data.len().min(16)), + "configDataSha256": crate::decoder_solana_core_hash_bytes(data), + "configDataPrefixHex": crate::decoder_solana_core_hexadecimal_prefix(data, data.len().min(16)), "configDataSemantics": "opaque_program_specific", }), SOURCE, @@ -247,7 +250,7 @@ fn read_compact_u16(bytes: &[u8]) -> kb_core::Result<(u16, usize)> { } fn resolve_and_validate_accounts( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, parsed: &ParsedConfigPayload, ) -> kb_core::Result { let instruction_accounts = match input.instruction_accounts_json.as_array() { @@ -277,12 +280,12 @@ fn resolve_and_validate_accounts( .map(|(pubkey, _signer)| return pubkey.as_str()) .collect::>(); let mut roles = std::vec::Vec::with_capacity(required_signers.len().saturating_add(1)); - roles.push(crate::SolanaCoreAccountRole::optional_signer("config_account", true)); + roles.push(crate::DcSolanaCoreAccountRole::optional_signer("config_account", true)); for _signer in &required_signers { - roles.push(crate::SolanaCoreAccountRole::new("configured_signer", true, true)); + roles.push(crate::DcSolanaCoreAccountRole::new("configured_signer", true, true)); } let minimum_count = required_signers.len().saturating_add(1); - let accounts = match crate::solana_core_resolve_accounts( + let accounts = match crate::decoder_solana_core_resolve_accounts( input, roles.as_slice(), minimum_count, @@ -338,7 +341,7 @@ mod tests { bytes: &[u8], extra_accounts: &[std::string::String], transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let mut keys = vec!["ConfigAccount1111111111111111111111111111".to_string()]; keys.extend_from_slice(extra_accounts); let account_keys = keys @@ -362,7 +365,7 @@ mod tests { return serde_json::json!({"accountIndex": index, "accountKey": key}); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -395,11 +398,12 @@ mod tests { fn valid_generic_store_is_recognized_exactly() { let payload = encode_payload(&[], &[1, 2, 3]); let input = replay_input(payload.as_slice(), &[], false); - let recognition = crate::solana_core_config_recognize(&input, 100); + let recognition = crate::decoder_solana_core_config_recognize(&input, 100); assert!(recognition.compatible); assert!(recognition.exact); assert_eq!(recognition.entry_code.as_deref(), std::option::Option::Some("store")); - let malformed = crate::solana_core_config_recognize(&replay_input(&[], &[], false), 100); + let malformed = + crate::decoder_solana_core_config_recognize(&replay_input(&[], &[], false), 100); assert!(malformed.compatible); assert!(!malformed.exact); } @@ -408,8 +412,8 @@ mod tests { fn empty_key_set_and_opaque_data_decode_without_invented_semantics() { let payload = encode_payload(&[], &[1, 2, 3, 4]); let result = - crate::solana_core_config_decode(&replay_input(payload.as_slice(), &[], false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + crate::decoder_solana_core_config_decode(&replay_input(payload.as_slice(), &[], false)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.observations[0].payload_json["parameters"]["configuredKeyCount"], 0); assert_eq!(result.observations[0].payload_json["parameters"]["configDataByteLength"], 4); assert_eq!( @@ -423,9 +427,12 @@ mod tests { let signer_bytes = [7_u8; 32]; let signer = bs58::encode(signer_bytes).into_string(); let payload = encode_payload(&[([3_u8; 32], false), (signer_bytes, true)], &[9]); - let result = - crate::solana_core_config_decode(&replay_input(payload.as_slice(), &[signer], false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_config_decode(&replay_input( + payload.as_slice(), + &[signer], + false, + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.observations[0].payload_json["parameters"]["configuredSignerCount"], 1); assert_eq!(result.observations[0].payload_json["accounts"][1]["role"], "configured_signer"); } @@ -452,9 +459,12 @@ mod tests { value }, ] { - let result = - crate::solana_core_config_decode(&replay_input(payload.as_slice(), &[], false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = crate::decoder_solana_core_config_decode(&replay_input( + payload.as_slice(), + &[], + false, + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } @@ -463,27 +473,28 @@ mod tests { let signer_bytes = [8_u8; 32]; let payload = encode_payload(&[(signer_bytes, true)], &[]); let missing = - crate::solana_core_config_decode(&replay_input(payload.as_slice(), &[], false)); - assert_eq!(missing.status, crate::DecoderOutcomeStatus::Failed); - let mismatch = crate::solana_core_config_decode(&replay_input( + crate::decoder_solana_core_config_decode(&replay_input(payload.as_slice(), &[], false)); + assert_eq!(missing.status, crate::DcApiDecoderOutcomeStatus::Failed); + let mismatch = crate::decoder_solana_core_config_decode(&replay_input( payload.as_slice(), &[bs58::encode([9_u8; 32]).into_string()], false, )); - assert_eq!(mismatch.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(mismatch.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn failed_config_store_is_decoded_as_uncommitted_intent() { let payload = encode_payload(&[], &[5]); - let result = crate::solana_core_config_decode(&replay_input(payload.as_slice(), &[], true)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = + crate::decoder_solana_core_config_decode(&replay_input(payload.as_slice(), &[], true)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); } #[test] fn coverage_declares_one_generic_store_surface() { - let coverage = crate::solana_core_config_coverage(); + let coverage = crate::decoder_solana_core_config_coverage(); assert_eq!(coverage.len(), 1); assert_eq!(coverage[0].entry_code, "store"); assert!(coverage[0].discriminator_hex.is_none()); diff --git a/kb-lib/src/decoder/solana/core/constants.rs b/kb-lib/src/decoder/solana/core/constants.rs index e7fda41..38f0d09 100644 --- a/kb-lib/src/decoder/solana/core/constants.rs +++ b/kb-lib/src/decoder/solana/core/constants.rs @@ -4,63 +4,67 @@ //! Local constants for the Solana Core decoder component. /// Stable protocol code shared by native Solana events. -pub(crate) const PROTOCOL_CODE: &str = "solana_native"; +pub(crate) const DC_SOLANA_CORE_PROTOCOL_CODE: &str = "solana_native"; /// Stable System Program surface code. -pub(crate) const SYSTEM_SURFACE_CODE: &str = "solana_native_system"; +pub(crate) const DC_SOLANA_CORE_SYSTEM_SURFACE_CODE: &str = "solana_native_system"; /// Stable deprecated immutable BPF Loader surface code. -pub(crate) const BPF_LOADER_DEPRECATED_SURFACE_CODE: &str = "solana_native_bpf_loader_deprecated"; +pub(crate) const DC_SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE: &str = + "solana_native_bpf_loader_deprecated"; /// Stable immutable BPF Loader v2 surface code. -pub(crate) const BPF_LOADER_SURFACE_CODE: &str = "solana_native_bpf_loader"; +pub(crate) const DC_SOLANA_CORE_BPF_LOADER_SURFACE_CODE: &str = "solana_native_bpf_loader"; /// Stable upgradeable BPF Loader surface code. -pub(crate) const BPF_LOADER_UPGRADEABLE_SURFACE_CODE: &str = "solana_native_bpf_loader_upgradeable"; +pub(crate) const DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE: &str = + "solana_native_bpf_loader_upgradeable"; /// Stable Loader v4 surface code. -pub(crate) const LOADER_V4_SURFACE_CODE: &str = "solana_native_loader_v4"; +pub(crate) const DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE: &str = "solana_native_loader_v4"; /// Stable Native Loader surface code. -pub(crate) const NATIVE_LOADER_SURFACE_CODE: &str = "solana_native_loader"; +pub(crate) const DC_SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE: &str = "solana_native_loader"; /// Stable Compute Budget surface code. -pub(crate) const COMPUTE_BUDGET_SURFACE_CODE: &str = "solana_native_compute_budget"; +pub(crate) const DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE: &str = "solana_native_compute_budget"; /// Stable Address Lookup Table surface code. -pub(crate) const ADDRESS_LOOKUP_TABLE_SURFACE_CODE: &str = "solana_native_address_lookup_table"; +pub(crate) const DC_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE: &str = + "solana_native_address_lookup_table"; /// Stable Vote Program surface code. -pub(crate) const VOTE_SURFACE_CODE: &str = "solana_native_vote"; +pub(crate) const DC_SOLANA_CORE_VOTE_SURFACE_CODE: &str = "solana_native_vote"; /// Stable Stake Program surface code. -pub(crate) const STAKE_SURFACE_CODE: &str = "solana_native_stake"; +pub(crate) const DC_SOLANA_CORE_STAKE_SURFACE_CODE: &str = "solana_native_stake"; /// Stable Config Program surface code. -pub(crate) const CONFIG_SURFACE_CODE: &str = "solana_native_config"; +pub(crate) const DC_SOLANA_CORE_CONFIG_SURFACE_CODE: &str = "solana_native_config"; /// Stable Feature Gate surface code. -pub(crate) const FEATURE_SURFACE_CODE: &str = "solana_native_feature"; +pub(crate) const DC_SOLANA_CORE_FEATURE_SURFACE_CODE: &str = "solana_native_feature"; /// Stable Ed25519 signature precompile surface code. -pub(crate) const ED25519_SURFACE_CODE: &str = "solana_native_ed25519"; +pub(crate) const DC_SOLANA_CORE_ED25519_SURFACE_CODE: &str = "solana_native_ed25519"; /// Stable secp256k1 signature precompile surface code. -pub(crate) const SECP256K1_SURFACE_CODE: &str = "solana_native_secp256k1"; +pub(crate) const DC_SOLANA_CORE_SECP256K1_SURFACE_CODE: &str = "solana_native_secp256k1"; /// Stable secp256r1 signature precompile surface code. -pub(crate) const SECP256R1_SURFACE_CODE: &str = "solana_native_secp256r1"; +pub(crate) const DC_SOLANA_CORE_SECP256R1_SURFACE_CODE: &str = "solana_native_secp256r1"; /// Stable native ZK ElGamal Proof surface code. -pub(crate) const ZK_ELGAMAL_PROOF_SURFACE_CODE: &str = "solana_native_zk_elgamal_proof"; +pub(crate) const DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE: &str = + "solana_native_zk_elgamal_proof"; /// Stable historical ZK Token Proof surface code. -pub(crate) const ZK_TOKEN_PROOF_SURFACE_CODE: &str = "solana_native_zk_token_proof"; +pub(crate) const DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE: &str = "solana_native_zk_token_proof"; /// Byte length shared by compact Ed25519, secp256k1 and secp256r1 signatures. -pub(crate) const SIGNATURE_BYTES: usize = 64; +pub(crate) const DC_SOLANA_CORE_SIGNATURE_BYTES: usize = 64; /// Byte length of an Ed25519 public key. -pub(crate) const ED25519_PUBLIC_KEY_BYTES: usize = 32; +pub(crate) const DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES: usize = 32; /// Byte length of a compressed secp256r1 public key. -pub(crate) const SECP256R1_PUBLIC_KEY_BYTES: usize = 33; +pub(crate) const DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES: usize = 33; /// Byte length of a secp256k1 Ethereum address. -pub(crate) const SECP256K1_ETHEREUM_ADDRESS_BYTES: usize = 20; +pub(crate) const DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES: usize = 20; /// Byte length of one Ed25519 or secp256r1 offsets entry. -pub(crate) const U16_OFFSETS_BYTES: usize = 14; +pub(crate) const DC_SOLANA_CORE_U16_OFFSETS_BYTES: usize = 14; /// Byte length of one secp256k1 offsets entry. -pub(crate) const U8_OFFSETS_BYTES: usize = 11; +pub(crate) const DC_SOLANA_CORE_U8_OFFSETS_BYTES: usize = 11; /// Stable Slashing Program decoder surface code. -pub(crate) const SLASHING_SURFACE_CODE: &str = "solana_native_slashing"; +pub(crate) const DC_SOLANA_CORE_SLASHING_SURFACE_CODE: &str = "solana_native_slashing"; /// Runtime maximum number of secp256r1 signatures in one precompile instruction. -pub(crate) const SECP256R1_MAX_SIGNATURES: usize = 8; +pub(crate) const DC_SOLANA_CORE_SECP256R1_MAX_SIGNATURES: usize = 8; /// Maximum number of component bytes retained as a hexadecimal event prefix. -pub(crate) const PRECOMPILE_COMPONENT_PREFIX_BYTES: usize = 16; +pub(crate) const DC_SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES: usize = 16; /// Maximum retained native instruction payload accepted by the first decoder phase. -pub(crate) const MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES: usize = 4_096; +pub(crate) const DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES: usize = 4_096; /// Current native event payload contract version. -pub(crate) const NATIVE_EVENT_VERSION: u32 = 1; +pub(crate) const DC_SOLANA_CORE_NATIVE_EVENT_VERSION: u32 = 1; /// Canonical tracing target for the Solana Core decoder component. -pub(crate) const TRACING_TARGET: &str = "kb-lib.decoder.solana.core"; +pub(crate) const DC_SOLANA_CORE_TRACING_TARGET: &str = "kb-lib.decoder.solana.core"; diff --git a/kb-lib/src/decoder/solana/core/decoder.rs b/kb-lib/src/decoder/solana/core/decoder.rs index 01ab852..2471630 100644 --- a/kb-lib/src/decoder/solana/core/decoder.rs +++ b/kb-lib/src/decoder/solana/core/decoder.rs @@ -3,93 +3,93 @@ //! Runtime-native Solana program classifier for the common decode pipeline. -const NATIVE_SURFACES: &[crate::DecoderSurface] = &[ - crate::DecoderSurface { +const NATIVE_SURFACES: &[crate::DcApiDecoderSurface] = &[ + crate::DcApiDecoderSurface { program_id: kb_program_ids::ADDRESS_LOOKUP_TABLE_PROGRAM_ID, surface_code: "solana_native_address_lookup_table", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::BPF_LOADER_DEPRECATED_PROGRAM_ID, surface_code: "solana_native_bpf_loader_deprecated", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::BPF_LOADER_PROGRAM_ID, surface_code: "solana_native_bpf_loader", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::BPF_LOADER_UPGRADEABLE_PROGRAM_ID, surface_code: "solana_native_bpf_loader_upgradeable", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::COMPUTE_BUDGET_PROGRAM_ID, surface_code: "solana_native_compute_budget", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::CONFIG_PROGRAM_ID, surface_code: "solana_native_config", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::ED25519_PROGRAM_ID, surface_code: "solana_native_ed25519", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::FEATURE_PROGRAM_ID, surface_code: "solana_native_feature", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::LOADER_V4_PROGRAM_ID, surface_code: "solana_native_loader_v4", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::NATIVE_LOADER_PROGRAM_ID, surface_code: "solana_native_loader", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::SECP256K1_PROGRAM_ID, surface_code: "solana_native_secp256k1", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::SECP256R1_PROGRAM_ID, surface_code: "solana_native_secp256r1", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::SLASHING_PROGRAM_ID, surface_code: "solana_native_slashing", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::STAKE_PROGRAM_ID, surface_code: "solana_native_stake", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::SYSTEM_PROGRAM_ID, surface_code: "solana_native_system", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::VOTE_PROGRAM_ID, surface_code: "solana_native_vote", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::ZK_ELGAMAL_PROOF_PROGRAM_ID, surface_code: "solana_native_zk_elgamal_proof", priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::ZK_TOKEN_PROOF_PROGRAM_ID, surface_code: "solana_native_zk_token_proof", priority: 100, @@ -119,9 +119,9 @@ const LEGACY_PROGRAM_IDS: &[&str] = &[ /// Runtime-native Solana decoder with phased maximal instruction coverage. #[derive(Clone, Debug, Default)] -pub struct SolanaCoreDecoder; +pub struct DcSolanaCoreDecoder; -impl crate::ProtocolDecoder for crate::SolanaCoreDecoder { +impl crate::DcApiProtocolDecoder for crate::DcSolanaCoreDecoder { fn decoder_name(&self) -> &'static str { return "kb_decoder_solana_core"; } @@ -136,49 +136,49 @@ impl crate::ProtocolDecoder for crate::SolanaCoreDecoder { fn supports_observation( &self, - observation: &crate::ProgramObservation, - ) -> crate::DecoderSupport { - return if crate::ProtocolDecoder::handles_program_id(self, &observation.program_id) { - crate::DecoderSupport::Maybe + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + return if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + crate::DcApiDecoderSupport::Maybe } else { - crate::DecoderSupport::No + crate::DcApiDecoderSupport::No }; } fn decode_observation( &self, - _observation: &crate::ProgramObservation, - ) -> kb_core::Result> { - tracing::debug!(target: crate::SOLANA_CORE_TRACING_TARGET, "legacy native decoder adapter classified an observation without maximal decoding"); + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + tracing::debug!(target: crate::DC_SOLANA_CORE_TRACING_TARGET, "legacy native decoder adapter classified an observation without maximal decoding"); return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::InstructionDecoder for crate::SolanaCoreDecoder { - fn identity(&self) -> crate::DecoderIdentity { - return crate::DecoderIdentity { +impl crate::DcApiInstructionDecoder for crate::DcSolanaCoreDecoder { + fn identity(&self) -> crate::DcApiDecoderIdentity { + return crate::DcApiDecoderIdentity { name: "solana_native_classifier".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn surfaces(&self) -> &'static [crate::DecoderSurface] { + fn surfaces(&self) -> &'static [crate::DcApiDecoderSurface] { return NATIVE_SURFACES; } - fn coverage(&self) -> std::vec::Vec { - let mut coverage = crate::solana_core_system_coverage(); - coverage.extend(crate::solana_core_compute_budget_coverage()); - coverage.extend(crate::solana_core_config_coverage()); - coverage.extend(crate::solana_core_feature_coverage()); - coverage.extend(crate::solana_core_vote_coverage()); - coverage.extend(crate::solana_core_stake_coverage()); - coverage.extend(crate::solana_core_address_lookup_table_coverage()); - coverage.extend(crate::solana_core_loaders_coverage()); - coverage.extend(crate::solana_core_precompiles_coverage()); - coverage.extend(crate::solana_core_slashing_coverage()); - coverage.extend(crate::solana_core_zk_elgamal_coverage()); - coverage.extend(crate::solana_core_zk_token_proof_coverage()); + fn coverage(&self) -> std::vec::Vec { + let mut coverage = crate::decoder_solana_core_system_coverage(); + coverage.extend(crate::decoder_solana_core_compute_budget_coverage()); + coverage.extend(crate::decoder_solana_core_config_coverage()); + coverage.extend(crate::decoder_solana_core_feature_coverage()); + coverage.extend(crate::decoder_solana_core_vote_coverage()); + coverage.extend(crate::decoder_solana_core_stake_coverage()); + coverage.extend(crate::decoder_solana_core_address_lookup_table_coverage()); + coverage.extend(crate::decoder_solana_core_loaders_coverage()); + coverage.extend(crate::decoder_solana_core_precompiles_coverage()); + coverage.extend(crate::decoder_solana_core_slashing_coverage()); + coverage.extend(crate::decoder_solana_core_zk_elgamal_coverage()); + coverage.extend(crate::decoder_solana_core_zk_token_proof_coverage()); for surface in NATIVE_SURFACES { if surface.program_id == kb_program_ids::SYSTEM_PROGRAM_ID || surface.program_id == kb_program_ids::COMPUTE_BUDGET_PROGRAM_ID @@ -195,10 +195,10 @@ impl crate::InstructionDecoder for crate::SolanaCoreDecoder { { continue; } - coverage.push(crate::DecoderCoverageDeclaration { + coverage.push(crate::DcApiDecoderCoverageDeclaration { program_id: surface.program_id.to_string(), surface_code: std::option::Option::Some(surface.surface_code.to_string()), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: "unclassified_native_instruction".to_string(), discriminator_hex: std::option::Option::None, historical: is_historical_native_program(surface.program_id), @@ -207,91 +207,98 @@ impl crate::InstructionDecoder for crate::SolanaCoreDecoder { return coverage; } - fn recognize(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderRecognition { - tracing::debug!(target: crate::SOLANA_CORE_TRACING_TARGET, action = "recognize", signature = %input.signature, slot = input.slot, instruction_path = %input.instruction_path, program_id = %input.program_id, input_key = %input.replay_input_key, transaction_failed = input.transaction_failed, "recognize native Solana contextual instruction"); + fn recognize( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderRecognition { + tracing::debug!(target: crate::DC_SOLANA_CORE_TRACING_TARGET, action = "recognize", signature = %input.signature, slot = input.slot, instruction_path = %input.instruction_path, program_id = %input.program_id, input_key = %input.replay_input_key, transaction_failed = input.transaction_failed, "recognize native Solana contextual instruction"); let surface = NATIVE_SURFACES .iter() .find(|surface| return surface.program_id == input.program_id); let surface = match surface { std::option::Option::Some(value) => value, std::option::Option::None => { - tracing::debug!(target: crate::SOLANA_CORE_TRACING_TARGET, action = "recognize", signature = %input.signature, instruction_path = %input.instruction_path, program_id = %input.program_id, compatible = false, "native Solana decoder does not support program id"); - return crate::DecoderRecognition::incompatible(); + tracing::debug!(target: crate::DC_SOLANA_CORE_TRACING_TARGET, action = "recognize", signature = %input.signature, instruction_path = %input.instruction_path, program_id = %input.program_id, compatible = false, "native Solana decoder does not support program id"); + return crate::DcApiDecoderRecognition::incompatible(); }, }; let recognition = if input.program_id == kb_program_ids::SYSTEM_PROGRAM_ID { - crate::solana_core_system_recognize(input, surface.priority) + crate::decoder_solana_core_system_recognize(input, surface.priority) } else if input.program_id == kb_program_ids::COMPUTE_BUDGET_PROGRAM_ID { - crate::solana_core_compute_budget_recognize(input, surface.priority) + crate::decoder_solana_core_compute_budget_recognize(input, surface.priority) } else if input.program_id == kb_program_ids::ADDRESS_LOOKUP_TABLE_PROGRAM_ID { - crate::solana_core_address_lookup_table_recognize(input, surface.priority) + crate::decoder_solana_core_address_lookup_table_recognize(input, surface.priority) } else if input.program_id == kb_program_ids::CONFIG_PROGRAM_ID { - crate::solana_core_config_recognize(input, surface.priority) + crate::decoder_solana_core_config_recognize(input, surface.priority) } else if input.program_id == kb_program_ids::FEATURE_PROGRAM_ID { - crate::solana_core_feature_recognize(input, surface.priority) + crate::decoder_solana_core_feature_recognize(input, surface.priority) } else if input.program_id == kb_program_ids::VOTE_PROGRAM_ID { - crate::solana_core_vote_recognize(input, surface.priority) + crate::decoder_solana_core_vote_recognize(input, surface.priority) } else if input.program_id == kb_program_ids::STAKE_PROGRAM_ID { - crate::solana_core_stake_recognize(input, surface.priority) + crate::decoder_solana_core_stake_recognize(input, surface.priority) } else if input.program_id == kb_program_ids::SLASHING_PROGRAM_ID { - crate::solana_core_slashing_recognize(input, surface.priority) + crate::decoder_solana_core_slashing_recognize(input, surface.priority) } else if is_signature_precompile(input.program_id.as_str()) { - crate::solana_core_precompiles_recognize(input, surface.priority) + crate::decoder_solana_core_precompiles_recognize(input, surface.priority) } else if input.program_id == kb_program_ids::ZK_ELGAMAL_PROOF_PROGRAM_ID { - crate::solana_core_zk_elgamal_recognize(input, surface.priority) + crate::decoder_solana_core_zk_elgamal_recognize(input, surface.priority) } else if input.program_id == kb_program_ids::ZK_TOKEN_PROOF_PROGRAM_ID { - crate::solana_core_zk_token_proof_recognize(input, surface.priority) + crate::decoder_solana_core_zk_token_proof_recognize(input, surface.priority) } else if is_loader_program(input.program_id.as_str()) { - crate::solana_core_loaders_recognize(input, surface.priority) + crate::decoder_solana_core_loaders_recognize(input, surface.priority) } else { - crate::DecoderRecognition::compatible( + crate::DcApiDecoderRecognition::compatible( false, surface.priority, std::option::Option::Some(surface.surface_code.to_string()), std::option::Option::Some("unclassified_native_instruction".to_string()), - crate::discriminator_8_hex(input), + crate::decoder_api_discriminator_8_hex(input), ) }; - tracing::debug!(target: crate::SOLANA_CORE_TRACING_TARGET, action = "recognize", signature = %input.signature, instruction_path = %input.instruction_path, program_id = %input.program_id, surface_code = surface.surface_code, recognition = ?recognition, compatible = true, "native Solana decoder recognized contextual instruction"); + tracing::debug!(target: crate::DC_SOLANA_CORE_TRACING_TARGET, action = "recognize", signature = %input.signature, instruction_path = %input.instruction_path, program_id = %input.program_id, surface_code = surface.surface_code, recognition = ?recognition, compatible = true, "native Solana decoder recognized contextual instruction"); return recognition; } - fn decode(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { + fn decode( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderExecutionResult { let result = if input.program_id == kb_program_ids::SYSTEM_PROGRAM_ID { - crate::solana_core_system_decode(input) + crate::decoder_solana_core_system_decode(input) } else if input.program_id == kb_program_ids::COMPUTE_BUDGET_PROGRAM_ID { - crate::solana_core_compute_budget_decode(input) + crate::decoder_solana_core_compute_budget_decode(input) } else if input.program_id == kb_program_ids::ADDRESS_LOOKUP_TABLE_PROGRAM_ID { - crate::solana_core_address_lookup_table_decode(input) + crate::decoder_solana_core_address_lookup_table_decode(input) } else if input.program_id == kb_program_ids::CONFIG_PROGRAM_ID { - crate::solana_core_config_decode(input) + crate::decoder_solana_core_config_decode(input) } else if input.program_id == kb_program_ids::FEATURE_PROGRAM_ID { - crate::solana_core_feature_decode(input) + crate::decoder_solana_core_feature_decode(input) } else if input.program_id == kb_program_ids::VOTE_PROGRAM_ID { - crate::solana_core_vote_decode(input) + crate::decoder_solana_core_vote_decode(input) } else if input.program_id == kb_program_ids::STAKE_PROGRAM_ID { - crate::solana_core_stake_decode(input) + crate::decoder_solana_core_stake_decode(input) } else if input.program_id == kb_program_ids::SLASHING_PROGRAM_ID { - crate::solana_core_slashing_decode(input) + crate::decoder_solana_core_slashing_decode(input) } else if is_signature_precompile(input.program_id.as_str()) { - crate::solana_core_precompiles_decode(input) + crate::decoder_solana_core_precompiles_decode(input) } else if input.program_id == kb_program_ids::ZK_ELGAMAL_PROOF_PROGRAM_ID { - crate::solana_core_zk_elgamal_decode(input) + crate::decoder_solana_core_zk_elgamal_decode(input) } else if input.program_id == kb_program_ids::ZK_TOKEN_PROOF_PROGRAM_ID { - crate::solana_core_zk_token_proof_decode(input) + crate::decoder_solana_core_zk_token_proof_decode(input) } else if is_loader_program(input.program_id.as_str()) { - crate::solana_core_loaders_decode(input) + crate::decoder_solana_core_loaders_decode(input) } else { - crate::DecoderExecutionResult::unsupported(std::option::Option::Some( + crate::DcApiDecoderExecutionResult::unsupported(std::option::Option::Some( "unclassified_native_instruction".to_string(), )) }; if matches!( result.status, - crate::DecoderOutcomeStatus::Failed | crate::DecoderOutcomeStatus::Unsupported + crate::DcApiDecoderOutcomeStatus::Failed + | crate::DcApiDecoderOutcomeStatus::Unsupported ) { tracing::error!( - target: crate::SOLANA_CORE_TRACING_TARGET, + target: crate::DC_SOLANA_CORE_TRACING_TARGET, action = "decode_failure", signature = %input.signature, slot = input.slot, @@ -301,7 +308,7 @@ impl crate::InstructionDecoder for crate::SolanaCoreDecoder { processor_version = env!("CARGO_PKG_VERSION"), input_key = %input.replay_input_key, payload_hash = ?input.instruction_payload_hash, - payload_length = ?crate::solana_core_decoded_payload_length(input), + payload_length = ?crate::decoder_solana_core_decoded_payload_length(input), transaction_failed = input.transaction_failed, transaction_error = ?input.transaction_err_json, result_status = ?result.status, @@ -310,7 +317,7 @@ impl crate::InstructionDecoder for crate::SolanaCoreDecoder { "native instruction was not decoded successfully" ); } - tracing::debug!(target: crate::SOLANA_CORE_TRACING_TARGET, action = "decode", signature = %input.signature, slot = input.slot, instruction_path = %input.instruction_path, program_id = %input.program_id, input_key = %input.replay_input_key, payload_hash = ?input.instruction_payload_hash, transaction_failed = input.transaction_failed, transaction_error = ?input.transaction_err_json, result_status = ?result.status, recognized_entry_code = ?result.recognized_entry_code, observation_count = result.observations.len(), diagnostic_count = result.diagnostics.len(), "native instruction decode completed"); + tracing::debug!(target: crate::DC_SOLANA_CORE_TRACING_TARGET, action = "decode", signature = %input.signature, slot = input.slot, instruction_path = %input.instruction_path, program_id = %input.program_id, input_key = %input.replay_input_key, payload_hash = ?input.instruction_payload_hash, transaction_failed = input.transaction_failed, transaction_error = ?input.transaction_err_json, result_status = ?result.status, recognized_entry_code = ?result.recognized_entry_code, observation_count = result.observations.len(), diagnostic_count = result.diagnostics.len(), "native instruction decode completed"); return result; } } @@ -337,8 +344,8 @@ fn is_historical_native_program(program_id: &str) -> bool { #[cfg(test)] mod tests { - fn replay_input(program_id: &str) -> crate::CoreInstructionReplayInput { - let result = crate::CoreInstructionReplayInput::new( + fn replay_input(program_id: &str) -> crate::MdCoreInstructionReplayInput { + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -363,9 +370,9 @@ mod tests { #[test] fn vote_program_is_dispatched_without_false_decode_for_unknown_tag() { - let decoder = crate::SolanaCoreDecoder; + let decoder = crate::DcSolanaCoreDecoder; let input = replay_input(kb_program_ids::VOTE_PROGRAM_ID); - let recognition = crate::InstructionDecoder::recognize(&decoder, &input); + let recognition = crate::DcApiInstructionDecoder::recognize(&decoder, &input); assert!(recognition.compatible); assert_eq!( recognition.surface_code.as_deref(), @@ -375,16 +382,16 @@ mod tests { recognition.entry_code.as_deref(), std::option::Option::Some("unknown_vote_instruction") ); - let result = crate::InstructionDecoder::decode(&decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Unsupported); + let result = crate::DcApiInstructionDecoder::decode(&decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Unsupported); assert!(result.observations.is_empty()); } #[test] fn stake_program_is_dispatched_without_false_decode_for_unknown_tag() { - let decoder = crate::SolanaCoreDecoder; + let decoder = crate::DcSolanaCoreDecoder; let input = replay_input(kb_program_ids::STAKE_PROGRAM_ID); - let recognition = crate::InstructionDecoder::recognize(&decoder, &input); + let recognition = crate::DcApiInstructionDecoder::recognize(&decoder, &input); assert!(recognition.compatible); assert_eq!( recognition.surface_code.as_deref(), @@ -394,16 +401,16 @@ mod tests { recognition.entry_code.as_deref(), std::option::Option::Some("unknown_stake_instruction") ); - let result = crate::InstructionDecoder::decode(&decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Unsupported); + let result = crate::DcApiInstructionDecoder::decode(&decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Unsupported); assert!(result.observations.is_empty()); } #[test] fn zk_token_proof_program_dispatches_to_current_noop_fallback() { - let decoder = crate::SolanaCoreDecoder; + let decoder = crate::DcSolanaCoreDecoder; let input = replay_input(kb_program_ids::ZK_TOKEN_PROOF_PROGRAM_ID); - let recognition = crate::InstructionDecoder::recognize(&decoder, &input); + let recognition = crate::DcApiInstructionDecoder::recognize(&decoder, &input); assert!(recognition.compatible); assert_eq!( recognition.surface_code.as_deref(), @@ -413,8 +420,8 @@ mod tests { recognition.entry_code.as_deref(), std::option::Option::Some("current_runtime_noop_invocation") ); - let result = crate::InstructionDecoder::decode(&decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode(&decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("current_runtime_noop_invocation") @@ -424,8 +431,8 @@ mod tests { #[test] fn every_native_registry_program_has_one_surface() { - let decoder = crate::SolanaCoreDecoder; - let surfaces = crate::InstructionDecoder::surfaces(&decoder); + let decoder = crate::DcSolanaCoreDecoder; + let surfaces = crate::DcApiInstructionDecoder::surfaces(&decoder); assert_eq!(surfaces.len(), kb_program_ids::native_program_ids().len()); for entry in kb_program_ids::native_program_ids() { assert!(surfaces.iter().any(|surface| return surface.program_id == entry.program_id())); @@ -434,9 +441,9 @@ mod tests { #[test] fn every_native_surface_has_declared_coverage_without_fallback_entries() { - let decoder = crate::SolanaCoreDecoder; - let surfaces = crate::InstructionDecoder::surfaces(&decoder); - let coverage = crate::InstructionDecoder::coverage(&decoder); + let decoder = crate::DcSolanaCoreDecoder; + let surfaces = crate::DcApiInstructionDecoder::surfaces(&decoder); + let coverage = crate::DcApiInstructionDecoder::coverage(&decoder); for surface in surfaces { assert!(coverage.iter().any(|entry| { return entry.program_id == surface.program_id @@ -451,9 +458,9 @@ mod tests { #[test] fn coverage_entries_are_unique_and_reference_declared_surfaces() { - let decoder = crate::SolanaCoreDecoder; - let surfaces = crate::InstructionDecoder::surfaces(&decoder); - let coverage = crate::InstructionDecoder::coverage(&decoder); + let decoder = crate::DcSolanaCoreDecoder; + let surfaces = crate::DcApiInstructionDecoder::surfaces(&decoder); + let coverage = crate::DcApiInstructionDecoder::coverage(&decoder); let mut identities = std::collections::BTreeSet::new(); for entry in coverage { let surface_code = match entry.surface_code.as_deref() { @@ -473,9 +480,9 @@ mod tests { #[test] fn slashing_program_is_dispatched_to_exact_decoder() { - let decoder = crate::SolanaCoreDecoder; + let decoder = crate::DcSolanaCoreDecoder; let input = replay_input(kb_program_ids::SLASHING_PROGRAM_ID); - let recognition = crate::InstructionDecoder::recognize(&decoder, &input); + let recognition = crate::DcApiInstructionDecoder::recognize(&decoder, &input); assert!(recognition.compatible); assert_eq!( recognition.surface_code.as_deref(), @@ -489,13 +496,13 @@ mod tests { #[test] fn deprecated_stake_config_account_is_not_an_instruction_surface() { - let decoder = crate::SolanaCoreDecoder; - let surfaces = crate::InstructionDecoder::surfaces(&decoder); + let decoder = crate::DcSolanaCoreDecoder; + let surfaces = crate::DcApiInstructionDecoder::surfaces(&decoder); assert!(!surfaces.iter().any(|surface| { return surface.program_id == kb_program_ids::STAKE_CONFIG_ACCOUNT_ID; })); let input = replay_input(kb_program_ids::STAKE_CONFIG_ACCOUNT_ID); - let recognition = crate::InstructionDecoder::recognize(&decoder, &input); + let recognition = crate::DcApiInstructionDecoder::recognize(&decoder, &input); assert!(!recognition.compatible); } @@ -517,8 +524,8 @@ mod tests { parsed.get("surface_count").and_then(serde_json::Value::as_u64); assert_eq!(declared_surface_count, std::option::Option::Some(18)); - let decoder = crate::SolanaCoreDecoder; - let compiled_surfaces = crate::InstructionDecoder::surfaces(&decoder); + let decoder = crate::DcSolanaCoreDecoder; + let compiled_surfaces = crate::DcApiInstructionDecoder::surfaces(&decoder); let compiled_surface_map = compiled_surfaces .iter() .map(|surface| { @@ -533,7 +540,7 @@ mod tests { .collect::>(); assert_eq!(native_registry.len(), 18); - let coverage = crate::InstructionDecoder::coverage(&decoder); + let coverage = crate::DcApiInstructionDecoder::coverage(&decoder); let mut compiled_coverage_counts = std::collections::BTreeMap::new(); for entry in &coverage { let count = compiled_coverage_counts.entry(entry.program_id.clone()).or_insert(0_usize); @@ -597,9 +604,9 @@ mod tests { #[test] fn unrelated_program_is_not_dispatched() { - let decoder = crate::SolanaCoreDecoder; + let decoder = crate::DcSolanaCoreDecoder; let input = replay_input(kb_program_ids::SPL_TOKEN_PROGRAM_ID); - let recognition = crate::InstructionDecoder::recognize(&decoder, &input); + let recognition = crate::DcApiInstructionDecoder::recognize(&decoder, &input); assert!(!recognition.compatible); } } diff --git a/kb-lib/src/decoder/solana/core/event.rs b/kb-lib/src/decoder/solana/core/event.rs index cb8ae8d..9363fac 100644 --- a/kb-lib/src/decoder/solana/core/event.rs +++ b/kb-lib/src/decoder/solana/core/event.rs @@ -4,39 +4,39 @@ //! Stable native event and decoder result builders. /// Builds one exact decoded native observation. -pub(crate) fn decoded_result( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_solana_core_decoded_result( + input: &crate::MdCoreInstructionReplayInput, surface_code: &str, entry_code: &str, - event_family: crate::EventFamily, + event_family: crate::MdEventFamily, historical: bool, accounts: serde_json::Value, parameters: serde_json::Value, source_evidence: &str, -) -> crate::DecoderExecutionResult { - let event = crate::DecodedProtocolEvent { - signature: crate::Signature(input.signature.clone()), - slot: crate::Slot(input.slot), - instruction_path: crate::InstructionPath(input.instruction_path.clone()), - program_id: crate::ProgramId(input.program_id.clone()), - protocol_code: crate::ProtocolCode(crate::SOLANA_CORE_PROTOCOL_CODE.to_string()), - surface_code: crate::SurfaceCode(surface_code.to_string()), - event_code: crate::EventCode(format!("{surface_code}.{entry_code}")), - event_name: crate::EventName(entry_code.to_string()), +) -> crate::DcApiDecoderExecutionResult { + let event = crate::MdDecodedProtocolEvent { + signature: crate::MdSignature(input.signature.clone()), + slot: crate::MdSlot(input.slot), + instruction_path: crate::MdInstructionPath(input.instruction_path.clone()), + program_id: crate::MdProgramId(input.program_id.clone()), + protocol_code: crate::MdProtocolCode(crate::DC_SOLANA_CORE_PROTOCOL_CODE.to_string()), + surface_code: crate::MdSurfaceCode(surface_code.to_string()), + event_code: crate::MdEventCode(format!("{surface_code}.{entry_code}")), + event_name: crate::MdEventName(entry_code.to_string()), event_family, source_kind: if input.instruction_path.contains('/') { - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction } else { - crate::EventSourceKind::Instruction + crate::MdEventSourceKind::Instruction }, - confidence: crate::DecoderConfidence::ManualExact, + confidence: crate::MdDecoderConfidence::ManualExact, }; - let payload_hash = crate::solana_core_payload_hash(input); - let observation = crate::DecodedObservation { + let payload_hash = crate::decoder_solana_core_payload_hash(input); + let observation = crate::DcApiDecodedObservation { event_key: format!("{entry_code}:0"), event, payload_json: serde_json::json!({ - "eventVersion": crate::SOLANA_CORE_NATIVE_EVENT_VERSION, + "eventVersion": crate::DC_SOLANA_CORE_NATIVE_EVENT_VERSION, "programId": input.program_id, "surfaceCode": surface_code, "entryCode": entry_code, @@ -50,14 +50,14 @@ pub(crate) fn decoded_result( transaction_failed: input.transaction_failed, transaction_error: input.transaction_err_json.clone(), observation_committed: !input.transaction_failed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: vec![source_evidence.to_string(), format!("payload_sha256:{payload_hash}")], }, }; - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Decoded, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Decoded, recognized_entry_code: std::option::Option::Some(entry_code.to_string()), observations: vec![observation], diagnostics: std::vec::Vec::new(), @@ -65,16 +65,16 @@ pub(crate) fn decoded_result( } /// Builds one failed native decode result. -pub(crate) fn failed_result( +pub(crate) fn decoder_solana_core_failed_result( entry_code: std::option::Option<&str>, code: &str, message: impl std::convert::Into, -) -> crate::DecoderExecutionResult { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Failed, +) -> crate::DcApiDecoderExecutionResult { + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Failed, recognized_entry_code: entry_code.map(str::to_string), observations: std::vec::Vec::new(), - diagnostics: vec![crate::DecoderDiagnostic { + diagnostics: vec![crate::DcApiDecoderDiagnostic { code: code.to_string(), message: message.into(), retriable: false, @@ -83,16 +83,16 @@ pub(crate) fn failed_result( } /// Builds one unsupported native decode result with a bounded diagnostic. -pub(crate) fn unsupported_result( +pub(crate) fn decoder_solana_core_unsupported_result( entry_code: &str, code: &str, message: impl std::convert::Into, -) -> crate::DecoderExecutionResult { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Unsupported, +) -> crate::DcApiDecoderExecutionResult { + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Unsupported, recognized_entry_code: std::option::Option::Some(entry_code.to_string()), observations: std::vec::Vec::new(), - diagnostics: vec![crate::DecoderDiagnostic { + diagnostics: vec![crate::DcApiDecoderDiagnostic { code: code.to_string(), message: message.into(), retriable: false, diff --git a/kb-lib/src/decoder/solana/core/feature.rs b/kb-lib/src/decoder/solana/core/feature.rs index 2657a34..d0bde64 100644 --- a/kb-lib/src/decoder/solana/core/feature.rs +++ b/kb-lib/src/decoder/solana/core/feature.rs @@ -4,20 +4,21 @@ //! Exact Feature Gate instruction decoding from the official interface contract. const SOURCE: &str = "solana-feature-gate-interface@4.0.0 revoke_pending_activation contract"; -const REVOKE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("feature_account", true, true), - crate::SolanaCoreAccountRole::new("incinerator", true, false), - crate::SolanaCoreAccountRole::new("system_program", false, false), +const REVOKE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("feature_account", true, true), + crate::DcSolanaCoreAccountRole::new("incinerator", true, false), + crate::DcSolanaCoreAccountRole::new("system_program", false, false), ]; /// Returns declared Feature Gate instruction coverage. -pub(crate) fn feature_coverage() -> std::vec::Vec { - return vec![crate::DecoderCoverageDeclaration { +pub(crate) fn decoder_solana_core_feature_coverage() +-> std::vec::Vec { + return vec![crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::FEATURE_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SOLANA_CORE_FEATURE_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_FEATURE_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: "revoke_pending_activation".to_string(), discriminator_hex: std::option::Option::Some("00".to_string()), historical: false, @@ -25,18 +26,18 @@ pub(crate) fn feature_coverage() -> std::vec::Vec crate::DecoderRecognition { - let bytes_result = crate::solana_core_decode_instruction_data(input); +) -> crate::DcApiDecoderRecognition { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, - std::option::Option::Some(crate::SOLANA_CORE_FEATURE_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_FEATURE_SURFACE_CODE.to_string()), std::option::Option::Some("malformed_feature_instruction".to_string()), std::option::Option::None, ); @@ -47,24 +48,24 @@ pub(crate) fn feature_recognize( std::option::Option::Some(_value) => "unknown_feature_instruction", std::option::Option::None => "malformed_feature_instruction", }; - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( bytes.as_slice() == [0], priority, - std::option::Option::Some(crate::SOLANA_CORE_FEATURE_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_FEATURE_SURFACE_CODE.to_string()), std::option::Option::Some(entry_code.to_string()), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(1)), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(1)), ); } /// Decodes one Feature Gate instruction. -pub(crate) fn feature_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +pub(crate) fn decoder_solana_core_feature_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_feature_instruction"), "feature_payload_invalid", error.to_string(), @@ -72,25 +73,25 @@ pub(crate) fn feature_decode( }, }; if bytes.is_empty() { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_feature_instruction"), "feature_payload_empty", "Feature Gate instruction payload is empty", ); } if bytes[0] != 0 { - return crate::solana_core_unsupported_result( + return crate::decoder_solana_core_unsupported_result( "unknown_feature_instruction", "feature_tag_unknown", format!( "unknown Feature Gate instruction tag {}; payload_sha256={}", bytes[0], - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ); } if bytes.len() != 1 { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("revoke_pending_activation"), "feature_instruction_size_invalid", format!( @@ -99,12 +100,16 @@ pub(crate) fn feature_decode( ), ); } - let accounts_result = - crate::solana_core_resolve_accounts(input, REVOKE_ROLES, 3, std::option::Option::Some(3)); + let accounts_result = crate::decoder_solana_core_resolve_accounts( + input, + REVOKE_ROLES, + 3, + std::option::Option::Some(3), + ); let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("revoke_pending_activation"), "feature_accounts_invalid", error.to_string(), @@ -113,17 +118,17 @@ pub(crate) fn feature_decode( }; let fixed_accounts_result = validate_fixed_accounts(&accounts); if let std::result::Result::Err(error) = fixed_accounts_result { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("revoke_pending_activation"), "feature_fixed_account_invalid", error.to_string(), ); } - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_FEATURE_SURFACE_CODE, + crate::DC_SOLANA_CORE_FEATURE_SURFACE_CODE, "revoke_pending_activation", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, accounts, serde_json::json!({ @@ -164,7 +169,7 @@ fn validate_fixed_accounts(accounts: &serde_json::Value) -> kb_core::Result<()> mod tests { use base64::Engine; // rust-rules: trait-import - fn replay_input(bytes: &[u8], transaction_failed: bool) -> crate::CoreInstructionReplayInput { + fn replay_input(bytes: &[u8], transaction_failed: bool) -> crate::MdCoreInstructionReplayInput { let keys = [ "FeatureAccount11111111111111111111111111111", kb_program_ids::INCINERATOR_PROGRAM_ID, @@ -191,7 +196,7 @@ mod tests { return serde_json::json!({"accountIndex": index, "accountKey": key}); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -223,22 +228,22 @@ mod tests { #[test] fn official_payload_is_recognized_exactly() { let input = replay_input(&[0], false); - let recognition = crate::solana_core_feature_recognize(&input, 100); + let recognition = crate::decoder_solana_core_feature_recognize(&input, 100); assert!(recognition.compatible); assert!(recognition.exact); assert_eq!( recognition.entry_code.as_deref(), std::option::Option::Some("revoke_pending_activation") ); - let unknown = crate::solana_core_feature_recognize(&replay_input(&[7], false), 100); + let unknown = crate::decoder_solana_core_feature_recognize(&replay_input(&[7], false), 100); assert!(unknown.compatible); assert!(!unknown.exact); } #[test] fn revoke_pending_activation_decodes_exact_official_layout() { - let result = crate::solana_core_feature_decode(&replay_input(&[0], false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_feature_decode(&replay_input(&[0], false)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("revoke_pending_activation") @@ -248,29 +253,29 @@ mod tests { #[test] fn unknown_truncated_trailing_and_wrong_fixed_accounts_are_safe() { - let empty = crate::solana_core_feature_decode(&replay_input(&[], false)); - assert_eq!(empty.status, crate::DecoderOutcomeStatus::Failed); - let unknown = crate::solana_core_feature_decode(&replay_input(&[7], false)); - assert_eq!(unknown.status, crate::DecoderOutcomeStatus::Unsupported); - let trailing = crate::solana_core_feature_decode(&replay_input(&[0, 1], false)); - assert_eq!(trailing.status, crate::DecoderOutcomeStatus::Failed); + let empty = crate::decoder_solana_core_feature_decode(&replay_input(&[], false)); + assert_eq!(empty.status, crate::DcApiDecoderOutcomeStatus::Failed); + let unknown = crate::decoder_solana_core_feature_decode(&replay_input(&[7], false)); + assert_eq!(unknown.status, crate::DcApiDecoderOutcomeStatus::Unsupported); + let trailing = crate::decoder_solana_core_feature_decode(&replay_input(&[0, 1], false)); + assert_eq!(trailing.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut wrong = replay_input(&[0], false); wrong.instruction_accounts_json[1]["accountKey"] = serde_json::json!("wrong"); wrong.account_keys_json[1]["accountKey"] = serde_json::json!("wrong"); - let invalid = crate::solana_core_feature_decode(&wrong); - assert_eq!(invalid.status, crate::DecoderOutcomeStatus::Failed); + let invalid = crate::decoder_solana_core_feature_decode(&wrong); + assert_eq!(invalid.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn failed_feature_revoke_is_uncommitted() { - let result = crate::solana_core_feature_decode(&replay_input(&[0], true)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_feature_decode(&replay_input(&[0], true)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); } #[test] fn coverage_declares_the_single_official_instruction() { - let coverage = crate::solana_core_feature_coverage(); + let coverage = crate::decoder_solana_core_feature_coverage(); assert_eq!(coverage.len(), 1); assert_eq!(coverage[0].entry_code, "revoke_pending_activation"); assert_eq!(coverage[0].discriminator_hex.as_deref(), std::option::Option::Some("00")); diff --git a/kb-lib/src/decoder/solana/core/loaders.rs b/kb-lib/src/decoder/solana/core/loaders.rs index deb9121..86c25b7 100644 --- a/kb-lib/src/decoder/solana/core/loaders.rs +++ b/kb-lib/src/decoder/solana/core/loaders.rs @@ -8,101 +8,102 @@ const SOURCE_BPF_LOADER_V3: &str = "solana-loader-v3-interface@8.0.1"; const SOURCE_LOADER_V4: &str = "solana-loader-v4-interface@3.1.0"; const SOURCE_NATIVE_LOADER: &str = "Agave native_loader runtime dispatch"; -const IMMUTABLE_WRITE_ROLES: &[crate::SolanaCoreAccountRole] = - &[crate::SolanaCoreAccountRole::new("program_account", true, true)]; -const IMMUTABLE_FINALIZE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("program_account", true, true), - crate::SolanaCoreAccountRole::new("rent_sysvar", false, false), +const IMMUTABLE_WRITE_ROLES: &[crate::DcSolanaCoreAccountRole] = + &[crate::DcSolanaCoreAccountRole::new("program_account", true, true)]; +const IMMUTABLE_FINALIZE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("program_account", true, true), + crate::DcSolanaCoreAccountRole::new("rent_sysvar", false, false), ]; -const UPGRADEABLE_INITIALIZE_BUFFER_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("buffer_account", true, false), - crate::SolanaCoreAccountRole::new("buffer_authority", false, false), +const UPGRADEABLE_INITIALIZE_BUFFER_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("buffer_account", true, false), + crate::DcSolanaCoreAccountRole::new("buffer_authority", false, false), ]; -const UPGRADEABLE_WRITE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("buffer_account", true, false), - crate::SolanaCoreAccountRole::new("buffer_authority", false, true), +const UPGRADEABLE_WRITE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("buffer_account", true, false), + crate::DcSolanaCoreAccountRole::new("buffer_authority", false, true), ]; -const UPGRADEABLE_DEPLOY_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("payer", true, true), - crate::SolanaCoreAccountRole::new("programdata_account", true, false), - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("buffer_account", true, false), - crate::SolanaCoreAccountRole::new("rent_sysvar", false, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("system_program", false, false), - crate::SolanaCoreAccountRole::new("upgrade_authority", false, true), +const UPGRADEABLE_DEPLOY_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("payer", true, true), + crate::DcSolanaCoreAccountRole::new("programdata_account", true, false), + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("buffer_account", true, false), + crate::DcSolanaCoreAccountRole::new("rent_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("system_program", false, false), + crate::DcSolanaCoreAccountRole::new("upgrade_authority", false, true), ]; -const UPGRADEABLE_UPGRADE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("programdata_account", true, false), - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("buffer_account", true, false), - crate::SolanaCoreAccountRole::new("spill_account", true, false), - crate::SolanaCoreAccountRole::new("rent_sysvar", false, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("upgrade_authority", false, true), +const UPGRADEABLE_UPGRADE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("programdata_account", true, false), + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("buffer_account", true, false), + crate::DcSolanaCoreAccountRole::new("spill_account", true, false), + crate::DcSolanaCoreAccountRole::new("rent_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("upgrade_authority", false, true), ]; -const UPGRADEABLE_SET_AUTHORITY_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("authority_target", true, false), - crate::SolanaCoreAccountRole::new("current_authority", false, true), - crate::SolanaCoreAccountRole::new("new_authority", false, false), +const UPGRADEABLE_SET_AUTHORITY_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("authority_target", true, false), + crate::DcSolanaCoreAccountRole::new("current_authority", false, true), + crate::DcSolanaCoreAccountRole::new("new_authority", false, false), ]; -const UPGRADEABLE_CLOSE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("close_target", true, false), - crate::SolanaCoreAccountRole::new("recipient", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), - crate::SolanaCoreAccountRole::new("associated_program", true, false), +const UPGRADEABLE_CLOSE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("close_target", true, false), + crate::DcSolanaCoreAccountRole::new("recipient", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), + crate::DcSolanaCoreAccountRole::new("associated_program", true, false), ]; -const UPGRADEABLE_EXTEND_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("programdata_account", true, false), - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("system_program", false, false), - crate::SolanaCoreAccountRole::new("payer", true, true), +const UPGRADEABLE_EXTEND_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("programdata_account", true, false), + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("system_program", false, false), + crate::DcSolanaCoreAccountRole::new("payer", true, true), ]; -const UPGRADEABLE_SET_AUTHORITY_CHECKED_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("authority_target", true, false), - crate::SolanaCoreAccountRole::new("current_authority", false, true), - crate::SolanaCoreAccountRole::new("new_authority", false, true), +const UPGRADEABLE_SET_AUTHORITY_CHECKED_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("authority_target", true, false), + crate::DcSolanaCoreAccountRole::new("current_authority", false, true), + crate::DcSolanaCoreAccountRole::new("new_authority", false, true), ]; -const LOADER_V4_WRITE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), +const LOADER_V4_WRITE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), ]; -const LOADER_V4_COPY_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), - crate::SolanaCoreAccountRole::new("source_program_account", false, false), +const LOADER_V4_COPY_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), + crate::DcSolanaCoreAccountRole::new("source_program_account", false, false), ]; -const LOADER_V4_SET_LENGTH_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), - crate::SolanaCoreAccountRole::new("recipient", true, false), +const LOADER_V4_SET_LENGTH_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), + crate::DcSolanaCoreAccountRole::new("recipient", true, false), ]; -const LOADER_V4_DEPLOY_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), - crate::SolanaCoreAccountRole::new("source_program_account", true, false), +const LOADER_V4_DEPLOY_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), + crate::DcSolanaCoreAccountRole::new("source_program_account", true, false), ]; -const LOADER_V4_AUTHORITY_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), +const LOADER_V4_AUTHORITY_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), ]; -const LOADER_V4_TRANSFER_AUTHORITY_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("current_authority", false, true), - crate::SolanaCoreAccountRole::new("new_authority", false, true), +const LOADER_V4_TRANSFER_AUTHORITY_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("current_authority", false, true), + crate::DcSolanaCoreAccountRole::new("new_authority", false, true), ]; -const LOADER_V4_FINALIZE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("program_account", true, false), - crate::SolanaCoreAccountRole::new("authority", false, true), - crate::SolanaCoreAccountRole::new("next_version_program", false, false), +const LOADER_V4_FINALIZE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("program_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority", false, true), + crate::DcSolanaCoreAccountRole::new("next_version_program", false, false), ]; /// Returns declared loader instruction coverage. -pub(crate) fn loaders_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_loaders_coverage() +-> std::vec::Vec { let mut output = std::vec::Vec::new(); output.push(coverage_entry( kb_program_ids::NATIVE_LOADER_PROGRAM_ID, - crate::SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE, + crate::DC_SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE, "direct_invocation_opaque", std::option::Option::None, true, @@ -110,12 +111,12 @@ pub(crate) fn loaders_coverage() -> std::vec::Vec std::vec::Vec std::vec::Vec std::vec::Vec crate::DecoderRecognition { +) -> crate::DcApiDecoderRecognition { let surface_code = match surface_code(input.program_id.as_str()) { std::option::Option::Some(value) => value, - std::option::Option::None => return crate::DecoderRecognition::incompatible(), + std::option::Option::None => return crate::DcApiDecoderRecognition::incompatible(), }; if input.program_id == kb_program_ids::NATIVE_LOADER_PROGRAM_ID { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( true, priority, std::option::Option::Some(surface_code.to_string()), @@ -190,11 +191,11 @@ pub(crate) fn loaders_recognize( std::option::Option::None, ); } - let bytes_result = crate::solana_core_decode_instruction_data(input); + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, std::option::Option::Some(surface_code.to_string()), @@ -204,32 +205,32 @@ pub(crate) fn loaders_recognize( }, }; let entry_code = entry_code(input.program_id.as_str(), bytes.as_slice()); - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( entry_code.is_some(), priority, std::option::Option::Some(surface_code.to_string()), entry_code.map(str::to_string).or_else(|| { return std::option::Option::Some("unknown_loader_instruction".to_string()); }), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), 4), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), 4), ); } /// Decodes one loader instruction. -pub(crate) fn loaders_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { +pub(crate) fn decoder_solana_core_loaders_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { if input.program_id == kb_program_ids::NATIVE_LOADER_PROGRAM_ID { - tracing::debug!(target: crate::SOLANA_CORE_TRACING_TARGET, action = "decode_native_loader", signature = %input.signature, instruction_path = %input.instruction_path, source = SOURCE_NATIVE_LOADER, "ignore opaque direct Native Loader invocation without inventing an instruction schema"); - return crate::DecoderExecutionResult::ignored(std::option::Option::Some( + tracing::debug!(target: crate::DC_SOLANA_CORE_TRACING_TARGET, action = "decode_native_loader", signature = %input.signature, instruction_path = %input.instruction_path, source = SOURCE_NATIVE_LOADER, "ignore opaque direct Native Loader invocation without inventing an instruction schema"); + return crate::DcApiDecoderExecutionResult::ignored(std::option::Option::Some( "direct_invocation_opaque".to_string(), )); } - let bytes_result = crate::solana_core_decode_instruction_data(input); + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_loader_instruction"), "loader_payload_invalid", error.to_string(), @@ -247,7 +248,7 @@ pub(crate) fn loaders_decode( if input.program_id == kb_program_ids::LOADER_V4_PROGRAM_ID { return decode_v4(input, bytes.as_slice()); } - return crate::solana_core_unsupported_result( + return crate::decoder_solana_core_unsupported_result( "unknown_loader_instruction", "loader_program_unknown", format!("unsupported loader program id {}", input.program_id), @@ -255,17 +256,17 @@ pub(crate) fn loaders_decode( } fn decode_immutable( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let tag = match read_tag(bytes, "immutable_loader_tag_truncated") { std::result::Result::Ok(value) => value, std::result::Result::Err(result) => return result, }; let surface_code = if input.program_id == kb_program_ids::BPF_LOADER_DEPRECATED_PROGRAM_ID { - crate::SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE + crate::DC_SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE } else { - crate::SOLANA_CORE_BPF_LOADER_SURFACE_CODE + crate::DC_SOLANA_CORE_BPF_LOADER_SURFACE_CODE }; return match tag { 0 => decode_immutable_write(input, bytes, surface_code), @@ -277,7 +278,7 @@ fn decode_immutable( input, surface_code, "finalize", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, true, IMMUTABLE_FINALIZE_ROLES, 2, @@ -290,12 +291,12 @@ fn decode_immutable( } fn decode_immutable_write( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], surface_code: &str, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { if bytes.len() < 12 { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("write"), "loader_write_truncated", format!( @@ -304,10 +305,10 @@ fn decode_immutable_write( ), ); } - let offset = match crate::solana_core_read_u32_le(bytes, 4) { + let offset = match crate::decoder_solana_core_read_u32_le(bytes, 4) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("write"), "loader_write_offset_truncated", error.to_string(), @@ -326,15 +327,15 @@ fn decode_immutable_write( input, surface_code, "write", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, true, IMMUTABLE_WRITE_ROLES, 1, serde_json::json!({ "offset": offset, "byteLength": byte_length, - "bytesSha256": crate::solana_core_hash_bytes(written_bytes), - "bytesPrefixHex": crate::solana_core_hexadecimal_prefix( + "bytesSha256": crate::decoder_solana_core_hash_bytes(written_bytes), + "bytesPrefixHex": crate::decoder_solana_core_hexadecimal_prefix( written_bytes, written_bytes.len().min(16), ), @@ -344,9 +345,9 @@ fn decode_immutable_write( } fn decode_upgradeable( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let tag = match read_tag(bytes, "upgradeable_loader_tag_truncated") { std::result::Result::Ok(value) => value, std::result::Result::Err(result) => return result, @@ -370,7 +371,7 @@ fn decode_upgradeable( { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "upgradeable_loader_wincode_invalid", format!("cannot decode exact Loader v3 {entry_code}: {error}"), @@ -381,9 +382,9 @@ fn decode_upgradeable( solana_loader_v3_interface::instruction::UpgradeableLoaderInstruction::InitializeBuffer => { build( input, - crate::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, + crate::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, "initialize_buffer", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, UPGRADEABLE_INITIALIZE_BUFFER_ROLES, 1, @@ -396,17 +397,17 @@ fn decode_upgradeable( bytes: written_bytes, } => build( input, - crate::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, + crate::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, "write", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, false, UPGRADEABLE_WRITE_ROLES, 2, serde_json::json!({ "offset": offset, "byteLength": written_bytes.len(), - "bytesSha256": crate::solana_core_hash_bytes(written_bytes.as_slice()), - "bytesPrefixHex": crate::solana_core_hexadecimal_prefix( + "bytesSha256": crate::decoder_solana_core_hash_bytes(written_bytes.as_slice()), + "bytesPrefixHex": crate::decoder_solana_core_hexadecimal_prefix( written_bytes.as_slice(), written_bytes.len().min(16), ), @@ -418,9 +419,9 @@ fn decode_upgradeable( close_buffer, } => build( input, - crate::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, + crate::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, "deploy_with_max_data_len", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, bytes.len() == 12, UPGRADEABLE_DEPLOY_ROLES, 8, @@ -435,9 +436,9 @@ fn decode_upgradeable( close_buffer, } => build( input, - crate::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, + crate::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, "upgrade", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, bytes.len() == 4, UPGRADEABLE_UPGRADE_ROLES, 7, @@ -450,9 +451,9 @@ fn decode_upgradeable( solana_loader_v3_interface::instruction::UpgradeableLoaderInstruction::SetAuthority => { build( input, - crate::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, + crate::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, "set_authority", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, UPGRADEABLE_SET_AUTHORITY_ROLES, 2, @@ -464,9 +465,9 @@ fn decode_upgradeable( tombstone, } => build( input, - crate::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, + crate::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, "close", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, bytes.len() == 4, UPGRADEABLE_CLOSE_ROLES, 2, @@ -481,7 +482,7 @@ fn decode_upgradeable( } => { let account_count = account_count(input); if account_count == 3 { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("extend_program"), "upgradeable_loader_extend_accounts_invalid", "extend_program requires either two accounts or the complete optional system/payer pair", @@ -489,9 +490,9 @@ fn decode_upgradeable( } build( input, - crate::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, + crate::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, "extend_program", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, UPGRADEABLE_EXTEND_ROLES, 2, @@ -505,9 +506,9 @@ fn decode_upgradeable( solana_loader_v3_interface::instruction::UpgradeableLoaderInstruction::SetAuthorityChecked => { build( input, - crate::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, + crate::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE, "set_authority_checked", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, UPGRADEABLE_SET_AUTHORITY_CHECKED_ROLES, 3, @@ -519,9 +520,9 @@ fn decode_upgradeable( } fn decode_v4( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let tag = match read_tag(bytes, "loader_v4_tag_truncated") { std::result::Result::Ok(value) => value, std::result::Result::Err(result) => return result, @@ -530,7 +531,7 @@ fn decode_v4( 0 => decode_write( input, bytes, - crate::SOLANA_CORE_LOADER_V4_SURFACE_CODE, + crate::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE, false, LOADER_V4_WRITE_ROLES, 2, @@ -541,9 +542,9 @@ fn decode_v4( 3 => decode_unit( input, bytes, - crate::SOLANA_CORE_LOADER_V4_SURFACE_CODE, + crate::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE, "deploy", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, LOADER_V4_DEPLOY_ROLES, 2, SOURCE_LOADER_V4, @@ -551,9 +552,9 @@ fn decode_v4( 4 => decode_unit( input, bytes, - crate::SOLANA_CORE_LOADER_V4_SURFACE_CODE, + crate::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE, "retract", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, LOADER_V4_AUTHORITY_ROLES, 2, SOURCE_LOADER_V4, @@ -561,9 +562,9 @@ fn decode_v4( 5 => decode_unit( input, bytes, - crate::SOLANA_CORE_LOADER_V4_SURFACE_CODE, + crate::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE, "transfer_authority", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, LOADER_V4_TRANSFER_AUTHORITY_ROLES, 3, SOURCE_LOADER_V4, @@ -571,9 +572,9 @@ fn decode_v4( 6 => decode_unit( input, bytes, - crate::SOLANA_CORE_LOADER_V4_SURFACE_CODE, + crate::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE, "finalize", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, LOADER_V4_FINALIZE_ROLES, 3, SOURCE_LOADER_V4, @@ -583,25 +584,25 @@ fn decode_v4( } fn decode_write( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], surface_code: &str, historical: bool, - roles: &[crate::SolanaCoreAccountRole], + roles: &[crate::DcSolanaCoreAccountRole], minimum_count: usize, source: &str, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { if bytes.len() < 16 { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("write"), "loader_write_truncated", format!("loader write requires at least 16 bytes but received {}", bytes.len()), ); } - let offset = match crate::solana_core_read_u32_le(bytes, 4) { + let offset = match crate::decoder_solana_core_read_u32_le(bytes, 4) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("write"), "loader_write_offset_truncated", error.to_string(), @@ -620,15 +621,15 @@ fn decode_write( input, surface_code, "write", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, historical, roles, minimum_count, serde_json::json!({ "offset": offset, "byteLength": byte_length, - "bytesSha256": crate::solana_core_hash_bytes(written_bytes), - "bytesPrefixHex": crate::solana_core_hexadecimal_prefix( + "bytesSha256": crate::decoder_solana_core_hash_bytes(written_bytes), + "bytesPrefixHex": crate::decoder_solana_core_hexadecimal_prefix( written_bytes, written_bytes.len().min(16), ), @@ -638,36 +639,36 @@ fn decode_write( } fn decode_copy( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { if bytes.len() != 16 { return size_failure("copy", 16, bytes.len()); } - let destination_offset = match crate::solana_core_read_u32_le(bytes, 4) { + let destination_offset = match crate::decoder_solana_core_read_u32_le(bytes, 4) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("copy"), "loader_v4_copy_truncated", error.to_string(), ); }, }; - let source_offset = match crate::solana_core_read_u32_le(bytes, 8) { + let source_offset = match crate::decoder_solana_core_read_u32_le(bytes, 8) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("copy"), "loader_v4_copy_truncated", error.to_string(), ); }, }; - let length = match crate::solana_core_read_u32_le(bytes, 12) { + let length = match crate::decoder_solana_core_read_u32_le(bytes, 12) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("copy"), "loader_v4_copy_truncated", error.to_string(), @@ -676,9 +677,9 @@ fn decode_copy( }; return build( input, - crate::SOLANA_CORE_LOADER_V4_SURFACE_CODE, + crate::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE, "copy", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, false, LOADER_V4_COPY_ROLES, 3, @@ -692,16 +693,16 @@ fn decode_copy( } fn decode_set_program_length( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { if bytes.len() != 8 { return size_failure("set_program_length", 8, bytes.len()); } - let new_size = match crate::solana_core_read_u32_le(bytes, 4) { + let new_size = match crate::decoder_solana_core_read_u32_le(bytes, 4) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("set_program_length"), "loader_v4_set_length_truncated", error.to_string(), @@ -710,9 +711,9 @@ fn decode_set_program_length( }; return build( input, - crate::SOLANA_CORE_LOADER_V4_SURFACE_CODE, + crate::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE, "set_program_length", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, LOADER_V4_SET_LENGTH_ROLES, 2, @@ -725,15 +726,15 @@ fn decode_set_program_length( } fn decode_unit( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], surface_code: &str, entry_code: &str, - family: crate::EventFamily, - roles: &[crate::SolanaCoreAccountRole], + family: crate::MdEventFamily, + roles: &[crate::DcSolanaCoreAccountRole], minimum_count: usize, source: &str, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { if bytes.len() != 4 { return size_failure(entry_code, 4, bytes.len()); } @@ -751,29 +752,33 @@ fn decode_unit( } fn build( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, surface_code: &str, entry_code: &str, - family: crate::EventFamily, + family: crate::MdEventFamily, historical: bool, - roles: &[crate::SolanaCoreAccountRole], + roles: &[crate::DcSolanaCoreAccountRole], minimum_count: usize, parameters: serde_json::Value, source: &str, -) -> crate::DecoderExecutionResult { - let accounts_result = - crate::solana_core_resolve_accounts(input, roles, minimum_count, std::option::Option::None); +) -> crate::DcApiDecoderExecutionResult { + let accounts_result = crate::decoder_solana_core_resolve_accounts( + input, + roles, + minimum_count, + std::option::Option::None, + ); let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "loader_accounts_invalid", error.to_string(), ); }, }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, surface_code, entry_code, @@ -785,12 +790,15 @@ fn build( ); } -fn read_tag(bytes: &[u8], code: &str) -> std::result::Result { - let result = crate::solana_core_read_u32_le(bytes, 0); +fn read_tag( + bytes: &[u8], + code: &str, +) -> std::result::Result { + let result = crate::decoder_solana_core_read_u32_le(bytes, 0); return match result { std::result::Result::Ok(value) => std::result::Result::Ok(value), std::result::Result::Err(error) => { - std::result::Result::Err(crate::solana_core_failed_result( + std::result::Result::Err(crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_loader_instruction"), code, error.to_string(), @@ -804,11 +812,11 @@ fn exact_u32_vector_length( length_offset: usize, data_offset: usize, entry_code: &str, -) -> std::result::Result { - let encoded_length = match crate::solana_core_read_u32_le(bytes, length_offset) { +) -> std::result::Result { + let encoded_length = match crate::decoder_solana_core_read_u32_le(bytes, length_offset) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return std::result::Result::Err(crate::solana_core_failed_result( + return std::result::Result::Err(crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "loader_vector_length_truncated", error.to_string(), @@ -818,7 +826,7 @@ fn exact_u32_vector_length( let expected_length = encoded_length as usize; let actual_length = bytes.len().saturating_sub(data_offset); if bytes.len() < data_offset || actual_length != expected_length { - return std::result::Result::Err(crate::solana_core_failed_result( + return std::result::Result::Err(crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "loader_vector_length_mismatch", format!( @@ -834,11 +842,11 @@ fn exact_vector_length( length_offset: usize, data_offset: usize, entry_code: &str, -) -> std::result::Result { - let encoded_length = match crate::solana_core_read_u64_le(bytes, length_offset) { +) -> std::result::Result { + let encoded_length = match crate::decoder_solana_core_read_u64_le(bytes, length_offset) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return std::result::Result::Err(crate::solana_core_failed_result( + return std::result::Result::Err(crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "loader_vector_length_truncated", error.to_string(), @@ -848,7 +856,7 @@ fn exact_vector_length( let expected_length = match usize::try_from(encoded_length) { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return std::result::Result::Err(crate::solana_core_failed_result( + return std::result::Result::Err(crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "loader_vector_length_overflow", format!("loader vector length {encoded_length} does not fit usize"), @@ -857,7 +865,7 @@ fn exact_vector_length( }; let actual_length = bytes.len().saturating_sub(data_offset); if bytes.len() < data_offset || actual_length != expected_length { - return std::result::Result::Err(crate::solana_core_failed_result( + return std::result::Result::Err(crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "loader_vector_length_mismatch", format!( @@ -868,8 +876,12 @@ fn exact_vector_length( return std::result::Result::Ok(expected_length); } -fn size_failure(entry_code: &str, expected: usize, actual: usize) -> crate::DecoderExecutionResult { - return crate::solana_core_failed_result( +fn size_failure( + entry_code: &str, + expected: usize, + actual: usize, +) -> crate::DcApiDecoderExecutionResult { + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "loader_instruction_size_invalid", format!("loader {entry_code} requires exactly {expected} bytes but received {actual}"), @@ -877,31 +889,31 @@ fn size_failure(entry_code: &str, expected: usize, actual: usize) -> crate::Deco } fn unknown_tag( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, entry_code: &str, tag: u32, -) -> crate::DecoderExecutionResult { - return crate::solana_core_unsupported_result( +) -> crate::DcApiDecoderExecutionResult { + return crate::decoder_solana_core_unsupported_result( entry_code, "loader_tag_unknown", format!( "unknown loader instruction tag {tag}; payload_sha256={}", - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ); } fn surface_code(program_id: &str) -> std::option::Option<&'static str> { return if program_id == kb_program_ids::BPF_LOADER_DEPRECATED_PROGRAM_ID { - std::option::Option::Some(crate::SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE) + std::option::Option::Some(crate::DC_SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE) } else if program_id == kb_program_ids::BPF_LOADER_PROGRAM_ID { - std::option::Option::Some(crate::SOLANA_CORE_BPF_LOADER_SURFACE_CODE) + std::option::Option::Some(crate::DC_SOLANA_CORE_BPF_LOADER_SURFACE_CODE) } else if program_id == kb_program_ids::BPF_LOADER_UPGRADEABLE_PROGRAM_ID { - std::option::Option::Some(crate::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE) + std::option::Option::Some(crate::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE) } else if program_id == kb_program_ids::LOADER_V4_PROGRAM_ID { - std::option::Option::Some(crate::SOLANA_CORE_LOADER_V4_SURFACE_CODE) + std::option::Option::Some(crate::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE) } else if program_id == kb_program_ids::NATIVE_LOADER_PROGRAM_ID { - std::option::Option::Some(crate::SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE) + std::option::Option::Some(crate::DC_SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE) } else { std::option::Option::None }; @@ -911,7 +923,7 @@ fn entry_code(program_id: &str, bytes: &[u8]) -> std::option::Option<&'static st if program_id == kb_program_ids::NATIVE_LOADER_PROGRAM_ID { return std::option::Option::Some("direct_invocation_opaque"); } - let tag = match crate::solana_core_read_u32_le(bytes, 0) { + let tag = match crate::decoder_solana_core_read_u32_le(bytes, 0) { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => return std::option::Option::None, }; @@ -952,7 +964,7 @@ fn entry_code(program_id: &str, bytes: &[u8]) -> std::option::Option<&'static st return std::option::Option::None; } -fn account_count(input: &crate::CoreInstructionReplayInput) -> usize { +fn account_count(input: &crate::MdCoreInstructionReplayInput) -> usize { return input.instruction_accounts_json.as_array().map(std::vec::Vec::len).unwrap_or(0); } @@ -962,11 +974,11 @@ fn coverage_entry( entry_code: &str, discriminator_hex: std::option::Option, historical: bool, -) -> crate::DecoderCoverageDeclaration { - return crate::DecoderCoverageDeclaration { +) -> crate::DcApiDecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: program_id.to_string(), surface_code: std::option::Option::Some(surface_code.to_string()), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: entry_code.to_string(), discriminator_hex, historical, @@ -987,7 +999,7 @@ mod tests { bytes: &[u8], account_count: usize, transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let encoded = base64::engine::general_purpose::STANDARD.encode(bytes); let account_keys = (0..account_count) .map(|index| { @@ -1009,7 +1021,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -1060,9 +1072,9 @@ mod tests { program_id: &str, bytes: &[u8], account_count: usize, - ) -> crate::DecoderExecutionResult { + ) -> crate::DcApiDecoderExecutionResult { let input = replay_input(program_id, bytes, account_count, false); - return crate::solana_core_loaders_decode(&input); + return crate::decoder_solana_core_loaders_decode(&input); } fn upgradeable( @@ -1083,7 +1095,7 @@ mod tests { kb_program_ids::BPF_LOADER_PROGRAM_ID, ] { let write_result = decode(program_id, immutable_write(0, 7, &[1, 2, 3]).as_slice(), 1); - assert_eq!(write_result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(write_result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(write_result.observations[0].payload_json["parameters"]["offset"], 7); assert_eq!(write_result.observations[0].payload_json["parameters"]["byteLength"], 3); assert_eq!( @@ -1092,7 +1104,7 @@ mod tests { ); assert!(write_result.observations[0].payload_json["parameters"].get("bytes").is_none()); let finalize_result = decode(program_id, unit(1).as_slice(), 2); - assert_eq!(finalize_result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(finalize_result.status, crate::DcApiDecoderOutcomeStatus::Decoded); } } @@ -1103,7 +1115,7 @@ mod tests { bytes.extend_from_slice(&800_u32.to_le_bytes()); bytes.extend_from_slice(vec![0x5a_u8; 800].as_slice()); let result = decode(kb_program_ids::BPF_LOADER_PROGRAM_ID, bytes.as_slice(), 1); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.observations[0].payload_json["parameters"]["offset"], 13_600); assert_eq!(result.observations[0].payload_json["parameters"]["byteLength"], 800); } @@ -1171,7 +1183,7 @@ mod tests { bytes.as_slice(), account_count, ); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(entry_code) @@ -1186,7 +1198,7 @@ mod tests { ); bytes.push(0); let result = decode(kb_program_ids::BPF_LOADER_UPGRADEABLE_PROGRAM_ID, bytes.as_slice(), 1); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("initialize_buffer") @@ -1243,7 +1255,7 @@ mod tests { for (bytes, account_count, entry_code) in fixtures { let result = decode(kb_program_ids::LOADER_V4_PROGRAM_ID, bytes.as_slice(), account_count); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(entry_code) @@ -1254,19 +1266,19 @@ mod tests { #[test] fn malformed_lengths_unknown_tags_and_invalid_boole_are_safe() { let truncated = decode(kb_program_ids::BPF_LOADER_PROGRAM_ID, &[0, 0, 0], 1); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut mismatched = immutable_write(0, 0, &[1, 2]); mismatched[8] = 3; let mismatched_result = decode(kb_program_ids::BPF_LOADER_PROGRAM_ID, mismatched.as_slice(), 1); - assert_eq!(mismatched_result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(mismatched_result.status, crate::DcApiDecoderOutcomeStatus::Failed); let unknown = decode(kb_program_ids::LOADER_V4_PROGRAM_ID, unit(99).as_slice(), 0); - assert_eq!(unknown.status, crate::DecoderOutcomeStatus::Unsupported); + assert_eq!(unknown.status, crate::DcApiDecoderOutcomeStatus::Unsupported); let mut invalid_bool = unit(3); invalid_bool.push(2); let invalid_bool_result = decode(kb_program_ids::BPF_LOADER_UPGRADEABLE_PROGRAM_ID, invalid_bool.as_slice(), 7); - assert_eq!(invalid_bool_result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(invalid_bool_result.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] @@ -1275,18 +1287,18 @@ mod tests { bytes.extend_from_slice(&128_u32.to_le_bytes()); let incomplete = decode(kb_program_ids::BPF_LOADER_UPGRADEABLE_PROGRAM_ID, bytes.as_slice(), 3); - assert_eq!(incomplete.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(incomplete.status, crate::DcApiDecoderOutcomeStatus::Failed); let complete = decode(kb_program_ids::BPF_LOADER_UPGRADEABLE_PROGRAM_ID, bytes.as_slice(), 4); - assert_eq!(complete.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(complete.status, crate::DcApiDecoderOutcomeStatus::Decoded); } #[test] fn failed_loader_lifecycle_is_uncommitted() { let bytes = unit(3); let input = replay_input(kb_program_ids::LOADER_V4_PROGRAM_ID, bytes.as_slice(), 2, true); - let result = crate::solana_core_loaders_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_loaders_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(result.observations[0].transaction_failed); assert!(!result.observations[0].observation_committed); } @@ -1294,14 +1306,14 @@ mod tests { #[test] fn native_loader_direct_invocation_is_ignored_without_false_event() { let input = replay_input(kb_program_ids::NATIVE_LOADER_PROGRAM_ID, &[], 0, false); - let result = crate::solana_core_loaders_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Ignored); + let result = crate::decoder_solana_core_loaders_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Ignored); assert!(result.observations.is_empty()); } #[test] fn coverage_declares_every_loader_entry() { - let coverage = crate::solana_core_loaders_coverage(); + let coverage = crate::decoder_solana_core_loaders_coverage(); assert_eq!(coverage.len(), 20); assert!( coverage diff --git a/kb-lib/src/decoder/solana/core/payload.rs b/kb-lib/src/decoder/solana/core/payload.rs index 8b5507c..9a4ab8f 100644 --- a/kb-lib/src/decoder/solana/core/payload.rs +++ b/kb-lib/src/decoder/solana/core/payload.rs @@ -7,7 +7,7 @@ use base64::Engine; // rust-rules: trait-import use sha2::Digest; // rust-rules: trait-import /// One resolved outer instruction payload and its provenance relative to the target instruction. -pub(crate) struct ResolvedInstructionPayload { +pub(crate) struct DcSolanaCoreResolvedInstructionPayload { /// Numeric outer instruction index in the transaction message. pub(crate) instruction_index: usize, /// Stable outer instruction path retained by the core store. @@ -19,8 +19,8 @@ pub(crate) struct ResolvedInstructionPayload { } /// Decodes one retained base64 instruction payload with an explicit byte limit. -pub(crate) fn decode_instruction_data( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_solana_core_decode_instruction_data( + input: &crate::MdCoreInstructionReplayInput, ) -> kb_core::Result> { let payload = match input.instruction_payload_json.as_ref() { std::option::Option::Some(value) => value, @@ -34,22 +34,22 @@ pub(crate) fn decode_instruction_data( } /// Resolves an Ed25519 or secp256r1 instruction reference using the official `u16::MAX` sentinel. -pub(crate) fn resolve_u16_instruction_payload( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_solana_core_resolve_u16_instruction_payload( + input: &crate::MdCoreInstructionReplayInput, raw_instruction_index: u16, -) -> kb_core::Result { +) -> kb_core::Result { if raw_instruction_index == u16::MAX { - let target_index_result = crate::solana_core_target_outer_instruction_index(input); + let target_index_result = crate::decoder_solana_core_target_outer_instruction_index(input); let target_index = match target_index_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let bytes_result = crate::solana_core_decode_instruction_data(input); + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - return std::result::Result::Ok(crate::SolanaCoreResolvedInstructionPayload { + return std::result::Result::Ok(crate::DcSolanaCoreResolvedInstructionPayload { instruction_index: target_index, instruction_path: input.instruction_path.clone(), bytes, @@ -61,16 +61,16 @@ pub(crate) fn resolve_u16_instruction_payload( /// Resolves a secp256k1 instruction reference. The runtime format has no current-instruction /// sentinel: every `u8` value is an explicit outer instruction index. -pub(crate) fn resolve_u8_instruction_payload( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_solana_core_resolve_u8_instruction_payload( + input: &crate::MdCoreInstructionReplayInput, raw_instruction_index: u8, -) -> kb_core::Result { +) -> kb_core::Result { return resolve_explicit_outer_instruction(input, usize::from(raw_instruction_index)); } /// Returns the numeric outer index of the target instruction. -pub(crate) fn target_outer_instruction_index( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_solana_core_target_outer_instruction_index( + input: &crate::MdCoreInstructionReplayInput, ) -> kb_core::Result { if input.instruction_path.contains('/') { return std::result::Result::Err(kb_core::Error::invalid_state( @@ -87,7 +87,7 @@ pub(crate) fn target_outer_instruction_index( } /// Extracts one exact bounded byte slice with checked arithmetic. -pub(crate) fn bounded_slice<'a>( +pub(crate) fn decoder_solana_core_bounded_slice<'a>( bytes: &'a [u8], offset: usize, length: usize, @@ -113,29 +113,31 @@ pub(crate) fn bounded_slice<'a>( } /// Returns the decoded target payload length when retained and valid. -pub(crate) fn decoded_payload_length( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_solana_core_decoded_payload_length( + input: &crate::MdCoreInstructionReplayInput, ) -> std::option::Option { - return crate::solana_core_decode_instruction_data(input) + return crate::decoder_solana_core_decode_instruction_data(input) .ok() .map(|bytes| return bytes.len()); } /// Returns the SHA-256 of the decoded target instruction data when available. -pub(crate) fn decoded_payload_sha256( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_solana_core_decoded_payload_sha256( + input: &crate::MdCoreInstructionReplayInput, ) -> std::option::Option { - let bytes_result = crate::solana_core_decode_instruction_data(input); + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); return match bytes_result { std::result::Result::Ok(bytes) => { - std::option::Option::Some(crate::solana_core_hash_bytes(bytes.as_slice())) + std::option::Option::Some(crate::decoder_solana_core_hash_bytes(bytes.as_slice())) }, std::result::Result::Err(_error) => std::option::Option::None, }; } /// Returns a stable payload hash from core or computes it from retained JSON. -pub(crate) fn payload_hash(input: &crate::CoreInstructionReplayInput) -> std::string::String { +pub(crate) fn decoder_solana_core_payload_hash( + input: &crate::MdCoreInstructionReplayInput, +) -> std::string::String { if let std::option::Option::Some(value) = input.instruction_payload_hash.as_ref() { return value.clone(); } @@ -143,7 +145,7 @@ pub(crate) fn payload_hash(input: &crate::CoreInstructionReplayInput) -> std::st std::option::Option::Some(value) => value, std::option::Option::None => serde_json::Value::Null, }; - let hash_result = crate::deterministic_json_hash(&mut value); + let hash_result = crate::decoder_api_deterministic_json_hash(&mut value); return match hash_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => "payload_hash_unavailable".to_string(), @@ -151,8 +153,9 @@ pub(crate) fn payload_hash(input: &crate::CoreInstructionReplayInput) -> std::st } /// Reads one little-endian `u32` from an exact byte range. -pub(crate) fn read_u32_le(bytes: &[u8], offset: usize) -> kb_core::Result { - let slice_result = crate::solana_core_bounded_slice(bytes, offset, 4, "native instruction u32"); +pub(crate) fn decoder_solana_core_read_u32_le(bytes: &[u8], offset: usize) -> kb_core::Result { + let slice_result = + crate::decoder_solana_core_bounded_slice(bytes, offset, 4, "native instruction u32"); let slice = match slice_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), @@ -167,8 +170,9 @@ pub(crate) fn read_u32_le(bytes: &[u8], offset: usize) -> kb_core::Result { } /// Reads one little-endian `u64` from an exact byte range. -pub(crate) fn read_u64_le(bytes: &[u8], offset: usize) -> kb_core::Result { - let slice_result = crate::solana_core_bounded_slice(bytes, offset, 8, "native instruction u64"); +pub(crate) fn decoder_solana_core_read_u64_le(bytes: &[u8], offset: usize) -> kb_core::Result { + let slice_result = + crate::decoder_solana_core_bounded_slice(bytes, offset, 8, "native instruction u64"); let slice = match slice_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), @@ -183,7 +187,7 @@ pub(crate) fn read_u64_le(bytes: &[u8], offset: usize) -> kb_core::Result { } /// Returns the lowercase SHA-256 of one bounded byte slice. -pub(crate) fn hash_bytes(bytes: &[u8]) -> std::string::String { +pub(crate) fn decoder_solana_core_hash_bytes(bytes: &[u8]) -> std::string::String { let digest = sha2::Sha256::digest(bytes); let mut output = std::string::String::with_capacity(digest.len().saturating_mul(2)); for byte in digest { @@ -193,7 +197,7 @@ pub(crate) fn hash_bytes(bytes: &[u8]) -> std::string::String { } /// Returns a normalized lowercase hexadecimal prefix. -pub(crate) fn hexadecimal_prefix( +pub(crate) fn decoder_solana_core_hexadecimal_prefix( bytes: &[u8], count: usize, ) -> std::option::Option { @@ -209,21 +213,21 @@ pub(crate) fn hexadecimal_prefix( } /// Returns a hexadecimal prefix no longer than the available byte slice. -pub(crate) fn bounded_hexadecimal_prefix( +pub(crate) fn decoder_solana_core_bounded_hexadecimal_prefix( bytes: &[u8], maximum_count: usize, ) -> std::string::String { let count = std::cmp::min(bytes.len(), maximum_count); - return match crate::solana_core_hexadecimal_prefix(bytes, count) { + return match crate::decoder_solana_core_hexadecimal_prefix(bytes, count) { std::option::Option::Some(value) => value, std::option::Option::None => std::string::String::new(), }; } fn resolve_explicit_outer_instruction( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, instruction_index: usize, -) -> kb_core::Result { +) -> kb_core::Result { let entries = match input.outer_instructions_json.as_array() { std::option::Option::Some(value) => value, std::option::Option::None => { @@ -232,7 +236,7 @@ fn resolve_explicit_outer_instruction( )); }, }; - let target_index_result = crate::solana_core_target_outer_instruction_index(input); + let target_index_result = crate::decoder_solana_core_target_outer_instruction_index(input); let target_index = match target_index_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), @@ -276,7 +280,7 @@ fn resolve_explicit_outer_instruction( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - return std::result::Result::Ok(crate::SolanaCoreResolvedInstructionPayload { + return std::result::Result::Ok(crate::DcSolanaCoreResolvedInstructionPayload { instruction_index, instruction_path, bytes, @@ -300,7 +304,7 @@ fn decode_payload_json( ))); }, }; - let maximum_encoded_length = crate::SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES + let maximum_encoded_length = crate::DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES .saturating_mul(4) .saturating_div(3) .saturating_add(4); @@ -318,10 +322,10 @@ fn decode_payload_json( ))); }, }; - if decoded.len() > crate::SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES { + if decoded.len() > crate::DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES { return std::result::Result::Err(kb_core::Error::invalid_state(format!( "{label} payload exceeds {} decoded bytes", - crate::SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES + crate::DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES ))); } return std::result::Result::Ok(decoded); diff --git a/kb-lib/src/decoder/solana/core/precompiles.rs b/kb-lib/src/decoder/solana/core/precompiles.rs index 523b554..9335e7d 100644 --- a/kb-lib/src/decoder/solana/core/precompiles.rs +++ b/kb-lib/src/decoder/solana/core/precompiles.rs @@ -41,34 +41,38 @@ struct U16PrecompileSpec { } /// Returns declared signature precompile coverage. -pub(crate) fn precompiles_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_precompiles_coverage() +-> std::vec::Vec { return vec![ - coverage_entry(kb_program_ids::ED25519_PROGRAM_ID, crate::SOLANA_CORE_ED25519_SURFACE_CODE), + coverage_entry( + kb_program_ids::ED25519_PROGRAM_ID, + crate::DC_SOLANA_CORE_ED25519_SURFACE_CODE, + ), coverage_entry( kb_program_ids::SECP256K1_PROGRAM_ID, - crate::SOLANA_CORE_SECP256K1_SURFACE_CODE, + crate::DC_SOLANA_CORE_SECP256K1_SURFACE_CODE, ), coverage_entry( kb_program_ids::SECP256R1_PROGRAM_ID, - crate::SOLANA_CORE_SECP256R1_SURFACE_CODE, + crate::DC_SOLANA_CORE_SECP256R1_SURFACE_CODE, ), ]; } /// Recognizes one signature precompile instruction without resolving referenced data. -pub(crate) fn precompiles_recognize( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_solana_core_precompiles_recognize( + input: &crate::MdCoreInstructionReplayInput, priority: u16, -) -> crate::DecoderRecognition { +) -> crate::DcApiDecoderRecognition { let surface_code = match surface_code(input.program_id.as_str()) { std::option::Option::Some(value) => value, - std::option::Option::None => return crate::DecoderRecognition::incompatible(), + std::option::Option::None => return crate::DcApiDecoderRecognition::incompatible(), }; - let bytes_result = crate::solana_core_decode_instruction_data(input); + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, std::option::Option::Some(surface_code.to_string()), @@ -81,9 +85,9 @@ pub(crate) fn precompiles_recognize( let discriminator_hex = if prefix_count == 0 { std::option::Option::None } else { - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), prefix_count) + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), prefix_count) }; - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( true, priority, std::option::Option::Some(surface_code.to_string()), @@ -93,16 +97,16 @@ pub(crate) fn precompiles_recognize( } /// Decodes one signature precompile instruction structurally without cryptographic recomputation. -pub(crate) fn precompiles_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { +pub(crate) fn decoder_solana_core_precompiles_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { if input.program_id == kb_program_ids::ED25519_PROGRAM_ID { return decode_u16_precompile( input, &U16PrecompileSpec { algorithm: "ed25519", - surface_code: crate::SOLANA_CORE_ED25519_SURFACE_CODE, - verification_key_size: crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, + surface_code: crate::DC_SOLANA_CORE_ED25519_SURFACE_CODE, + verification_key_size: crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, zero_signature_allowed: true, maximum_signatures: usize::from(u8::MAX), source: SOURCE_ED25519, @@ -117,15 +121,15 @@ pub(crate) fn precompiles_decode( input, &U16PrecompileSpec { algorithm: "secp256r1", - surface_code: crate::SOLANA_CORE_SECP256R1_SURFACE_CODE, - verification_key_size: crate::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, + surface_code: crate::DC_SOLANA_CORE_SECP256R1_SURFACE_CODE, + verification_key_size: crate::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, zero_signature_allowed: false, - maximum_signatures: crate::SOLANA_CORE_SECP256R1_MAX_SIGNATURES, + maximum_signatures: crate::DC_SOLANA_CORE_SECP256R1_MAX_SIGNATURES, source: SOURCE_SECP256R1, }, ); } - return crate::solana_core_unsupported_result( + return crate::decoder_solana_core_unsupported_result( ENTRY_CODE, "signature_precompile_program_unsupported", "program id is not one of the three supported signature precompiles", @@ -133,10 +137,10 @@ pub(crate) fn precompiles_decode( } fn decode_u16_precompile( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, spec: &U16PrecompileSpec, -) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { @@ -225,7 +229,7 @@ fn decode_u16_precompile( format!("signatureCount={signature_count} exceeds maximum={}", spec.maximum_signatures), ); } - let table_bytes = match signature_count.checked_mul(crate::SOLANA_CORE_U16_OFFSETS_BYTES) { + let table_bytes = match signature_count.checked_mul(crate::DC_SOLANA_CORE_U16_OFFSETS_BYTES) { std::option::Option::Some(value) => value, std::option::Option::None => { return failed( @@ -260,7 +264,8 @@ fn decode_u16_precompile( } let mut parameters = std::vec::Vec::with_capacity(signature_count); for entry_index in 0..signature_count { - let relative_offset = match entry_index.checked_mul(crate::SOLANA_CORE_U16_OFFSETS_BYTES) { + let relative_offset = match entry_index.checked_mul(crate::DC_SOLANA_CORE_U16_OFFSETS_BYTES) + { std::option::Option::Some(value) => value, std::option::Option::None => { return failed( @@ -315,8 +320,10 @@ fn decode_u16_precompile( return decoded_result(input, spec.surface_code, spec.algorithm, spec.source, parameters); } -fn decode_secp256k1(input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +fn decode_secp256k1( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { @@ -365,13 +372,13 @@ fn decode_secp256k1(input: &crate::CoreInstructionReplayInput) -> crate::Decoder } return decoded_result( input, - crate::SOLANA_CORE_SECP256K1_SURFACE_CODE, + crate::DC_SOLANA_CORE_SECP256K1_SURFACE_CODE, "secp256k1", SOURCE_SECP256K1, vec![zero_signature_parameters(input, "secp256k1", std::option::Option::None)], ); } - let table_bytes = match signature_count.checked_mul(crate::SOLANA_CORE_U8_OFFSETS_BYTES) { + let table_bytes = match signature_count.checked_mul(crate::DC_SOLANA_CORE_U8_OFFSETS_BYTES) { std::option::Option::Some(value) => value, std::option::Option::None => { return failed( @@ -406,7 +413,8 @@ fn decode_secp256k1(input: &crate::CoreInstructionReplayInput) -> crate::Decoder } let mut parameters = std::vec::Vec::with_capacity(signature_count); for entry_index in 0..signature_count { - let relative_offset = match entry_index.checked_mul(crate::SOLANA_CORE_U8_OFFSETS_BYTES) { + let relative_offset = match entry_index.checked_mul(crate::DC_SOLANA_CORE_U8_OFFSETS_BYTES) + { std::option::Option::Some(value) => value, std::option::Option::None => { return failed( @@ -459,7 +467,7 @@ fn decode_secp256k1(input: &crate::CoreInstructionReplayInput) -> crate::Decoder } return decoded_result( input, - crate::SOLANA_CORE_SECP256K1_SURFACE_CODE, + crate::DC_SOLANA_CORE_SECP256K1_SURFACE_CODE, "secp256k1", SOURCE_SECP256K1, parameters, @@ -467,14 +475,14 @@ fn decode_secp256k1(input: &crate::CoreInstructionReplayInput) -> crate::Decoder } fn resolve_u16_entry( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, spec: &U16PrecompileSpec, signature_count: usize, padding: u8, entry_index: usize, offsets: &U16SignatureOffsets, ) -> kb_core::Result { - let signature_payload_result = crate::solana_core_resolve_u16_instruction_payload( + let signature_payload_result = crate::decoder_solana_core_resolve_u16_instruction_payload( input, offsets.signature_instruction_index, ); @@ -482,15 +490,16 @@ fn resolve_u16_entry( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let verification_key_payload_result = crate::solana_core_resolve_u16_instruction_payload( - input, - offsets.verification_key_instruction_index, - ); + let verification_key_payload_result = + crate::decoder_solana_core_resolve_u16_instruction_payload( + input, + offsets.verification_key_instruction_index, + ); let verification_key_payload = match verification_key_payload_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let message_payload_result = crate::solana_core_resolve_u16_instruction_payload( + let message_payload_result = crate::decoder_solana_core_resolve_u16_instruction_payload( input, offsets.message_instruction_index, ); @@ -498,17 +507,17 @@ fn resolve_u16_entry( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let signature_result = crate::solana_core_bounded_slice( + let signature_result = crate::decoder_solana_core_bounded_slice( signature_payload.bytes.as_slice(), usize::from(offsets.signature_offset), - crate::SOLANA_CORE_SIGNATURE_BYTES, + crate::DC_SOLANA_CORE_SIGNATURE_BYTES, "signature", ); let signature = match signature_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let verification_key_result = crate::solana_core_bounded_slice( + let verification_key_result = crate::decoder_solana_core_bounded_slice( verification_key_payload.bytes.as_slice(), usize::from(offsets.verification_key_offset), spec.verification_key_size, @@ -518,7 +527,7 @@ fn resolve_u16_entry( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let message_result = crate::solana_core_bounded_slice( + let message_result = crate::decoder_solana_core_bounded_slice( message_payload.bytes.as_slice(), usize::from(offsets.message_data_offset), usize::from(offsets.message_data_size), @@ -571,12 +580,12 @@ fn resolve_u16_entry( } fn resolve_u8_entry( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, signature_count: usize, entry_index: usize, offsets: &U8SignatureOffsets, ) -> kb_core::Result { - let signature_payload_result = crate::solana_core_resolve_u8_instruction_payload( + let signature_payload_result = crate::decoder_solana_core_resolve_u8_instruction_payload( input, offsets.signature_instruction_index, ); @@ -584,7 +593,7 @@ fn resolve_u8_entry( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let address_payload_result = crate::solana_core_resolve_u8_instruction_payload( + let address_payload_result = crate::decoder_solana_core_resolve_u8_instruction_payload( input, offsets.ethereum_address_instruction_index, ); @@ -592,16 +601,18 @@ fn resolve_u8_entry( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let message_payload_result = - crate::solana_core_resolve_u8_instruction_payload(input, offsets.message_instruction_index); + let message_payload_result = crate::decoder_solana_core_resolve_u8_instruction_payload( + input, + offsets.message_instruction_index, + ); let message_payload = match message_payload_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let signature_result = crate::solana_core_bounded_slice( + let signature_result = crate::decoder_solana_core_bounded_slice( signature_payload.bytes.as_slice(), usize::from(offsets.signature_offset), - crate::SOLANA_CORE_SIGNATURE_BYTES, + crate::DC_SOLANA_CORE_SIGNATURE_BYTES, "secp256k1 compact signature", ); let signature = match signature_result { @@ -609,7 +620,7 @@ fn resolve_u8_entry( std::result::Result::Err(error) => return std::result::Result::Err(error), }; let recovery_offset = match usize::from(offsets.signature_offset) - .checked_add(crate::SOLANA_CORE_SIGNATURE_BYTES) + .checked_add(crate::DC_SOLANA_CORE_SIGNATURE_BYTES) { std::option::Option::Some(value) => value, std::option::Option::None => { @@ -618,7 +629,7 @@ fn resolve_u8_entry( )); }, }; - let recovery_result = crate::solana_core_bounded_slice( + let recovery_result = crate::decoder_solana_core_bounded_slice( signature_payload.bytes.as_slice(), recovery_offset, 1, @@ -636,17 +647,17 @@ fn resolve_u8_entry( )); }, }; - let address_result = crate::solana_core_bounded_slice( + let address_result = crate::decoder_solana_core_bounded_slice( address_payload.bytes.as_slice(), usize::from(offsets.ethereum_address_offset), - crate::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES, + crate::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES, "secp256k1 Ethereum address", ); let address = match address_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let message_result = crate::solana_core_bounded_slice( + let message_result = crate::decoder_solana_core_bounded_slice( message_payload.bytes.as_slice(), usize::from(offsets.message_data_offset), usize::from(offsets.message_data_size), @@ -699,17 +710,17 @@ fn resolve_u8_entry( } fn read_u16_offsets(bytes: &[u8], offset: usize) -> kb_core::Result { - let table_result = crate::solana_core_bounded_slice( + let table_result = crate::decoder_solana_core_bounded_slice( bytes, offset, - crate::SOLANA_CORE_U16_OFFSETS_BYTES, + crate::DC_SOLANA_CORE_U16_OFFSETS_BYTES, "Ed25519 or secp256r1 offsets", ); let table = match table_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let array_result = <[u8; crate::SOLANA_CORE_U16_OFFSETS_BYTES]>::try_from(table); + let array_result = <[u8; crate::DC_SOLANA_CORE_U16_OFFSETS_BYTES]>::try_from(table); let array = match array_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { @@ -758,17 +769,17 @@ fn read_u16_offsets(bytes: &[u8], offset: usize) -> kb_core::Result kb_core::Result { - let table_result = crate::solana_core_bounded_slice( + let table_result = crate::decoder_solana_core_bounded_slice( bytes, offset, - crate::SOLANA_CORE_U8_OFFSETS_BYTES, + crate::DC_SOLANA_CORE_U8_OFFSETS_BYTES, "secp256k1 offsets", ); let table = match table_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let array_result = <[u8; crate::SOLANA_CORE_U8_OFFSETS_BYTES]>::try_from(table); + let array_result = <[u8; crate::DC_SOLANA_CORE_U8_OFFSETS_BYTES]>::try_from(table); let array = match array_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { @@ -805,14 +816,14 @@ fn read_u8_offsets(bytes: &[u8], offset: usize) -> kb_core::Result, -) -> crate::DecoderExecutionResult { - let payload_hash = crate::solana_core_payload_hash(input); - let instruction_data_sha256 = match crate::solana_core_decoded_payload_sha256(input) { +) -> crate::DcApiDecoderExecutionResult { + let payload_hash = crate::decoder_solana_core_payload_hash(input); + let instruction_data_sha256 = match crate::decoder_solana_core_decoded_payload_sha256(input) { std::option::Option::Some(value) => value, std::option::Option::None => "instruction_data_sha256_unavailable".to_string(), }; @@ -822,24 +833,24 @@ fn decoded_result( std::option::Option::Some(value) => value.to_string(), std::option::Option::None => "batch".to_string(), }; - let event = crate::DecodedProtocolEvent { - signature: crate::Signature(input.signature.clone()), - slot: crate::Slot(input.slot), - instruction_path: crate::InstructionPath(input.instruction_path.clone()), - program_id: crate::ProgramId(input.program_id.clone()), - protocol_code: crate::ProtocolCode(crate::SOLANA_CORE_PROTOCOL_CODE.to_string()), - surface_code: crate::SurfaceCode(surface_code.to_string()), - event_code: crate::EventCode(format!("{surface_code}.{ENTRY_CODE}")), - event_name: crate::EventName(ENTRY_CODE.to_string()), - event_family: crate::EventFamily::Audit, - source_kind: crate::EventSourceKind::Instruction, - confidence: crate::DecoderConfidence::ManualExact, + let event = crate::MdDecodedProtocolEvent { + signature: crate::MdSignature(input.signature.clone()), + slot: crate::MdSlot(input.slot), + instruction_path: crate::MdInstructionPath(input.instruction_path.clone()), + program_id: crate::MdProgramId(input.program_id.clone()), + protocol_code: crate::MdProtocolCode(crate::DC_SOLANA_CORE_PROTOCOL_CODE.to_string()), + surface_code: crate::MdSurfaceCode(surface_code.to_string()), + event_code: crate::MdEventCode(format!("{surface_code}.{ENTRY_CODE}")), + event_name: crate::MdEventName(ENTRY_CODE.to_string()), + event_family: crate::MdEventFamily::Audit, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::ManualExact, }; - observations.push(crate::DecodedObservation { + observations.push(crate::DcApiDecodedObservation { event_key: format!("{ENTRY_CODE}:{entry_key}"), event, payload_json: serde_json::json!({ - "eventVersion": crate::SOLANA_CORE_NATIVE_EVENT_VERSION, + "eventVersion": crate::DC_SOLANA_CORE_NATIVE_EVENT_VERSION, "programId": input.program_id, "surfaceCode": surface_code, "entryCode": ENTRY_CODE, @@ -856,9 +867,9 @@ fn decoded_result( transaction_failed: input.transaction_failed, transaction_error: input.transaction_err_json.clone(), observation_committed: !input.transaction_failed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::ExactLayout, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::ExactLayout, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: vec![ source.to_string(), "structural_decode_only:no_cryptographic_reverification".to_string(), @@ -867,8 +878,8 @@ fn decoded_result( }, }); } - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Decoded, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Decoded, recognized_entry_code: std::option::Option::Some(ENTRY_CODE.to_string()), observations, diagnostics: std::vec::Vec::new(), @@ -876,7 +887,7 @@ fn decoded_result( } fn zero_signature_parameters( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, algorithm: &str, padding: std::option::Option, ) -> serde_json::Value { @@ -902,15 +913,15 @@ fn zero_signature_parameters( fn component_summary(bytes: &[u8]) -> serde_json::Value { return serde_json::json!({ "length": bytes.len(), - "sha256": crate::solana_core_hash_bytes(bytes), - "hexPrefix": crate::solana_core_bounded_hexadecimal_prefix( + "sha256": crate::decoder_solana_core_hash_bytes(bytes), + "hexPrefix": crate::decoder_solana_core_bounded_hexadecimal_prefix( bytes, - crate::SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES, + crate::DC_SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES, ), }); } -fn runtime_verification(input: &crate::CoreInstructionReplayInput) -> &'static str { +fn runtime_verification(input: &crate::MdCoreInstructionReplayInput) -> &'static str { return if input.transaction_failed { "not_asserted_transaction_failed" } else { @@ -919,22 +930,26 @@ fn runtime_verification(input: &crate::CoreInstructionReplayInput) -> &'static s } fn failed( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, algorithm: &str, code: &str, entry_index: std::option::Option, detail: impl std::convert::Into, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let detail_value = detail.into(); let bounded_detail = detail_value.chars().take(512).collect::(); - let decoded_result = crate::solana_core_decode_instruction_data(input); + let decoded_result = crate::decoder_solana_core_decode_instruction_data(input); let (payload_length, signature_count, payload_sha256) = match decoded_result { std::result::Result::Ok(bytes) => { let count = match bytes.first() { std::option::Option::Some(value) => value.to_string(), std::option::Option::None => "absent".to_string(), }; - (bytes.len().to_string(), count, crate::solana_core_hash_bytes(bytes.as_slice())) + ( + bytes.len().to_string(), + count, + crate::decoder_solana_core_hash_bytes(bytes.as_slice()), + ) }, std::result::Result::Err(_error) => { ("unknown".to_string(), "unknown".to_string(), "unavailable".to_string()) @@ -944,21 +959,21 @@ fn failed( std::option::Option::Some(value) => value.to_string(), std::option::Option::None => "none".to_string(), }; - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(ENTRY_CODE), code, format!( "algorithm={algorithm}; signatureCount={signature_count}; entryIndex={entry}; payloadLength={payload_length}; payloadSha256={payload_sha256}; payloadContextHash={}; detail={bounded_detail}", - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ); } -fn coverage_entry(program_id: &str, surface_code: &str) -> crate::DecoderCoverageDeclaration { - return crate::DecoderCoverageDeclaration { +fn coverage_entry(program_id: &str, surface_code: &str) -> crate::DcApiDecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: program_id.to_string(), surface_code: std::option::Option::Some(surface_code.to_string()), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: ENTRY_CODE.to_string(), discriminator_hex: std::option::Option::None, historical: false, @@ -967,13 +982,13 @@ fn coverage_entry(program_id: &str, surface_code: &str) -> crate::DecoderCoverag fn surface_code(program_id: &str) -> std::option::Option<&'static str> { if program_id == kb_program_ids::ED25519_PROGRAM_ID { - return std::option::Option::Some(crate::SOLANA_CORE_ED25519_SURFACE_CODE); + return std::option::Option::Some(crate::DC_SOLANA_CORE_ED25519_SURFACE_CODE); } if program_id == kb_program_ids::SECP256K1_PROGRAM_ID { - return std::option::Option::Some(crate::SOLANA_CORE_SECP256K1_SURFACE_CODE); + return std::option::Option::Some(crate::DC_SOLANA_CORE_SECP256K1_SURFACE_CODE); } if program_id == kb_program_ids::SECP256R1_PROGRAM_ID { - return std::option::Option::Some(crate::SOLANA_CORE_SECP256R1_SURFACE_CODE); + return std::option::Option::Some(crate::DC_SOLANA_CORE_SECP256R1_SURFACE_CODE); } return std::option::Option::None; } @@ -985,7 +1000,7 @@ mod tests { target_bytes: std::vec::Vec, mut external: std::vec::Vec<(usize, std::vec::Vec)>, transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { external.push((1, target_bytes.clone())); external.sort_by_key(|entry| return entry.0); let outer = external @@ -1001,11 +1016,11 @@ mod tests { bytes, ) }, - "payloadHash": crate::solana_core_hash_bytes(bytes), + "payloadHash": crate::decoder_solana_core_hash_bytes(bytes), }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:1", "signature", 42, @@ -1027,7 +1042,9 @@ mod tests { target_bytes.as_slice(), ) })), - std::option::Option::Some(crate::solana_core_hash_bytes(target_bytes.as_slice())), + std::option::Option::Some(crate::decoder_solana_core_hash_bytes( + target_bytes.as_slice(), + )), serde_json::Value::Array(outer), serde_json::json!([]), serde_json::json!([]), @@ -1040,9 +1057,9 @@ mod tests { } fn u16_current_payload(key_size: usize, message: &[u8], padding: u8) -> std::vec::Vec { - let table_end = 2 + crate::SOLANA_CORE_U16_OFFSETS_BYTES; + let table_end = 2 + crate::DC_SOLANA_CORE_U16_OFFSETS_BYTES; let signature_offset = table_end; - let key_offset = signature_offset + crate::SOLANA_CORE_SIGNATURE_BYTES; + let key_offset = signature_offset + crate::DC_SOLANA_CORE_SIGNATURE_BYTES; let message_offset = key_offset + key_size; let mut bytes = vec![1, padding]; push_u16(&mut bytes, u16_value(signature_offset)); @@ -1052,7 +1069,7 @@ mod tests { push_u16(&mut bytes, u16_value(message_offset)); push_u16(&mut bytes, u16_value(message.len())); push_u16(&mut bytes, u16::MAX); - bytes.extend(std::iter::repeat_n(0x11, crate::SOLANA_CORE_SIGNATURE_BYTES)); + bytes.extend(std::iter::repeat_n(0x11, crate::DC_SOLANA_CORE_SIGNATURE_BYTES)); bytes.extend(std::iter::repeat_n(0x22, key_size)); bytes.extend_from_slice(message); return bytes; @@ -1063,7 +1080,7 @@ mod tests { message: &[u8], ) -> (std::vec::Vec, std::vec::Vec) { let signature_offset = 0; - let key_offset = crate::SOLANA_CORE_SIGNATURE_BYTES; + let key_offset = crate::DC_SOLANA_CORE_SIGNATURE_BYTES; let message_offset = key_offset + key_size; let mut target = vec![1, 0]; push_u16(&mut target, u16_value(signature_offset)); @@ -1073,7 +1090,7 @@ mod tests { push_u16(&mut target, u16_value(message_offset)); push_u16(&mut target, u16_value(message.len())); push_u16(&mut target, 0); - let mut external = vec![0x31; crate::SOLANA_CORE_SIGNATURE_BYTES]; + let mut external = vec![0x31; crate::DC_SOLANA_CORE_SIGNATURE_BYTES]; external.extend(std::iter::repeat_n(0x32, key_size)); external.extend_from_slice(message); return (target, external); @@ -1082,7 +1099,7 @@ mod tests { fn u16_mixed_payload( key_size: usize, ) -> (std::vec::Vec, std::vec::Vec<(usize, std::vec::Vec)>) { - let signature_offset = 2 + crate::SOLANA_CORE_U16_OFFSETS_BYTES; + let signature_offset = 2 + crate::DC_SOLANA_CORE_U16_OFFSETS_BYTES; let mut target = vec![1, 0]; push_u16(&mut target, u16_value(signature_offset)); push_u16(&mut target, u16::MAX); @@ -1091,15 +1108,16 @@ mod tests { push_u16(&mut target, 0); push_u16(&mut target, 4); push_u16(&mut target, 2); - target.extend(std::iter::repeat_n(0x41, crate::SOLANA_CORE_SIGNATURE_BYTES)); + target.extend(std::iter::repeat_n(0x41, crate::DC_SOLANA_CORE_SIGNATURE_BYTES)); return (target, vec![(0, vec![0x42; key_size]), (2, vec![0x43, 0x44, 0x45, 0x46])]); } fn secp256k1_current_payload(message: &[u8]) -> std::vec::Vec { - let table_end = 1 + crate::SOLANA_CORE_U8_OFFSETS_BYTES; + let table_end = 1 + crate::DC_SOLANA_CORE_U8_OFFSETS_BYTES; let signature_offset = table_end; - let address_offset = signature_offset + crate::SOLANA_CORE_SIGNATURE_BYTES + 1; - let message_offset = address_offset + crate::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; + let address_offset = signature_offset + crate::DC_SOLANA_CORE_SIGNATURE_BYTES + 1; + let message_offset = + address_offset + crate::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; let mut bytes = vec![1]; push_u16(&mut bytes, u16_value(signature_offset)); bytes.push(1); @@ -1108,18 +1126,21 @@ mod tests { push_u16(&mut bytes, u16_value(message_offset)); push_u16(&mut bytes, u16_value(message.len())); bytes.push(1); - bytes.extend(std::iter::repeat_n(0x51, crate::SOLANA_CORE_SIGNATURE_BYTES)); + bytes.extend(std::iter::repeat_n(0x51, crate::DC_SOLANA_CORE_SIGNATURE_BYTES)); bytes.push(2); - bytes - .extend(std::iter::repeat_n(0x52, crate::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES)); + bytes.extend(std::iter::repeat_n( + 0x52, + crate::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES, + )); bytes.extend_from_slice(message); return bytes; } fn secp256k1_external_payload(message: &[u8]) -> (std::vec::Vec, std::vec::Vec) { let signature_offset = 0; - let address_offset = crate::SOLANA_CORE_SIGNATURE_BYTES + 1; - let message_offset = address_offset + crate::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; + let address_offset = crate::DC_SOLANA_CORE_SIGNATURE_BYTES + 1; + let message_offset = + address_offset + crate::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; let mut target = vec![1]; push_u16(&mut target, u16_value(signature_offset)); target.push(0); @@ -1128,16 +1149,18 @@ mod tests { push_u16(&mut target, u16_value(message_offset)); push_u16(&mut target, u16_value(message.len())); target.push(0); - let mut external = vec![0x61; crate::SOLANA_CORE_SIGNATURE_BYTES]; + let mut external = vec![0x61; crate::DC_SOLANA_CORE_SIGNATURE_BYTES]; external.push(3); - external - .extend(std::iter::repeat_n(0x62, crate::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES)); + external.extend(std::iter::repeat_n( + 0x62, + crate::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES, + )); external.extend_from_slice(message); return (target, external); } fn secp256k1_mixed_payload() -> (std::vec::Vec, std::vec::Vec<(usize, std::vec::Vec)>) { - let signature_offset = 1 + crate::SOLANA_CORE_U8_OFFSETS_BYTES; + let signature_offset = 1 + crate::DC_SOLANA_CORE_U8_OFFSETS_BYTES; let mut target = vec![1]; push_u16(&mut target, u16_value(signature_offset)); target.push(1); @@ -1146,24 +1169,24 @@ mod tests { push_u16(&mut target, 0); push_u16(&mut target, 4); target.push(2); - target.extend(std::iter::repeat_n(0x71, crate::SOLANA_CORE_SIGNATURE_BYTES)); + target.extend(std::iter::repeat_n(0x71, crate::DC_SOLANA_CORE_SIGNATURE_BYTES)); target.push(1); return ( target, vec![ - (0, vec![0x72; crate::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES]), + (0, vec![0x72; crate::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES]), (2, vec![0x73, 0x74, 0x75, 0x76]), ], ); } fn two_u16_entries(key_size: usize) -> std::vec::Vec { - let table_end = 2 + 2 * crate::SOLANA_CORE_U16_OFFSETS_BYTES; - let entry_size = crate::SOLANA_CORE_SIGNATURE_BYTES + key_size + 1; + let table_end = 2 + 2 * crate::DC_SOLANA_CORE_U16_OFFSETS_BYTES; + let entry_size = crate::DC_SOLANA_CORE_SIGNATURE_BYTES + key_size + 1; let mut bytes = vec![2, 0]; for index in 0..2 { let signature_offset = table_end + index * entry_size; - let key_offset = signature_offset + crate::SOLANA_CORE_SIGNATURE_BYTES; + let key_offset = signature_offset + crate::DC_SOLANA_CORE_SIGNATURE_BYTES; let message_offset = key_offset + key_size; push_u16(&mut bytes, u16_value(signature_offset)); push_u16(&mut bytes, u16::MAX); @@ -1176,7 +1199,7 @@ mod tests { for index in 0..2 { bytes.extend(std::iter::repeat_n( 0x80 + index as u8, - crate::SOLANA_CORE_SIGNATURE_BYTES, + crate::DC_SOLANA_CORE_SIGNATURE_BYTES, )); bytes.extend(std::iter::repeat_n(0x90 + index as u8, key_size)); bytes.push(index as u8); @@ -1185,17 +1208,17 @@ mod tests { } fn two_secp256k1_entries() -> std::vec::Vec { - let table_end = 1 + 2 * crate::SOLANA_CORE_U8_OFFSETS_BYTES; - let entry_size = crate::SOLANA_CORE_SIGNATURE_BYTES + let table_end = 1 + 2 * crate::DC_SOLANA_CORE_U8_OFFSETS_BYTES; + let entry_size = crate::DC_SOLANA_CORE_SIGNATURE_BYTES + 1 - + crate::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES + + crate::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES + 1; let mut bytes = vec![2]; for index in 0..2 { let signature_offset = table_end + index * entry_size; - let address_offset = signature_offset + crate::SOLANA_CORE_SIGNATURE_BYTES + 1; + let address_offset = signature_offset + crate::DC_SOLANA_CORE_SIGNATURE_BYTES + 1; let message_offset = - address_offset + crate::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; + address_offset + crate::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; push_u16(&mut bytes, u16_value(signature_offset)); bytes.push(1); push_u16(&mut bytes, u16_value(address_offset)); @@ -1207,12 +1230,12 @@ mod tests { for index in 0..2 { bytes.extend(std::iter::repeat_n( 0xA0 + index as u8, - crate::SOLANA_CORE_SIGNATURE_BYTES, + crate::DC_SOLANA_CORE_SIGNATURE_BYTES, )); bytes.push(index as u8); bytes.extend(std::iter::repeat_n( 0xB0 + index as u8, - crate::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES, + crate::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES, )); bytes.push(index as u8); } @@ -1254,7 +1277,7 @@ mod tests { }; } - fn parameters(result: &crate::DecoderExecutionResult) -> &serde_json::Value { + fn parameters(result: &crate::DcApiDecoderExecutionResult) -> &serde_json::Value { return &result.observations[0].payload_json["parameters"]; } @@ -1262,12 +1285,12 @@ mod tests { fn ed25519_current_reference_decodes_exact_component_sizes_and_padding() { let input = replay_input( kb_program_ids::ED25519_PROGRAM_ID, - u16_current_payload(crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"message", 7), + u16_current_payload(crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"message", 7), vec![], false, ); - let result = crate::solana_core_precompiles_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_precompiles_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(parameters(&result)["padding"], 7); assert_eq!(parameters(&result)["signature"]["length"], 64); assert_eq!(parameters(&result)["publicKey"]["length"], 32); @@ -1278,12 +1301,12 @@ mod tests { fn secp256r1_current_reference_decodes_compressed_public_key() { let input = replay_input( kb_program_ids::SECP256R1_PROGRAM_ID, - u16_current_payload(crate::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"r1", 11), + u16_current_payload(crate::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"r1", 11), vec![], false, ); - let result = crate::solana_core_precompiles_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_precompiles_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(parameters(&result)["padding"], 11); assert_eq!(parameters(&result)["publicKey"]["length"], 33); assert_eq!(parameters(&result)["signature"]["length"], 64); @@ -1297,8 +1320,8 @@ mod tests { vec![], false, ); - let result = crate::solana_core_precompiles_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_precompiles_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(parameters(&result)["recoveryId"], 2); assert_eq!(parameters(&result)["ethereumAddress"]["length"], 20); assert_eq!(parameters(&result)["rawInstructionIndexes"]["signatureInstructionIndex"], 1); @@ -1308,10 +1331,10 @@ mod tests { #[test] fn all_precompiles_resolve_external_outer_instruction_data() { let (ed_target, ed_external) = - u16_external_payload(crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"external"); + u16_external_payload(crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"external"); let (k1_target, k1_external) = secp256k1_external_payload(b"external"); let (r1_target, r1_external) = - u16_external_payload(crate::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"external"); + u16_external_payload(crate::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"external"); let cases = [ (kb_program_ids::ED25519_PROGRAM_ID, ed_target, ed_external), (kb_program_ids::SECP256K1_PROGRAM_ID, k1_target, k1_external), @@ -1319,8 +1342,8 @@ mod tests { ]; for (program_id, target, external) in cases { let input = replay_input(program_id, target, vec![(0, external)], false); - let result = crate::solana_core_precompiles_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_precompiles_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(parameters(&result)["provenance"]["message"], "outer_instruction"); assert_eq!( parameters(&result)["resolvedInstructionIndexes"]["messageInstructionIndex"], @@ -1332,10 +1355,10 @@ mod tests { #[test] fn all_precompiles_support_mixed_component_references() { let (ed_target, ed_external) = - u16_mixed_payload(crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES); + u16_mixed_payload(crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES); let (k1_target, k1_external) = secp256k1_mixed_payload(); let (r1_target, r1_external) = - u16_mixed_payload(crate::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES); + u16_mixed_payload(crate::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES); let cases = [ (kb_program_ids::ED25519_PROGRAM_ID, ed_target, ed_external), (kb_program_ids::SECP256K1_PROGRAM_ID, k1_target, k1_external), @@ -1343,8 +1366,8 @@ mod tests { ]; for (program_id, target, external) in cases { let input = replay_input(program_id, target, external, false); - let result = crate::solana_core_precompiles_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_precompiles_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(parameters(&result)["provenance"]["signature"], "current_instruction"); assert_eq!(parameters(&result)["provenance"]["message"], "outer_instruction"); } @@ -1355,17 +1378,17 @@ mod tests { let cases = [ ( kb_program_ids::ED25519_PROGRAM_ID, - two_u16_entries(crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES), + two_u16_entries(crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES), ), ( kb_program_ids::SECP256R1_PROGRAM_ID, - two_u16_entries(crate::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES), + two_u16_entries(crate::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES), ), ]; for (program_id, bytes) in cases { let input = replay_input(program_id, bytes, vec![], false); - let result = crate::solana_core_precompiles_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_precompiles_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.observations.len(), 2); assert_eq!(result.observations[1].event_key, "signature_verification:1"); } @@ -1379,8 +1402,8 @@ mod tests { vec![], false, ); - let result = crate::solana_core_precompiles_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_precompiles_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.observations.len(), 2); assert_eq!(parameters(&result)["entryCount"], 2); assert_eq!(result.observations[1].payload_json["parameters"]["recoveryId"], 1); @@ -1390,11 +1413,11 @@ mod tests { fn empty_and_large_messages_are_hashed_without_full_message_retention() { let empty_input = replay_input( kb_program_ids::ED25519_PROGRAM_ID, - u16_current_payload(crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"", 0), + u16_current_payload(crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"", 0), vec![], false, ); - let empty_result = crate::solana_core_precompiles_decode(&empty_input); + let empty_result = crate::decoder_solana_core_precompiles_decode(&empty_input); assert_eq!(parameters(&empty_result)["message"]["length"], 0); let large_message = vec![0xA5; 1_024]; let large_input = replay_input( @@ -1403,38 +1426,38 @@ mod tests { vec![], false, ); - let large_result = crate::solana_core_precompiles_decode(&large_input); + let large_result = crate::decoder_solana_core_precompiles_decode(&large_input); assert_eq!(parameters(&large_result)["message"]["length"], 1_024); assert!(parameters(&large_result)["message"].get("bytes").is_none()); assert_eq!( parameters(&large_result)["message"]["sha256"], - crate::solana_core_hash_bytes(large_message.as_slice()) + crate::decoder_solana_core_hash_bytes(large_message.as_slice()) ); } #[test] fn official_zero_signature_rules_are_preserved() { - let ed_result = crate::solana_core_precompiles_decode(&replay_input( + let ed_result = crate::decoder_solana_core_precompiles_decode(&replay_input( kb_program_ids::ED25519_PROGRAM_ID, vec![0, 9], vec![], false, )); - let k1_result = crate::solana_core_precompiles_decode(&replay_input( + let k1_result = crate::decoder_solana_core_precompiles_decode(&replay_input( kb_program_ids::SECP256K1_PROGRAM_ID, vec![0], vec![], false, )); - let r1_result = crate::solana_core_precompiles_decode(&replay_input( + let r1_result = crate::decoder_solana_core_precompiles_decode(&replay_input( kb_program_ids::SECP256R1_PROGRAM_ID, vec![0, 0], vec![], false, )); - assert_eq!(ed_result.status, crate::DecoderOutcomeStatus::Decoded); - assert_eq!(k1_result.status, crate::DecoderOutcomeStatus::Decoded); - assert_eq!(r1_result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(ed_result.status, crate::DcApiDecoderOutcomeStatus::Decoded); + assert_eq!(k1_result.status, crate::DcApiDecoderOutcomeStatus::Decoded); + assert_eq!(r1_result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert_eq!(parameters(&ed_result)["entryCount"], 0); assert!(parameters(&k1_result).get("padding").is_none()); } @@ -1450,13 +1473,13 @@ mod tests { (kb_program_ids::SECP256R1_PROGRAM_ID, vec![1, 0, 1]), ]; for (program_id, bytes) in cases { - let result = crate::solana_core_precompiles_decode(&replay_input( + let result = crate::decoder_solana_core_precompiles_decode(&replay_input( program_id, bytes, vec![], false, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert_eq!(result.diagnostics.len(), 1); } } @@ -1469,13 +1492,13 @@ mod tests { (kb_program_ids::SECP256R1_PROGRAM_ID, vec![9, 0]), ]; for (program_id, bytes) in cases { - let result = crate::solana_core_precompiles_decode(&replay_input( + let result = crate::decoder_solana_core_precompiles_decode(&replay_input( program_id, bytes, vec![], false, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } @@ -1487,13 +1510,13 @@ mod tests { (kb_program_ids::SECP256R1_PROGRAM_ID, malformed_u16_index()), ]; for (program_id, bytes) in cases { - let result = crate::solana_core_precompiles_decode(&replay_input( + let result = crate::decoder_solana_core_precompiles_decode(&replay_input( program_id, bytes, vec![], false, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert!(result.diagnostics[0].message.contains("signatureCount=1")); assert!(result.diagnostics[0].message.contains("entryIndex=0")); assert!(result.diagnostics[0].message.contains("payloadSha256=")); @@ -1502,13 +1525,13 @@ mod tests { #[test] fn out_of_bounds_offsets_fail_for_all_precompiles() { - let mut ed = u16_current_payload(crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"x", 0); + let mut ed = u16_current_payload(crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"x", 0); ed[2] = 0xFF; ed[3] = 0xFF; let mut k1 = secp256k1_current_payload(b"x"); k1[1] = 0xFF; k1[2] = 0xFF; - let mut r1 = u16_current_payload(crate::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"x", 0); + let mut r1 = u16_current_payload(crate::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"x", 0); r1[10] = 0xFF; r1[11] = 0xFF; let cases = [ @@ -1517,25 +1540,25 @@ mod tests { (kb_program_ids::SECP256R1_PROGRAM_ID, r1), ]; for (program_id, bytes) in cases { - let result = crate::solana_core_precompiles_decode(&replay_input( + let result = crate::decoder_solana_core_precompiles_decode(&replay_input( program_id, bytes, vec![], false, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } #[test] fn out_of_bounds_message_lengths_fail_for_all_precompiles() { - let mut ed = u16_current_payload(crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"x", 0); + let mut ed = u16_current_payload(crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"x", 0); ed[12] = 0xFF; ed[13] = 0xFF; let mut k1 = secp256k1_current_payload(b"x"); k1[9] = 0xFF; k1[10] = 0xFF; - let mut r1 = u16_current_payload(crate::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"x", 0); + let mut r1 = u16_current_payload(crate::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"x", 0); r1[12] = 0xFF; r1[13] = 0xFF; let cases = [ @@ -1544,29 +1567,30 @@ mod tests { (kb_program_ids::SECP256R1_PROGRAM_ID, r1), ]; for (program_id, bytes) in cases { - let result = crate::solana_core_precompiles_decode(&replay_input( + let result = crate::decoder_solana_core_precompiles_decode(&replay_input( program_id, bytes, vec![], false, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } #[test] fn checked_slice_rejects_offset_length_addition_overflow() { - let result = crate::solana_core_bounded_slice(&[1, 2, 3], usize::MAX, 1, "overflow test"); + let result = + crate::decoder_solana_core_bounded_slice(&[1, 2, 3], usize::MAX, 1, "overflow test"); assert!(result.is_err()); } #[test] fn missing_or_invalid_external_base64_fails_for_all_precompiles() { let (ed_target, ed_external) = - u16_external_payload(crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"external"); + u16_external_payload(crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"external"); let (k1_target, k1_external) = secp256k1_external_payload(b"external"); let (r1_target, r1_external) = - u16_external_payload(crate::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"external"); + u16_external_payload(crate::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"external"); let cases = [ (kb_program_ids::ED25519_PROGRAM_ID, ed_target, ed_external), (kb_program_ids::SECP256K1_PROGRAM_ID, k1_target, k1_external), @@ -1576,13 +1600,13 @@ mod tests { let mut missing = replay_input(program_id, target.clone(), vec![(0, external.clone())], false); missing.outer_instructions_json[0]["payloadJson"] = serde_json::Value::Null; - let missing_result = crate::solana_core_precompiles_decode(&missing); - assert_eq!(missing_result.status, crate::DecoderOutcomeStatus::Failed); + let missing_result = crate::decoder_solana_core_precompiles_decode(&missing); + assert_eq!(missing_result.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut invalid = replay_input(program_id, target, vec![(0, external)], false); invalid.outer_instructions_json[0]["payloadJson"] = serde_json::json!({"dataBase64": "%%%"}); - let invalid_result = crate::solana_core_precompiles_decode(&invalid); - assert_eq!(invalid_result.status, crate::DecoderOutcomeStatus::Failed); + let invalid_result = crate::decoder_solana_core_precompiles_decode(&invalid); + assert_eq!(invalid_result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } @@ -1592,13 +1616,13 @@ mod tests { bytes[3] = u8::MAX; bytes[6] = u8::MAX; bytes[11] = u8::MAX; - let result = crate::solana_core_precompiles_decode(&replay_input( + let result = crate::decoder_solana_core_precompiles_decode(&replay_input( kb_program_ids::SECP256K1_PROGRAM_ID, bytes, vec![], false, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert!(result.diagnostics[0].message.contains("outer instruction index is absent: 255")); } @@ -1606,12 +1630,12 @@ mod tests { fn failed_transaction_is_decoded_without_commit_or_runtime_validity_claim() { let input = replay_input( kb_program_ids::ED25519_PROGRAM_ID, - u16_current_payload(crate::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"failed", 0), + u16_current_payload(crate::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES, b"failed", 0), vec![], true, ); - let result = crate::solana_core_precompiles_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_precompiles_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); assert_eq!(parameters(&result)["runtimeVerification"], "not_asserted_transaction_failed"); assert_eq!(parameters(&result)["cryptographicReverificationPerformed"], false); @@ -1621,25 +1645,25 @@ mod tests { fn event_kind_and_serialization_are_stable() { let input = replay_input( kb_program_ids::SECP256R1_PROGRAM_ID, - u16_current_payload(crate::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"stable", 0), + u16_current_payload(crate::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES, b"stable", 0), vec![], false, ); - let first = crate::solana_core_precompiles_decode(&input); - let second = crate::solana_core_precompiles_decode(&input); + let first = crate::decoder_solana_core_precompiles_decode(&input); + let second = crate::decoder_solana_core_precompiles_decode(&input); assert_eq!(first, second); assert_eq!( first.observations[0].event.event_code.0, "solana_native_secp256r1.signature_verification" ); assert_eq!(parameters(&first)["runtimeVerification"], "accepted_in_successful_transaction"); - let decoded_bytes = match crate::solana_core_decode_instruction_data(&input) { + let decoded_bytes = match crate::decoder_solana_core_decode_instruction_data(&input) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("unexpected payload error: {error}"), }; assert_eq!( first.observations[0].payload_json["instructionDataSha256"], - crate::solana_core_hash_bytes(decoded_bytes.as_slice()) + crate::decoder_solana_core_hash_bytes(decoded_bytes.as_slice()) ); let first_json_result = serde_json::to_string(&first); let first_json = match first_json_result { @@ -1656,7 +1680,7 @@ mod tests { #[test] fn coverage_declares_exactly_three_signature_precompile_surfaces() { - let coverage = crate::solana_core_precompiles_coverage(); + let coverage = crate::decoder_solana_core_precompiles_coverage(); assert_eq!(coverage.len(), 3); assert!(coverage.iter().all(|entry| return entry.entry_code == "signature_verification")); } diff --git a/kb-lib/src/decoder/solana/core/slashing.rs b/kb-lib/src/decoder/solana/core/slashing.rs index a5b5b4c..40754f5 100644 --- a/kb-lib/src/decoder/solana/core/slashing.rs +++ b/kb-lib/src/decoder/solana/core/slashing.rs @@ -9,36 +9,37 @@ const DUPLICATE_BLOCK_PROOF_INSTRUCTION_BYTES: usize = 305; const SIGNATURE_BYTES: usize = 64; const HASH_BYTES: usize = 32; const PUBKEY_BYTES: usize = 32; -const CLOSE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("violation_report", true, false), - crate::SolanaCoreAccountRole::new("destination", true, false), +const CLOSE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("violation_report", true, false), + crate::DcSolanaCoreAccountRole::new("destination", true, false), ]; -const DUPLICATE_BLOCK_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("proof_account", false, false), - crate::SolanaCoreAccountRole::new("violation_report", true, false), - crate::SolanaCoreAccountRole::new("instructions_sysvar", false, false), - crate::SolanaCoreAccountRole::new("system_program", false, false), +const DUPLICATE_BLOCK_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("proof_account", false, false), + crate::DcSolanaCoreAccountRole::new("violation_report", true, false), + crate::DcSolanaCoreAccountRole::new("instructions_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("system_program", false, false), ]; /// Returns declared Slashing Program instruction coverage. -pub(crate) fn slashing_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_slashing_coverage() +-> std::vec::Vec { return vec![ - crate::DecoderCoverageDeclaration { + crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::SLASHING_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SOLANA_CORE_SLASHING_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_SLASHING_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: "close_violation_report".to_string(), discriminator_hex: std::option::Option::Some("00".to_string()), historical: false, }, - crate::DecoderCoverageDeclaration { + crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::SLASHING_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SOLANA_CORE_SLASHING_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_SLASHING_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: "duplicate_block_proof".to_string(), discriminator_hex: std::option::Option::Some("01".to_string()), historical: false, @@ -47,18 +48,18 @@ pub(crate) fn slashing_coverage() -> std::vec::Vec crate::DecoderRecognition { - let bytes_result = crate::solana_core_decode_instruction_data(input); +) -> crate::DcApiDecoderRecognition { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, - std::option::Option::Some(crate::SOLANA_CORE_SLASHING_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_SLASHING_SURFACE_CODE.to_string()), std::option::Option::Some("malformed_slashing_instruction".to_string()), std::option::Option::None, ); @@ -72,24 +73,24 @@ pub(crate) fn slashing_recognize( std::option::Option::Some(_value) => ("unknown_slashing_instruction", false), std::option::Option::None => ("malformed_slashing_instruction", false), }; - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( exact, priority, - std::option::Option::Some(crate::SOLANA_CORE_SLASHING_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_SLASHING_SURFACE_CODE.to_string()), std::option::Option::Some(entry_code.to_string()), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(1)), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(1)), ); } /// Decodes one Slashing Program instruction. -pub(crate) fn slashing_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +pub(crate) fn decoder_solana_core_slashing_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_slashing_instruction"), "slashing_payload_invalid", error.to_string(), @@ -99,7 +100,7 @@ pub(crate) fn slashing_decode( let tag = match bytes.first() { std::option::Option::Some(value) => *value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_slashing_instruction"), "slashing_payload_empty", "Slashing Program instruction payload is empty", @@ -109,45 +110,49 @@ pub(crate) fn slashing_decode( return match tag { 0 => decode_close_violation_report(input, bytes.as_slice()), 1 => decode_duplicate_block_proof(input, bytes.as_slice()), - _ => crate::solana_core_unsupported_result( + _ => crate::decoder_solana_core_unsupported_result( "unknown_slashing_instruction", "slashing_tag_unknown", format!( "unknown Slashing Program instruction tag {tag}; payload_sha256={}", - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ), }; } fn decode_close_violation_report( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { if bytes.len() != 1 { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("close_violation_report"), "slashing_close_size_invalid", format!("close_violation_report requires exactly 1 byte but received {}", bytes.len()), ); } - let accounts_result = - crate::solana_core_resolve_accounts(input, CLOSE_ROLES, 2, std::option::Option::None); + let accounts_result = crate::decoder_solana_core_resolve_accounts( + input, + CLOSE_ROLES, + 2, + std::option::Option::None, + ); let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("close_violation_report"), "slashing_close_accounts_invalid", error.to_string(), ); }, }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_SLASHING_SURFACE_CODE, + crate::DC_SOLANA_CORE_SLASHING_SURFACE_CODE, "close_violation_report", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, accounts, serde_json::json!({ @@ -164,11 +169,11 @@ fn decode_close_violation_report( } fn decode_duplicate_block_proof( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { if bytes.len() != DUPLICATE_BLOCK_PROOF_INSTRUCTION_BYTES { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("duplicate_block_proof"), "slashing_duplicate_block_size_invalid", format!( @@ -178,7 +183,7 @@ fn decode_duplicate_block_proof( ), ); } - let accounts_result = crate::solana_core_resolve_accounts( + let accounts_result = crate::decoder_solana_core_resolve_accounts( input, DUPLICATE_BLOCK_ROLES, 4, @@ -187,7 +192,7 @@ fn decode_duplicate_block_proof( let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("duplicate_block_proof"), "slashing_duplicate_block_accounts_invalid", error.to_string(), @@ -196,7 +201,7 @@ fn decode_duplicate_block_proof( }; let fixed_accounts_result = validate_duplicate_block_fixed_accounts(&accounts); if let std::result::Result::Err(error) = fixed_accounts_result { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("duplicate_block_proof"), "slashing_duplicate_block_fixed_account_invalid", error.to_string(), @@ -206,18 +211,18 @@ fn decode_duplicate_block_proof( let parameters = match parsed_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("duplicate_block_proof"), "slashing_duplicate_block_data_invalid", error.to_string(), ); }, }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_SLASHING_SURFACE_CODE, + crate::DC_SOLANA_CORE_SLASHING_SURFACE_CODE, "duplicate_block_proof", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, false, accounts, parameters, @@ -226,15 +231,15 @@ fn decode_duplicate_block_proof( } fn parse_duplicate_block_parameters( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], ) -> kb_core::Result { - let offset_result = crate::solana_core_read_u64_le(bytes, 1); + let offset_result = crate::decoder_solana_core_read_u64_le(bytes, 1); let offset = match offset_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let slot_result = crate::solana_core_read_u64_le(bytes, 9); + let slot_result = crate::decoder_solana_core_read_u64_le(bytes, 9); let slot = match slot_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), @@ -254,7 +259,7 @@ fn parse_duplicate_block_parameters( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let shred_1_root_result = crate::solana_core_bounded_slice( + let shred_1_root_result = crate::decoder_solana_core_bounded_slice( bytes, 113, HASH_BYTES, @@ -264,7 +269,7 @@ fn parse_duplicate_block_parameters( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let shred_1_signature_result = crate::solana_core_bounded_slice( + let shred_1_signature_result = crate::decoder_solana_core_bounded_slice( bytes, 145, SIGNATURE_BYTES, @@ -274,7 +279,7 @@ fn parse_duplicate_block_parameters( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let shred_2_root_result = crate::solana_core_bounded_slice( + let shred_2_root_result = crate::decoder_solana_core_bounded_slice( bytes, 209, HASH_BYTES, @@ -284,7 +289,7 @@ fn parse_duplicate_block_parameters( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - let shred_2_signature_result = crate::solana_core_bounded_slice( + let shred_2_signature_result = crate::decoder_solana_core_bounded_slice( bytes, 241, SIGNATURE_BYTES, @@ -354,7 +359,7 @@ fn validate_duplicate_block_fixed_accounts(accounts: &serde_json::Value) -> kb_c } fn read_pubkey(bytes: &[u8], offset: usize, label: &str) -> kb_core::Result { - let slice_result = crate::solana_core_bounded_slice(bytes, offset, PUBKEY_BYTES, label); + let slice_result = crate::decoder_solana_core_bounded_slice(bytes, offset, PUBKEY_BYTES, label); return match slice_result { std::result::Result::Ok(value) => { std::result::Result::Ok(bs58::encode(value).into_string()) @@ -366,24 +371,24 @@ fn read_pubkey(bytes: &[u8], offset: usize, label: &str) -> kb_core::Result serde_json::Value { return serde_json::json!({ "length": bytes.len(), - "hex": crate::solana_core_bounded_hexadecimal_prefix(bytes, bytes.len()), - "sha256": crate::solana_core_hash_bytes(bytes), + "hex": crate::decoder_solana_core_bounded_hexadecimal_prefix(bytes, bytes.len()), + "sha256": crate::decoder_solana_core_hash_bytes(bytes), }); } fn signature_summary(bytes: &[u8]) -> serde_json::Value { return serde_json::json!({ "length": bytes.len(), - "prefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "prefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( bytes, - crate::SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES, + crate::DC_SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES, ), - "sha256": crate::solana_core_hash_bytes(bytes), + "sha256": crate::decoder_solana_core_hash_bytes(bytes), }); } -fn preceding_ed25519_instruction(input: &crate::CoreInstructionReplayInput) -> serde_json::Value { - let target_index = match crate::solana_core_target_outer_instruction_index(input) { +fn preceding_ed25519_instruction(input: &crate::MdCoreInstructionReplayInput) -> serde_json::Value { + let target_index = match crate::decoder_solana_core_target_outer_instruction_index(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { return serde_json::json!({ @@ -438,7 +443,7 @@ fn preceding_ed25519_instruction(input: &crate::CoreInstructionReplayInput) -> s } fn runtime_mutation( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, successful_value: &'static str, ) -> &'static str { return if input.transaction_failed { @@ -470,7 +475,7 @@ mod tests { bytes: &[u8], transaction_failed: bool, instruction_path: &str, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let keys = [ "Proof1111111111111111111111111111111111111", "Report111111111111111111111111111111111111", @@ -518,7 +523,7 @@ mod tests { "payloadHash": "slashing-hash" } ]); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( format!("signature:{instruction_path}"), "signature", 42, @@ -547,7 +552,7 @@ mod tests { }; } - fn close_replay_input(transaction_failed: bool) -> crate::CoreInstructionReplayInput { + fn close_replay_input(transaction_failed: bool) -> crate::MdCoreInstructionReplayInput { let mut input = replay_input(&[0], transaction_failed, "0"); input.account_keys_json = serde_json::json!([ { @@ -576,7 +581,7 @@ mod tests { #[test] fn coverage_declares_exactly_two_official_instructions() { - let coverage = crate::solana_core_slashing_coverage(); + let coverage = crate::decoder_solana_core_slashing_coverage(); assert_eq!(coverage.len(), 2); assert_eq!(coverage[0].entry_code, "close_violation_report"); assert_eq!(coverage[1].entry_code, "duplicate_block_proof"); @@ -584,8 +589,8 @@ mod tests { #[test] fn close_violation_report_decodes_exact_runtime_contract() { - let result = crate::solana_core_slashing_decode(&close_replay_input(false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_slashing_decode(&close_replay_input(false)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("close_violation_report") @@ -602,9 +607,12 @@ mod tests { fn duplicate_block_proof_decodes_exact_official_layout() { let payload = duplicate_payload(); assert_eq!(payload.len(), super::DUPLICATE_BLOCK_PROOF_INSTRUCTION_BYTES); - let result = - crate::solana_core_slashing_decode(&replay_input(payload.as_slice(), false, "2")); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_slashing_decode(&replay_input( + payload.as_slice(), + false, + "2", + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); let parameters = &result.observations[0].payload_json["parameters"]; assert_eq!(parameters["proofAccountOffset"], 34); assert_eq!(parameters["violationSlot"], 42); @@ -620,7 +628,7 @@ mod tests { #[test] fn duplicate_block_proof_reports_preceding_ed25519_context() { - let result = crate::solana_core_slashing_decode(&replay_input( + let result = crate::decoder_solana_core_slashing_decode(&replay_input( duplicate_payload().as_slice(), false, "2", @@ -636,12 +644,15 @@ mod tests { #[test] fn malformed_unknown_and_trailing_payloads_fail_safely() { for bytes in [vec![], vec![0, 7], vec![1, 2, 3]] { - let result = - crate::solana_core_slashing_decode(&replay_input(bytes.as_slice(), false, "2")); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = crate::decoder_solana_core_slashing_decode(&replay_input( + bytes.as_slice(), + false, + "2", + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } - let unknown = crate::solana_core_slashing_decode(&replay_input(&[9], false, "2")); - assert_eq!(unknown.status, crate::DecoderOutcomeStatus::Unsupported); + let unknown = crate::decoder_solana_core_slashing_decode(&replay_input(&[9], false, "2")); + assert_eq!(unknown.status, crate::DcApiDecoderOutcomeStatus::Unsupported); } #[test] @@ -649,18 +660,18 @@ mod tests { let mut input = replay_input(duplicate_payload().as_slice(), false, "2"); input.instruction_accounts_json[2]["accountKey"] = serde_json::json!("wrong"); input.account_keys_json[2]["accountKey"] = serde_json::json!("wrong"); - let result = crate::solana_core_slashing_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = crate::decoder_solana_core_slashing_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn failed_transaction_is_decoded_without_runtime_or_mutation_claim() { - let result = crate::solana_core_slashing_decode(&replay_input( + let result = crate::decoder_solana_core_slashing_decode(&replay_input( duplicate_payload().as_slice(), true, "2", )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); let parameters = &result.observations[0].payload_json["parameters"]; assert_eq!(parameters["runtimeVerification"], "not_asserted_transaction_failed"); @@ -670,8 +681,8 @@ mod tests { #[test] fn serialization_is_deterministic() { let input = replay_input(duplicate_payload().as_slice(), false, "2"); - let first = crate::solana_core_slashing_decode(&input); - let second = crate::solana_core_slashing_decode(&input); + let first = crate::decoder_solana_core_slashing_decode(&input); + let second = crate::decoder_solana_core_slashing_decode(&input); let first_json = match serde_json::to_string(&first) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("first serialization failed: {error}"), diff --git a/kb-lib/src/decoder/solana/core/stake.rs b/kb-lib/src/decoder/solana/core/stake.rs index e87964f..9200179 100644 --- a/kb-lib/src/decoder/solana/core/stake.rs +++ b/kb-lib/src/decoder/solana/core/stake.rs @@ -56,13 +56,14 @@ struct LockupCheckedArgsWire { } struct AccountContract { - roles: std::vec::Vec, + roles: std::vec::Vec, minimum_count: usize, account_layout: &'static str, } /// Returns declared Stake Program instruction coverage. -pub(crate) fn stake_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_stake_coverage() +-> std::vec::Vec { let entries = [ ("initialize", 0_u32, false), ("authorize", 1_u32, false), @@ -86,12 +87,12 @@ pub(crate) fn stake_coverage() -> std::vec::Vec std::vec::Vec crate::DecoderRecognition { - let bytes_result = crate::solana_core_decode_instruction_data(input); +) -> crate::DcApiDecoderRecognition { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, - std::option::Option::Some(crate::SOLANA_CORE_STAKE_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_STAKE_SURFACE_CODE.to_string()), std::option::Option::Some("malformed_stake_instruction".to_string()), std::option::Option::None, ); }, }; - let tag_result = crate::solana_core_read_u32_le(bytes.as_slice(), 0); + let tag_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 0); let tag = match tag_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, - std::option::Option::Some(crate::SOLANA_CORE_STAKE_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_STAKE_SURFACE_CODE.to_string()), std::option::Option::Some("malformed_stake_instruction".to_string()), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(4)), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(4)), ); }, }; let entry_code = entry_code(tag); - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( entry_code.is_some(), priority, - std::option::Option::Some(crate::SOLANA_CORE_STAKE_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_STAKE_SURFACE_CODE.to_string()), entry_code.map(str::to_string).or_else(|| { return std::option::Option::Some("unknown_stake_instruction".to_string()); }), @@ -144,25 +145,25 @@ pub(crate) fn stake_recognize( } /// Decodes one Stake Program instruction. -pub(crate) fn stake_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +pub(crate) fn decoder_solana_core_stake_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_stake_instruction"), "stake_payload_invalid", error.to_string(), ); }, }; - let tag_result = crate::solana_core_read_u32_le(bytes.as_slice(), 0); + let tag_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 0); let tag = match tag_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_stake_instruction"), "stake_tag_truncated", error.to_string(), @@ -172,12 +173,12 @@ pub(crate) fn stake_decode( let entry_code = match entry_code(tag) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_unsupported_result( + return crate::decoder_solana_core_unsupported_result( "unknown_stake_instruction", "stake_tag_unknown", format!( "unknown Stake Program instruction tag {tag}; payload_sha256={}", - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ); }, @@ -186,7 +187,7 @@ pub(crate) fn stake_decode( let instruction = match instruction_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "stake_wincode_invalid", format!("cannot decode exact Stake Program {entry_code}: {error}"), @@ -197,14 +198,14 @@ pub(crate) fn stake_decode( } fn decoded_instruction( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, instruction: StakeInstructionWire, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { return match instruction { StakeInstructionWire::Initialize(authorized, lockup) => build( input, "initialize", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, contract(input, "initialize"), serde_json::json!({ @@ -215,7 +216,7 @@ fn decoded_instruction( StakeInstructionWire::Authorize(new_authority, authorization_type) => build( input, "authorize", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, contract(input, "authorize"), serde_json::json!({ @@ -226,7 +227,7 @@ fn decoded_instruction( StakeInstructionWire::DelegateStake => build( input, "delegate_stake", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, contract(input, "delegate_stake"), serde_json::json!({}), @@ -234,7 +235,7 @@ fn decoded_instruction( StakeInstructionWire::Split(lamports) => build( input, "split", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, contract(input, "split"), serde_json::json!({"lamports": lamports}), @@ -242,7 +243,7 @@ fn decoded_instruction( StakeInstructionWire::Withdraw(lamports) => build( input, "withdraw", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, contract(input, "withdraw"), serde_json::json!({"lamports": lamports}), @@ -250,7 +251,7 @@ fn decoded_instruction( StakeInstructionWire::Deactivate => build( input, "deactivate", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, contract(input, "deactivate"), serde_json::json!({}), @@ -258,7 +259,7 @@ fn decoded_instruction( StakeInstructionWire::SetLockup(value) => build( input, "set_lockup", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, contract(input, "set_lockup"), lockup_args_json(value), @@ -266,7 +267,7 @@ fn decoded_instruction( StakeInstructionWire::Merge => build( input, "merge", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, contract(input, "merge"), serde_json::json!({}), @@ -274,7 +275,7 @@ fn decoded_instruction( StakeInstructionWire::AuthorizeWithSeed(value) => build( input, "authorize_with_seed", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, contract(input, "authorize_with_seed"), serde_json::json!({ @@ -287,7 +288,7 @@ fn decoded_instruction( StakeInstructionWire::InitializeChecked => build( input, "initialize_checked", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, contract(input, "initialize_checked"), serde_json::json!({ @@ -298,7 +299,7 @@ fn decoded_instruction( StakeInstructionWire::AuthorizeChecked(authorization_type) => build( input, "authorize_checked", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, contract(input, "authorize_checked"), serde_json::json!({ @@ -309,7 +310,7 @@ fn decoded_instruction( StakeInstructionWire::AuthorizeCheckedWithSeed(value) => build( input, "authorize_checked_with_seed", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, contract(input, "authorize_checked_with_seed"), serde_json::json!({ @@ -322,7 +323,7 @@ fn decoded_instruction( StakeInstructionWire::SetLockupChecked(value) => build( input, "set_lockup_checked", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, contract(input, "set_lockup_checked"), lockup_checked_args_json(value), @@ -330,7 +331,7 @@ fn decoded_instruction( StakeInstructionWire::GetMinimumDelegation => build( input, "get_minimum_delegation", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, false, contract(input, "get_minimum_delegation"), serde_json::json!({ @@ -341,7 +342,7 @@ fn decoded_instruction( StakeInstructionWire::DeactivateDelinquent => build( input, "deactivate_delinquent", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, contract(input, "deactivate_delinquent"), serde_json::json!({}), @@ -349,7 +350,7 @@ fn decoded_instruction( StakeInstructionWire::Redelegate => build( input, "redelegate", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, true, contract(input, "redelegate"), serde_json::json!({ @@ -360,7 +361,7 @@ fn decoded_instruction( StakeInstructionWire::MoveStake(lamports) => build( input, "move_stake", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, contract(input, "move_stake"), serde_json::json!({"lamports": lamports}), @@ -368,7 +369,7 @@ fn decoded_instruction( StakeInstructionWire::MoveLamports(lamports) => build( input, "move_lamports", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, contract(input, "move_lamports"), serde_json::json!({"lamports": lamports}), @@ -377,14 +378,14 @@ fn decoded_instruction( } fn build( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, entry_code: &str, - event_family: crate::EventFamily, + event_family: crate::MdEventFamily, historical: bool, contract: AccountContract, mut parameters: serde_json::Value, -) -> crate::DecoderExecutionResult { - let accounts_result = crate::solana_core_resolve_accounts( +) -> crate::DcApiDecoderExecutionResult { + let accounts_result = crate::decoder_solana_core_resolve_accounts( input, contract.roles.as_slice(), contract.minimum_count, @@ -393,7 +394,7 @@ fn build( let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "stake_accounts_invalid", error.to_string(), @@ -406,9 +407,9 @@ fn build( serde_json::Value::String(contract.account_layout.to_string()), ); } - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_STAKE_SURFACE_CODE, + crate::DC_SOLANA_CORE_STAKE_SURFACE_CODE, entry_code, event_family, historical, @@ -418,7 +419,7 @@ fn build( ); } -fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> AccountContract { +fn contract(input: &crate::MdCoreInstructionReplayInput, entry_code: &str) -> AccountContract { return match entry_code { "initialize" => { if account_key(input, 1) @@ -426,15 +427,15 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco { AccountContract { roles: vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("rent_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("rent_sysvar", false, false), ], minimum_count: 1, account_layout: "legacy_rent_compatibility", } } else { AccountContract { - roles: vec![crate::SolanaCoreAccountRole::new("stake_account", true, false)], + roles: vec![crate::DcSolanaCoreAccountRole::new("stake_account", true, false)], minimum_count: 1, account_layout: "runtime_minimal", } @@ -444,16 +445,16 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco input, 1, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("current_authority", false, true), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("current_authority", false, true), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 3, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("current_authority", false, true), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("current_authority", false, true), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 2, ), @@ -461,30 +462,30 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco input, 2, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("vote_account", false, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("stake_history_sysvar", false, false), - crate::SolanaCoreAccountRole::new( + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("vote_account", false, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("stake_history_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new( "unused_stake_config_compatibility_account", false, false, ), - crate::SolanaCoreAccountRole::new("stake_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, true), ], 5, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("vote_account", false, false), - crate::SolanaCoreAccountRole::new("stake_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("vote_account", false, false), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, true), ], 3, ), "split" => AccountContract { roles: vec![ - crate::SolanaCoreAccountRole::new("source_stake_account", true, false), - crate::SolanaCoreAccountRole::new("destination_stake_account", true, false), - crate::SolanaCoreAccountRole::new("stake_authority", false, true), + crate::DcSolanaCoreAccountRole::new("source_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("destination_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, true), ], minimum_count: 2, account_layout: "runtime_legacy_lax", @@ -493,19 +494,19 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco input, 2, vec![ - crate::SolanaCoreAccountRole::new("source_stake_account", true, false), - crate::SolanaCoreAccountRole::new("recipient_account", true, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("stake_history_sysvar", false, false), - crate::SolanaCoreAccountRole::new("withdraw_authority", false, true), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("source_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("recipient_account", true, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("stake_history_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("withdraw_authority", false, true), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 5, vec![ - crate::SolanaCoreAccountRole::new("source_stake_account", true, false), - crate::SolanaCoreAccountRole::new("recipient_account", true, false), - crate::SolanaCoreAccountRole::new("withdraw_authority", false, true), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("source_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("recipient_account", true, false), + crate::DcSolanaCoreAccountRole::new("withdraw_authority", false, true), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 3, ), @@ -513,21 +514,21 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco input, 1, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("stake_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, true), ], 2, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("stake_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, true), ], 2, ), "set_lockup" => AccountContract { roles: vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("lockup_or_withdraw_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("lockup_or_withdraw_authority", false, true), ], minimum_count: 1, account_layout: "runtime_legacy_lax", @@ -536,17 +537,17 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco input, 2, vec![ - crate::SolanaCoreAccountRole::new("destination_stake_account", true, false), - crate::SolanaCoreAccountRole::new("source_stake_account", true, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("stake_history_sysvar", false, false), - crate::SolanaCoreAccountRole::new("stake_authority", false, true), + crate::DcSolanaCoreAccountRole::new("destination_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("source_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("stake_history_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, true), ], 4, vec![ - crate::SolanaCoreAccountRole::new("destination_stake_account", true, false), - crate::SolanaCoreAccountRole::new("source_stake_account", true, false), - crate::SolanaCoreAccountRole::new("stake_authority", false, true), + crate::DcSolanaCoreAccountRole::new("destination_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("source_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, true), ], 3, ), @@ -554,16 +555,16 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco input, 2, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("authority_base", false, true), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority_base", false, true), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 3, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("authority_base", false, true), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority_base", false, true), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 2, ), @@ -573,10 +574,10 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco { AccountContract { roles: vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("rent_sysvar", false, false), - crate::SolanaCoreAccountRole::new("stake_authority", false, false), - crate::SolanaCoreAccountRole::new("withdraw_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("rent_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, false), + crate::DcSolanaCoreAccountRole::new("withdraw_authority", false, true), ], minimum_count: 4, account_layout: "legacy_sysvar", @@ -584,9 +585,9 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco } else { AccountContract { roles: vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("stake_authority", false, false), - crate::SolanaCoreAccountRole::new("withdraw_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, false), + crate::DcSolanaCoreAccountRole::new("withdraw_authority", false, true), ], minimum_count: 3, account_layout: "runtime_strict", @@ -597,18 +598,18 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco input, 1, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("current_authority", false, true), - crate::SolanaCoreAccountRole::new("new_authority", false, true), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("current_authority", false, true), + crate::DcSolanaCoreAccountRole::new("new_authority", false, true), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 4, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("current_authority", false, true), - crate::SolanaCoreAccountRole::new("new_authority", false, true), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("current_authority", false, true), + crate::DcSolanaCoreAccountRole::new("new_authority", false, true), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 3, ), @@ -616,26 +617,26 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco input, 2, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("authority_base", false, true), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("new_authority", false, true), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority_base", false, true), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("new_authority", false, true), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 4, vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("authority_base", false, true), - crate::SolanaCoreAccountRole::new("new_authority", false, true), - crate::SolanaCoreAccountRole::new("lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("authority_base", false, true), + crate::DcSolanaCoreAccountRole::new("new_authority", false, true), + crate::DcSolanaCoreAccountRole::new("lockup_authority", false, true), ], 3, ), "set_lockup_checked" => AccountContract { roles: vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("lockup_or_withdraw_authority", false, true), - crate::SolanaCoreAccountRole::new("new_lockup_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("lockup_or_withdraw_authority", false, true), + crate::DcSolanaCoreAccountRole::new("new_lockup_authority", false, true), ], minimum_count: 1, account_layout: "runtime_legacy_lax", @@ -647,33 +648,33 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco }, "deactivate_delinquent" => AccountContract { roles: vec![ - crate::SolanaCoreAccountRole::new("stake_account", true, false), - crate::SolanaCoreAccountRole::new("delinquent_vote_account", false, false), - crate::SolanaCoreAccountRole::new("reference_vote_account", false, false), + crate::DcSolanaCoreAccountRole::new("stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("delinquent_vote_account", false, false), + crate::DcSolanaCoreAccountRole::new("reference_vote_account", false, false), ], minimum_count: 3, account_layout: "runtime_strict", }, "redelegate" => AccountContract { roles: vec![ - crate::SolanaCoreAccountRole::new("source_stake_account", true, false), - crate::SolanaCoreAccountRole::new("destination_stake_account", true, false), - crate::SolanaCoreAccountRole::new("vote_account", false, false), - crate::SolanaCoreAccountRole::new( + crate::DcSolanaCoreAccountRole::new("source_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("destination_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("vote_account", false, false), + crate::DcSolanaCoreAccountRole::new( "unused_stake_config_compatibility_account", false, false, ), - crate::SolanaCoreAccountRole::new("stake_authority", false, true), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, true), ], minimum_count: 0, account_layout: "disabled_before_account_processing", }, "move_stake" | "move_lamports" => AccountContract { roles: vec![ - crate::SolanaCoreAccountRole::new("source_stake_account", true, false), - crate::SolanaCoreAccountRole::new("destination_stake_account", true, false), - crate::SolanaCoreAccountRole::new("stake_authority", false, true), + crate::DcSolanaCoreAccountRole::new("source_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("destination_stake_account", true, false), + crate::DcSolanaCoreAccountRole::new("stake_authority", false, true), ], minimum_count: 3, account_layout: "runtime_strict", @@ -687,11 +688,11 @@ fn contract(input: &crate::CoreInstructionReplayInput, entry_code: &str) -> Acco } fn clock_branch_contract( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, branch_position: usize, - legacy_roles: std::vec::Vec, + legacy_roles: std::vec::Vec, legacy_minimum_count: usize, - current_roles: std::vec::Vec, + current_roles: std::vec::Vec, current_minimum_count: usize, ) -> AccountContract { if account_key(input, branch_position) @@ -711,7 +712,7 @@ fn clock_branch_contract( } fn account_key( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, position: usize, ) -> std::option::Option<&str> { return input @@ -1010,7 +1011,7 @@ mod tests { instruction: &super::StakeInstructionWire, account_keys: &[std::string::String], transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let bytes_result = wincode::serialize(instruction); let bytes = match bytes_result { std::result::Result::Ok(value) => value, @@ -1025,7 +1026,7 @@ mod tests { bytes: &[u8], account_keys: &[std::string::String], transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let resolved_keys = account_keys .iter() .enumerate() @@ -1050,7 +1051,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -1081,7 +1082,7 @@ mod tests { #[test] fn coverage_declares_every_official_stake_instruction() { - let coverage = crate::solana_core_stake_coverage(); + let coverage = crate::decoder_solana_core_stake_coverage(); assert_eq!(coverage.len(), 18); for tag in 0_u32..18_u32 { let expected = super::tag_hex(tag); @@ -1152,8 +1153,8 @@ mod tests { fixture.account_keys.as_slice(), fixture.transaction_failed, ); - let result = crate::solana_core_stake_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_stake_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(fixture.entry_code) @@ -1175,12 +1176,12 @@ mod tests { "Authority5".to_string(), ]; let current_keys = ["Stake0".to_string(), "Vote1".to_string(), "Authority2".to_string()]; - let legacy = crate::solana_core_stake_decode(&replay_input( + let legacy = crate::decoder_solana_core_stake_decode(&replay_input( &instruction, legacy_keys.as_slice(), false, )); - let current = crate::solana_core_stake_decode(&replay_input( + let current = crate::decoder_solana_core_stake_decode(&replay_input( &instruction, current_keys.as_slice(), false, @@ -1258,12 +1259,12 @@ mod tests { ]; for (instruction, keys) in fixtures { let account_keys = keys.into_iter().map(str::to_string).collect::>(); - let result = crate::solana_core_stake_decode(&replay_input( + let result = crate::decoder_solana_core_stake_decode(&replay_input( &instruction, account_keys.as_slice(), false, )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.observations[0].payload_json["parameters"]["accountLayout"], if matches!(instruction, super::StakeInstructionWire::Initialize(_, _)) { @@ -1279,8 +1280,8 @@ mod tests { fn deprecated_redelegate_is_an_uncommitted_historical_intent() { let instruction = super::StakeInstructionWire::Redelegate; let input = replay_input(&instruction, &[], true); - let result = crate::solana_core_stake_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_stake_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); assert_eq!(result.observations[0].payload_json["historical"], true); assert_eq!(result.observations[0].payload_json["parameters"]["officiallyDisabled"], true); @@ -1294,9 +1295,12 @@ mod tests { fn failed_stake_instruction_is_decoded_as_uncommitted_intent() { let instruction = super::StakeInstructionWire::MoveStake(42); let keys = ["Stake0".to_string(), "Stake1".to_string(), "Authority2".to_string()]; - let result = - crate::solana_core_stake_decode(&replay_input(&instruction, keys.as_slice(), true)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_stake_decode(&replay_input( + &instruction, + keys.as_slice(), + true, + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); assert_eq!(result.observations[0].payload_json["transactionSucceeded"], false); } @@ -1304,18 +1308,18 @@ mod tests { #[test] fn truncated_unknown_trailing_and_missing_accounts_fail_safely() { let no_accounts = std::vec::Vec::new(); - let truncated = crate::solana_core_stake_decode(&replay_input_bytes( + let truncated = crate::decoder_solana_core_stake_decode(&replay_input_bytes( &[0, 0, 0], no_accounts.as_slice(), false, )); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let unknown = crate::solana_core_stake_decode(&replay_input_bytes( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let unknown = crate::decoder_solana_core_stake_decode(&replay_input_bytes( &99_u32.to_le_bytes(), no_accounts.as_slice(), false, )); - assert_eq!(unknown.status, crate::DecoderOutcomeStatus::Unsupported); + assert_eq!(unknown.status, crate::DcApiDecoderOutcomeStatus::Unsupported); let bytes_result = wincode::serialize(&super::StakeInstructionWire::MoveLamports(1)); let mut bytes = match bytes_result { std::result::Result::Ok(value) => value, @@ -1324,12 +1328,12 @@ mod tests { }, }; bytes.push(1); - let trailing = crate::solana_core_stake_decode(&replay_input_bytes( + let trailing = crate::decoder_solana_core_stake_decode(&replay_input_bytes( bytes.as_slice(), no_accounts.as_slice(), false, )); - assert_eq!(trailing.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(trailing.status, crate::DcApiDecoderOutcomeStatus::Failed); let exact_result = wincode::serialize(&super::StakeInstructionWire::MoveLamports(1)); let exact = match exact_result { std::result::Result::Ok(value) => value, @@ -1337,11 +1341,11 @@ mod tests { panic!("Stake fixture serialization failed: {error}") }, }; - let missing_accounts = crate::solana_core_stake_decode(&replay_input_bytes( + let missing_accounts = crate::decoder_solana_core_stake_decode(&replay_input_bytes( exact.as_slice(), no_accounts.as_slice(), false, )); - assert_eq!(missing_accounts.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(missing_accounts.status, crate::DcApiDecoderOutcomeStatus::Failed); } } diff --git a/kb-lib/src/decoder/solana/core/system.rs b/kb-lib/src/decoder/solana/core/system.rs index 79c5a5d..b80e951 100644 --- a/kb-lib/src/decoder/solana/core/system.rs +++ b/kb-lib/src/decoder/solana/core/system.rs @@ -5,62 +5,63 @@ const SOURCE: &str = "solana-system-interface@3.2.0 SystemInstruction wincode-compatible contract"; -const CREATE_ACCOUNT_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("funding_account", true, true), - crate::SolanaCoreAccountRole::new("new_account", true, true), +const CREATE_ACCOUNT_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("funding_account", true, true), + crate::DcSolanaCoreAccountRole::new("new_account", true, true), ]; -const ASSIGN_ROLES: &[crate::SolanaCoreAccountRole] = - &[crate::SolanaCoreAccountRole::new("assigned_account", true, true)]; -const TRANSFER_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("funding_account", true, true), - crate::SolanaCoreAccountRole::new("recipient_account", true, false), +const ASSIGN_ROLES: &[crate::DcSolanaCoreAccountRole] = + &[crate::DcSolanaCoreAccountRole::new("assigned_account", true, true)]; +const TRANSFER_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("funding_account", true, true), + crate::DcSolanaCoreAccountRole::new("recipient_account", true, false), ]; -const CREATE_ACCOUNT_WITH_SEED_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("funding_account", true, true), - crate::SolanaCoreAccountRole::new("new_account", true, false), - crate::SolanaCoreAccountRole::new("base_account", false, true), +const CREATE_ACCOUNT_WITH_SEED_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("funding_account", true, true), + crate::DcSolanaCoreAccountRole::new("new_account", true, false), + crate::DcSolanaCoreAccountRole::new("base_account", false, true), ]; -const ADVANCE_NONCE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("nonce_account", true, false), - crate::SolanaCoreAccountRole::new("recent_blockhashes_sysvar", false, false), - crate::SolanaCoreAccountRole::new("nonce_authority", false, true), +const ADVANCE_NONCE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("nonce_account", true, false), + crate::DcSolanaCoreAccountRole::new("recent_blockhashes_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("nonce_authority", false, true), ]; -const WITHDRAW_NONCE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("nonce_account", true, false), - crate::SolanaCoreAccountRole::new("recipient_account", true, false), - crate::SolanaCoreAccountRole::new("recent_blockhashes_sysvar", false, false), - crate::SolanaCoreAccountRole::new("rent_sysvar", false, false), - crate::SolanaCoreAccountRole::new("nonce_authority", false, true), +const WITHDRAW_NONCE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("nonce_account", true, false), + crate::DcSolanaCoreAccountRole::new("recipient_account", true, false), + crate::DcSolanaCoreAccountRole::new("recent_blockhashes_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("rent_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("nonce_authority", false, true), ]; -const INITIALIZE_NONCE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("nonce_account", true, false), - crate::SolanaCoreAccountRole::new("recent_blockhashes_sysvar", false, false), - crate::SolanaCoreAccountRole::new("rent_sysvar", false, false), +const INITIALIZE_NONCE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("nonce_account", true, false), + crate::DcSolanaCoreAccountRole::new("recent_blockhashes_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("rent_sysvar", false, false), ]; -const AUTHORIZE_NONCE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("nonce_account", true, false), - crate::SolanaCoreAccountRole::new("nonce_authority", false, true), +const AUTHORIZE_NONCE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("nonce_account", true, false), + crate::DcSolanaCoreAccountRole::new("nonce_authority", false, true), ]; -const ALLOCATE_ROLES: &[crate::SolanaCoreAccountRole] = - &[crate::SolanaCoreAccountRole::new("allocated_account", true, true)]; -const SEEDED_ACCOUNT_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("derived_account", true, false), - crate::SolanaCoreAccountRole::new("base_account", false, true), +const ALLOCATE_ROLES: &[crate::DcSolanaCoreAccountRole] = + &[crate::DcSolanaCoreAccountRole::new("allocated_account", true, true)]; +const SEEDED_ACCOUNT_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("derived_account", true, false), + crate::DcSolanaCoreAccountRole::new("base_account", false, true), ]; -const TRANSFER_WITH_SEED_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("funding_account", true, false), - crate::SolanaCoreAccountRole::new("base_account", false, true), - crate::SolanaCoreAccountRole::new("recipient_account", true, false), +const TRANSFER_WITH_SEED_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("funding_account", true, false), + crate::DcSolanaCoreAccountRole::new("base_account", false, true), + crate::DcSolanaCoreAccountRole::new("recipient_account", true, false), ]; -const UPGRADE_NONCE_ROLES: &[crate::SolanaCoreAccountRole] = - &[crate::SolanaCoreAccountRole::new("nonce_account", true, false)]; -const CREATE_ACCOUNT_ALLOW_PREFUND_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("new_account", true, true), - crate::SolanaCoreAccountRole::new("funding_account", true, true), +const UPGRADE_NONCE_ROLES: &[crate::DcSolanaCoreAccountRole] = + &[crate::DcSolanaCoreAccountRole::new("nonce_account", true, false)]; +const CREATE_ACCOUNT_ALLOW_PREFUND_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("new_account", true, true), + crate::DcSolanaCoreAccountRole::new("funding_account", true, true), ]; /// Returns declared System Program instruction coverage. -pub(crate) fn system_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_system_coverage() +-> std::vec::Vec { let entries = [ ("create_account", 0_u32), ("assign", 1_u32), @@ -80,12 +81,12 @@ pub(crate) fn system_coverage() -> std::vec::Vec std::vec::Vec crate::DecoderRecognition { - let bytes_result = crate::solana_core_decode_instruction_data(input); +) -> crate::DcApiDecoderRecognition { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, - std::option::Option::Some(crate::SOLANA_CORE_SYSTEM_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_SYSTEM_SURFACE_CODE.to_string()), std::option::Option::Some("malformed_system_instruction".to_string()), std::option::Option::None, ); }, }; - let tag_result = crate::solana_core_read_u32_le(bytes.as_slice(), 0); + let tag_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 0); let tag = match tag_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, - std::option::Option::Some(crate::SOLANA_CORE_SYSTEM_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_SYSTEM_SURFACE_CODE.to_string()), std::option::Option::Some("malformed_system_instruction".to_string()), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(4)), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(4)), ); }, }; let entry_code = entry_code(tag); - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( entry_code.is_some(), priority, - std::option::Option::Some(crate::SOLANA_CORE_SYSTEM_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_SYSTEM_SURFACE_CODE.to_string()), entry_code.map(str::to_string).or_else(|| { return std::option::Option::Some("unknown_system_instruction".to_string()); }), @@ -138,25 +139,25 @@ pub(crate) fn system_recognize( } /// Decodes one System Program instruction. -pub(crate) fn system_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +pub(crate) fn decoder_solana_core_system_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_system_instruction"), "system_payload_invalid", error.to_string(), ); }, }; - let tag_result = crate::solana_core_read_u32_le(bytes.as_slice(), 0); + let tag_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 0); let tag = match tag_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_system_instruction"), "system_tag_truncated", error.to_string(), @@ -166,12 +167,12 @@ pub(crate) fn system_decode( let entry_code = match entry_code(tag) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_unsupported_result( + return crate::decoder_solana_core_unsupported_result( "unknown_system_instruction", "system_tag_unknown", format!( "unknown System Program instruction tag {tag}; payload_sha256={}", - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ); }, @@ -182,7 +183,7 @@ pub(crate) fn system_decode( let instruction = match instruction_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "system_wincode_invalid", format!("cannot decode exact System Program {entry_code}: {error}"), @@ -193,9 +194,9 @@ pub(crate) fn system_decode( } fn decoded_instruction( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, instruction: solana_system_interface::instruction::SystemInstruction, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { return match instruction { solana_system_interface::instruction::SystemInstruction::CreateAccount { lamports, @@ -204,7 +205,7 @@ fn decoded_instruction( } => build( input, "create_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, CREATE_ACCOUNT_ROLES, 2, serde_json::json!({"lamports": lamports, "space": space, "owner": owner.to_string()}), @@ -212,7 +213,7 @@ fn decoded_instruction( solana_system_interface::instruction::SystemInstruction::Assign { owner } => build( input, "assign", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, ASSIGN_ROLES, 1, serde_json::json!({"owner": owner.to_string()}), @@ -220,7 +221,7 @@ fn decoded_instruction( solana_system_interface::instruction::SystemInstruction::Transfer { lamports } => build( input, "transfer", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, TRANSFER_ROLES, 2, serde_json::json!({"lamports": lamports}), @@ -234,7 +235,7 @@ fn decoded_instruction( } => build( input, "create_account_with_seed", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, CREATE_ACCOUNT_WITH_SEED_ROLES, 2, serde_json::json!({ @@ -248,7 +249,7 @@ fn decoded_instruction( solana_system_interface::instruction::SystemInstruction::AdvanceNonceAccount => build( input, "advance_nonce_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, ADVANCE_NONCE_ROLES, 3, serde_json::json!({}), @@ -257,7 +258,7 @@ fn decoded_instruction( build( input, "withdraw_nonce_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, WITHDRAW_NONCE_ROLES, 5, serde_json::json!({"lamports": lamports}), @@ -268,7 +269,7 @@ fn decoded_instruction( ) => build( input, "initialize_nonce_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, INITIALIZE_NONCE_ROLES, 3, serde_json::json!({"authority": authority.to_string()}), @@ -278,7 +279,7 @@ fn decoded_instruction( ) => build( input, "authorize_nonce_account", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, AUTHORIZE_NONCE_ROLES, 2, serde_json::json!({"authority": authority.to_string()}), @@ -286,7 +287,7 @@ fn decoded_instruction( solana_system_interface::instruction::SystemInstruction::Allocate { space } => build( input, "allocate", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, ALLOCATE_ROLES, 1, serde_json::json!({"space": space}), @@ -299,7 +300,7 @@ fn decoded_instruction( } => build( input, "allocate_with_seed", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, SEEDED_ACCOUNT_ROLES, 2, serde_json::json!({ @@ -316,7 +317,7 @@ fn decoded_instruction( } => build( input, "assign_with_seed", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, SEEDED_ACCOUNT_ROLES, 2, serde_json::json!({ @@ -332,7 +333,7 @@ fn decoded_instruction( } => build( input, "transfer_with_seed", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, TRANSFER_WITH_SEED_ROLES, 3, serde_json::json!({ @@ -344,7 +345,7 @@ fn decoded_instruction( solana_system_interface::instruction::SystemInstruction::UpgradeNonceAccount => build( input, "upgrade_nonce_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, UPGRADE_NONCE_ROLES, 1, serde_json::json!({}), @@ -356,7 +357,7 @@ fn decoded_instruction( } => build( input, "create_account_allow_prefund", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, CREATE_ACCOUNT_ALLOW_PREFUND_ROLES, if lamports == 0 { 1 } else { 2 }, serde_json::json!({"lamports": lamports, "space": space, "owner": owner.to_string()}), @@ -365,28 +366,32 @@ fn decoded_instruction( } fn build( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, entry_code: &str, - event_family: crate::EventFamily, - roles: &[crate::SolanaCoreAccountRole], + event_family: crate::MdEventFamily, + roles: &[crate::DcSolanaCoreAccountRole], minimum_count: usize, parameters: serde_json::Value, -) -> crate::DecoderExecutionResult { - let accounts_result = - crate::solana_core_resolve_accounts(input, roles, minimum_count, std::option::Option::None); +) -> crate::DcApiDecoderExecutionResult { + let accounts_result = crate::decoder_solana_core_resolve_accounts( + input, + roles, + minimum_count, + std::option::Option::None, + ); let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "system_accounts_invalid", error.to_string(), ); }, }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_SYSTEM_SURFACE_CODE, + crate::DC_SOLANA_CORE_SYSTEM_SURFACE_CODE, entry_code, event_family, false, @@ -429,7 +434,7 @@ mod tests { instruction: &solana_system_interface::instruction::SystemInstruction, account_count: usize, transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let bytes_result = wincode::serialize(instruction); let bytes = match bytes_result { std::result::Result::Ok(value) => value, @@ -444,7 +449,7 @@ mod tests { bytes: &[u8], account_count: usize, transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let encoded = base64::engine::general_purpose::STANDARD.encode(bytes); let account_keys = (0..account_count) .map(|index| { @@ -466,7 +471,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -603,8 +608,8 @@ mod tests { ]; for (instruction, account_count, expected) in fixtures { let input = replay_input(&instruction, account_count, false); - let result = crate::solana_core_system_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_system_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) @@ -617,8 +622,9 @@ mod tests { fn additional_accounts_are_preserved_without_rejecting_valid_system_instructions() { let instruction = solana_system_interface::instruction::SystemInstruction::Transfer { lamports: 1 }; - let result = crate::solana_core_system_decode(&replay_input(&instruction, 3, false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = + crate::decoder_solana_core_system_decode(&replay_input(&instruction, 3, false)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); let accounts = match result.observations[0].payload_json["accounts"].as_array() { std::option::Option::Some(value) => value, std::option::Option::None => panic!("decoded System accounts are not an array"), @@ -631,17 +637,22 @@ mod tests { fn missing_accounts_and_truncated_payload_fail_without_panic() { let instruction = solana_system_interface::instruction::SystemInstruction::Transfer { lamports: 1 }; - let missing = crate::solana_core_system_decode(&replay_input(&instruction, 1, false)); - assert_eq!(missing.status, crate::DecoderOutcomeStatus::Failed); - let truncated = crate::solana_core_system_decode(&replay_input_bytes(&[2, 0, 0], 2, false)); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); + let missing = + crate::decoder_solana_core_system_decode(&replay_input(&instruction, 1, false)); + assert_eq!(missing.status, crate::DcApiDecoderOutcomeStatus::Failed); + let truncated = + crate::decoder_solana_core_system_decode(&replay_input_bytes(&[2, 0, 0], 2, false)); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn unknown_tag_is_unsupported_and_hashable_for_replay() { - let result = - crate::solana_core_system_decode(&replay_input_bytes(&[255, 0, 0, 0], 0, false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Unsupported); + let result = crate::decoder_solana_core_system_decode(&replay_input_bytes( + &[255, 0, 0, 0], + 0, + false, + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Unsupported); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("unknown_system_instruction") @@ -652,8 +663,8 @@ mod tests { fn failed_transaction_is_decoded_as_uncommitted_intent() { let instruction = solana_system_interface::instruction::SystemInstruction::Transfer { lamports: 55 }; - let result = crate::solana_core_system_decode(&replay_input(&instruction, 2, true)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_system_decode(&replay_input(&instruction, 2, true)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); assert_eq!(result.observations[0].payload_json["transactionSucceeded"], false); } @@ -663,8 +674,8 @@ mod tests { let instruction = solana_system_interface::instruction::SystemInstruction::Transfer { lamports: 55 }; let input = replay_input(&instruction, 2, false); - let first = crate::solana_core_system_decode(&input); - let second = crate::solana_core_system_decode(&input); + let first = crate::decoder_solana_core_system_decode(&input); + let second = crate::decoder_solana_core_system_decode(&input); let first_json = match serde_json::to_string(&first) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("first event serialization failed: {error}"), @@ -678,7 +689,7 @@ mod tests { #[test] fn coverage_declares_all_current_system_variants() { - let coverage = crate::solana_core_system_coverage(); + let coverage = crate::decoder_solana_core_system_coverage(); assert_eq!(coverage.len(), 14); assert!(coverage.iter().any(|entry| { return entry.entry_code == "create_account_allow_prefund" diff --git a/kb-lib/src/decoder/solana/core/vote.rs b/kb-lib/src/decoder/solana/core/vote.rs index ad787ed..03e2906 100644 --- a/kb-lib/src/decoder/solana/core/vote.rs +++ b/kb-lib/src/decoder/solana/core/vote.rs @@ -5,76 +5,77 @@ const SOURCE: &str = "solana-vote-interface@6.x VoteInstruction wincode contract"; -const INITIALIZE_ACCOUNT_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("rent_sysvar", false, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("validator_identity", false, true), +const INITIALIZE_ACCOUNT_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("rent_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("validator_identity", false, true), ]; -const AUTHORIZE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("current_authority", false, true), +const AUTHORIZE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("current_authority", false, true), ]; -const VOTE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("slot_hashes_sysvar", false, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("vote_authority", false, true), +const VOTE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("slot_hashes_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("vote_authority", false, true), ]; -const WITHDRAW_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("recipient_account", true, false), - crate::SolanaCoreAccountRole::new("withdraw_authority", false, true), +const WITHDRAW_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("recipient_account", true, false), + crate::DcSolanaCoreAccountRole::new("withdraw_authority", false, true), ]; -const UPDATE_VALIDATOR_IDENTITY_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("new_validator_identity", false, true), - crate::SolanaCoreAccountRole::new("withdraw_authority", false, true), +const UPDATE_VALIDATOR_IDENTITY_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("new_validator_identity", false, true), + crate::DcSolanaCoreAccountRole::new("withdraw_authority", false, true), ]; -const UPDATE_COMMISSION_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("withdraw_authority", false, true), +const UPDATE_COMMISSION_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("withdraw_authority", false, true), ]; -const AUTHORIZE_CHECKED_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("current_authority", false, true), - crate::SolanaCoreAccountRole::new("new_authority", false, true), +const AUTHORIZE_CHECKED_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("current_authority", false, true), + crate::DcSolanaCoreAccountRole::new("new_authority", false, true), ]; -const VOTE_STATE_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("vote_authority", false, true), +const VOTE_STATE_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("vote_authority", false, true), ]; -const AUTHORIZE_WITH_SEED_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("current_authority_base", false, true), +const AUTHORIZE_WITH_SEED_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("current_authority_base", false, true), ]; -const AUTHORIZE_CHECKED_WITH_SEED_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("clock_sysvar", false, false), - crate::SolanaCoreAccountRole::new("current_authority_base", false, true), - crate::SolanaCoreAccountRole::new("new_authority", false, true), +const AUTHORIZE_CHECKED_WITH_SEED_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("clock_sysvar", false, false), + crate::DcSolanaCoreAccountRole::new("current_authority_base", false, true), + crate::DcSolanaCoreAccountRole::new("new_authority", false, true), ]; -const INITIALIZE_ACCOUNT_V2_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("validator_identity", false, true), - crate::SolanaCoreAccountRole::new("inflation_rewards_collector", true, false), - crate::SolanaCoreAccountRole::new("block_revenue_collector", true, false), +const INITIALIZE_ACCOUNT_V2_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("validator_identity", false, true), + crate::DcSolanaCoreAccountRole::new("inflation_rewards_collector", true, false), + crate::DcSolanaCoreAccountRole::new("block_revenue_collector", true, false), ]; -const UPDATE_COMMISSION_COLLECTOR_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("new_commission_collector", true, false), - crate::SolanaCoreAccountRole::new("withdraw_authority", false, true), +const UPDATE_COMMISSION_COLLECTOR_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("new_commission_collector", true, false), + crate::DcSolanaCoreAccountRole::new("withdraw_authority", false, true), ]; -const DEPOSIT_DELEGATOR_REWARDS_ROLES: &[crate::SolanaCoreAccountRole] = &[ - crate::SolanaCoreAccountRole::new("vote_account", true, false), - crate::SolanaCoreAccountRole::new("deposit_source", true, true), +const DEPOSIT_DELEGATOR_REWARDS_ROLES: &[crate::DcSolanaCoreAccountRole] = &[ + crate::DcSolanaCoreAccountRole::new("vote_account", true, false), + crate::DcSolanaCoreAccountRole::new("deposit_source", true, true), ]; /// Returns declared Vote Program instruction coverage. -pub(crate) fn vote_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_vote_coverage() +-> std::vec::Vec { let entries = [ ("initialize_account", 0_u32), ("authorize", 1_u32), @@ -100,12 +101,12 @@ pub(crate) fn vote_coverage() -> std::vec::Vec std::vec::Vec crate::DecoderRecognition { - let bytes_result = crate::solana_core_decode_instruction_data(input); +) -> crate::DcApiDecoderRecognition { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, - std::option::Option::Some(crate::SOLANA_CORE_VOTE_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_VOTE_SURFACE_CODE.to_string()), std::option::Option::Some("malformed_vote_instruction".to_string()), std::option::Option::None, ); }, }; - let tag_result = crate::solana_core_read_u32_le(bytes.as_slice(), 0); + let tag_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 0); let tag = match tag_result { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, - std::option::Option::Some(crate::SOLANA_CORE_VOTE_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_VOTE_SURFACE_CODE.to_string()), std::option::Option::Some("malformed_vote_instruction".to_string()), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(4)), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(4)), ); }, }; let entry_code = entry_code(tag); - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( entry_code.is_some(), priority, - std::option::Option::Some(crate::SOLANA_CORE_VOTE_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_VOTE_SURFACE_CODE.to_string()), entry_code.map(str::to_string).or_else(|| { return std::option::Option::Some("unknown_vote_instruction".to_string()); }), @@ -158,25 +159,25 @@ pub(crate) fn vote_recognize( } /// Decodes one Vote Program instruction. -pub(crate) fn vote_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes_result = crate::solana_core_decode_instruction_data(input); +pub(crate) fn decoder_solana_core_vote_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes_result = crate::decoder_solana_core_decode_instruction_data(input); let bytes = match bytes_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_vote_instruction"), "vote_payload_invalid", error.to_string(), ); }, }; - let tag_result = crate::solana_core_read_u32_le(bytes.as_slice(), 0); + let tag_result = crate::decoder_solana_core_read_u32_le(bytes.as_slice(), 0); let tag = match tag_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_vote_instruction"), "vote_tag_truncated", error.to_string(), @@ -186,12 +187,12 @@ pub(crate) fn vote_decode( let entry_code = match entry_code(tag) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_unsupported_result( + return crate::decoder_solana_core_unsupported_result( "unknown_vote_instruction", "vote_tag_unknown", format!( "unknown Vote Program instruction tag {tag}; payload_sha256={}", - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ); }, @@ -202,7 +203,7 @@ pub(crate) fn vote_decode( let instruction = match instruction_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "vote_wincode_invalid", format!("cannot decode exact Vote Program {entry_code}: {error}"), @@ -213,14 +214,14 @@ pub(crate) fn vote_decode( } fn decoded_instruction( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, instruction: solana_vote_interface::instruction::VoteInstruction, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { return match instruction { solana_vote_interface::instruction::VoteInstruction::InitializeAccount(value) => build( input, "initialize_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, INITIALIZE_ACCOUNT_ROLES, 4, &[ @@ -235,7 +236,7 @@ fn decoded_instruction( ) => build( input, "authorize", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, AUTHORIZE_ROLES, 3, &[(1, kb_program_ids::SYSVAR_CLOCK_PROGRAM_ID)], @@ -247,7 +248,7 @@ fn decoded_instruction( solana_vote_interface::instruction::VoteInstruction::Vote(value) => build( input, "vote", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, VOTE_ROLES, 4, &[ @@ -259,7 +260,7 @@ fn decoded_instruction( solana_vote_interface::instruction::VoteInstruction::Withdraw(lamports) => build( input, "withdraw", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, WITHDRAW_ROLES, 3, &[], @@ -268,7 +269,7 @@ fn decoded_instruction( solana_vote_interface::instruction::VoteInstruction::UpdateValidatorIdentity => build( input, "update_validator_identity", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, UPDATE_VALIDATOR_IDENTITY_ROLES, 3, &[], @@ -277,7 +278,7 @@ fn decoded_instruction( solana_vote_interface::instruction::VoteInstruction::UpdateCommission(commission) => build( input, "update_commission", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, UPDATE_COMMISSION_ROLES, 2, &[], @@ -293,7 +294,7 @@ fn decoded_instruction( build( input, "vote_switch", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, VOTE_ROLES, 4, &[ @@ -308,7 +309,7 @@ fn decoded_instruction( ) => build( input, "authorize_checked", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, AUTHORIZE_CHECKED_ROLES, 4, &[(1, kb_program_ids::SYSVAR_CLOCK_PROGRAM_ID)], @@ -320,7 +321,7 @@ fn decoded_instruction( solana_vote_interface::instruction::VoteInstruction::UpdateVoteState(value) => build( input, "update_vote_state", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, VOTE_STATE_ROLES, 2, &[], @@ -336,7 +337,7 @@ fn decoded_instruction( build( input, "update_vote_state_switch", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, VOTE_STATE_ROLES, 2, &[], @@ -346,7 +347,7 @@ fn decoded_instruction( solana_vote_interface::instruction::VoteInstruction::AuthorizeWithSeed(value) => build( input, "authorize_with_seed", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, AUTHORIZE_WITH_SEED_ROLES, 3, &[(1, kb_program_ids::SYSVAR_CLOCK_PROGRAM_ID)], @@ -361,7 +362,7 @@ fn decoded_instruction( build( input, "authorize_checked_with_seed", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, AUTHORIZE_CHECKED_WITH_SEED_ROLES, 4, &[(1, kb_program_ids::SYSVAR_CLOCK_PROGRAM_ID)], @@ -377,7 +378,7 @@ fn decoded_instruction( build( input, "compact_update_vote_state", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, VOTE_STATE_ROLES, 2, &[], @@ -394,7 +395,7 @@ fn decoded_instruction( build( input, "compact_update_vote_state_switch", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, VOTE_STATE_ROLES, 2, &[], @@ -404,7 +405,7 @@ fn decoded_instruction( solana_vote_interface::instruction::VoteInstruction::TowerSync(value) => build( input, "tower_sync", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, VOTE_STATE_ROLES, 2, &[], @@ -420,7 +421,7 @@ fn decoded_instruction( build( input, "tower_sync_switch", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, VOTE_STATE_ROLES, 2, &[], @@ -430,7 +431,7 @@ fn decoded_instruction( solana_vote_interface::instruction::VoteInstruction::InitializeAccountV2(value) => build( input, "initialize_account_v2", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, INITIALIZE_ACCOUNT_V2_ROLES, 4, &[], @@ -440,7 +441,7 @@ fn decoded_instruction( build( input, "update_commission_collector", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, UPDATE_COMMISSION_COLLECTOR_ROLES, 3, &[], @@ -453,7 +454,7 @@ fn decoded_instruction( } => build( input, "update_commission_bps", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, UPDATE_COMMISSION_ROLES, 2, &[], @@ -467,7 +468,7 @@ fn decoded_instruction( } => build( input, "deposit_delegator_rewards", - crate::EventFamily::Reward, + crate::MdEventFamily::Reward, DEPOSIT_DELEGATOR_REWARDS_ROLES, 2, &[], @@ -477,20 +478,24 @@ fn decoded_instruction( } fn build( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, entry_code: &str, - event_family: crate::EventFamily, - roles: &[crate::SolanaCoreAccountRole], + event_family: crate::MdEventFamily, + roles: &[crate::DcSolanaCoreAccountRole], minimum_count: usize, fixed_accounts: &[(usize, &str)], parameters: serde_json::Value, -) -> crate::DecoderExecutionResult { - let accounts_result = - crate::solana_core_resolve_accounts(input, roles, minimum_count, std::option::Option::None); +) -> crate::DcApiDecoderExecutionResult { + let accounts_result = crate::decoder_solana_core_resolve_accounts( + input, + roles, + minimum_count, + std::option::Option::None, + ); let accounts = match accounts_result { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "vote_accounts_invalid", error.to_string(), @@ -499,15 +504,15 @@ fn build( }; let fixed_result = validate_fixed_accounts(&accounts, fixed_accounts); if let std::result::Result::Err(error) = fixed_result { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(entry_code), "vote_fixed_account_invalid", error.to_string(), ); } - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_VOTE_SURFACE_CODE, + crate::DC_SOLANA_CORE_VOTE_SURFACE_CODE, entry_code, event_family, false, @@ -854,7 +859,7 @@ mod tests { account_count: usize, entry_code: &str, transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let bytes_result = wincode::serialize(instruction); let bytes = match bytes_result { std::result::Result::Ok(value) => value, @@ -868,7 +873,7 @@ mod tests { account_count: usize, entry_code: &str, transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let account_keys = (0..account_count) .map(|index| { let key = account_key(entry_code, index); @@ -890,7 +895,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -943,7 +948,7 @@ mod tests { #[test] fn coverage_declares_every_official_vote_instruction() { - let coverage = crate::solana_core_vote_coverage(); + let coverage = crate::decoder_solana_core_vote_coverage(); assert_eq!(coverage.len(), 20); for tag in 0_u32..20_u32 { let expected = super::tag_hex(tag); @@ -958,8 +963,8 @@ mod tests { fn every_official_vote_variant_decodes() { for (instruction, account_count, entry_code) in fixtures() { let input = replay_input(&instruction, account_count, entry_code, false); - let result = crate::solana_core_vote_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_vote_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(entry_code) @@ -978,8 +983,8 @@ mod tests { ), ); let input = replay_input(&instruction, 3, "authorize", false); - let result = crate::solana_core_vote_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_vote_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.observations[0].payload_json["parameters"]["authorizationType"]["kind"], "voter_with_bls" @@ -998,8 +1003,8 @@ mod tests { solana_vote_interface::state::VoteInitV2::default(), ); let input = replay_input(&instruction, 4, "initialize_account_v2", false); - let result = crate::solana_core_vote_decode(&input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_vote_decode(&input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); let payload = &result.observations[0].payload_json; assert_eq!(payload["accounts"][2]["role"], "inflation_rewards_collector"); assert_eq!(payload["accounts"][3]["role"], "block_revenue_collector"); @@ -1009,20 +1014,20 @@ mod tests { #[test] fn truncated_unknown_and_trailing_payloads_are_distinguished() { - let truncated = crate::solana_core_vote_decode(&replay_input_bytes( + let truncated = crate::decoder_solana_core_vote_decode(&replay_input_bytes( &[0, 0, 0], 4, "initialize_account", false, )); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let unknown = crate::solana_core_vote_decode(&replay_input_bytes( + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let unknown = crate::decoder_solana_core_vote_decode(&replay_input_bytes( &[99, 0, 0, 0], 1, "unknown_vote_instruction", false, )); - assert_eq!(unknown.status, crate::DecoderOutcomeStatus::Unsupported); + assert_eq!(unknown.status, crate::DcApiDecoderOutcomeStatus::Unsupported); let fixture = solana_vote_interface::instruction::VoteInstruction::Withdraw(1); let bytes_result = wincode::serialize(&fixture); let mut bytes = match bytes_result { @@ -1030,13 +1035,13 @@ mod tests { std::result::Result::Err(error) => panic!("Vote fixture serialization failed: {error}"), }; bytes.push(0); - let trailing = crate::solana_core_vote_decode(&replay_input_bytes( + let trailing = crate::decoder_solana_core_vote_decode(&replay_input_bytes( bytes.as_slice(), 3, "withdraw", false, )); - assert_eq!(trailing.status, crate::DecoderOutcomeStatus::Failed); + assert_eq!(trailing.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] @@ -1044,24 +1049,25 @@ mod tests { let instruction = solana_vote_interface::instruction::VoteInstruction::Vote( solana_vote_interface::state::Vote::default(), ); - let missing = crate::solana_core_vote_decode(&replay_input(&instruction, 3, "vote", false)); - assert_eq!(missing.status, crate::DecoderOutcomeStatus::Failed); + let missing = + crate::decoder_solana_core_vote_decode(&replay_input(&instruction, 3, "vote", false)); + assert_eq!(missing.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut wrong = replay_input(&instruction, 4, "vote", false); wrong.instruction_accounts_json[1]["accountKey"] = serde_json::Value::String("WrongSysvar1111111111111111111111111111".to_string()); wrong.account_keys_json[1]["accountKey"] = serde_json::Value::String("WrongSysvar1111111111111111111111111111".to_string()); - let wrong_result = crate::solana_core_vote_decode(&wrong); - assert_eq!(wrong_result.status, crate::DecoderOutcomeStatus::Failed); + let wrong_result = crate::decoder_solana_core_vote_decode(&wrong); + assert_eq!(wrong_result.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn failed_vote_instruction_is_decoded_as_uncommitted_intent() { let instruction = solana_vote_interface::instruction::VoteInstruction::Withdraw(1); let input = replay_input(&instruction, 3, "withdraw", true); - let first = crate::solana_core_vote_decode(&input); - let second = crate::solana_core_vote_decode(&input); - assert_eq!(first.status, crate::DecoderOutcomeStatus::Decoded); + let first = crate::decoder_solana_core_vote_decode(&input); + let second = crate::decoder_solana_core_vote_decode(&input); + assert_eq!(first.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!first.observations[0].observation_committed); assert_eq!(first.observations[0].payload_json, second.observations[0].payload_json); } diff --git a/kb-lib/src/decoder/solana/core/zk_elgamal.rs b/kb-lib/src/decoder/solana/core/zk_elgamal.rs index e012db7..5d9c473 100644 --- a/kb-lib/src/decoder/solana/core/zk_elgamal.rs +++ b/kb-lib/src/decoder/solana/core/zk_elgamal.rs @@ -15,16 +15,17 @@ struct ProofDescriptor { } /// Returns declared ZK ElGamal Proof instruction coverage. -pub(crate) fn zk_elgamal_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_zk_elgamal_coverage() +-> std::vec::Vec { return instruction_entries() .iter() .map(|(tag, entry_code)| { - return crate::DecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::ZK_ELGAMAL_PROOF_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: (*entry_code).to_string(), discriminator_hex: std::option::Option::Some(format!("{tag:02x}")), historical: false, @@ -34,18 +35,18 @@ pub(crate) fn zk_elgamal_coverage() -> std::vec::Vec crate::DecoderRecognition { - let bytes = match crate::solana_core_decode_instruction_data(input) { +) -> crate::DcApiDecoderRecognition { + let bytes = match crate::decoder_solana_core_decode_instruction_data(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, std::option::Option::Some( - crate::SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string(), ), std::option::Option::Some("malformed_zk_elgamal_proof_instruction".to_string()), std::option::Option::None, @@ -63,14 +64,17 @@ pub(crate) fn zk_elgamal_recognize( } else { "unknown_zk_elgamal_proof_instruction" }; - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, std::option::Option::Some( - crate::SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string(), ), std::option::Option::Some(entry_code.to_string()), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(1)), + crate::decoder_solana_core_hexadecimal_prefix( + bytes.as_slice(), + bytes.len().min(1), + ), ); }, }; @@ -83,16 +87,16 @@ pub(crate) fn zk_elgamal_recognize( let descriptor = match descriptor { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, std::option::Option::Some( - crate::SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string(), ), std::option::Option::Some( "unknown_zk_elgamal_proof_instruction".to_string(), ), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), 1), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), 1), ); }, }; @@ -103,23 +107,23 @@ pub(crate) fn zk_elgamal_recognize( ) }, }; - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( exact, priority, - std::option::Option::Some(crate::SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE.to_string()), std::option::Option::Some(entry_code.to_string()), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), 1), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), 1), ); } /// Decodes one native ZK ElGamal Proof instruction without recomputing the proof. -pub(crate) fn zk_elgamal_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes = match crate::solana_core_decode_instruction_data(input) { +pub(crate) fn decoder_solana_core_zk_elgamal_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes = match crate::decoder_solana_core_decode_instruction_data(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_zk_elgamal_proof_instruction"), "zk_elgamal_payload_invalid", error.to_string(), @@ -133,7 +137,7 @@ pub(crate) fn zk_elgamal_decode( std::option::Option::Some(value) => value, std::option::Option::None => { if bytes.is_empty() { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_zk_elgamal_proof_instruction"), "zk_elgamal_payload_empty", "ZK ElGamal Proof instruction payload is empty", @@ -142,19 +146,19 @@ pub(crate) fn zk_elgamal_decode( let tag = match bytes.first() { std::option::Option::Some(value) => *value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_zk_elgamal_proof_instruction"), "zk_elgamal_payload_empty", "ZK ElGamal Proof instruction payload is empty", ); }, }; - return crate::solana_core_unsupported_result( + return crate::decoder_solana_core_unsupported_result( "unknown_zk_elgamal_proof_instruction", "zk_elgamal_tag_unknown", format!( "unknown ZK ElGamal Proof instruction tag {tag}; payload_sha256={}", - crate::solana_core_payload_hash(input) + crate::decoder_solana_core_payload_hash(input) ), ); }, @@ -167,7 +171,7 @@ pub(crate) fn zk_elgamal_decode( let descriptor = match proof_descriptor(instruction) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_unsupported_result( + return crate::decoder_solana_core_unsupported_result( "unknown_zk_elgamal_proof_instruction", "zk_elgamal_instruction_unmapped", "official ZK ElGamal Proof instruction has no local descriptor", @@ -178,15 +182,15 @@ pub(crate) fn zk_elgamal_decode( } fn decode_close_context_state( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let roles = [ - crate::SolanaCoreAccountRole::new("proof_context_state", true, false), - crate::SolanaCoreAccountRole::new("lamport_destination", true, false), - crate::SolanaCoreAccountRole::new("context_state_authority", false, true), + crate::DcSolanaCoreAccountRole::new("proof_context_state", true, false), + crate::DcSolanaCoreAccountRole::new("lamport_destination", true, false), + crate::DcSolanaCoreAccountRole::new("context_state_authority", false, true), ]; - let accounts = match crate::solana_core_resolve_accounts( + let accounts = match crate::decoder_solana_core_resolve_accounts( input, roles.as_slice(), 3, @@ -194,7 +198,7 @@ fn decode_close_context_state( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("close_context_state"), "zk_elgamal_close_accounts_invalid", error.to_string(), @@ -204,7 +208,7 @@ fn decode_close_context_state( let account_array = match accounts.as_array() { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("close_context_state"), "zk_elgamal_close_accounts_not_array", "resolved ZK ElGamal close accounts are not an array", @@ -220,7 +224,7 @@ fn decode_close_context_state( .and_then(|value| return value.get("accountKey")) .and_then(serde_json::Value::as_str); if context_key.is_some() && context_key == destination_key { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("close_context_state"), "zk_elgamal_close_destination_matches_context", "ZK ElGamal proof context account and lamport destination must differ", @@ -229,26 +233,26 @@ fn decode_close_context_state( let trailing = match bytes.get(1..) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("close_context_state"), "zk_elgamal_close_payload_missing_tag", "ZK ElGamal close-context instruction has no discriminator byte", ); }, }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE, + crate::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE, "close_context_state", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, accounts, serde_json::json!({ "instructionMode": "close_context_state", "runtimeAcceptsTrailingBytes": true, "trailingByteLength": trailing.len(), - "trailingSha256": crate::solana_core_hash_bytes(trailing), - "trailingPrefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "trailingSha256": crate::decoder_solana_core_hash_bytes(trailing), + "trailingPrefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( trailing, PROOF_COMPONENT_PREFIX_BYTES, ), @@ -261,14 +265,14 @@ fn decode_close_context_state( } fn decode_verify_proof( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], descriptor: ProofDescriptor, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let external_proof = bytes.len() == PROOF_ACCOUNT_INSTRUCTION_BYTES; let expected_inline_size = descriptor.proof_data_size.saturating_add(1); if !external_proof && bytes.len() != expected_inline_size { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_elgamal_proof_data_size_invalid", format!( @@ -283,7 +287,7 @@ fn decode_verify_proof( let account_count = match input.instruction_accounts_json.as_array() { std::option::Option::Some(value) => value.len(), std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_elgamal_accounts_not_array", "ZK ElGamal Proof instruction accounts are not an array", @@ -294,14 +298,14 @@ fn decode_verify_proof( if external_proof { account_count >= 3 } else { account_count >= 2 }; let mut roles = std::vec::Vec::new(); if external_proof { - roles.push(crate::SolanaCoreAccountRole::new("proof_data_account", false, false)); + roles.push(crate::DcSolanaCoreAccountRole::new("proof_data_account", false, false)); } if context_state_requested { - roles.push(crate::SolanaCoreAccountRole::new("proof_context_state", true, false)); - roles.push(crate::SolanaCoreAccountRole::new("context_state_authority", false, false)); + roles.push(crate::DcSolanaCoreAccountRole::new("proof_context_state", true, false)); + roles.push(crate::DcSolanaCoreAccountRole::new("context_state_authority", false, false)); } let minimum_accounts = if external_proof { 1 } else { 0 }; - let accounts = match crate::solana_core_resolve_accounts( + let accounts = match crate::decoder_solana_core_resolve_accounts( input, roles.as_slice(), minimum_accounts, @@ -309,7 +313,7 @@ fn decode_verify_proof( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_elgamal_accounts_invalid", error.to_string(), @@ -317,10 +321,10 @@ fn decode_verify_proof( }, }; let proof_parameters = if external_proof { - let offset = match crate::solana_core_read_u32_le(bytes, 1) { + let offset = match crate::decoder_solana_core_read_u32_le(bytes, 1) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_elgamal_proof_account_offset_invalid", error.to_string(), @@ -342,7 +346,7 @@ fn decode_verify_proof( let proof_data = match bytes.get(1..) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_elgamal_inline_proof_missing", "inline ZK ElGamal proof data is missing", @@ -352,7 +356,7 @@ fn decode_verify_proof( let context_data = match proof_data.get(..descriptor.context_data_size) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_elgamal_inline_context_truncated", "inline ZK ElGamal proof context data is truncated", @@ -362,7 +366,7 @@ fn decode_verify_proof( let proof_body = match proof_data.get(descriptor.context_data_size..) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_elgamal_inline_proof_body_truncated", "inline ZK ElGamal proof body is truncated", @@ -376,28 +380,28 @@ fn decode_verify_proof( "proofDataByteLength": proof_data.len(), "contextDataByteLength": context_data.len(), "proofBodyByteLength": proof_body.len(), - "proofDataSha256": crate::solana_core_hash_bytes(proof_data), - "proofDataPrefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "proofDataSha256": crate::decoder_solana_core_hash_bytes(proof_data), + "proofDataPrefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( proof_data, PROOF_COMPONENT_PREFIX_BYTES, ), - "contextDataSha256": crate::solana_core_hash_bytes(context_data), - "contextDataPrefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "contextDataSha256": crate::decoder_solana_core_hash_bytes(context_data), + "contextDataPrefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( context_data, PROOF_COMPONENT_PREFIX_BYTES, ), - "proofBodySha256": crate::solana_core_hash_bytes(proof_body), - "proofBodyPrefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "proofBodySha256": crate::decoder_solana_core_hash_bytes(proof_body), + "proofBodyPrefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( proof_body, PROOF_COMPONENT_PREFIX_BYTES, ), }) }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE, + crate::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE, descriptor.entry_code, - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, false, accounts, serde_json::json!({ @@ -491,7 +495,7 @@ fn proof_descriptor( return std::option::Option::Some(descriptor); } -fn runtime_verification(input: &crate::CoreInstructionReplayInput) -> &'static str { +fn runtime_verification(input: &crate::MdCoreInstructionReplayInput) -> &'static str { if input.transaction_failed { return "not_asserted_transaction_failed"; } @@ -524,7 +528,7 @@ mod tests { bytes: &[u8], account_count: usize, transaction_failed: bool, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let account_keys = (0..account_count) .map(|index| { return serde_json::json!({ @@ -546,7 +550,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "signature:0", "signature", 42, @@ -590,7 +594,7 @@ mod tests { #[test] fn coverage_declares_all_thirteen_official_instructions() { - let coverage = crate::solana_core_zk_elgamal_coverage(); + let coverage = crate::decoder_solana_core_zk_elgamal_coverage(); assert_eq!(coverage.len(), 13); for (tag, entry_code) in super::instruction_entries() { let expected_discriminator = format!("{tag:02x}"); @@ -605,8 +609,10 @@ mod tests { #[test] fn official_discriminants_map_to_stable_entry_codes() { for (tag, entry_code) in super::instruction_entries() { - let recognition = - crate::solana_core_zk_elgamal_recognize(&replay_input(&[*tag], 3, false), 100); + let recognition = crate::decoder_solana_core_zk_elgamal_recognize( + &replay_input(&[*tag], 3, false), + 100, + ); assert!(recognition.compatible); assert_eq!(recognition.entry_code.as_deref(), std::option::Option::Some(*entry_code)); } @@ -615,8 +621,8 @@ mod tests { #[test] fn proof_account_mode_decodes_offset_and_context_request() { let bytes = [1_u8, 44, 0, 0, 0]; - let result = crate::solana_core_zk_elgamal_decode(&replay_input(&bytes, 3, false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_zk_elgamal_decode(&replay_input(&bytes, 3, false)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); let parameters = &result.observations[0].payload_json["parameters"]; assert_eq!(parameters["proof"]["proofDataSource"], "account"); assert_eq!(parameters["proof"]["proofAccountOffset"], 44); @@ -628,8 +634,8 @@ mod tests { #[test] fn proof_account_mode_requires_the_proof_account() { let result = - crate::solana_core_zk_elgamal_decode(&replay_input(&[1, 0, 0, 0, 0], 0, false)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + crate::decoder_solana_core_zk_elgamal_decode(&replay_input(&[1, 0, 0, 0, 0], 0, false)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] @@ -650,9 +656,12 @@ mod tests { ]; for (tag, instruction) in variants { let bytes = inline_fixture(tag, instruction); - let result = - crate::solana_core_zk_elgamal_decode(&replay_input(bytes.as_slice(), 0, true)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_zk_elgamal_decode(&replay_input( + bytes.as_slice(), + 0, + true, + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.observations.len(), 1); assert!(!result.observations[0].observation_committed); assert_eq!( @@ -664,18 +673,20 @@ mod tests { #[test] fn invalid_inline_sizes_unknown_tags_and_empty_payload_fail_safely() { - let truncated = crate::solana_core_zk_elgamal_decode(&replay_input(&[1, 2, 3], 0, false)); - assert_eq!(truncated.status, crate::DecoderOutcomeStatus::Failed); - let unknown = crate::solana_core_zk_elgamal_decode(&replay_input(&[99], 0, false)); - assert_eq!(unknown.status, crate::DecoderOutcomeStatus::Unsupported); - let empty = crate::solana_core_zk_elgamal_decode(&replay_input(&[], 0, false)); - assert_eq!(empty.status, crate::DecoderOutcomeStatus::Failed); + let truncated = + crate::decoder_solana_core_zk_elgamal_decode(&replay_input(&[1, 2, 3], 0, false)); + assert_eq!(truncated.status, crate::DcApiDecoderOutcomeStatus::Failed); + let unknown = crate::decoder_solana_core_zk_elgamal_decode(&replay_input(&[99], 0, false)); + assert_eq!(unknown.status, crate::DcApiDecoderOutcomeStatus::Unsupported); + let empty = crate::decoder_solana_core_zk_elgamal_decode(&replay_input(&[], 0, false)); + assert_eq!(empty.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn close_context_state_accepts_runtime_trailing_bytes_and_rejects_same_destination() { - let decoded = crate::solana_core_zk_elgamal_decode(&replay_input(&[0, 7, 8], 3, false)); - assert_eq!(decoded.status, crate::DecoderOutcomeStatus::Decoded); + let decoded = + crate::decoder_solana_core_zk_elgamal_decode(&replay_input(&[0, 7, 8], 3, false)); + assert_eq!(decoded.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(decoded.observations[0].payload_json["parameters"]["trailingByteLength"], 2); let mut same = replay_input(&[0], 3, false); let accounts = match same.instruction_accounts_json.as_array_mut() { @@ -688,14 +699,15 @@ mod tests { std::option::Option::None => panic!("account keys missing"), }; keys[1]["accountKey"] = keys[0]["accountKey"].clone(); - let failed = crate::solana_core_zk_elgamal_decode(&same); - assert_eq!(failed.status, crate::DecoderOutcomeStatus::Failed); + let failed = crate::decoder_solana_core_zk_elgamal_decode(&same); + assert_eq!(failed.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] fn failed_transaction_never_claims_runtime_verification_or_commit() { - let result = crate::solana_core_zk_elgamal_decode(&replay_input(&[4, 0, 0, 0, 0], 1, true)); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = + crate::decoder_solana_core_zk_elgamal_decode(&replay_input(&[4, 0, 0, 0, 0], 1, true)); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); assert_eq!( result.observations[0].payload_json["parameters"]["runtimeVerification"], @@ -706,8 +718,8 @@ mod tests { #[test] fn serialization_is_deterministic() { let input = replay_input(&[1, 0, 0, 0, 0], 1, false); - let first = crate::solana_core_zk_elgamal_decode(&input); - let second = crate::solana_core_zk_elgamal_decode(&input); + let first = crate::decoder_solana_core_zk_elgamal_decode(&input); + let second = crate::decoder_solana_core_zk_elgamal_decode(&input); let first_json = match serde_json::to_string(&first.observations[0].payload_json) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("first serialization failed: {error}"), diff --git a/kb-lib/src/decoder/solana/core/zk_token_proof.rs b/kb-lib/src/decoder/solana/core/zk_token_proof.rs index cdaef3f..7ef76e2 100644 --- a/kb-lib/src/decoder/solana/core/zk_token_proof.rs +++ b/kb-lib/src/decoder/solana/core/zk_token_proof.rs @@ -67,28 +67,29 @@ struct ProofDescriptor { } /// Returns declared historical and current ZK Token Proof coverage. -pub(crate) fn zk_token_proof_coverage() -> std::vec::Vec { +pub(crate) fn decoder_solana_core_zk_token_proof_coverage() +-> std::vec::Vec { let mut coverage = instruction_entries() .iter() .map(|(tag, entry_code)| { - return crate::DecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::ZK_TOKEN_PROOF_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: (*entry_code).to_string(), discriminator_hex: std::option::Option::Some(format!("{tag:02x}")), historical: true, }; }) .collect::>(); - coverage.push(crate::DecoderCoverageDeclaration { + coverage.push(crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::ZK_TOKEN_PROOF_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: "current_runtime_noop_invocation".to_string(), discriminator_hex: std::option::Option::None, historical: false, @@ -97,18 +98,18 @@ pub(crate) fn zk_token_proof_coverage() -> std::vec::Vec crate::DecoderRecognition { - let bytes = match crate::solana_core_decode_instruction_data(input) { +) -> crate::DcApiDecoderRecognition { + let bytes = match crate::decoder_solana_core_decode_instruction_data(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(_error) => { - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( false, priority, std::option::Option::Some( - crate::SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE.to_string(), + crate::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE.to_string(), ), std::option::Option::Some("malformed_zk_token_proof_instruction".to_string()), std::option::Option::None, @@ -138,23 +139,23 @@ pub(crate) fn zk_token_proof_recognize( }, std::option::Option::None => "current_runtime_noop_invocation", }; - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( true, priority, - std::option::Option::Some(crate::SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE.to_string()), std::option::Option::Some(entry_code.to_string()), - crate::solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(1)), + crate::decoder_solana_core_hexadecimal_prefix(bytes.as_slice(), bytes.len().min(1)), ); } /// Decodes one historical ZK Token Proof layout without recomputing any proof. -pub(crate) fn zk_token_proof_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes = match crate::solana_core_decode_instruction_data(input) { +pub(crate) fn decoder_solana_core_zk_token_proof_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes = match crate::decoder_solana_core_decode_instruction_data(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("malformed_zk_token_proof_instruction"), "zk_token_proof_payload_invalid", error.to_string(), @@ -184,7 +185,7 @@ pub(crate) fn zk_token_proof_decode( let inline_size = match descriptor.proof_data_size.checked_add(1) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_token_proof_inline_size_overflow", "historical ZK Token Proof inline size overflowed usize", @@ -198,26 +199,27 @@ pub(crate) fn zk_token_proof_decode( } fn decode_current_noop( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], historical_parse_status: &str, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let accounts = - match crate::solana_core_resolve_accounts(input, &[], 0, std::option::Option::None) { + match crate::decoder_solana_core_resolve_accounts(input, &[], 0, std::option::Option::None) + { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("current_runtime_noop_invocation"), "zk_token_proof_accounts_invalid", error.to_string(), ); }, }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE, + crate::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE, "current_runtime_noop_invocation", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, false, accounts, serde_json::json!({ @@ -225,8 +227,8 @@ fn decode_current_noop( "historicalParseStatus": historical_parse_status, "historicalDiscriminator": bytes.first().copied(), "payloadByteLength": bytes.len(), - "payloadSha256": crate::solana_core_hash_bytes(bytes), - "payloadPrefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "payloadSha256": crate::decoder_solana_core_hash_bytes(bytes), + "payloadPrefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( bytes, PROOF_COMPONENT_PREFIX_BYTES, ), @@ -244,15 +246,15 @@ fn decode_current_noop( } fn decode_close_context_state( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let roles = [ - crate::SolanaCoreAccountRole::new("proof_context_state", true, false), - crate::SolanaCoreAccountRole::new("lamport_destination", true, false), - crate::SolanaCoreAccountRole::new("context_state_authority", false, true), + crate::DcSolanaCoreAccountRole::new("proof_context_state", true, false), + crate::DcSolanaCoreAccountRole::new("lamport_destination", true, false), + crate::DcSolanaCoreAccountRole::new("context_state_authority", false, true), ]; - let accounts = match crate::solana_core_resolve_accounts( + let accounts = match crate::decoder_solana_core_resolve_accounts( input, roles.as_slice(), 0, @@ -260,7 +262,7 @@ fn decode_close_context_state( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("close_context_state"), "zk_token_proof_close_accounts_invalid", error.to_string(), @@ -270,7 +272,7 @@ fn decode_close_context_state( let account_array = match accounts.as_array() { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some("close_context_state"), "zk_token_proof_close_accounts_not_array", "resolved ZK Token Proof close accounts are not an array", @@ -293,11 +295,11 @@ fn decode_close_context_state( std::option::Option::Some(value) => value, std::option::Option::None => &[], }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE, + crate::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE, "close_context_state", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, true, accounts, serde_json::json!({ @@ -305,8 +307,8 @@ fn decode_close_context_state( "historicalAccountLayoutValid": historical_account_layout_valid, "historicalRuntimeAcceptsTrailingBytes": true, "trailingByteLength": trailing.len(), - "trailingSha256": crate::solana_core_hash_bytes(trailing), - "trailingPrefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "trailingSha256": crate::decoder_solana_core_hash_bytes(trailing), + "trailingPrefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( trailing, PROOF_COMPONENT_PREFIX_BYTES, ), @@ -326,15 +328,15 @@ fn decode_close_context_state( } fn decode_verify_proof( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], descriptor: ProofDescriptor, -) -> crate::DecoderExecutionResult { +) -> crate::DcApiDecoderExecutionResult { let external_proof = bytes.len() == PROOF_ACCOUNT_INSTRUCTION_BYTES; let account_count = match input.instruction_accounts_json.as_array() { std::option::Option::Some(value) => value.len(), std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_token_proof_accounts_not_array", "ZK Token Proof instruction accounts are not an array", @@ -346,13 +348,13 @@ fn decode_verify_proof( if external_proof { account_count >= 3 } else { account_count >= 2 }; let mut roles = std::vec::Vec::new(); if external_proof { - roles.push(crate::SolanaCoreAccountRole::new("proof_data_account", false, false)); + roles.push(crate::DcSolanaCoreAccountRole::new("proof_data_account", false, false)); } if context_state_requested { - roles.push(crate::SolanaCoreAccountRole::new("proof_context_state", true, false)); - roles.push(crate::SolanaCoreAccountRole::new("context_state_authority", false, false)); + roles.push(crate::DcSolanaCoreAccountRole::new("proof_context_state", true, false)); + roles.push(crate::DcSolanaCoreAccountRole::new("context_state_authority", false, false)); } - let accounts = match crate::solana_core_resolve_accounts( + let accounts = match crate::decoder_solana_core_resolve_accounts( input, roles.as_slice(), 0, @@ -360,7 +362,7 @@ fn decode_verify_proof( ) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_token_proof_accounts_invalid", error.to_string(), @@ -371,7 +373,7 @@ fn decode_verify_proof( { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_token_proof_official_size_inconsistent", "historical ZK Token Proof context size exceeds proof data size", @@ -379,10 +381,10 @@ fn decode_verify_proof( }, }; let proof_parameters = if external_proof { - let offset = match crate::solana_core_read_u32_le(bytes, 1) { + let offset = match crate::decoder_solana_core_read_u32_le(bytes, 1) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_token_proof_account_offset_invalid", error.to_string(), @@ -408,7 +410,7 @@ fn decode_verify_proof( let context_data = match proof_data.get(..descriptor.context_data_size) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_token_proof_inline_context_truncated", "inline historical ZK Token Proof context data is truncated", @@ -418,7 +420,7 @@ fn decode_verify_proof( let proof_body = match proof_data.get(descriptor.context_data_size..) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::solana_core_failed_result( + return crate::decoder_solana_core_failed_result( std::option::Option::Some(descriptor.entry_code), "zk_token_proof_inline_body_truncated", "inline historical ZK Token Proof body is truncated", @@ -432,18 +434,18 @@ fn decode_verify_proof( "proofDataByteLength": proof_data.len(), "contextDataByteLength": context_data.len(), "proofBodyByteLength": proof_body.len(), - "proofDataSha256": crate::solana_core_hash_bytes(proof_data), - "proofDataPrefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "proofDataSha256": crate::decoder_solana_core_hash_bytes(proof_data), + "proofDataPrefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( proof_data, PROOF_COMPONENT_PREFIX_BYTES, ), - "contextDataSha256": crate::solana_core_hash_bytes(context_data), - "contextDataPrefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "contextDataSha256": crate::decoder_solana_core_hash_bytes(context_data), + "contextDataPrefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( context_data, PROOF_COMPONENT_PREFIX_BYTES, ), - "proofBodySha256": crate::solana_core_hash_bytes(proof_body), - "proofBodyPrefixHex": crate::solana_core_bounded_hexadecimal_prefix( + "proofBodySha256": crate::decoder_solana_core_hash_bytes(proof_body), + "proofBodyPrefixHex": crate::decoder_solana_core_bounded_hexadecimal_prefix( proof_body, PROOF_COMPONENT_PREFIX_BYTES, ), @@ -454,11 +456,11 @@ fn decode_verify_proof( } else { descriptor.historical_inline_availability }; - return crate::solana_core_decoded_result( + return crate::decoder_solana_core_decoded_result( input, - crate::SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE, + crate::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE, descriptor.entry_code, - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, true, accounts, serde_json::json!({ @@ -502,14 +504,14 @@ fn historical_account_layout(external_proof: bool, account_count: usize) -> &'st }; } -fn runtime_execution_outcome(input: &crate::CoreInstructionReplayInput) -> &'static str { +fn runtime_execution_outcome(input: &crate::MdCoreInstructionReplayInput) -> &'static str { if input.transaction_failed { return "not_asserted_transaction_failed"; } return "accepted_in_successful_transaction"; } -fn verification_claim(input: &crate::CoreInstructionReplayInput) -> &'static str { +fn verification_claim(input: &crate::MdCoreInstructionReplayInput) -> &'static str { if input.transaction_failed { return "not_asserted_transaction_failed"; } @@ -658,7 +660,7 @@ mod tests { account_count: usize, transaction_failed: bool, instruction_path: &str, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { let account_keys = (0..account_count) .map(|index| { return serde_json::json!({ @@ -680,7 +682,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( format!("signature:{instruction_path}"), "signature", 42, @@ -728,7 +730,7 @@ mod tests { #[test] fn coverage_declares_seventeen_historical_entries_and_current_noop_fallback() { - let coverage = crate::solana_core_zk_token_proof_coverage(); + let coverage = crate::decoder_solana_core_zk_token_proof_coverage(); assert_eq!(coverage.len(), 18); assert_eq!(coverage.iter().filter(|entry| return entry.historical).count(), 17); assert!(coverage.iter().any(|entry| { @@ -742,7 +744,7 @@ mod tests { fn official_discriminants_map_to_stable_entry_codes() { for (tag, entry_code) in super::instruction_entries() { let bytes = if *tag == 0 { vec![*tag] } else { vec![*tag, 0, 0, 0, 0] }; - let recognition = crate::solana_core_zk_token_proof_recognize( + let recognition = crate::decoder_solana_core_zk_token_proof_recognize( &replay_input(bytes.as_slice(), 3, false, "0"), 100, ); @@ -795,13 +797,13 @@ mod tests { assert_eq!(descriptor.proof_data_size, proof_data_size); assert_eq!(descriptor.context_data_size, context_data_size); let bytes = inline_fixture(instruction); - let result = crate::solana_core_zk_token_proof_decode(&replay_input( + let result = crate::decoder_solana_core_zk_token_proof_decode(&replay_input( bytes.as_slice(), 0, true, "0", )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.observations.len(), 1); assert!(!result.observations[0].observation_committed); assert_eq!( @@ -813,13 +815,13 @@ mod tests { #[test] fn proof_account_mode_is_structured_and_historical_feature_gate_is_explicit() { - let result = crate::solana_core_zk_token_proof_decode(&replay_input( + let result = crate::decoder_solana_core_zk_token_proof_decode(&replay_input( &[1, 44, 0, 0, 0], 3, false, "0", )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); let parameters = &result.observations[0].payload_json["parameters"]; assert_eq!(parameters["proof"]["proofDataSource"], "account"); assert_eq!(parameters["proof"]["proofAccountOffset"], 44); @@ -839,13 +841,13 @@ mod tests { ]; for instruction in variants { let bytes = inline_fixture(instruction); - let result = crate::solana_core_zk_token_proof_decode(&replay_input( + let result = crate::decoder_solana_core_zk_token_proof_decode(&replay_input( bytes.as_slice(), 0, false, "0", )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.observations[0].payload_json["parameters"]["historicalVariantAvailability"], "gated_by_enable_zk_transfer_with_fee" @@ -857,9 +859,10 @@ mod tests { fn malformed_historical_shapes_decode_as_current_noop_instead_of_false_failure() { let fixtures: &[&[u8]] = &[&[], &[99], &[1, 2, 3]]; for bytes in fixtures { - let result = - crate::solana_core_zk_token_proof_decode(&replay_input(bytes, 1, false, "0")); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_zk_token_proof_decode(&replay_input( + bytes, 1, false, "0", + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("current_runtime_noop_invocation") @@ -878,23 +881,23 @@ mod tests { #[test] fn historical_account_arity_is_reported_without_overriding_current_noop_acceptance() { let inline = inline_fixture(super::HistoricalProofInstruction::VerifyZeroBalance); - let inline_result = crate::solana_core_zk_token_proof_decode(&replay_input( + let inline_result = crate::decoder_solana_core_zk_token_proof_decode(&replay_input( inline.as_slice(), 1, false, "0", )); - assert_eq!(inline_result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(inline_result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(inline_result.observations[0].payload_json["parameters"]["historicalAccountLayoutValid"] .as_bool() .is_some_and(|value| return !value)); - let account_result = crate::solana_core_zk_token_proof_decode(&replay_input( + let account_result = crate::decoder_solana_core_zk_token_proof_decode(&replay_input( &[1, 0, 0, 0, 0], 2, false, "0", )); - assert_eq!(account_result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(account_result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(account_result.observations[0].payload_json["parameters"]["historicalAccountLayoutValid"] .as_bool() .is_some_and(|value| return !value)); @@ -902,9 +905,13 @@ mod tests { #[test] fn close_context_state_preserves_historical_intent_without_claiming_mutation() { - let result = - crate::solana_core_zk_token_proof_decode(&replay_input(&[0, 7, 8], 3, false, "0")); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_zk_token_proof_decode(&replay_input( + &[0, 7, 8], + 3, + false, + "0", + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); let parameters = &result.observations[0].payload_json["parameters"]; assert!( parameters["historicalAccountLayoutValid"] @@ -924,13 +931,13 @@ mod tests { #[test] fn inner_invocation_never_claims_historical_verification() { let bytes = inline_fixture(super::HistoricalProofInstruction::VerifyPubkeyValidity); - let result = crate::solana_core_zk_token_proof_decode(&replay_input( + let result = crate::decoder_solana_core_zk_token_proof_decode(&replay_input( bytes.as_slice(), 0, false, "0/1", )); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!( result.observations[0].payload_json["parameters"]["historicalInnerInstructionSupport"] .as_bool() @@ -945,9 +952,13 @@ mod tests { #[test] fn failed_transaction_is_non_committed_and_never_claims_verification() { let bytes = inline_fixture(super::HistoricalProofInstruction::VerifyZeroBalance); - let result = - crate::solana_core_zk_token_proof_decode(&replay_input(bytes.as_slice(), 0, true, "0")); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::decoder_solana_core_zk_token_proof_decode(&replay_input( + bytes.as_slice(), + 0, + true, + "0", + )); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); assert_eq!( result.observations[0].payload_json["parameters"]["cryptographicVerificationClaim"], @@ -958,8 +969,8 @@ mod tests { #[test] fn serialization_is_deterministic() { let input = replay_input(&[1, 0, 0, 0, 0], 1, false, "0"); - let first = crate::solana_core_zk_token_proof_decode(&input); - let second = crate::solana_core_zk_token_proof_decode(&input); + let first = crate::decoder_solana_core_zk_token_proof_decode(&input); + let second = crate::decoder_solana_core_zk_token_proof_decode(&input); let first_json = match serde_json::to_string(&first.observations[0].payload_json) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("first serialization failed: {error}"), diff --git a/kb-lib/src/decoder/spl.rs b/kb-lib/src/decoder/spl.rs index aed2830..b91d2a1 100644 --- a/kb-lib/src/decoder/spl.rs +++ b/kb-lib/src/decoder/spl.rs @@ -3,142 +3,142 @@ //! `spl` decoder family. -pub mod account_compression; -pub mod associated_token_account; -pub mod elgamal_registry; -pub mod memo; -pub mod noop; -pub mod single_pool; -pub mod stake_pool; +mod account_compression; +mod associated_token_account; +mod elgamal_registry; +mod memo; +mod noop; +mod single_pool; +mod stake_pool; mod token; -pub mod token_2022; +mod token2022; /// Current stable Associated Token Account decoded event contract version. -pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_EVENT_VERSION; +pub(crate) use self::associated_token_account::DC_SPL_ATA_EVENT_VERSION; /// Exact Associated Token Account instructions published by the official interface. -pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_INSTRUCTION_ENTRIES; +pub(crate) use self::associated_token_account::DC_SPL_ATA_INSTRUCTION_ENTRIES; /// Maximum retained account-key text length for the Associated Token Account decoder. -pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNT_KEY_BYTES; +pub(crate) use self::associated_token_account::DC_SPL_ATA_MAX_ACCOUNT_KEY_BYTES; /// Maximum retained instruction account count for the Associated Token Account decoder. -pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNTS; +pub(crate) use self::associated_token_account::DC_SPL_ATA_MAX_ACCOUNTS; /// Maximum retained semantic diagnostic count for the Associated Token Account decoder. -pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_DIAGNOSTICS; +pub(crate) use self::associated_token_account::DC_SPL_ATA_MAX_DIAGNOSTICS; /// Maximum retained Associated Token Account instruction payload size. -pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_INSTRUCTION_BYTES; +pub(crate) use self::associated_token_account::DC_SPL_ATA_MAX_INSTRUCTION_BYTES; /// Maximum retained transaction account-key count for the Associated Token Account decoder. -pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_TRANSACTION_KEYS; +pub(crate) use self::associated_token_account::DC_SPL_ATA_MAX_TRANSACTION_KEYS; /// Stable protocol and surface code for the Associated Token Account program. -pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE; +pub(crate) use self::associated_token_account::DC_SPL_ATA_SURFACE_CODE; /// Canonical tracing target for the Associated Token Account decoder. -pub(crate) use self::associated_token_account::SPL_ASSOCIATED_TOKEN_ACCOUNT_TRACING_TARGET; +pub(crate) use self::associated_token_account::DC_SPL_ATA_TRACING_TARGET; /// Decodes one bounded Associated Token Account instruction. -pub(crate) use self::associated_token_account::spl_associated_token_account_decode; +pub(crate) use self::associated_token_account::decoder_spl_associated_token_account_decode; /// Returns the exact entry matching an Associated Token Account wire. -pub(crate) use self::associated_token_account::spl_associated_token_account_entry; +pub(crate) use self::associated_token_account::decoder_spl_associated_token_account_entry; /// Reads one bounded Associated Token Account payload. -pub(crate) use self::associated_token_account::spl_associated_token_account_payload; -/// One parsed SPL ElGamal registry instruction. -pub(crate) use self::elgamal_registry::ParsedRegistryInstruction; +pub(crate) use self::associated_token_account::decoder_spl_associated_token_account_payload; /// Current stable SPL ElGamal registry event contract version. -pub(crate) use self::elgamal_registry::SPL_ELGAMAL_REGISTRY_EVENT_VERSION; +pub(crate) use self::elgamal_registry::DC_SPL_ELGAMAL_REGISTRY_EVENT_VERSION; /// Maximum retained SPL ElGamal registry instruction payload size. -pub(crate) use self::elgamal_registry::SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES; +pub(crate) use self::elgamal_registry::DC_SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES; /// Stable SPL ElGamal registry surface code. -pub(crate) use self::elgamal_registry::SPL_ELGAMAL_REGISTRY_SURFACE_CODE; +pub(crate) use self::elgamal_registry::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE; /// Canonical tracing target for the SPL ElGamal registry decoder. -pub(crate) use self::elgamal_registry::SPL_ELGAMAL_REGISTRY_TRACING_TARGET; +pub(crate) use self::elgamal_registry::DC_SPL_ELGAMAL_REGISTRY_TRACING_TARGET; +/// One parsed SPL ElGamal registry instruction. +pub(crate) use self::elgamal_registry::DcSplElGamalRegistryParsedRegistryInstruction; /// Decodes one bounded SPL ElGamal registry instruction. -pub(crate) use self::elgamal_registry::spl_elgamal_registry_decode; +pub(crate) use self::elgamal_registry::decoder_spl_elgamal_registry_decode; /// Decodes one bounded SPL ElGamal registry instruction payload. -pub(crate) use self::elgamal_registry::spl_elgamal_registry_decode_payload; +pub(crate) use self::elgamal_registry::decoder_spl_elgamal_registry_decode_payload; /// Parses one exact SPL ElGamal registry instruction. -pub(crate) use self::elgamal_registry::spl_elgamal_registry_parse; +pub(crate) use self::elgamal_registry::decoder_spl_elgamal_registry_parse; /// Maximum payload prefix retained for bounded diagnostics. -pub(crate) use self::memo::SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; +pub(crate) use self::memo::DC_SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; /// Current stable Memo decoded event contract version. -pub(crate) use self::memo::SPL_MEMO_EVENT_VERSION; +pub(crate) use self::memo::DC_SPL_MEMO_EVENT_VERSION; /// Maximum decoded instruction data retained as a complete Memo payload. -pub(crate) use self::memo::SPL_MEMO_MAX_PAYLOAD_BYTES; +pub(crate) use self::memo::DC_SPL_MEMO_MAX_PAYLOAD_BYTES; /// Stable protocol code shared by Memo generations. -pub(crate) use self::memo::SPL_MEMO_PROTOCOL_CODE; +pub(crate) use self::memo::DC_SPL_MEMO_PROTOCOL_CODE; /// Canonical tracing target for the SPL Memo decoder. -pub(crate) use self::memo::SPL_MEMO_TRACING_TARGET; +pub(crate) use self::memo::DC_SPL_MEMO_TRACING_TARGET; /// Stable Memo v1 surface code. -pub(crate) use self::memo::SPL_MEMO_V1_SURFACE_CODE; +pub(crate) use self::memo::DC_SPL_MEMO_V1_SURFACE_CODE; /// Stable Memo v3 surface code. -pub(crate) use self::memo::SPL_MEMO_V3_SURFACE_CODE; +pub(crate) use self::memo::DC_SPL_MEMO_V3_SURFACE_CODE; /// Stable Memo v4 surface code. -pub(crate) use self::memo::SPL_MEMO_V4_SURFACE_CODE; +pub(crate) use self::memo::DC_SPL_MEMO_V4_SURFACE_CODE; /// Decodes one bounded SPL Memo instruction. -pub(crate) use self::memo::spl_memo_decode; +pub(crate) use self::memo::decoder_spl_memo_decode; /// Maximum prefix retained in bounded classic SPL Token diagnostics. -pub(crate) use self::token::SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES; +pub(crate) use self::token::DC_SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES; /// Current stable classic SPL Token decoded event contract version. -pub(crate) use self::token::SPL_TOKEN_EVENT_VERSION; +pub(crate) use self::token::DC_SPL_TOKEN_EVENT_VERSION; /// One exact classic SPL Token instruction entry published by the official interface. -pub(crate) use self::token::SPL_TOKEN_INSTRUCTION_ENTRIES; +pub(crate) use self::token::DC_SPL_TOKEN_INSTRUCTION_ENTRIES; /// Maximum total account metas consumed by one classic SPL Token batch. -pub(crate) use self::token::SPL_TOKEN_MAX_BATCH_ACCOUNTS; +pub(crate) use self::token::DC_SPL_TOKEN_MAX_BATCH_ACCOUNTS; /// Maximum decoded sub-instructions in one classic SPL Token batch. -pub(crate) use self::token::SPL_TOKEN_MAX_BATCH_INSTRUCTIONS; +pub(crate) use self::token::DC_SPL_TOKEN_MAX_BATCH_INSTRUCTIONS; /// Maximum retained classic SPL Token instruction payload size. -pub(crate) use self::token::SPL_TOKEN_MAX_INSTRUCTION_BYTES; +pub(crate) use self::token::DC_SPL_TOKEN_MAX_INSTRUCTION_BYTES; /// Stable protocol and surface code for the classic SPL Token program. -pub(crate) use self::token::SPL_TOKEN_SURFACE_CODE; +pub(crate) use self::token::DC_SPL_TOKEN_SURFACE_CODE; /// Canonical tracing target for the classic SPL Token decoder. -pub(crate) use self::token::SPL_TOKEN_TRACING_TARGET; +pub(crate) use self::token::DC_SPL_TOKEN_TRACING_TARGET; /// Decodes one bounded classic SPL Token instruction. -pub(crate) use self::token::spl_token_decode; +pub(crate) use self::token::decoder_spl_token_decode; /// Returns the published entry matching one classic SPL Token tag. -pub(crate) use self::token::spl_token_entry_for_tag; +pub(crate) use self::token::decoder_spl_token_entry_for_tag; /// Returns the first byte of one retained classic SPL Token payload. -pub(crate) use self::token::spl_token_payload_tag; +pub(crate) use self::token::decoder_spl_token_payload_tag; /// Maximum prefix retained in bounded Token-2022 diagnostics. -pub(crate) use self::token_2022::SPL_TOKEN_2022_DIAGNOSTIC_PREFIX_BYTES; +pub(crate) use self::token2022::DC_SPL_TOKEN2022_DIAGNOSTIC_PREFIX_BYTES; /// Current stable Token-2022 decoded event contract version. -pub(crate) use self::token_2022::SPL_TOKEN_2022_EVENT_VERSION; +pub(crate) use self::token2022::DC_SPL_TOKEN2022_EVENT_VERSION; /// Exact top-level instruction inventory published by the resolved Token-2022 interface. -pub(crate) use self::token_2022::SPL_TOKEN_2022_INSTRUCTION_ENTRIES; +pub(crate) use self::token2022::DC_SPL_TOKEN2022_INSTRUCTION_ENTRIES; /// Maximum total account metas consumed by one Token-2022 batch. -pub(crate) use self::token_2022::SPL_TOKEN_2022_MAX_BATCH_ACCOUNTS; +pub(crate) use self::token2022::DC_SPL_TOKEN2022_MAX_BATCH_ACCOUNTS; /// Maximum decoded sub-instructions in one Token-2022 batch. -pub(crate) use self::token_2022::SPL_TOKEN_2022_MAX_BATCH_INSTRUCTIONS; +pub(crate) use self::token2022::DC_SPL_TOKEN2022_MAX_BATCH_INSTRUCTIONS; /// Maximum retained Token-2022 instruction payload size. -pub(crate) use self::token_2022::SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES; +pub(crate) use self::token2022::DC_SPL_TOKEN2022_MAX_INSTRUCTION_BYTES; /// Maximum retained UTF-8 string size for embedded Token Metadata instructions. -pub(crate) use self::token_2022::SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES; +pub(crate) use self::token2022::DC_SPL_TOKEN2022_MAX_METADATA_STRING_BYTES; /// Stable Token-2022 surface code. -pub(crate) use self::token_2022::SPL_TOKEN_2022_SURFACE_CODE; +pub(crate) use self::token2022::DC_SPL_TOKEN2022_SURFACE_CODE; /// Canonical tracing target for the Token-2022 decoder. -pub(crate) use self::token_2022::SPL_TOKEN_2022_TRACING_TARGET; +pub(crate) use self::token2022::DC_SPL_TOKEN2022_TRACING_TARGET; /// Decodes one bounded Token-2022 instruction. -pub(crate) use self::token_2022::spl_token_2022_decode; +pub(crate) use self::token2022::decoder_spl_token2022_decode; /// Returns the exact entry matching one Token-2022 tag. -pub(crate) use self::token_2022::spl_token_2022_entry_for_tag; +pub(crate) use self::token2022::decoder_spl_token2022_entry_for_tag; /// Returns the first byte of one retained Token-2022 payload. -pub(crate) use self::token_2022::spl_token_2022_payload_tag; +pub(crate) use self::token2022::decoder_spl_token2022_payload_tag; /// Exact decoder for the SPL Associated Token Account program. -pub use self::associated_token_account::SplAssociatedTokenAccountDecoder; +pub use self::associated_token_account::DcSplAssociatedTokenAccountDecoder; /// Exact byte length of one SPL ElGamal registry account. -pub use self::elgamal_registry::ELGAMAL_REGISTRY_ACCOUNT_LEN; +pub use self::elgamal_registry::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; /// Parsed SPL ElGamal public-key registry account. -pub use self::elgamal_registry::ElGamalRegistryState; +pub use self::elgamal_registry::DcSplElGamalRegistryState; /// Exact decoder for the SPL ElGamal registry program. -pub use self::elgamal_registry::SplElgamalRegistryDecoder; +pub use self::elgamal_registry::DcSplElgamalRegistryDecoder; /// Parses one exact SPL ElGamal registry account. -pub use self::elgamal_registry::parse_elgamal_registry_state; +pub use self::elgamal_registry::decoder_spl_elgamal_registry_parse_elgamal_registry_state; /// Exact decoder for the three registered SPL Memo generations. -pub use self::memo::SplMemoDecoder; +pub use self::memo::DcSplMemoDecoder; /// Exact decoder for the classic SPL Token program. -pub use self::token::SplTokenDecoder; +pub use self::token::DcSplTokenDecoder; /// Exact decoder for the Token-2022 program. -pub use self::token_2022::SplToken2022Decoder; +pub use self::token2022::DcSplToken2022Decoder; /// Parsed Token-2022 Mint, Account, or Multisig state. -pub use self::token_2022::Token2022State; +pub use self::token2022::DcToken2022State; /// Exact Token-2022 base account state kind. -pub use self::token_2022::Token2022StateKind; +pub use self::token2022::DcToken2022StateKind; /// One exact Token-2022 TLV entry. -pub use self::token_2022::Token2022TlvEntry; +pub use self::token2022::DcToken2022TlvEntry; /// Parses one Token-2022 Mint, Account, or Multisig state. -pub use self::token_2022::parse_token_2022_state; +pub use self::token2022::decoder_spl_token2022_parse_token2022_state; diff --git a/kb-lib/src/decoder/spl/account_compression.rs b/kb-lib/src/decoder/spl/account_compression.rs index 2e63da5..520407a 100644 --- a/kb-lib/src/decoder/spl/account_compression.rs +++ b/kb-lib/src/decoder/spl/account_compression.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_spl_account_compression`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_spl_account_compression"; +const LEGACY_CRATE: &str = "kb_decoder_spl_account_compression"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/spl/associated_token_account.rs b/kb-lib/src/decoder/spl/associated_token_account.rs index b287479..9bab31f 100644 --- a/kb-lib/src/decoder/spl/associated_token_account.rs +++ b/kb-lib/src/decoder/spl/associated_token_account.rs @@ -8,29 +8,29 @@ mod decoder; mod wire; /// Current stable decoded event contract version. -pub(crate) use self::constants::SPL_ASSOCIATED_TOKEN_ACCOUNT_EVENT_VERSION; +pub(crate) use self::constants::DC_SPL_ATA_EVENT_VERSION; /// Exact instructions published by the official interface. -pub(crate) use self::constants::SPL_ASSOCIATED_TOKEN_ACCOUNT_INSTRUCTION_ENTRIES; +pub(crate) use self::constants::DC_SPL_ATA_INSTRUCTION_ENTRIES; /// Maximum retained account-key text length. -pub(crate) use self::constants::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNT_KEY_BYTES; +pub(crate) use self::constants::DC_SPL_ATA_MAX_ACCOUNT_KEY_BYTES; /// Maximum retained instruction account count. -pub(crate) use self::constants::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNTS; +pub(crate) use self::constants::DC_SPL_ATA_MAX_ACCOUNTS; /// Maximum retained semantic diagnostic count. -pub(crate) use self::constants::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_DIAGNOSTICS; +pub(crate) use self::constants::DC_SPL_ATA_MAX_DIAGNOSTICS; /// Maximum retained instruction payload size. -pub(crate) use self::constants::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_INSTRUCTION_BYTES; +pub(crate) use self::constants::DC_SPL_ATA_MAX_INSTRUCTION_BYTES; /// Maximum retained transaction account-key count. -pub(crate) use self::constants::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_TRANSACTION_KEYS; +pub(crate) use self::constants::DC_SPL_ATA_MAX_TRANSACTION_KEYS; /// Stable protocol and surface code for the Associated Token Account program. -pub(crate) use self::constants::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE; +pub(crate) use self::constants::DC_SPL_ATA_SURFACE_CODE; /// Canonical tracing target for the Associated Token Account decoder. -pub(crate) use self::constants::SPL_ASSOCIATED_TOKEN_ACCOUNT_TRACING_TARGET; +pub(crate) use self::constants::DC_SPL_ATA_TRACING_TARGET; /// Decodes one bounded Associated Token Account instruction. -pub(crate) use self::wire::decode as spl_associated_token_account_decode; +pub(crate) use self::wire::decoder_spl_associated_token_account_decode; /// Returns the exact entry matching an Associated Token Account wire. -pub(crate) use self::wire::entry as spl_associated_token_account_entry; +pub(crate) use self::wire::decoder_spl_associated_token_account_entry; /// Reads one bounded Associated Token Account payload. -pub(crate) use self::wire::payload as spl_associated_token_account_payload; +pub(crate) use self::wire::decoder_spl_associated_token_account_payload; /// Exact decoder for the SPL Associated Token Account program. -pub use self::decoder::SplAssociatedTokenAccountDecoder; +pub use self::decoder::DcSplAssociatedTokenAccountDecoder; diff --git a/kb-lib/src/decoder/spl/associated_token_account/constants.rs b/kb-lib/src/decoder/spl/associated_token_account/constants.rs index 317abd0..527ca9f 100644 --- a/kb-lib/src/decoder/spl/associated_token_account/constants.rs +++ b/kb-lib/src/decoder/spl/associated_token_account/constants.rs @@ -4,25 +4,24 @@ //! Local constants for the `kb-lib` SPL Associated Token Account component. /// Stable protocol and surface code for the Associated Token Account program. -pub(crate) const SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE: &str = "spl_associated_token_account"; +pub(crate) const DC_SPL_ATA_SURFACE_CODE: &str = "spl_associated_token_account"; /// Current stable decoded event contract version. -pub(crate) const SPL_ASSOCIATED_TOKEN_ACCOUNT_EVENT_VERSION: u32 = 1; +pub(crate) const DC_SPL_ATA_EVENT_VERSION: u32 = 1; /// Maximum retained instruction payload size. -pub(crate) const SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_INSTRUCTION_BYTES: usize = 64; +pub(crate) const DC_SPL_ATA_MAX_INSTRUCTION_BYTES: usize = 64; /// Maximum retained instruction account count. -pub(crate) const SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNTS: usize = 64; +pub(crate) const DC_SPL_ATA_MAX_ACCOUNTS: usize = 64; /// Maximum retained transaction account-key count. -pub(crate) const SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_TRANSACTION_KEYS: usize = 4_096; +pub(crate) const DC_SPL_ATA_MAX_TRANSACTION_KEYS: usize = 4_096; /// Maximum retained account-key text length. -pub(crate) const SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNT_KEY_BYTES: usize = 128; +pub(crate) const DC_SPL_ATA_MAX_ACCOUNT_KEY_BYTES: usize = 128; /// Maximum retained semantic diagnostic count. -pub(crate) const SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_DIAGNOSTICS: usize = 32; +pub(crate) const DC_SPL_ATA_MAX_DIAGNOSTICS: usize = 32; /// Exact instructions published by `spl-associated-token-account-interface` 2.0.0. -pub(crate) const SPL_ASSOCIATED_TOKEN_ACCOUNT_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ +pub(crate) const DC_SPL_ATA_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ (0, "create", false), (1, "create_idempotent", false), (2, "recover_nested", false), ]; /// Canonical tracing target for the Associated Token Account decoder. -pub(crate) const SPL_ASSOCIATED_TOKEN_ACCOUNT_TRACING_TARGET: &str = - "kb-lib.decoder.spl.associated_token_account"; +pub(crate) const DC_SPL_ATA_TRACING_TARGET: &str = "kb-lib.decoder.spl.associated_token_account"; diff --git a/kb-lib/src/decoder/spl/associated_token_account/decoder.rs b/kb-lib/src/decoder/spl/associated_token_account/decoder.rs index 5f110c2..2885db7 100644 --- a/kb-lib/src/decoder/spl/associated_token_account/decoder.rs +++ b/kb-lib/src/decoder/spl/associated_token_account/decoder.rs @@ -3,9 +3,9 @@ //! Exact SPL Associated Token Account dispatch for the common decode pipeline. -const SURFACES: &[crate::DecoderSurface] = &[crate::DecoderSurface { +const SURFACES: &[crate::DcApiDecoderSurface] = &[crate::DcApiDecoderSurface { program_id: kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID, - surface_code: crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE, + surface_code: crate::DC_SPL_ATA_SURFACE_CODE, priority: 100, }]; @@ -13,9 +13,9 @@ const PROGRAM_IDS: &[&str] = &[kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID]; /// Exact decoder for the SPL Associated Token Account program. #[derive(Clone, Debug, Default)] -pub struct SplAssociatedTokenAccountDecoder; +pub struct DcSplAssociatedTokenAccountDecoder; -impl crate::ProtocolDecoder for crate::SplAssociatedTokenAccountDecoder { +impl crate::DcApiProtocolDecoder for crate::DcSplAssociatedTokenAccountDecoder { fn decoder_name(&self) -> &'static str { return "kb_decoder_spl_associated_token_account"; } @@ -30,45 +30,45 @@ impl crate::ProtocolDecoder for crate::SplAssociatedTokenAccountDecoder { fn supports_observation( &self, - observation: &crate::ProgramObservation, - ) -> crate::DecoderSupport { - return if crate::ProtocolDecoder::handles_program_id(self, &observation.program_id) { - crate::DecoderSupport::Yes + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + return if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + crate::DcApiDecoderSupport::Yes } else { - crate::DecoderSupport::No + crate::DcApiDecoderSupport::No }; } fn decode_observation( &self, - _observation: &crate::ProgramObservation, - ) -> kb_core::Result> { + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::InstructionDecoder for crate::SplAssociatedTokenAccountDecoder { - fn identity(&self) -> crate::DecoderIdentity { - return crate::DecoderIdentity { - name: crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE.to_string(), +impl crate::DcApiInstructionDecoder for crate::DcSplAssociatedTokenAccountDecoder { + fn identity(&self) -> crate::DcApiDecoderIdentity { + return crate::DcApiDecoderIdentity { + name: crate::DC_SPL_ATA_SURFACE_CODE.to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn surfaces(&self) -> &'static [crate::DecoderSurface] { + fn surfaces(&self) -> &'static [crate::DcApiDecoderSurface] { return SURFACES; } - fn coverage(&self) -> std::vec::Vec { - return crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_INSTRUCTION_ENTRIES + fn coverage(&self) -> std::vec::Vec { + return crate::DC_SPL_ATA_INSTRUCTION_ENTRIES .iter() .map(|(tag, code, historical)| { - return crate::DecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE.to_string(), + crate::DC_SPL_ATA_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: (*code).to_string(), discriminator_hex: std::option::Option::Some(format!("{tag:02x}")), historical: *historical, @@ -77,40 +77,47 @@ impl crate::InstructionDecoder for crate::SplAssociatedTokenAccountDecoder { .collect(); } - fn recognize(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderRecognition { + fn recognize( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderRecognition { if input.program_id != kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID { - return crate::DecoderRecognition::incompatible(); + return crate::DcApiDecoderRecognition::incompatible(); } - let wire = crate::spl_associated_token_account_payload(input).ok(); + let wire = crate::decoder_spl_associated_token_account_payload(input).ok(); let entry = wire .as_ref() - .and_then(|bytes| return crate::spl_associated_token_account_entry(bytes)); - return crate::DecoderRecognition::compatible( + .and_then(|bytes| return crate::decoder_spl_associated_token_account_entry(bytes)); + return crate::DcApiDecoderRecognition::compatible( entry.is_some(), 100, - std::option::Option::Some(crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SPL_ATA_SURFACE_CODE.to_string()), entry.map(|(_, code, _)| return code.to_string()), wire.and_then(|bytes| return bytes.first().map(|tag| return format!("{tag:02x}"))), ); } - fn decode(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { + fn decode( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderExecutionResult { if input.program_id != kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID { - return crate::DecoderExecutionResult::unsupported(std::option::Option::None); + return crate::DcApiDecoderExecutionResult::unsupported(std::option::Option::None); } - let result = crate::spl_associated_token_account_decode(input); + let result = crate::decoder_spl_associated_token_account_decode(input); if matches!( result.status, - crate::DecoderOutcomeStatus::Failed | crate::DecoderOutcomeStatus::Unsupported + crate::DcApiDecoderOutcomeStatus::Failed + | crate::DcApiDecoderOutcomeStatus::Unsupported ) { tracing::error!( - target: crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_TRACING_TARGET, + target: crate::DC_SPL_ATA_TRACING_TARGET, action = "decode_failure", signature = %input.signature, slot = input.slot, instruction_path = %input.instruction_path, program_id = %input.program_id, - processor_name = crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE, + processor_name = crate::DC_SPL_ATA_SURFACE_CODE, processor_version = env!("CARGO_PKG_VERSION"), input_key = %input.replay_input_key, result_status = ?result.status, @@ -119,7 +126,7 @@ impl crate::InstructionDecoder for crate::SplAssociatedTokenAccountDecoder { ); } tracing::debug!( - target: crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_TRACING_TARGET, + target: crate::DC_SPL_ATA_TRACING_TARGET, action = "decode", signature = %input.signature, instruction_path = %input.instruction_path, @@ -180,12 +187,12 @@ mod tests { } assert_eq!(matrix["surfaceEquality"]["matrixVariantCount"], 3); assert_eq!(matrix["surfaceEquality"]["officialInterfaceVariantCount"], 3); - let compiled = crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_INSTRUCTION_ENTRIES + let compiled = crate::DC_SPL_ATA_INSTRUCTION_ENTRIES .iter() .map(|(tag, code, _)| return (std::option::Option::Some(*tag), (*code).to_string())) .collect::>(); let declared = - crate::InstructionDecoder::coverage(&crate::SplAssociatedTokenAccountDecoder) + crate::DcApiInstructionDecoder::coverage(&crate::DcSplAssociatedTokenAccountDecoder) .iter() .map(|entry| { let tag = entry @@ -325,7 +332,7 @@ mod tests { metas: &[(std::string::String, bool, bool)], failed: bool, path: &str, - ) -> crate::CoreInstructionReplayInput { + ) -> crate::MdCoreInstructionReplayInput { use base64::Engine; // rust-rules: trait-import let keys = metas @@ -352,7 +359,7 @@ mod tests { }); }) .collect::>(); - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( format!("signature:{path}"), "signature", 42, @@ -427,25 +434,26 @@ mod tests { #[test] fn exact_dispatch_and_coverage_are_compiled() { assert_eq!( - crate::InstructionDecoder::coverage(&crate::SplAssociatedTokenAccountDecoder).len(), + crate::DcApiInstructionDecoder::coverage(&crate::DcSplAssociatedTokenAccountDecoder) + .len(), 3 ); - let observation = crate::ProgramObservation { - signature: crate::Signature("signature".to_string()), - slot: crate::Slot(1), - instruction_path: crate::InstructionPath("0".to_string()), - program_id: crate::ProgramId(kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string()), + 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(kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string()), discriminator_8: std::option::Option::None, data_len: 1, accounts_len: 6, failed: false, }; assert_eq!( - crate::ProtocolDecoder::supports_observation( - &crate::SplAssociatedTokenAccountDecoder, + crate::DcApiProtocolDecoder::supports_observation( + &crate::DcSplAssociatedTokenAccountDecoder, &observation, ), - crate::DecoderSupport::Yes + crate::DcApiDecoderSupport::Yes ); } @@ -454,9 +462,11 @@ mod tests { let (wire, metas) = create_fixture(kb_program_ids::SPL_TOKEN_PROGRAM_ID, false); for candidate in [wire.as_slice(), &[]] { let input = replay(candidate, metas.as_slice(), false, "0"); - let result = - crate::InstructionDecoder::decode(&crate::SplAssociatedTokenAccountDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode( + &crate::DcSplAssociatedTokenAccountDecoder, + &input, + ); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some("create") @@ -479,20 +489,22 @@ mod tests { } #[test] - fn token_2022_inner_failed_idempotent_remains_an_uncommitted_intent() { - let (wire, metas) = create_fixture(kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, true); + fn token2022_inner_failed_idempotent_remains_an_uncommitted_intent() { + let (wire, metas) = create_fixture(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, true); let input = replay(wire.as_slice(), metas.as_slice(), true, "2/1"); - let result = - crate::InstructionDecoder::decode(&crate::SplAssociatedTokenAccountDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode( + &crate::DcSplAssociatedTokenAccountDecoder, + &input, + ); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); assert_eq!( result.observations[0].event.source_kind, - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction ); assert_eq!( result.observations[0].payload_json["addresses"]["tokenProgram"]["kind"], - "token_2022" + "token2022" ); assert_eq!(result.observations[0].payload_json["tokenProgramExtensionsDecoded"], false); } @@ -511,7 +523,7 @@ mod tests { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("invalid nested mint fixture: {error}"), }; - let token_program = match kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID.parse() { + let token_program = match kb_program_ids::SPL_TOKEN2022_PROGRAM_ID.parse() { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("invalid token program fixture: {error}"), }; @@ -527,9 +539,11 @@ mod tests { .map(|meta| return (meta.pubkey.to_string(), meta.is_signer, meta.is_writable)) .collect::>(); let input = replay(instruction.data.as_slice(), metas.as_slice(), false, "1/0"); - let result = - crate::InstructionDecoder::decode(&crate::SplAssociatedTokenAccountDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode( + &crate::DcSplAssociatedTokenAccountDecoder, + &input, + ); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); let addresses = &result.observations[0].payload_json["addresses"]; assert_eq!(addresses["ownerMint"], owner_mint.to_string()); assert_eq!(addresses["nestedMint"], nested_mint.to_string()); @@ -553,9 +567,11 @@ mod tests { metas[0].1 = false; metas.push(("SysvarC1ock11111111111111111111111111111111".to_string(), false, false)); let input = replay(wire.as_slice(), metas.as_slice(), false, "0"); - let result = - crate::InstructionDecoder::decode(&crate::SplAssociatedTokenAccountDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode( + &crate::DcSplAssociatedTokenAccountDecoder, + &input, + ); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); let diagnostics = result.observations[0].payload_json["semanticDiagnostics"].as_array(); let diagnostics = match diagnostics { std::option::Option::Some(value) => value, @@ -572,9 +588,11 @@ mod tests { metas.truncate(3); let input = replay(wire.as_slice(), metas.as_slice(), false, "0"); - let result = - crate::InstructionDecoder::decode(&crate::SplAssociatedTokenAccountDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode( + &crate::DcSplAssociatedTokenAccountDecoder, + &input, + ); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!( result.observations[0].payload_json["semanticDiagnostics"] .as_array() @@ -589,9 +607,11 @@ mod tests { let (_, metas) = create_fixture(kb_program_ids::SPL_TOKEN_PROGRAM_ID, false); for wire in [std::vec![9], std::vec![0, 0]] { let input = replay(wire.as_slice(), metas.as_slice(), false, "0"); - let result = - crate::InstructionDecoder::decode(&crate::SplAssociatedTokenAccountDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = crate::DcApiInstructionDecoder::decode( + &crate::DcSplAssociatedTokenAccountDecoder, + &input, + ); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert_eq!(result.observations.len(), 0); assert_eq!(result.diagnostics.len(), 1); assert!(result.diagnostics[0].message.len() < 256); diff --git a/kb-lib/src/decoder/spl/associated_token_account/wire.rs b/kb-lib/src/decoder/spl/associated_token_account/wire.rs index 6e5283b..abf3e1e 100644 --- a/kb-lib/src/decoder/spl/associated_token_account/wire.rs +++ b/kb-lib/src/decoder/spl/associated_token_account/wire.rs @@ -16,21 +16,23 @@ struct Account { source: serde_json::Value, } -pub(crate) fn entry(bytes: &[u8]) -> std::option::Option<(u8, &'static str, bool)> { +pub(crate) fn decoder_spl_associated_token_account_entry( + bytes: &[u8], +) -> std::option::Option<(u8, &'static str, bool)> { if bytes.is_empty() { return std::option::Option::Some((0, "create", true)); } if bytes.len() != 1 { return std::option::Option::None; } - return crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_INSTRUCTION_ENTRIES + return crate::DC_SPL_ATA_INSTRUCTION_ENTRIES .iter() .copied() .find(|(tag, _, _)| return *tag == bytes[0]); } -pub(crate) fn payload( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_spl_associated_token_account_payload( + input: &crate::MdCoreInstructionReplayInput, ) -> kb_core::Result> { let value = match input.instruction_payload_json.as_ref() { std::option::Option::Some(value) => value, @@ -61,7 +63,7 @@ pub(crate) fn payload( ))); }, }; - if bytes.len() > crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_INSTRUCTION_BYTES { + if bytes.len() > crate::DC_SPL_ATA_MAX_INSTRUCTION_BYTES { return std::result::Result::Err(kb_core::Error::invalid_state( "ATA decoded payload exceeds 64 bytes", )); @@ -69,14 +71,16 @@ pub(crate) fn payload( return std::result::Result::Ok(bytes); } -pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { - let bytes = match crate::spl_associated_token_account_payload(input) { +pub(crate) fn decoder_spl_associated_token_account_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes = match crate::decoder_spl_associated_token_account_payload(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { return failed(std::option::Option::None, "ata_payload_unavailable", error.to_string()); }, }; - let instruction = match crate::spl_associated_token_account_entry(bytes.as_slice()) { + let instruction = match crate::decoder_spl_associated_token_account_entry(bytes.as_slice()) { std::option::Option::Some(value) => value, std::option::Option::None => { let code = if bytes.len() > 1 { @@ -106,37 +110,33 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode let addresses = addresses(instruction.1, accounts.as_slice()); let hash = hash(bytes.as_slice()); let committed = !input.transaction_failed; - let confidence = crate::DecoderConfidence::ManualExact; - let event = crate::DecodedProtocolEvent { - signature: crate::Signature(input.signature.clone()), - slot: crate::Slot(input.slot), - instruction_path: crate::InstructionPath(input.instruction_path.clone()), - program_id: crate::ProgramId(input.program_id.clone()), - protocol_code: crate::ProtocolCode( - crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE.to_string(), - ), - surface_code: crate::SurfaceCode( - crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE.to_string(), - ), - event_code: crate::EventCode(format!( + let confidence = crate::MdDecoderConfidence::ManualExact; + let event = crate::MdDecodedProtocolEvent { + signature: crate::MdSignature(input.signature.clone()), + slot: crate::MdSlot(input.slot), + instruction_path: crate::MdInstructionPath(input.instruction_path.clone()), + program_id: crate::MdProgramId(input.program_id.clone()), + protocol_code: crate::MdProtocolCode(crate::DC_SPL_ATA_SURFACE_CODE.to_string()), + surface_code: crate::MdSurfaceCode(crate::DC_SPL_ATA_SURFACE_CODE.to_string()), + event_code: crate::MdEventCode(format!( "{}.{}", - crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE, + crate::DC_SPL_ATA_SURFACE_CODE, instruction.1 )), - event_name: crate::EventName(instruction.1.to_string()), - event_family: crate::EventFamily::Lifecycle, + event_name: crate::MdEventName(instruction.1.to_string()), + event_family: crate::MdEventFamily::Lifecycle, source_kind: if input.instruction_path.contains('/') { - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction } else { - crate::EventSourceKind::Instruction + crate::MdEventSourceKind::Instruction }, confidence, }; - let observation = crate::DecodedObservation { + let observation = crate::DcApiDecodedObservation { event_key: format!("ata:{}:0", instruction.1), event, payload_json: serde_json::json!({ - "eventVersion": crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_EVENT_VERSION, + "eventVersion": crate::DC_SPL_ATA_EVENT_VERSION, "programId": input.program_id, "instruction": instruction.1, "wireTag": instruction.0, @@ -161,8 +161,8 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode transaction_failed: input.transaction_failed, transaction_error: input.transaction_err_json.clone(), observation_committed: committed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, confidence, evidence: std::vec![ "spl_associated_token_account_interface_2_0_0_and_processor_audit".to_string(), @@ -170,15 +170,17 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode ], }, }; - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Decoded, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Decoded, recognized_entry_code: std::option::Option::Some(instruction.1.to_string()), observations: std::vec![observation], diagnostics: std::vec::Vec::new(), }; } -fn accounts(input: &crate::CoreInstructionReplayInput) -> kb_core::Result> { +fn accounts( + input: &crate::MdCoreInstructionReplayInput, +) -> kb_core::Result> { let instruction_accounts = match input.instruction_accounts_json.as_array() { std::option::Option::Some(value) => value, std::option::Option::None => { @@ -195,12 +197,12 @@ fn accounts(input: &crate::CoreInstructionReplayInput) -> kb_core::Result crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNTS { + if instruction_accounts.len() > crate::DC_SPL_ATA_MAX_ACCOUNTS { return std::result::Result::Err(kb_core::Error::invalid_state( "ATA instruction account count exceeds 64", )); } - if keys.len() > crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_TRANSACTION_KEYS { + if keys.len() > crate::DC_SPL_ATA_MAX_TRANSACTION_KEYS { return std::result::Result::Err(kb_core::Error::invalid_state( "ATA transaction account key count exceeds 4096", )); @@ -217,8 +219,7 @@ fn accounts(input: &crate::CoreInstructionReplayInput) -> kb_core::Result + if !value.is_empty() && value.len() <= crate::DC_SPL_ATA_MAX_ACCOUNT_KEY_BYTES => { value }, @@ -351,7 +352,7 @@ fn diagnostics(code: &str, accounts: &[Account]) -> serde_json::Value { let token_position = if code == "recover_nested" { 6 } else { 5 }; if accounts.get(token_position).is_some_and(|account| { return account.key != kb_program_ids::SPL_TOKEN_PROGRAM_ID - && account.key != kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID; + && account.key != kb_program_ids::SPL_TOKEN2022_PROGRAM_ID; }) { values.push(serde_json::json!({"code":"unsupported_token_program","observed":accounts.get(token_position).map(|value| return value.key.clone())})); } @@ -363,7 +364,7 @@ fn diagnostics(code: &str, accounts: &[Account]) -> serde_json::Value { values .push(serde_json::json!({"code":"system_program_mismatch","observed":accounts[4].key})); } - values.truncate(crate::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_DIAGNOSTICS); + values.truncate(crate::DC_SPL_ATA_MAX_DIAGNOSTICS); return serde_json::Value::Array(values); } @@ -422,8 +423,8 @@ fn token_kind(token: std::option::Option<&str>) -> serde_json::Value { std::option::Option::Some(kb_program_ids::SPL_TOKEN_PROGRAM_ID) => { serde_json::json!({"programId":kb_program_ids::SPL_TOKEN_PROGRAM_ID,"kind":"spl_token_classic","supported":true}) }, - std::option::Option::Some(kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID) => { - serde_json::json!({"programId":kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID,"kind":"token_2022","supported":true}) + std::option::Option::Some(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID) => { + serde_json::json!({"programId":kb_program_ids::SPL_TOKEN2022_PROGRAM_ID,"kind":"token2022","supported":true}) }, std::option::Option::Some(value) => { serde_json::json!({"programId":value,"kind":"unsupported","supported":false}) @@ -438,12 +439,12 @@ fn failed( entry: std::option::Option<&str>, code: &str, message: std::string::String, -) -> crate::DecoderExecutionResult { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Failed, +) -> crate::DcApiDecoderExecutionResult { + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Failed, recognized_entry_code: entry.map(|value| return value.to_string()), observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: code.to_string(), message, retriable: false diff --git a/kb-lib/src/decoder/spl/elgamal_registry.rs b/kb-lib/src/decoder/spl/elgamal_registry.rs index ef115c3..8cbd164 100644 --- a/kb-lib/src/decoder/spl/elgamal_registry.rs +++ b/kb-lib/src/decoder/spl/elgamal_registry.rs @@ -9,27 +9,27 @@ mod state; mod wire; /// Current stable SPL ElGamal registry event contract version. -pub(crate) use self::constants::SPL_ELGAMAL_REGISTRY_EVENT_VERSION; +pub(crate) use self::constants::DC_SPL_ELGAMAL_REGISTRY_EVENT_VERSION; /// Maximum retained SPL ElGamal registry instruction payload size. -pub(crate) use self::constants::SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES; +pub(crate) use self::constants::DC_SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES; /// Stable SPL ElGamal registry surface code. -pub(crate) use self::constants::SPL_ELGAMAL_REGISTRY_SURFACE_CODE; +pub(crate) use self::constants::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE; /// Canonical tracing target for the SPL ElGamal registry decoder. -pub(crate) use self::constants::SPL_ELGAMAL_REGISTRY_TRACING_TARGET; +pub(crate) use self::constants::DC_SPL_ELGAMAL_REGISTRY_TRACING_TARGET; /// One parsed SPL ElGamal registry instruction. -pub(crate) use self::wire::ParsedRegistryInstruction; +pub(crate) use self::wire::DcSplElGamalRegistryParsedRegistryInstruction; /// Decodes one bounded SPL ElGamal registry instruction. -pub(crate) use self::wire::spl_elgamal_registry_decode; +pub(crate) use self::wire::decoder_spl_elgamal_registry_decode; /// Decodes one bounded SPL ElGamal registry instruction payload. -pub(crate) use self::wire::spl_elgamal_registry_decode_payload; +pub(crate) use self::wire::decoder_spl_elgamal_registry_decode_payload; /// Parses one exact SPL ElGamal registry instruction. -pub(crate) use self::wire::spl_elgamal_registry_parse; +pub(crate) use self::wire::decoder_spl_elgamal_registry_parse; /// Exact decoder for the SPL ElGamal registry program. -pub use self::decoder::SplElgamalRegistryDecoder; +pub use self::decoder::DcSplElgamalRegistryDecoder; /// Exact byte length of one SPL ElGamal registry account. -pub use self::state::ELGAMAL_REGISTRY_ACCOUNT_LEN; +pub use self::state::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; /// Parsed SPL ElGamal public-key registry account. -pub use self::state::ElGamalRegistryState; +pub use self::state::DcSplElGamalRegistryState; /// Parses one exact SPL ElGamal registry account. -pub use self::state::parse_elgamal_registry_state; +pub use self::state::decoder_spl_elgamal_registry_parse_elgamal_registry_state; diff --git a/kb-lib/src/decoder/spl/elgamal_registry/constants.rs b/kb-lib/src/decoder/spl/elgamal_registry/constants.rs index eaee3ba..7c5442e 100644 --- a/kb-lib/src/decoder/spl/elgamal_registry/constants.rs +++ b/kb-lib/src/decoder/spl/elgamal_registry/constants.rs @@ -3,9 +3,10 @@ //! Constants for the SPL ElGamal registry decoder. -pub(crate) const SPL_ELGAMAL_REGISTRY_SURFACE_CODE: &str = "spl_elgamal_registry"; -pub(crate) const SPL_ELGAMAL_REGISTRY_EVENT_VERSION: u32 = 1; -pub(crate) const SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES: usize = 16; +pub(crate) const DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE: &str = "spl_elgamal_registry"; +pub(crate) const DC_SPL_ELGAMAL_REGISTRY_EVENT_VERSION: u32 = 1; +pub(crate) const DC_SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES: usize = 16; /// Canonical tracing target for this crate. -pub(crate) const SPL_ELGAMAL_REGISTRY_TRACING_TARGET: &str = "kb-lib.decoder.spl.elgamal_registry"; +pub(crate) const DC_SPL_ELGAMAL_REGISTRY_TRACING_TARGET: &str = + "kb-lib.decoder.spl.elgamal_registry"; diff --git a/kb-lib/src/decoder/spl/elgamal_registry/decoder.rs b/kb-lib/src/decoder/spl/elgamal_registry/decoder.rs index a8657bc..efd8212 100644 --- a/kb-lib/src/decoder/spl/elgamal_registry/decoder.rs +++ b/kb-lib/src/decoder/spl/elgamal_registry/decoder.rs @@ -3,19 +3,19 @@ //! Exact dispatch for the SPL ElGamal registry program. -const SURFACES: &[crate::DecoderSurface] = &[crate::DecoderSurface { - program_id: kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID, - surface_code: crate::SPL_ELGAMAL_REGISTRY_SURFACE_CODE, +const SURFACES: &[crate::DcApiDecoderSurface] = &[crate::DcApiDecoderSurface { + program_id: kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID, + surface_code: crate::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE, priority: 100, }]; -const PROGRAM_IDS: &[&str] = &[kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID]; +const PROGRAM_IDS: &[&str] = &[kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID]; /// Decoder for the dedicated Token-2022 ElGamal public-key registry program. #[derive(Clone, Debug, Default)] -pub struct SplElgamalRegistryDecoder; +pub struct DcSplElgamalRegistryDecoder; -impl crate::ProtocolDecoder for crate::SplElgamalRegistryDecoder { +impl crate::DcApiProtocolDecoder for crate::DcSplElgamalRegistryDecoder { fn decoder_name(&self) -> &'static str { return "kb_decoder_spl_elgamal_registry"; } @@ -30,46 +30,46 @@ impl crate::ProtocolDecoder for crate::SplElgamalRegistryDecoder { fn supports_observation( &self, - observation: &crate::ProgramObservation, - ) -> crate::DecoderSupport { - return if crate::ProtocolDecoder::handles_program_id(self, &observation.program_id) { - crate::DecoderSupport::Yes + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + return if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + crate::DcApiDecoderSupport::Yes } else { - crate::DecoderSupport::No + crate::DcApiDecoderSupport::No }; } fn decode_observation( &self, - _observation: &crate::ProgramObservation, - ) -> kb_core::Result> { + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::InstructionDecoder for crate::SplElgamalRegistryDecoder { - fn identity(&self) -> crate::DecoderIdentity { - return crate::DecoderIdentity { +impl crate::DcApiInstructionDecoder for crate::DcSplElgamalRegistryDecoder { + fn identity(&self) -> crate::DcApiDecoderIdentity { + return crate::DcApiDecoderIdentity { name: "spl_elgamal_registry".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn surfaces(&self) -> &'static [crate::DecoderSurface] { + fn surfaces(&self) -> &'static [crate::DcApiDecoderSurface] { return SURFACES; } - fn coverage(&self) -> std::vec::Vec { + fn coverage(&self) -> std::vec::Vec { return [(0_u8, "create_registry"), (1_u8, "update_registry")] .into_iter() .map(|(tag, code)| { - return crate::DecoderCoverageDeclaration { - program_id: kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID + return crate::DcApiDecoderCoverageDeclaration { + program_id: kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID .to_string(), surface_code: std::option::Option::Some( - crate::SPL_ELGAMAL_REGISTRY_SURFACE_CODE.to_string(), + crate::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: code.to_string(), discriminator_hex: std::option::Option::Some(format!("{tag:02x}")), historical: false, @@ -78,9 +78,12 @@ impl crate::InstructionDecoder for crate::SplElgamalRegistryDecoder { .collect(); } - fn recognize(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderRecognition { - if input.program_id != kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID { - return crate::DecoderRecognition::incompatible(); + fn recognize( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderRecognition { + if input.program_id != kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID { + return crate::DcApiDecoderRecognition::incompatible(); } let entry = input .instruction_payload_json @@ -99,26 +102,30 @@ impl crate::InstructionDecoder for crate::SplElgamalRegistryDecoder { _ => std::option::Option::None, }; }); - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( entry.is_some(), 100, - std::option::Option::Some(crate::SPL_ELGAMAL_REGISTRY_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE.to_string()), entry, std::option::Option::None, ); } - fn decode(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { - if input.program_id != kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID { - return crate::DecoderExecutionResult::unsupported(std::option::Option::None); + fn decode( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderExecutionResult { + if input.program_id != kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID { + return crate::DcApiDecoderExecutionResult::unsupported(std::option::Option::None); } - let result = crate::spl_elgamal_registry_decode(input); + let result = crate::decoder_spl_elgamal_registry_decode(input); if matches!( result.status, - crate::DecoderOutcomeStatus::Failed | crate::DecoderOutcomeStatus::Unsupported + crate::DcApiDecoderOutcomeStatus::Failed + | crate::DcApiDecoderOutcomeStatus::Unsupported ) { tracing::error!( - target: crate::SPL_ELGAMAL_REGISTRY_TRACING_TARGET, + target: crate::DC_SPL_ELGAMAL_REGISTRY_TRACING_TARGET, action = "decode_failure", signature = %input.signature, slot = input.slot, @@ -135,7 +142,7 @@ impl crate::InstructionDecoder for crate::SplElgamalRegistryDecoder { ); } tracing::debug!( - target: crate::SPL_ELGAMAL_REGISTRY_TRACING_TARGET, + target: crate::DC_SPL_ELGAMAL_REGISTRY_TRACING_TARGET, action = "decode", signature = %input.signature, instruction_path = %input.instruction_path, @@ -158,8 +165,8 @@ mod tests { payload: &[u8], failed: bool, path: &str, - ) -> crate::CoreInstructionReplayInput { - let result = crate::CoreInstructionReplayInput::new( + ) -> crate::MdCoreInstructionReplayInput { + let result = crate::MdCoreInstructionReplayInput::new( format!("signature:{path}"), "signature", 42, @@ -192,14 +199,14 @@ mod tests { fn exact_program_boundary_and_interface_id_are_preserved() { assert_eq!( spl_elgamal_registry_interface::id().to_string(), - kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID + kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID ); - let decoder = crate::SplElgamalRegistryDecoder; - assert_eq!(crate::InstructionDecoder::coverage(&decoder).len(), 2); - let foreign = input(kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, &[0, 1], false, "0"); + let decoder = crate::DcSplElgamalRegistryDecoder; + assert_eq!(crate::DcApiInstructionDecoder::coverage(&decoder).len(), 2); + let foreign = input(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, &[0, 1], false, "0"); assert_eq!( - crate::InstructionDecoder::decode(&decoder, &foreign).status, - crate::DecoderOutcomeStatus::Unsupported + crate::DcApiInstructionDecoder::decode(&decoder, &foreign).status, + crate::DcApiDecoderOutcomeStatus::Unsupported ); } @@ -211,14 +218,14 @@ mod tests { (1_u8, "update_registry", 0_i8, false, "2"), ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID, &[tag, offset as u8], failed, path, ); let result = - crate::InstructionDecoder::decode(&crate::SplElgamalRegistryDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + crate::DcApiInstructionDecoder::decode(&crate::DcSplElgamalRegistryDecoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.recognized_entry_code.as_deref(), std::option::Option::Some(code)); assert_eq!( result.observations[0].payload_json["proofInstructionOffset"], @@ -232,14 +239,14 @@ mod tests { fn malformed_unknown_and_suffixed_wire_fail_closed() { for payload in [std::vec::Vec::new(), vec![0], vec![2, 0], vec![0, 1, 2]] { let input = input( - kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID, payload.as_slice(), false, "0", ); let result = - crate::InstructionDecoder::decode(&crate::SplElgamalRegistryDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + crate::DcApiInstructionDecoder::decode(&crate::DcSplElgamalRegistryDecoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert!(result.observations.is_empty()); } } diff --git a/kb-lib/src/decoder/spl/elgamal_registry/state.rs b/kb-lib/src/decoder/spl/elgamal_registry/state.rs index 1fe9d64..73f10f5 100644 --- a/kb-lib/src/decoder/spl/elgamal_registry/state.rs +++ b/kb-lib/src/decoder/spl/elgamal_registry/state.rs @@ -6,11 +6,11 @@ use base64::Engine; // rust-rules: trait-import /// Exact byte length of one SPL ElGamal registry account. -pub const ELGAMAL_REGISTRY_ACCOUNT_LEN: usize = 64; +pub const DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN: usize = 64; /// Public state retained by one SPL ElGamal registry account. #[derive(Clone, Debug, Eq, PartialEq)] -pub struct ElGamalRegistryState { +pub struct DcSplElGamalRegistryState { /// Wallet address associated with this registry. pub owner: String, /// Exact 32-byte ElGamal public key encoded as standard base64. @@ -20,16 +20,16 @@ pub struct ElGamalRegistryState { } /// Parse one exact SPL ElGamal registry account. -pub fn parse_elgamal_registry_state( +pub fn decoder_spl_elgamal_registry_parse_elgamal_registry_state( data: &[u8], -) -> std::result::Result { - if data.len() != ELGAMAL_REGISTRY_ACCOUNT_LEN { +) -> std::result::Result { + if data.len() != DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN { return std::result::Result::Err(format!( - "SPL ElGamal registry account requires exactly {ELGAMAL_REGISTRY_ACCOUNT_LEN} bytes; received {}", + "SPL ElGamal registry account requires exactly {DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN} bytes; received {}", data.len() )); } - return std::result::Result::Ok(ElGamalRegistryState { + return std::result::Result::Ok(DcSplElGamalRegistryState { owner: bs58::encode(&data[..32]).into_string(), elgamal_pubkey_base64: base64::engine::general_purpose::STANDARD.encode(&data[32..64]), wire_hex: lower_hex(data), @@ -50,10 +50,10 @@ mod tests { #[test] fn exact_registry_state_preserves_owner_key_and_wire() { - let mut data = [0u8; crate::ELGAMAL_REGISTRY_ACCOUNT_LEN]; + let mut data = [0u8; crate::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN]; data[..32].fill(7); data[32..].fill(9); - let parsed = crate::parse_elgamal_registry_state(&data); + let parsed = crate::decoder_spl_elgamal_registry_parse_elgamal_registry_state(&data); assert_eq!( parsed.as_ref().map(|state| return state.owner.clone()), std::result::Result::Ok(bs58::encode([7u8; 32]).into_string()) @@ -70,7 +70,11 @@ mod tests { #[test] fn registry_state_rejects_every_non_exact_length() { - assert!(crate::parse_elgamal_registry_state(&[0; 63]).is_err()); - assert!(crate::parse_elgamal_registry_state(&[0; 65]).is_err()); + assert!( + crate::decoder_spl_elgamal_registry_parse_elgamal_registry_state(&[0; 63]).is_err() + ); + assert!( + crate::decoder_spl_elgamal_registry_parse_elgamal_registry_state(&[0; 65]).is_err() + ); } } diff --git a/kb-lib/src/decoder/spl/elgamal_registry/wire.rs b/kb-lib/src/decoder/spl/elgamal_registry/wire.rs index 5d2671b..2067c6f 100644 --- a/kb-lib/src/decoder/spl/elgamal_registry/wire.rs +++ b/kb-lib/src/decoder/spl/elgamal_registry/wire.rs @@ -7,14 +7,14 @@ use base64::Engine; // rust-rules: trait-import use sha2::Digest; // rust-rules: trait-import #[derive(Clone, Debug)] -pub(crate) struct ParsedRegistryInstruction { +pub(crate) struct DcSplElGamalRegistryParsedRegistryInstruction { pub(crate) code: &'static str, pub(crate) tag: u8, pub(crate) proof_instruction_offset: i8, } -pub(crate) fn spl_elgamal_registry_decode_payload( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_spl_elgamal_registry_decode_payload( + input: &crate::MdCoreInstructionReplayInput, ) -> std::result::Result, std::string::String> { let payload = match input.instruction_payload_json.as_ref() { std::option::Option::Some(value) => value, @@ -45,18 +45,19 @@ pub(crate) fn spl_elgamal_registry_decode_payload( )); }, }; - if bytes.len() > crate::SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES { + if bytes.len() > crate::DC_SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES { return std::result::Result::Err(format!( "ElGamal registry payload exceeds {} bytes", - crate::SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES + crate::DC_SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES )); } return std::result::Result::Ok(bytes); } -pub(crate) fn spl_elgamal_registry_parse( +pub(crate) fn decoder_spl_elgamal_registry_parse( bytes: &[u8], -) -> std::result::Result { +) -> std::result::Result +{ if bytes.len() != 2 { return std::result::Result::Err(format!( "ElGamal registry instruction requires exactly 2 bytes; received {}", @@ -68,24 +69,24 @@ pub(crate) fn spl_elgamal_registry_parse( 1 => "update_registry", tag => return std::result::Result::Err(format!("unknown ElGamal registry tag {tag}")), }; - return std::result::Result::Ok(crate::ParsedRegistryInstruction { + return std::result::Result::Ok(crate::DcSplElGamalRegistryParsedRegistryInstruction { code, tag: bytes[0], proof_instruction_offset: bytes[1] as i8, }); } -pub(crate) fn spl_elgamal_registry_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { - let bytes = match crate::spl_elgamal_registry_decode_payload(input) { +pub(crate) fn decoder_spl_elgamal_registry_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { + let bytes = match crate::decoder_spl_elgamal_registry_decode_payload(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(message) => { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Failed, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Failed, recognized_entry_code: std::option::Option::None, observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: "elgamal_registry_payload_invalid".to_string(), message, retriable: false, @@ -93,11 +94,11 @@ pub(crate) fn spl_elgamal_registry_decode( }; }, }; - let parsed = match crate::spl_elgamal_registry_parse(bytes.as_slice()) { + let parsed = match crate::decoder_spl_elgamal_registry_parse(bytes.as_slice()) { std::result::Result::Ok(value) => value, std::result::Result::Err(message) => { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Failed, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Failed, recognized_entry_code: bytes.first().and_then(|tag| { return match tag { 0 => std::option::Option::Some("create_registry".to_string()), @@ -106,7 +107,7 @@ pub(crate) fn spl_elgamal_registry_decode( }; }), observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: "elgamal_registry_wire_invalid".to_string(), message, retriable: false, @@ -116,32 +117,34 @@ pub(crate) fn spl_elgamal_registry_decode( }; let committed = !input.transaction_failed; let wire_hash = hash(bytes.as_slice()); - let event = crate::DecodedProtocolEvent { - signature: crate::Signature(input.signature.clone()), - slot: crate::Slot(input.slot), - instruction_path: crate::InstructionPath(input.instruction_path.clone()), - program_id: crate::ProgramId(input.program_id.clone()), - protocol_code: crate::ProtocolCode(crate::SPL_ELGAMAL_REGISTRY_SURFACE_CODE.to_string()), - surface_code: crate::SurfaceCode(crate::SPL_ELGAMAL_REGISTRY_SURFACE_CODE.to_string()), - event_code: crate::EventCode(format!( + let event = crate::MdDecodedProtocolEvent { + signature: crate::MdSignature(input.signature.clone()), + slot: crate::MdSlot(input.slot), + instruction_path: crate::MdInstructionPath(input.instruction_path.clone()), + program_id: crate::MdProgramId(input.program_id.clone()), + protocol_code: crate::MdProtocolCode( + crate::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE.to_string(), + ), + surface_code: crate::MdSurfaceCode(crate::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE.to_string()), + event_code: crate::MdEventCode(format!( "{}.{}", - crate::SPL_ELGAMAL_REGISTRY_SURFACE_CODE, + crate::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE, parsed.code )), - event_name: crate::EventName(parsed.code.to_string()), - event_family: crate::EventFamily::Admin, + event_name: crate::MdEventName(parsed.code.to_string()), + event_family: crate::MdEventFamily::Admin, source_kind: if input.instruction_path.contains('/') { - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction } else { - crate::EventSourceKind::Instruction + crate::MdEventSourceKind::Instruction }, - confidence: crate::DecoderConfidence::ManualExact, + confidence: crate::MdDecoderConfidence::ManualExact, }; - let observation = crate::DecodedObservation { + let observation = crate::DcApiDecodedObservation { event_key: format!("elgamal_registry:{}:0", parsed.code), event, payload_json: serde_json::json!({ - "eventVersion": crate::SPL_ELGAMAL_REGISTRY_EVENT_VERSION, + "eventVersion": crate::DC_SPL_ELGAMAL_REGISTRY_EVENT_VERSION, "instruction": parsed.code, "wireTag": parsed.tag, "proofInstructionOffset": parsed.proof_instruction_offset, @@ -158,8 +161,8 @@ pub(crate) fn spl_elgamal_registry_decode( "complete": true, }, "programBoundary": { - "registryProgramId": kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID, - "token2022ProgramId": kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + "registryProgramId": kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID, + "token2022ProgramId": kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, "zkProofProgramId": kb_program_ids::ZK_ELGAMAL_PROOF_PROGRAM_ID, "proofDecodedHere": false, } @@ -167,9 +170,9 @@ pub(crate) fn spl_elgamal_registry_decode( transaction_failed: input.transaction_failed, transaction_error: input.transaction_err_json.clone(), observation_committed: committed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: std::vec![ "spl_elgamal_registry_interface_0_2_1_registry_instruction_unpack".to_string(), format!("wire_tag:{}", parsed.tag), @@ -177,8 +180,8 @@ pub(crate) fn spl_elgamal_registry_decode( ], }, }; - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Decoded, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Decoded, recognized_entry_code: std::option::Option::Some(parsed.code.to_string()), observations: std::vec![observation], diagnostics: std::vec::Vec::new(), diff --git a/kb-lib/src/decoder/spl/memo.rs b/kb-lib/src/decoder/spl/memo.rs index d8d0758..81bd068 100644 --- a/kb-lib/src/decoder/spl/memo.rs +++ b/kb-lib/src/decoder/spl/memo.rs @@ -8,23 +8,23 @@ mod decoder; mod payload; /// Maximum payload prefix retained for bounded diagnostics. -pub(crate) use self::constants::SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; +pub(crate) use self::constants::DC_SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; /// Current stable Memo decoded event contract version. -pub(crate) use self::constants::SPL_MEMO_EVENT_VERSION; +pub(crate) use self::constants::DC_SPL_MEMO_EVENT_VERSION; /// Maximum decoded instruction data retained as a complete Memo payload. -pub(crate) use self::constants::SPL_MEMO_MAX_PAYLOAD_BYTES; +pub(crate) use self::constants::DC_SPL_MEMO_MAX_PAYLOAD_BYTES; /// Stable protocol code shared by Memo generations. -pub(crate) use self::constants::SPL_MEMO_PROTOCOL_CODE; +pub(crate) use self::constants::DC_SPL_MEMO_PROTOCOL_CODE; /// Canonical tracing target for the SPL Memo decoder. -pub(crate) use self::constants::SPL_MEMO_TRACING_TARGET; +pub(crate) use self::constants::DC_SPL_MEMO_TRACING_TARGET; /// Stable Memo v1 surface code. -pub(crate) use self::constants::SPL_MEMO_V1_SURFACE_CODE; +pub(crate) use self::constants::DC_SPL_MEMO_V1_SURFACE_CODE; /// Stable Memo v3 surface code. -pub(crate) use self::constants::SPL_MEMO_V3_SURFACE_CODE; +pub(crate) use self::constants::DC_SPL_MEMO_V3_SURFACE_CODE; /// Stable Memo v4 surface code. -pub(crate) use self::constants::SPL_MEMO_V4_SURFACE_CODE; +pub(crate) use self::constants::DC_SPL_MEMO_V4_SURFACE_CODE; /// Decodes one bounded SPL Memo instruction. -pub(crate) use self::payload::decode as spl_memo_decode; +pub(crate) use self::payload::decoder_spl_memo_decode; /// Exact decoder for the three registered SPL Memo generations. -pub use self::decoder::SplMemoDecoder; +pub use self::decoder::DcSplMemoDecoder; diff --git a/kb-lib/src/decoder/spl/memo/constants.rs b/kb-lib/src/decoder/spl/memo/constants.rs index 4ca6148..c64ecc6 100644 --- a/kb-lib/src/decoder/spl/memo/constants.rs +++ b/kb-lib/src/decoder/spl/memo/constants.rs @@ -4,18 +4,18 @@ //! Local constants for the `kb-lib` SPL Memo component. Program identifiers live in `kb_program_ids`. /// Stable protocol code shared by Memo generations. -pub(crate) const SPL_MEMO_PROTOCOL_CODE: &str = "spl_memo"; +pub(crate) const DC_SPL_MEMO_PROTOCOL_CODE: &str = "spl_memo"; /// Stable Memo v1 surface code. -pub(crate) const SPL_MEMO_V1_SURFACE_CODE: &str = "spl_memo_v1"; +pub(crate) const DC_SPL_MEMO_V1_SURFACE_CODE: &str = "spl_memo_v1"; /// Stable Memo v3 surface code. -pub(crate) const SPL_MEMO_V3_SURFACE_CODE: &str = "spl_memo_v3"; +pub(crate) const DC_SPL_MEMO_V3_SURFACE_CODE: &str = "spl_memo_v3"; /// Stable Memo v4 surface code. -pub(crate) const SPL_MEMO_V4_SURFACE_CODE: &str = "spl_memo_v4"; +pub(crate) const DC_SPL_MEMO_V4_SURFACE_CODE: &str = "spl_memo_v4"; /// Maximum decoded instruction data retained as a complete Memo payload. -pub(crate) const SPL_MEMO_MAX_PAYLOAD_BYTES: usize = 4_096; +pub(crate) const DC_SPL_MEMO_MAX_PAYLOAD_BYTES: usize = 4_096; /// Maximum payload prefix retained for bounded diagnostics. -pub(crate) const SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES: usize = 32; +pub(crate) const DC_SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES: usize = 32; /// Current stable Memo decoded event contract version. -pub(crate) const SPL_MEMO_EVENT_VERSION: u32 = 1; +pub(crate) const DC_SPL_MEMO_EVENT_VERSION: u32 = 1; /// Canonical tracing target for this crate. -pub(crate) const SPL_MEMO_TRACING_TARGET: &str = "kb-lib.decoder.spl.memo"; +pub(crate) const DC_SPL_MEMO_TRACING_TARGET: &str = "kb-lib.decoder.spl.memo"; diff --git a/kb-lib/src/decoder/spl/memo/decoder.rs b/kb-lib/src/decoder/spl/memo/decoder.rs index 8d84f8c..d2b167e 100644 --- a/kb-lib/src/decoder/spl/memo/decoder.rs +++ b/kb-lib/src/decoder/spl/memo/decoder.rs @@ -3,20 +3,20 @@ //! Exact SPL Memo v1, v3 and v4 dispatch for the common decode pipeline. -const MEMO_SURFACES: &[crate::DecoderSurface] = &[ - crate::DecoderSurface { +const MEMO_SURFACES: &[crate::DcApiDecoderSurface] = &[ + crate::DcApiDecoderSurface { program_id: kb_program_ids::SPL_MEMO_V1_PROGRAM_ID, - surface_code: crate::SPL_MEMO_V1_SURFACE_CODE, + surface_code: crate::DC_SPL_MEMO_V1_SURFACE_CODE, priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::SPL_MEMO_V3_PROGRAM_ID, - surface_code: crate::SPL_MEMO_V3_SURFACE_CODE, + surface_code: crate::DC_SPL_MEMO_V3_SURFACE_CODE, priority: 100, }, - crate::DecoderSurface { + crate::DcApiDecoderSurface { program_id: kb_program_ids::SPL_MEMO_V4_PROGRAM_ID, - surface_code: crate::SPL_MEMO_V4_SURFACE_CODE, + surface_code: crate::DC_SPL_MEMO_V4_SURFACE_CODE, priority: 100, }, ]; @@ -29,9 +29,9 @@ const LEGACY_PROGRAM_IDS: &[&str] = &[ /// Exact decoder for the three registered SPL Memo generations. #[derive(Clone, Debug, Default)] -pub struct SplMemoDecoder; +pub struct DcSplMemoDecoder; -impl crate::ProtocolDecoder for crate::SplMemoDecoder { +impl crate::DcApiProtocolDecoder for crate::DcSplMemoDecoder { fn decoder_name(&self) -> &'static str { return "kb_decoder_spl_memo"; } @@ -46,42 +46,42 @@ impl crate::ProtocolDecoder for crate::SplMemoDecoder { fn supports_observation( &self, - observation: &crate::ProgramObservation, - ) -> crate::DecoderSupport { - if crate::ProtocolDecoder::handles_program_id(self, &observation.program_id) { - return crate::DecoderSupport::Yes; + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Yes; } - return crate::DecoderSupport::No; + return crate::DcApiDecoderSupport::No; } fn decode_observation( &self, - _observation: &crate::ProgramObservation, - ) -> kb_core::Result> { + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::InstructionDecoder for crate::SplMemoDecoder { - fn identity(&self) -> crate::DecoderIdentity { - return crate::DecoderIdentity { +impl crate::DcApiInstructionDecoder for crate::DcSplMemoDecoder { + fn identity(&self) -> crate::DcApiDecoderIdentity { + return crate::DcApiDecoderIdentity { name: "spl_memo".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn surfaces(&self) -> &'static [crate::DecoderSurface] { + fn surfaces(&self) -> &'static [crate::DcApiDecoderSurface] { return MEMO_SURFACES; } - fn coverage(&self) -> std::vec::Vec { + fn coverage(&self) -> std::vec::Vec { return MEMO_SURFACES .iter() .map(|surface| { - return crate::DecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: surface.program_id.to_string(), surface_code: std::option::Option::Some(surface.surface_code.to_string()), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: "add_memo".to_string(), discriminator_hex: std::option::Option::None, historical: surface.program_id != kb_program_ids::SPL_MEMO_V4_PROGRAM_ID, @@ -90,15 +90,18 @@ impl crate::InstructionDecoder for crate::SplMemoDecoder { .collect(); } - fn recognize(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderRecognition { + fn recognize( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderRecognition { let surface = MEMO_SURFACES .iter() .find(|surface| return surface.program_id == input.program_id); let surface = match surface { std::option::Option::Some(value) => value, - std::option::Option::None => return crate::DecoderRecognition::incompatible(), + std::option::Option::None => return crate::DcApiDecoderRecognition::incompatible(), }; - return crate::DecoderRecognition::compatible( + return crate::DcApiDecoderRecognition::compatible( true, surface.priority, std::option::Option::Some(surface.surface_code.to_string()), @@ -107,17 +110,21 @@ impl crate::InstructionDecoder for crate::SplMemoDecoder { ); } - fn decode(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { + fn decode( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderExecutionResult { if !LEGACY_PROGRAM_IDS.contains(&input.program_id.as_str()) { - return crate::DecoderExecutionResult::unsupported(std::option::Option::None); + return crate::DcApiDecoderExecutionResult::unsupported(std::option::Option::None); } - let result = crate::spl_memo_decode(input); + let result = crate::decoder_spl_memo_decode(input); if matches!( result.status, - crate::DecoderOutcomeStatus::Failed | crate::DecoderOutcomeStatus::Unsupported + crate::DcApiDecoderOutcomeStatus::Failed + | crate::DcApiDecoderOutcomeStatus::Unsupported ) { tracing::error!( - target: crate::SPL_MEMO_TRACING_TARGET, + target: crate::DC_SPL_MEMO_TRACING_TARGET, action = "decode_failure", signature = %input.signature, slot = input.slot, @@ -134,7 +141,7 @@ impl crate::InstructionDecoder for crate::SplMemoDecoder { ); } tracing::debug!( - target: crate::SPL_MEMO_TRACING_TARGET, + target: crate::DC_SPL_MEMO_TRACING_TARGET, action = "decode", signature = %input.signature, instruction_path = %input.instruction_path, @@ -159,8 +166,8 @@ mod tests { keys: serde_json::Value, failed: bool, path: &str, - ) -> crate::CoreInstructionReplayInput { - let result = crate::CoreInstructionReplayInput::new( + ) -> crate::MdCoreInstructionReplayInput { + let result = crate::MdCoreInstructionReplayInput::new( format!("signature:{path}"), "signature", 42, @@ -198,13 +205,13 @@ mod tests { #[test] fn exact_support_and_interface_ids_cover_all_generations() { - let decoder = crate::SplMemoDecoder; + let decoder = crate::DcSplMemoDecoder; assert_eq!(spl_memo_interface::v1::ID.to_string(), kb_program_ids::SPL_MEMO_V1_PROGRAM_ID); assert_eq!(spl_memo_interface::v3::ID.to_string(), kb_program_ids::SPL_MEMO_V3_PROGRAM_ID); assert_eq!(spl_memo_interface::v4::ID.to_string(), kb_program_ids::SPL_MEMO_V4_PROGRAM_ID); - assert_eq!(crate::InstructionDecoder::surfaces(&decoder).len(), 3); + assert_eq!(crate::DcApiInstructionDecoder::surfaces(&decoder).len(), 3); assert!( - crate::InstructionDecoder::coverage(&decoder) + crate::DcApiInstructionDecoder::coverage(&decoder) .iter() .all(|entry| return entry.entry_code == "add_memo") ); @@ -225,8 +232,8 @@ mod tests { false, path, ); - let result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.observations[0].payload_json["payloadLengthBytes"], serde_json::json!(payload.len()) @@ -235,9 +242,9 @@ mod tests { assert_eq!( result.observations[0].event.source_kind, if path.contains('/') { - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction } else { - crate::EventSourceKind::Instruction + crate::MdEventSourceKind::Instruction } ); } @@ -254,7 +261,7 @@ mod tests { false, "0", ); - let v1_result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &v1); + let v1_result = crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &v1); assert_eq!(v1_result.observations[0].event.event_name.0, "add_memo"); assert_eq!( v1_result.observations[0].payload_json["signerValidation"]["status"], @@ -264,7 +271,7 @@ mod tests { [kb_program_ids::SPL_MEMO_V3_PROGRAM_ID, kb_program_ids::SPL_MEMO_V4_PROGRAM_ID] { let input = input(program_id, b"signed", accounts.clone(), keys.clone(), false, "0"); - let result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &input); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &input); assert_eq!(result.observations[0].event.event_name.0, "invalid_memo_attempt"); assert_eq!( result.observations[0].payload_json["signerValidation"]["status"], @@ -284,7 +291,8 @@ mod tests { true, "0", ); - let invalid_result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &invalid); + let invalid_result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &invalid); assert_eq!(invalid_result.observations[0].event.event_name.0, "invalid_memo_attempt"); assert_eq!( invalid_result.observations[0].payload_json["utf8Validation"]["status"], @@ -300,7 +308,7 @@ mod tests { "0", ); let failed_result = - crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &valid_failed); + crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &valid_failed); assert_eq!(failed_result.observations[0].event.event_name.0, "memo_intent"); assert!(!failed_result.observations[0].observation_committed); assert_eq!( @@ -322,7 +330,7 @@ mod tests { ]); let input = input(kb_program_ids::SPL_MEMO_V4_PROGRAM_ID, b"ordered", accounts, keys, false, "0"); - let result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &input); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &input); assert_eq!(result.observations[0].payload_json["accounts"][0]["pubkey"], "first"); assert_eq!(result.observations[0].payload_json["accounts"][0]["writable"], true); assert_eq!(result.observations[0].payload_json["accounts"][2]["pubkey"], "first"); @@ -346,7 +354,7 @@ mod tests { false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &input); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &input); assert_eq!( result.observations[0].payload_json["payloadSha256"], "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" @@ -355,7 +363,7 @@ mod tests { #[test] fn payload_bound_accepts_limit_and_rejects_oversize_and_malformed_base64() { - let at_limit = std::vec![b'x'; crate::SPL_MEMO_MAX_PAYLOAD_BYTES]; + let at_limit = std::vec![b'x'; crate::DC_SPL_MEMO_MAX_PAYLOAD_BYTES]; let cinput = input( kb_program_ids::SPL_MEMO_V4_PROGRAM_ID, at_limit.as_slice(), @@ -364,9 +372,9 @@ mod tests { false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &cinput); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); - let oversize = std::vec![b'x'; crate::SPL_MEMO_MAX_PAYLOAD_BYTES + 1]; + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &cinput); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); + let oversize = std::vec![b'x'; crate::DC_SPL_MEMO_MAX_PAYLOAD_BYTES + 1]; let cinput = input( kb_program_ids::SPL_MEMO_V4_PROGRAM_ID, oversize.as_slice(), @@ -375,8 +383,8 @@ mod tests { false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &cinput); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &cinput); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); let mut malformed = input( kb_program_ids::SPL_MEMO_V4_PROGRAM_ID, b"valid", @@ -387,8 +395,8 @@ mod tests { ); malformed.instruction_payload_json = std::option::Option::Some(serde_json::json!({"dataBase64":"%%%"})); - let result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &malformed); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &malformed); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert!(result.observations.is_empty()); } @@ -402,10 +410,11 @@ mod tests { false, "0", ); - let recognition = crate::InstructionDecoder::recognize(&crate::SplMemoDecoder, &input); + let recognition = + crate::DcApiInstructionDecoder::recognize(&crate::DcSplMemoDecoder, &input); assert!(!recognition.compatible); - let result = crate::InstructionDecoder::decode(&crate::SplMemoDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Unsupported); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplMemoDecoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Unsupported); assert!(result.observations.is_empty()); } diff --git a/kb-lib/src/decoder/spl/memo/payload.rs b/kb-lib/src/decoder/spl/memo/payload.rs index 1eef8e4..93ac339 100644 --- a/kb-lib/src/decoder/spl/memo/payload.rs +++ b/kb-lib/src/decoder/spl/memo/payload.rs @@ -37,9 +37,9 @@ impl MemoGeneration { fn surface_code(self) -> &'static str { return match self { - Self::V1 => crate::SPL_MEMO_V1_SURFACE_CODE, - Self::V3 => crate::SPL_MEMO_V3_SURFACE_CODE, - Self::V4 => crate::SPL_MEMO_V4_SURFACE_CODE, + Self::V1 => crate::DC_SPL_MEMO_V1_SURFACE_CODE, + Self::V3 => crate::DC_SPL_MEMO_V3_SURFACE_CODE, + Self::V4 => crate::DC_SPL_MEMO_V4_SURFACE_CODE, }; } @@ -55,11 +55,13 @@ struct ResolvedAccounts { missing_signers: std::vec::Vec, } -pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { +pub(crate) fn decoder_spl_memo_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { let generation = match MemoGeneration::from_program_id(input.program_id.as_str()) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::DecoderExecutionResult::unsupported(std::option::Option::None); + return crate::DcApiDecoderExecutionResult::unsupported(std::option::Option::None); }, }; let bytes = match decode_payload(input) { @@ -117,28 +119,28 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode std::vec::Vec::new() }; let payload_hash = hash(bytes.as_slice()); - let event = crate::DecodedProtocolEvent { - signature: crate::Signature(input.signature.clone()), - slot: crate::Slot(input.slot), - instruction_path: crate::InstructionPath(input.instruction_path.clone()), - program_id: crate::ProgramId(input.program_id.clone()), - protocol_code: crate::ProtocolCode(crate::SPL_MEMO_PROTOCOL_CODE.to_string()), - surface_code: crate::SurfaceCode(generation.surface_code().to_string()), - event_code: crate::EventCode(format!("{}.{event_name}", generation.surface_code())), - event_name: crate::EventName(event_name.to_string()), - event_family: crate::EventFamily::Audit, + let event = crate::MdDecodedProtocolEvent { + signature: crate::MdSignature(input.signature.clone()), + slot: crate::MdSlot(input.slot), + instruction_path: crate::MdInstructionPath(input.instruction_path.clone()), + program_id: crate::MdProgramId(input.program_id.clone()), + protocol_code: crate::MdProtocolCode(crate::DC_SPL_MEMO_PROTOCOL_CODE.to_string()), + surface_code: crate::MdSurfaceCode(generation.surface_code().to_string()), + event_code: crate::MdEventCode(format!("{}.{event_name}", generation.surface_code())), + event_name: crate::MdEventName(event_name.to_string()), + event_family: crate::MdEventFamily::Audit, source_kind: if input.instruction_path.contains('/') { - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction } else { - crate::EventSourceKind::Instruction + crate::MdEventSourceKind::Instruction }, - confidence: crate::DecoderConfidence::ManualExact, + confidence: crate::MdDecoderConfidence::ManualExact, }; - let observation = crate::DecodedObservation { + let observation = crate::DcApiDecodedObservation { event_key: "memo:0".to_string(), event, payload_json: serde_json::json!({ - "eventVersion": crate::SPL_MEMO_EVENT_VERSION, + "eventVersion": crate::DC_SPL_MEMO_EVENT_VERSION, "generation": generation.code(), "programId": input.program_id, "instructionPath": input.instruction_path, @@ -176,9 +178,9 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode transaction_failed: input.transaction_failed, transaction_error: input.transaction_err_json.clone(), observation_committed: !input.transaction_failed && structurally_valid, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: std::vec![ "spl_memo_exact_raw_instruction_data".to_string(), format!("payload_sha256:{payload_hash}"), @@ -186,15 +188,17 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode ], }, }; - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Decoded, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Decoded, recognized_entry_code: std::option::Option::Some("add_memo".to_string()), observations: std::vec![observation], diagnostics: std::vec::Vec::new(), }; } -fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result> { +fn decode_payload( + input: &crate::MdCoreInstructionReplayInput, +) -> kb_core::Result> { let payload = match input.instruction_payload_json.as_ref() { std::option::Option::Some(value) => value, std::option::Option::None => { @@ -211,7 +215,7 @@ fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result< )); }, }; - let maximum_encoded = crate::SPL_MEMO_MAX_PAYLOAD_BYTES + let maximum_encoded = crate::DC_SPL_MEMO_MAX_PAYLOAD_BYTES .saturating_mul(4) .saturating_div(3) .saturating_add(4); @@ -228,17 +232,17 @@ fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result< ))); }, }; - if decoded.len() > crate::SPL_MEMO_MAX_PAYLOAD_BYTES { + if decoded.len() > crate::DC_SPL_MEMO_MAX_PAYLOAD_BYTES { return std::result::Result::Err(kb_core::Error::invalid_state(format!( "Memo payload exceeds {} decoded bytes", - crate::SPL_MEMO_MAX_PAYLOAD_BYTES + crate::DC_SPL_MEMO_MAX_PAYLOAD_BYTES ))); } return std::result::Result::Ok(decoded); } fn resolve_accounts( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, ) -> kb_core::Result { let instruction_accounts = match input.instruction_accounts_json.as_array() { std::option::Option::Some(value) => value, @@ -349,7 +353,7 @@ fn hash(bytes: &[u8]) -> std::string::String { } fn hex_prefix(bytes: &[u8]) -> std::string::String { - let length = std::cmp::min(bytes.len(), crate::SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES); + let length = std::cmp::min(bytes.len(), crate::DC_SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES); let mut output = std::string::String::with_capacity(length.saturating_mul(2)); for byte in &bytes[..length] { output.push_str(format!("{byte:02x}").as_str()); @@ -357,12 +361,12 @@ fn hex_prefix(bytes: &[u8]) -> std::string::String { return output; } -fn failed(code: &str, message: std::string::String) -> crate::DecoderExecutionResult { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Failed, +fn failed(code: &str, message: std::string::String) -> crate::DcApiDecoderExecutionResult { + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Failed, recognized_entry_code: std::option::Option::Some("add_memo".to_string()), observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: code.to_string(), message, retriable: false, diff --git a/kb-lib/src/decoder/spl/noop.rs b/kb-lib/src/decoder/spl/noop.rs index 6730263..48c8360 100644 --- a/kb-lib/src/decoder/spl/noop.rs +++ b/kb-lib/src/decoder/spl/noop.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_spl_noop`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_spl_noop"; +const LEGACY_CRATE: &str = "kb_decoder_spl_noop"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/spl/single_pool.rs b/kb-lib/src/decoder/spl/single_pool.rs index 48cfd2a..5438ec3 100644 --- a/kb-lib/src/decoder/spl/single_pool.rs +++ b/kb-lib/src/decoder/spl/single_pool.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_spl_single_pool`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_spl_single_pool"; +const LEGACY_CRATE: &str = "kb_decoder_spl_single_pool"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/spl/stake_pool.rs b/kb-lib/src/decoder/spl/stake_pool.rs index e0b82b3..3888d2d 100644 --- a/kb-lib/src/decoder/spl/stake_pool.rs +++ b/kb-lib/src/decoder/spl/stake_pool.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_spl_stake_pool`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_spl_stake_pool"; +const LEGACY_CRATE: &str = "kb_decoder_spl_stake_pool"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/spl/token.rs b/kb-lib/src/decoder/spl/token.rs index 2fd64af..3a22eca 100644 --- a/kb-lib/src/decoder/spl/token.rs +++ b/kb-lib/src/decoder/spl/token.rs @@ -8,27 +8,27 @@ mod decoder; mod wire; /// Maximum prefix retained in bounded diagnostics. -pub(crate) use self::constants::SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES; +pub(crate) use self::constants::DC_SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES; /// Current stable decoded event contract version. -pub(crate) use self::constants::SPL_TOKEN_EVENT_VERSION; +pub(crate) use self::constants::DC_SPL_TOKEN_EVENT_VERSION; /// One exact instruction entry published by `spl-token-interface` 3.0.0. -pub(crate) use self::constants::SPL_TOKEN_INSTRUCTION_ENTRIES; +pub(crate) use self::constants::DC_SPL_TOKEN_INSTRUCTION_ENTRIES; /// Maximum total account metas consumed by one batch. -pub(crate) use self::constants::SPL_TOKEN_MAX_BATCH_ACCOUNTS; +pub(crate) use self::constants::DC_SPL_TOKEN_MAX_BATCH_ACCOUNTS; /// Maximum decoded sub-instructions in one batch. -pub(crate) use self::constants::SPL_TOKEN_MAX_BATCH_INSTRUCTIONS; +pub(crate) use self::constants::DC_SPL_TOKEN_MAX_BATCH_INSTRUCTIONS; /// Maximum retained instruction payload size. -pub(crate) use self::constants::SPL_TOKEN_MAX_INSTRUCTION_BYTES; +pub(crate) use self::constants::DC_SPL_TOKEN_MAX_INSTRUCTION_BYTES; /// Stable protocol and surface code for the classic SPL Token program. -pub(crate) use self::constants::SPL_TOKEN_SURFACE_CODE; +pub(crate) use self::constants::DC_SPL_TOKEN_SURFACE_CODE; /// Canonical tracing target for the classic SPL Token decoder. -pub(crate) use self::constants::SPL_TOKEN_TRACING_TARGET; +pub(crate) use self::constants::DC_SPL_TOKEN_TRACING_TARGET; /// Decodes one bounded classic SPL Token instruction. -pub(crate) use self::wire::decode as spl_token_decode; +pub(crate) use self::wire::decoder_spl_token_decode; /// Returns the published entry matching one classic SPL Token tag. -pub(crate) use self::wire::entry_for_tag as spl_token_entry_for_tag; +pub(crate) use self::wire::decoder_spl_token_entry_for_tag; /// Returns the first byte of one retained classic SPL Token payload. -pub(crate) use self::wire::payload_tag as spl_token_payload_tag; +pub(crate) use self::wire::decoder_spl_token_payload_tag; /// Exact decoder for the classic SPL Token program. -pub use self::decoder::SplTokenDecoder; +pub use self::decoder::DcSplTokenDecoder; diff --git a/kb-lib/src/decoder/spl/token/constants.rs b/kb-lib/src/decoder/spl/token/constants.rs index 2fd5169..65e20e0 100644 --- a/kb-lib/src/decoder/spl/token/constants.rs +++ b/kb-lib/src/decoder/spl/token/constants.rs @@ -4,19 +4,19 @@ //! Local constants for the `kb-lib` SPL Token component. Program identifiers live in `kb_program_ids`. /// Stable protocol and surface code for the classic SPL Token program. -pub(crate) const SPL_TOKEN_SURFACE_CODE: &str = "spl_token"; +pub(crate) const DC_SPL_TOKEN_SURFACE_CODE: &str = "spl_token"; /// Current stable decoded event contract version. -pub(crate) const SPL_TOKEN_EVENT_VERSION: u32 = 1; +pub(crate) const DC_SPL_TOKEN_EVENT_VERSION: u32 = 1; /// Maximum retained instruction payload size. -pub(crate) const SPL_TOKEN_MAX_INSTRUCTION_BYTES: usize = 16_384; +pub(crate) const DC_SPL_TOKEN_MAX_INSTRUCTION_BYTES: usize = 16_384; /// Maximum prefix retained in diagnostics. -pub(crate) const SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES: usize = 32; +pub(crate) const DC_SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES: usize = 32; /// Maximum decoded sub-instructions in one batch. -pub(crate) const SPL_TOKEN_MAX_BATCH_INSTRUCTIONS: usize = 64; +pub(crate) const DC_SPL_TOKEN_MAX_BATCH_INSTRUCTIONS: usize = 64; /// Maximum total account metas consumed by one batch. -pub(crate) const SPL_TOKEN_MAX_BATCH_ACCOUNTS: usize = 512; +pub(crate) const DC_SPL_TOKEN_MAX_BATCH_ACCOUNTS: usize = 512; /// One exact instruction entry published by `spl-token-interface` 3.0.0. -pub(crate) const SPL_TOKEN_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ +pub(crate) const DC_SPL_TOKEN_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ (0, "initialize_mint", true), (1, "initialize_account", true), (2, "initialize_multisig", true), @@ -47,4 +47,4 @@ pub(crate) const SPL_TOKEN_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ (255, "batch", false), ]; /// Canonical tracing target for this crate. -pub(crate) const SPL_TOKEN_TRACING_TARGET: &str = "kb-lib.decoder.spl.token"; +pub(crate) const DC_SPL_TOKEN_TRACING_TARGET: &str = "kb-lib.decoder.spl.token"; diff --git a/kb-lib/src/decoder/spl/token/decoder.rs b/kb-lib/src/decoder/spl/token/decoder.rs index 856b137..a0a02f6 100644 --- a/kb-lib/src/decoder/spl/token/decoder.rs +++ b/kb-lib/src/decoder/spl/token/decoder.rs @@ -3,9 +3,9 @@ //! Exact classic SPL Token dispatch for the common decode pipeline. -const TOKEN_SURFACES: &[crate::DecoderSurface] = &[crate::DecoderSurface { +const TOKEN_SURFACES: &[crate::DcApiDecoderSurface] = &[crate::DcApiDecoderSurface { program_id: kb_program_ids::SPL_TOKEN_PROGRAM_ID, - surface_code: crate::SPL_TOKEN_SURFACE_CODE, + surface_code: crate::DC_SPL_TOKEN_SURFACE_CODE, priority: 100, }]; @@ -13,9 +13,9 @@ const PROGRAM_IDS: &[&str] = &[kb_program_ids::SPL_TOKEN_PROGRAM_ID]; /// Exact decoder for the classic SPL Token program. #[derive(Clone, Debug, Default)] -pub struct SplTokenDecoder; +pub struct DcSplTokenDecoder; -impl crate::ProtocolDecoder for crate::SplTokenDecoder { +impl crate::DcApiProtocolDecoder for crate::DcSplTokenDecoder { fn decoder_name(&self) -> &'static str { return "kb_decoder_spl_token"; } @@ -30,45 +30,45 @@ impl crate::ProtocolDecoder for crate::SplTokenDecoder { fn supports_observation( &self, - observation: &crate::ProgramObservation, - ) -> crate::DecoderSupport { - return if crate::ProtocolDecoder::handles_program_id(self, &observation.program_id) { - crate::DecoderSupport::Yes + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + return if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + crate::DcApiDecoderSupport::Yes } else { - crate::DecoderSupport::No + crate::DcApiDecoderSupport::No }; } fn decode_observation( &self, - _observation: &crate::ProgramObservation, - ) -> kb_core::Result> { + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::InstructionDecoder for crate::SplTokenDecoder { - fn identity(&self) -> crate::DecoderIdentity { - return crate::DecoderIdentity { +impl crate::DcApiInstructionDecoder for crate::DcSplTokenDecoder { + fn identity(&self) -> crate::DcApiDecoderIdentity { + return crate::DcApiDecoderIdentity { name: "spl_token".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn surfaces(&self) -> &'static [crate::DecoderSurface] { + fn surfaces(&self) -> &'static [crate::DcApiDecoderSurface] { return TOKEN_SURFACES; } - fn coverage(&self) -> std::vec::Vec { - return crate::SPL_TOKEN_INSTRUCTION_ENTRIES + fn coverage(&self) -> std::vec::Vec { + return crate::DC_SPL_TOKEN_INSTRUCTION_ENTRIES .iter() .map(|(tag, code, historical)| { - return crate::DecoderCoverageDeclaration { + return crate::DcApiDecoderCoverageDeclaration { program_id: kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SPL_TOKEN_SURFACE_CODE.to_string(), + crate::DC_SPL_TOKEN_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: (*code).to_string(), discriminator_hex: std::option::Option::Some(format!("{tag:02x}")), historical: *historical, @@ -77,32 +77,39 @@ impl crate::InstructionDecoder for crate::SplTokenDecoder { .collect(); } - fn recognize(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderRecognition { + fn recognize( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderRecognition { if input.program_id != kb_program_ids::SPL_TOKEN_PROGRAM_ID { - return crate::DecoderRecognition::incompatible(); + return crate::DcApiDecoderRecognition::incompatible(); } - let tag = crate::spl_token_payload_tag(input); - let entry = tag.and_then(crate::spl_token_entry_for_tag); - return crate::DecoderRecognition::compatible( + let tag = crate::decoder_spl_token_payload_tag(input); + let entry = tag.and_then(crate::decoder_spl_token_entry_for_tag); + return crate::DcApiDecoderRecognition::compatible( entry.is_some(), 100, - std::option::Option::Some(crate::SPL_TOKEN_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SPL_TOKEN_SURFACE_CODE.to_string()), entry.map(|(_, code, _)| return code.to_string()), tag.map(|value| return format!("{value:02x}")), ); } - fn decode(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { + fn decode( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderExecutionResult { if input.program_id != kb_program_ids::SPL_TOKEN_PROGRAM_ID { - return crate::DecoderExecutionResult::unsupported(std::option::Option::None); + return crate::DcApiDecoderExecutionResult::unsupported(std::option::Option::None); } - let result = crate::spl_token_decode(input); + let result = crate::decoder_spl_token_decode(input); if matches!( result.status, - crate::DecoderOutcomeStatus::Failed | crate::DecoderOutcomeStatus::Unsupported + crate::DcApiDecoderOutcomeStatus::Failed + | crate::DcApiDecoderOutcomeStatus::Unsupported ) { tracing::error!( - target: crate::SPL_TOKEN_TRACING_TARGET, + target: crate::DC_SPL_TOKEN_TRACING_TARGET, action = "decode_failure", signature = %input.signature, slot = input.slot, @@ -118,7 +125,7 @@ impl crate::InstructionDecoder for crate::SplTokenDecoder { ); } tracing::debug!( - target: crate::SPL_TOKEN_TRACING_TARGET, + target: crate::DC_SPL_TOKEN_TRACING_TARGET, action = "decode", signature = %input.signature, instruction_path = %input.instruction_path, @@ -142,8 +149,8 @@ mod tests { keys: serde_json::Value, failed: bool, path: &str, - ) -> crate::CoreInstructionReplayInput { - let result = crate::CoreInstructionReplayInput::new( + ) -> crate::MdCoreInstructionReplayInput { + let result = crate::MdCoreInstructionReplayInput::new( format!("signature:{path}"), "signature", 42, @@ -219,21 +226,21 @@ mod tests { #[test] fn exact_support_program_id_and_interface_match() { assert_eq!(spl_token_interface::ID.to_string(), kb_program_ids::SPL_TOKEN_PROGRAM_ID); - let decoder = crate::SplTokenDecoder; - assert_eq!(crate::InstructionDecoder::surfaces(&decoder).len(), 1); - let observation = crate::ProgramObservation { - signature: crate::Signature("signature".to_string()), - slot: crate::Slot(1), - instruction_path: crate::InstructionPath("0".to_string()), - program_id: crate::ProgramId(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()), + let decoder = crate::DcSplTokenDecoder; + assert_eq!(crate::DcApiInstructionDecoder::surfaces(&decoder).len(), 1); + 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(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()), discriminator_8: std::option::Option::None, data_len: 1, accounts_len: 0, failed: false, }; assert_eq!( - crate::ProtocolDecoder::supports_observation(&decoder, &observation), - crate::DecoderSupport::Yes + crate::DcApiProtocolDecoder::supports_observation(&decoder, &observation), + crate::DcApiDecoderSupport::Yes ); } @@ -257,12 +264,12 @@ mod tests { ); }) .collect::>(); - let compiled_entries = crate::SPL_TOKEN_INSTRUCTION_ENTRIES + let compiled_entries = crate::DC_SPL_TOKEN_INSTRUCTION_ENTRIES .iter() .map(|(tag, code, _)| return (*tag, *code)) .collect::>(); assert_eq!(matrix_entries, compiled_entries); - assert_eq!(crate::InstructionDecoder::coverage(&crate::SplTokenDecoder).len(), 28); + assert_eq!(crate::DcApiInstructionDecoder::coverage(&crate::DcSplTokenDecoder).len(), 28); } #[test] @@ -324,7 +331,7 @@ mod tests { #[test] fn every_published_tag_decodes_and_matches_official_unpack() { - for (tag, code, _) in crate::SPL_TOKEN_INSTRUCTION_ENTRIES { + for (tag, code, _) in crate::DC_SPL_TOKEN_INSTRUCTION_ENTRIES { let wire = minimal_wire(*tag); let official = spl_token_interface::instruction::TokenInstruction::unpack(&wire); assert!(official.is_ok(), "official unpack rejected tag {tag}"); @@ -336,8 +343,8 @@ mod tests { false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplTokenDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplTokenDecoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.recognized_entry_code.as_deref(), std::option::Option::Some(*code)); } } @@ -364,8 +371,8 @@ mod tests { true, "2/1", ); - let result = crate::InstructionDecoder::decode(&crate::SplTokenDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplTokenDecoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert!(!result.observations[0].observation_committed); assert_eq!( result.observations[0].payload_json["parameters"]["amountRaw"], @@ -374,7 +381,7 @@ mod tests { assert_eq!(result.observations[0].payload_json["inference"]["mintInvented"], false); assert_eq!( result.observations[0].event.source_kind, - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction ); } @@ -390,8 +397,9 @@ mod tests { false, "0", ); - let suffix_result = crate::InstructionDecoder::decode(&crate::SplTokenDecoder, &suffix); - assert_eq!(suffix_result.status, crate::DecoderOutcomeStatus::Decoded); + let suffix_result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplTokenDecoder, &suffix); + assert_eq!(suffix_result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(suffix_result.observations[0].payload_json["wire"]["suffixLengthBytes"], 2); for wire in [std::vec::Vec::new(), std::vec![3, 1], std::vec![24, 0xff], std::vec![255]] { let input = input( @@ -402,8 +410,8 @@ mod tests { false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplTokenDecoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplTokenDecoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert!(result.observations.is_empty()); } let unknown = input( @@ -414,8 +422,8 @@ mod tests { false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplTokenDecoder, &unknown); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Unsupported); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplTokenDecoder, &unknown); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Unsupported); assert!(!result.diagnostics.is_empty()); } @@ -432,8 +440,8 @@ mod tests { false, "4/2", ); - let result = crate::InstructionDecoder::decode(&crate::SplTokenDecoder, &cinput); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplTokenDecoder, &cinput); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.observations.len(), 3); assert_eq!(result.observations[1].event.instruction_path.0, "4/2/batch/0"); assert_eq!(result.observations[2].event.instruction_path.0, "4/2/batch/1"); @@ -446,8 +454,9 @@ mod tests { false, "0", ); - let nested_result = crate::InstructionDecoder::decode(&crate::SplTokenDecoder, &nested); - assert_eq!(nested_result.status, crate::DecoderOutcomeStatus::Failed); + let nested_result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplTokenDecoder, &nested); + assert_eq!(nested_result.status, crate::DcApiDecoderOutcomeStatus::Failed); } #[test] @@ -471,7 +480,8 @@ mod tests { false, "0", ); - let simple_result = crate::InstructionDecoder::decode(&crate::SplTokenDecoder, &simple); + let simple_result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplTokenDecoder, &simple); assert_eq!(simple_result.observations[0].payload_json["authority"]["form"], "single"); let mut multisig_accounts = simple_accounts.as_array().cloned().unwrap_or_default(); multisig_accounts @@ -490,7 +500,8 @@ mod tests { false, "0", ); - let multisig_result = crate::InstructionDecoder::decode(&crate::SplTokenDecoder, &multisig); + let multisig_result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplTokenDecoder, &multisig); assert_eq!(multisig_result.observations[0].payload_json["authority"]["form"], "multisig"); assert_eq!( multisig_result.observations[0].payload_json["authority"]["statefulMultisigValidation"], diff --git a/kb-lib/src/decoder/spl/token/wire.rs b/kb-lib/src/decoder/spl/token/wire.rs index e408de2..27bbfef 100644 --- a/kb-lib/src/decoder/spl/token/wire.rs +++ b/kb-lib/src/decoder/spl/token/wire.rs @@ -24,19 +24,25 @@ struct ResolvedAccount { source: serde_json::Value, } -pub(crate) fn entry_for_tag(tag: u8) -> std::option::Option<(u8, &'static str, bool)> { - return crate::SPL_TOKEN_INSTRUCTION_ENTRIES +pub(crate) fn decoder_spl_token_entry_for_tag( + tag: u8, +) -> std::option::Option<(u8, &'static str, bool)> { + return crate::DC_SPL_TOKEN_INSTRUCTION_ENTRIES .iter() .copied() .find(|(candidate, _, _)| return *candidate == tag); } -pub(crate) fn payload_tag(input: &crate::CoreInstructionReplayInput) -> std::option::Option { +pub(crate) fn decoder_spl_token_payload_tag( + input: &crate::MdCoreInstructionReplayInput, +) -> std::option::Option { let bytes = decode_payload(input).ok(); return bytes.and_then(|value| return value.first().copied()); } -pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { +pub(crate) fn decoder_spl_token_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { let bytes = match decode_payload(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { @@ -57,14 +63,14 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode ); }, }; - let entry = match crate::spl_token_entry_for_tag(tag) { + let entry = match crate::decoder_spl_token_entry_for_tag(tag) { std::option::Option::Some(value) => value, std::option::Option::None => { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Unsupported, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Unsupported, recognized_entry_code: std::option::Option::None, observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: "unknown_token_instruction_tag".to_string(), message: format!( "unknown classic SPL Token tag {tag}; payloadPrefixHex={}", @@ -132,15 +138,17 @@ pub(crate) fn decode(input: &crate::CoreInstructionReplayInput) -> crate::Decode ); let mut observations = std::vec![parent]; observations.extend(batch_children); - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Decoded, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Decoded, recognized_entry_code: std::option::Option::Some(parsed.code.to_string()), observations, diagnostics: std::vec::Vec::new(), }; } -fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result> { +fn decode_payload( + input: &crate::MdCoreInstructionReplayInput, +) -> kb_core::Result> { let payload = match input.instruction_payload_json.as_ref() { std::option::Option::Some(value) => value, std::option::Option::None => { @@ -157,7 +165,7 @@ fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result< )); }, }; - let maximum_encoded = crate::SPL_TOKEN_MAX_INSTRUCTION_BYTES + let maximum_encoded = crate::DC_SPL_TOKEN_MAX_INSTRUCTION_BYTES .saturating_mul(4) .saturating_div(3) .saturating_add(4); @@ -174,10 +182,10 @@ fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result< ))); }, }; - if decoded.len() > crate::SPL_TOKEN_MAX_INSTRUCTION_BYTES { + if decoded.len() > crate::DC_SPL_TOKEN_MAX_INSTRUCTION_BYTES { return std::result::Result::Err(kb_core::Error::invalid_state(format!( "classic SPL Token payload exceeds {} decoded bytes", - crate::SPL_TOKEN_MAX_INSTRUCTION_BYTES + crate::DC_SPL_TOKEN_MAX_INSTRUCTION_BYTES ))); } return std::result::Result::Ok(decoded); @@ -193,7 +201,7 @@ fn parse_instruction( return std::result::Result::Err("empty instruction".to_string()); }, }; - let code = match crate::spl_token_entry_for_tag(tag) { + let code = match crate::decoder_spl_token_entry_for_tag(tag) { std::option::Option::Some((_, value, _)) => value, std::option::Option::None => { return std::result::Result::Err(format!("unknown instruction tag {tag}")); @@ -452,7 +460,7 @@ fn one_parameter(field: &str, value: serde_json::Value) -> serde_json::Value { } fn resolve_accounts( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, ) -> kb_core::Result> { let instruction_accounts = match input.instruction_accounts_json.as_array() { std::option::Option::Some(value) => value, @@ -757,7 +765,7 @@ fn valid_account_count(code: &str, count: usize) -> bool { #[allow(clippy::too_many_arguments)] fn observation( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, code: &str, tag: u8, parameters: serde_json::Value, @@ -769,31 +777,31 @@ fn observation( committed: bool, event_key: std::string::String, instruction_path: std::string::String, - family: crate::EventFamily, -) -> crate::DecodedObservation { + family: crate::MdEventFamily, +) -> crate::DcApiDecodedObservation { let wire_hash = hash(wire); - let event = crate::DecodedProtocolEvent { - signature: crate::Signature(input.signature.clone()), - slot: crate::Slot(input.slot), - instruction_path: crate::InstructionPath(instruction_path.clone()), - program_id: crate::ProgramId(input.program_id.clone()), - protocol_code: crate::ProtocolCode(crate::SPL_TOKEN_SURFACE_CODE.to_string()), - surface_code: crate::SurfaceCode(crate::SPL_TOKEN_SURFACE_CODE.to_string()), - event_code: crate::EventCode(format!("{}.{}", crate::SPL_TOKEN_SURFACE_CODE, code)), - event_name: crate::EventName(code.to_string()), + let event = crate::MdDecodedProtocolEvent { + signature: crate::MdSignature(input.signature.clone()), + slot: crate::MdSlot(input.slot), + instruction_path: crate::MdInstructionPath(instruction_path.clone()), + program_id: crate::MdProgramId(input.program_id.clone()), + protocol_code: crate::MdProtocolCode(crate::DC_SPL_TOKEN_SURFACE_CODE.to_string()), + surface_code: crate::MdSurfaceCode(crate::DC_SPL_TOKEN_SURFACE_CODE.to_string()), + event_code: crate::MdEventCode(format!("{}.{}", crate::DC_SPL_TOKEN_SURFACE_CODE, code)), + event_name: crate::MdEventName(code.to_string()), event_family: family, source_kind: if input.instruction_path.contains('/') { - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction } else { - crate::EventSourceKind::Instruction + crate::MdEventSourceKind::Instruction }, - confidence: crate::DecoderConfidence::ManualExact, + confidence: crate::MdDecoderConfidence::ManualExact, }; - return crate::DecodedObservation { + return crate::DcApiDecodedObservation { event_key, event, payload_json: serde_json::json!({ - "eventVersion": crate::SPL_TOKEN_EVENT_VERSION, + "eventVersion": crate::DC_SPL_TOKEN_EVENT_VERSION, "programId": input.program_id, "instruction": code, "wireTag": tag, @@ -826,9 +834,9 @@ fn observation( transaction_failed: input.transaction_failed, transaction_error: input.transaction_err_json.clone(), observation_committed: committed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: std::vec![ "spl_token_interface_3_0_0_wire_audit".to_string(), format!("wire_tag:{tag}"), @@ -839,11 +847,11 @@ fn observation( } fn batch_observations( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], accounts: &[ResolvedAccount], ) -> std::result::Result< - (std::vec::Vec, serde_json::Value), + (std::vec::Vec, serde_json::Value), std::string::String, > { if bytes.len() == 1 { @@ -855,10 +863,10 @@ fn batch_observations( let mut observations = std::vec::Vec::new(); let mut manifest = std::vec::Vec::new(); while cursor < bytes.len() { - if index >= crate::SPL_TOKEN_MAX_BATCH_INSTRUCTIONS { + if index >= crate::DC_SPL_TOKEN_MAX_BATCH_INSTRUCTIONS { return std::result::Result::Err(format!( "Batch exceeds {} sub-instructions", - crate::SPL_TOKEN_MAX_BATCH_INSTRUCTIONS + crate::DC_SPL_TOKEN_MAX_BATCH_INSTRUCTIONS )); } let account_count = match bytes.get(cursor).copied() { @@ -889,7 +897,7 @@ fn batch_observations( }, }; let account_end = account_cursor.saturating_add(account_count); - if account_end > crate::SPL_TOKEN_MAX_BATCH_ACCOUNTS || account_end > accounts.len() { + if account_end > crate::DC_SPL_TOKEN_MAX_BATCH_ACCOUNTS || account_end > accounts.len() { return std::result::Result::Err(format!( "Batch entry {index} account slice exceeds provided accounts or bound" )); @@ -947,19 +955,19 @@ fn batch_observations( )); } -fn event_family(code: &str) -> crate::EventFamily { +fn event_family(code: &str) -> crate::MdEventFamily { return match code { "set_authority" | "initialize_multisig" | "initialize_multisig2" => { - crate::EventFamily::Admin + crate::MdEventFamily::Admin }, "initialize_mint" | "initialize_mint2" | "mint_to" | "mint_to_checked" => { - crate::EventFamily::TokenMint + crate::MdEventFamily::TokenMint }, - "burn" | "burn_checked" => crate::EventFamily::TokenBurn, + "burn" | "burn_checked" => crate::MdEventFamily::TokenBurn, "batch" | "get_account_data_size" | "amount_to_ui_amount" | "ui_amount_to_amount" => { - crate::EventFamily::Audit + crate::MdEventFamily::Audit }, - _ => crate::EventFamily::TokenAccount, + _ => crate::MdEventFamily::TokenAccount, }; } @@ -973,7 +981,7 @@ fn hash(bytes: &[u8]) -> std::string::String { } fn hex_prefix(bytes: &[u8]) -> std::string::String { - let length = std::cmp::min(bytes.len(), crate::SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES); + let length = std::cmp::min(bytes.len(), crate::DC_SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES); let mut output = std::string::String::with_capacity(length.saturating_mul(2)); for byte in &bytes[..length] { output.push_str(format!("{byte:02x}").as_str()); @@ -985,12 +993,12 @@ fn failed( entry_code: std::option::Option<&str>, code: &str, message: std::string::String, -) -> crate::DecoderExecutionResult { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Failed, +) -> crate::DcApiDecoderExecutionResult { + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Failed, recognized_entry_code: entry_code.map(str::to_string), observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: code.to_string(), message, retriable: false, diff --git a/kb-lib/src/decoder/spl/token_2022.rs b/kb-lib/src/decoder/spl/token2022.rs similarity index 50% rename from kb-lib/src/decoder/spl/token_2022.rs rename to kb-lib/src/decoder/spl/token2022.rs index 7a50e46..ba7b28e 100644 --- a/kb-lib/src/decoder/spl/token_2022.rs +++ b/kb-lib/src/decoder/spl/token2022.rs @@ -1,4 +1,4 @@ -// file: kb-lib/src/decoder/spl/token_2022.rs +// file: kb-lib/src/decoder/spl/token2022.rs // version: 2 //! Exact Token-2022 instruction and state decoder component. @@ -9,37 +9,37 @@ mod state; mod wire; /// Maximum prefix retained in bounded Token-2022 diagnostics. -pub(crate) use self::constants::SPL_TOKEN_2022_DIAGNOSTIC_PREFIX_BYTES; +pub(crate) use self::constants::DC_SPL_TOKEN2022_DIAGNOSTIC_PREFIX_BYTES; /// Current stable Token-2022 decoded event contract version. -pub(crate) use self::constants::SPL_TOKEN_2022_EVENT_VERSION; +pub(crate) use self::constants::DC_SPL_TOKEN2022_EVENT_VERSION; /// Exact top-level instruction inventory published by the resolved Token-2022 interface. -pub(crate) use self::constants::SPL_TOKEN_2022_INSTRUCTION_ENTRIES; +pub(crate) use self::constants::DC_SPL_TOKEN2022_INSTRUCTION_ENTRIES; /// Maximum total account metas consumed by one Token-2022 batch. -pub(crate) use self::constants::SPL_TOKEN_2022_MAX_BATCH_ACCOUNTS; +pub(crate) use self::constants::DC_SPL_TOKEN2022_MAX_BATCH_ACCOUNTS; /// Maximum decoded sub-instructions in one Token-2022 batch. -pub(crate) use self::constants::SPL_TOKEN_2022_MAX_BATCH_INSTRUCTIONS; +pub(crate) use self::constants::DC_SPL_TOKEN2022_MAX_BATCH_INSTRUCTIONS; /// Maximum retained Token-2022 instruction payload size. -pub(crate) use self::constants::SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES; +pub(crate) use self::constants::DC_SPL_TOKEN2022_MAX_INSTRUCTION_BYTES; /// Maximum retained UTF-8 string size for embedded Token Metadata instructions. -pub(crate) use self::constants::SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES; +pub(crate) use self::constants::DC_SPL_TOKEN2022_MAX_METADATA_STRING_BYTES; /// Stable Token-2022 surface code. -pub(crate) use self::constants::SPL_TOKEN_2022_SURFACE_CODE; +pub(crate) use self::constants::DC_SPL_TOKEN2022_SURFACE_CODE; /// Canonical tracing target for the Token-2022 decoder. -pub(crate) use self::constants::SPL_TOKEN_2022_TRACING_TARGET; +pub(crate) use self::constants::DC_SPL_TOKEN2022_TRACING_TARGET; /// Decodes one bounded Token-2022 instruction. -pub(crate) use self::wire::spl_token_2022_decode; +pub(crate) use self::wire::decoder_spl_token2022_decode; /// Returns the exact entry matching one Token-2022 tag. -pub(crate) use self::wire::spl_token_2022_entry_for_tag; +pub(crate) use self::wire::decoder_spl_token2022_entry_for_tag; /// Returns the first byte of one retained Token-2022 payload. -pub(crate) use self::wire::spl_token_2022_payload_tag; +pub(crate) use self::wire::decoder_spl_token2022_payload_tag; /// Exact decoder for the Token-2022 program. -pub use self::decoder::SplToken2022Decoder; +pub use self::decoder::DcSplToken2022Decoder; /// Parsed Token-2022 Mint, Account, or Multisig state. -pub use self::state::Token2022State; +pub use self::state::DcToken2022State; /// Exact Token-2022 base account state kind. -pub use self::state::Token2022StateKind; +pub use self::state::DcToken2022StateKind; /// One exact Token-2022 TLV entry. -pub use self::state::Token2022TlvEntry; +pub use self::state::DcToken2022TlvEntry; /// Parses one Token-2022 Mint, Account, or Multisig state. -pub use self::state::parse_token_2022_state; +pub use self::state::decoder_spl_token2022_parse_token2022_state; diff --git a/kb-lib/src/decoder/spl/token_2022/constants.rs b/kb-lib/src/decoder/spl/token2022/constants.rs similarity index 78% rename from kb-lib/src/decoder/spl/token_2022/constants.rs rename to kb-lib/src/decoder/spl/token2022/constants.rs index 5340103..f464bbb 100644 --- a/kb-lib/src/decoder/spl/token_2022/constants.rs +++ b/kb-lib/src/decoder/spl/token2022/constants.rs @@ -1,24 +1,24 @@ -// file: kb-lib/src/decoder/spl/token_2022/constants.rs +// file: kb-lib/src/decoder/spl/token2022/constants.rs // version: 1 //! Local constants for the exact Token-2022 decoder. Program identifiers live in `kb_program_ids`. /// Stable Token-2022 surface code. -pub(crate) const SPL_TOKEN_2022_SURFACE_CODE: &str = "spl_token_2022"; +pub(crate) const DC_SPL_TOKEN2022_SURFACE_CODE: &str = "spl_token2022"; /// Current decoded event contract version. -pub(crate) const SPL_TOKEN_2022_EVENT_VERSION: u32 = 1; +pub(crate) const DC_SPL_TOKEN2022_EVENT_VERSION: u32 = 1; /// Maximum retained instruction payload size. -pub(crate) const SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES: usize = 16_384; +pub(crate) const DC_SPL_TOKEN2022_MAX_INSTRUCTION_BYTES: usize = 16_384; /// Maximum retained UTF-8 string size for embedded Token Metadata instructions. -pub(crate) const SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES: usize = 4_096; +pub(crate) const DC_SPL_TOKEN2022_MAX_METADATA_STRING_BYTES: usize = 4_096; /// Maximum prefix retained in diagnostics. -pub(crate) const SPL_TOKEN_2022_DIAGNOSTIC_PREFIX_BYTES: usize = 32; +pub(crate) const DC_SPL_TOKEN2022_DIAGNOSTIC_PREFIX_BYTES: usize = 32; /// Maximum decoded sub-instructions in one batch. -pub(crate) const SPL_TOKEN_2022_MAX_BATCH_INSTRUCTIONS: usize = 64; +pub(crate) const DC_SPL_TOKEN2022_MAX_BATCH_INSTRUCTIONS: usize = 64; /// Maximum total account metas consumed by one batch. -pub(crate) const SPL_TOKEN_2022_MAX_BATCH_ACCOUNTS: usize = 512; +pub(crate) const DC_SPL_TOKEN2022_MAX_BATCH_ACCOUNTS: usize = 512; /// Exact top-level instruction inventory published by the resolved Token-2022 interface. -pub(crate) const SPL_TOKEN_2022_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ +pub(crate) const DC_SPL_TOKEN2022_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ (0, "initialize_mint", false), (1, "initialize_account", false), (2, "initialize_multisig", false), @@ -69,4 +69,4 @@ pub(crate) const SPL_TOKEN_2022_INSTRUCTION_ENTRIES: &[(u8, &str, bool)] = &[ (255, "batch", false), ]; /// Canonical tracing target for this crate. -pub(crate) const SPL_TOKEN_2022_TRACING_TARGET: &str = "kb-lib.decoder.spl.token_2022"; +pub(crate) const DC_SPL_TOKEN2022_TRACING_TARGET: &str = "kb-lib.decoder.spl.token2022"; diff --git a/kb-lib/src/decoder/spl/token_2022/decoder.rs b/kb-lib/src/decoder/spl/token2022/decoder.rs similarity index 82% rename from kb-lib/src/decoder/spl/token_2022/decoder.rs rename to kb-lib/src/decoder/spl/token2022/decoder.rs index 482a93d..1ca2859 100644 --- a/kb-lib/src/decoder/spl/token_2022/decoder.rs +++ b/kb-lib/src/decoder/spl/token2022/decoder.rs @@ -1,23 +1,23 @@ -// file: kb-lib/src/decoder/spl/token_2022/decoder.rs +// file: kb-lib/src/decoder/spl/token2022/decoder.rs // version: 1 //! Exact Token-2022 dispatch for the common decode pipeline. -const TOKEN_SURFACES: &[crate::DecoderSurface] = &[crate::DecoderSurface { - program_id: kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, - surface_code: crate::SPL_TOKEN_2022_SURFACE_CODE, +const TOKEN_SURFACES: &[crate::DcApiDecoderSurface] = &[crate::DcApiDecoderSurface { + program_id: kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + surface_code: crate::DC_SPL_TOKEN2022_SURFACE_CODE, priority: 100, }]; -const PROGRAM_IDS: &[&str] = &[kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID]; +const PROGRAM_IDS: &[&str] = &[kb_program_ids::SPL_TOKEN2022_PROGRAM_ID]; /// Exact decoder for the Token-2022 program. #[derive(Clone, Debug, Default)] -pub struct SplToken2022Decoder; +pub struct DcSplToken2022Decoder; -impl crate::ProtocolDecoder for crate::SplToken2022Decoder { +impl crate::DcApiProtocolDecoder for crate::DcSplToken2022Decoder { fn decoder_name(&self) -> &'static str { - return "kb_decoder_spl_token_2022"; + return "kb_decoder_spl_token2022"; } fn decoder_version(&self) -> &'static str { @@ -30,45 +30,45 @@ impl crate::ProtocolDecoder for crate::SplToken2022Decoder { fn supports_observation( &self, - observation: &crate::ProgramObservation, - ) -> crate::DecoderSupport { - return if crate::ProtocolDecoder::handles_program_id(self, &observation.program_id) { - crate::DecoderSupport::Yes + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + return if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + crate::DcApiDecoderSupport::Yes } else { - crate::DecoderSupport::No + crate::DcApiDecoderSupport::No }; } fn decode_observation( &self, - _observation: &crate::ProgramObservation, - ) -> kb_core::Result> { + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::InstructionDecoder for crate::SplToken2022Decoder { - fn identity(&self) -> crate::DecoderIdentity { - return crate::DecoderIdentity { - name: "spl_token_2022".to_string(), +impl crate::DcApiInstructionDecoder for crate::DcSplToken2022Decoder { + fn identity(&self) -> crate::DcApiDecoderIdentity { + return crate::DcApiDecoderIdentity { + name: "spl_token2022".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn surfaces(&self) -> &'static [crate::DecoderSurface] { + fn surfaces(&self) -> &'static [crate::DcApiDecoderSurface] { return TOKEN_SURFACES; } - fn coverage(&self) -> std::vec::Vec { - return crate::SPL_TOKEN_2022_INSTRUCTION_ENTRIES + fn coverage(&self) -> std::vec::Vec { + return crate::DC_SPL_TOKEN2022_INSTRUCTION_ENTRIES .iter() .map(|(tag, code, historical)| { - return crate::DecoderCoverageDeclaration { - program_id: kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID.to_string(), + return crate::DcApiDecoderCoverageDeclaration { + program_id: kb_program_ids::SPL_TOKEN2022_PROGRAM_ID.to_string(), surface_code: std::option::Option::Some( - crate::SPL_TOKEN_2022_SURFACE_CODE.to_string(), + crate::DC_SPL_TOKEN2022_SURFACE_CODE.to_string(), ), - entry_kind: crate::DecoderCoverageEntryKind::Instruction, + entry_kind: crate::DcApiDecoderCoverageEntryKind::Instruction, entry_code: (*code).to_string(), discriminator_hex: std::option::Option::Some(format!("{tag:02x}")), historical: *historical, @@ -77,38 +77,45 @@ impl crate::InstructionDecoder for crate::SplToken2022Decoder { .collect(); } - fn recognize(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderRecognition { - if input.program_id != kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID { - return crate::DecoderRecognition::incompatible(); + fn recognize( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderRecognition { + if input.program_id != kb_program_ids::SPL_TOKEN2022_PROGRAM_ID { + return crate::DcApiDecoderRecognition::incompatible(); } - let tag = crate::spl_token_2022_payload_tag(input); - let entry = tag.and_then(crate::spl_token_2022_entry_for_tag); - return crate::DecoderRecognition::compatible( + let tag = crate::decoder_spl_token2022_payload_tag(input); + let entry = tag.and_then(crate::decoder_spl_token2022_entry_for_tag); + return crate::DcApiDecoderRecognition::compatible( entry.is_some(), 100, - std::option::Option::Some(crate::SPL_TOKEN_2022_SURFACE_CODE.to_string()), + std::option::Option::Some(crate::DC_SPL_TOKEN2022_SURFACE_CODE.to_string()), entry.map(|(_, code, _)| return code.to_string()), tag.map(|value| return format!("{value:02x}")), ); } - fn decode(&self, input: &crate::CoreInstructionReplayInput) -> crate::DecoderExecutionResult { - if input.program_id != kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID { - return crate::DecoderExecutionResult::unsupported(std::option::Option::None); + fn decode( + &self, + input: &crate::MdCoreInstructionReplayInput, + ) -> crate::DcApiDecoderExecutionResult { + if input.program_id != kb_program_ids::SPL_TOKEN2022_PROGRAM_ID { + return crate::DcApiDecoderExecutionResult::unsupported(std::option::Option::None); } - let result = crate::spl_token_2022_decode(input); + let result = crate::decoder_spl_token2022_decode(input); if matches!( result.status, - crate::DecoderOutcomeStatus::Failed | crate::DecoderOutcomeStatus::Unsupported + crate::DcApiDecoderOutcomeStatus::Failed + | crate::DcApiDecoderOutcomeStatus::Unsupported ) { tracing::error!( - target: crate::SPL_TOKEN_2022_TRACING_TARGET, + target: crate::DC_SPL_TOKEN2022_TRACING_TARGET, action = "decode_failure", signature = %input.signature, slot = input.slot, instruction_path = %input.instruction_path, program_id = %input.program_id, - processor_name = "spl_token_2022", + processor_name = "spl_token2022", processor_version = env!("CARGO_PKG_VERSION"), input_key = %input.replay_input_key, payload_hash = ?input.instruction_payload_hash, @@ -118,7 +125,7 @@ impl crate::InstructionDecoder for crate::SplToken2022Decoder { ); } tracing::debug!( - target: crate::SPL_TOKEN_2022_TRACING_TARGET, + target: crate::DC_SPL_TOKEN2022_TRACING_TARGET, action = "decode", signature = %input.signature, instruction_path = %input.instruction_path, @@ -142,8 +149,8 @@ mod tests { keys: serde_json::Value, failed: bool, path: &str, - ) -> crate::CoreInstructionReplayInput { - let result = crate::CoreInstructionReplayInput::new( + ) -> crate::MdCoreInstructionReplayInput { + let result = crate::MdCoreInstructionReplayInput::new( format!("signature:{path}"), "signature", 42, @@ -184,12 +191,12 @@ mod tests { } #[test] - fn exact_token_2022_dispatch_decodes_checked_transfer() { + fn exact_token2022_dispatch_decodes_checked_transfer() { let mut wire = std::vec![12]; wire.extend_from_slice(&u64::MAX.to_le_bytes()); wire.push(9); let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([ {"position":0,"accountIndex":0,"accountKey":"account0"}, @@ -206,14 +213,14 @@ mod tests { false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.recognized_entry_code.as_deref(), Some("transfer_checked")); assert_eq!(result.observations.len(), 1); assert!(result.observations[0].observation_committed); assert_eq!( result.observations[0].event.program_id.0, - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID ); assert_eq!( result.observations[0].payload_json["parameters"]["amountRaw"], @@ -223,11 +230,11 @@ mod tests { } #[test] - fn failed_inner_token_2022_instruction_remains_uncommitted() { + fn failed_inner_token2022_instruction_remains_uncommitted() { let mut wire = std::vec![7]; wire.extend_from_slice(&42_u64.to_le_bytes()); let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([ {"position":0,"accountIndex":0,"accountKey":"account0"}, @@ -242,8 +249,8 @@ mod tests { true, "1/0", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!(result.recognized_entry_code.as_deref(), Some("mint_to")); assert_eq!(result.observations.len(), 1); assert!(!result.observations[0].observation_committed); @@ -273,15 +280,16 @@ mod tests { ]; for (wire, expected, expected_rate) in cases { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([{"position":0,"accountIndex":0,"accountKey":"account0"}]), serde_json::json!([account(0, true, true)]), false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded, "{expected}"); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded, "{expected}"); assert_eq!(result.recognized_entry_code.as_deref(), Some(expected)); assert_eq!(result.observations[0].event.event_name.0, expected); if !expected_rate.is_null() { @@ -297,20 +305,21 @@ mod tests { fn interest_bearing_wire_rejects_unknown_truncated_and_suffixed_forms() { for wire in [vec![33], vec![33, 0], vec![33, 1, 0], vec![33, 1, 0, 0, 0], vec![33, 2]] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } #[test] - fn embedded_metadata_and_group_interfaces_decode_as_token_2022_leaves() { + fn embedded_metadata_and_group_interfaces_decode_as_token2022_leaves() { fn string(value: &str) -> std::vec::Vec { let mut output = std::vec::Vec::new(); output.extend_from_slice(&(value.len() as u32).to_le_bytes()); @@ -342,19 +351,20 @@ mod tests { }) .collect::>(); let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::Value::Array(instruction_accounts), serde_json::Value::Array(resolved_accounts), false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded, "{expected}"); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded, "{expected}"); assert_eq!(result.recognized_entry_code.as_deref(), Some(expected)); assert_eq!( result.observations[0].event.program_id.0, - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID ); } } @@ -367,22 +377,23 @@ mod tests { { let mut value = vec![0xd2, 0xe1, 0x1e, 0xa2, 0x58, 0xb8, 0x4d, 0x8d]; value.extend_from_slice( - &((crate::SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES + 1) as u32).to_le_bytes(), + &((crate::DC_SPL_TOKEN2022_MAX_METADATA_STRING_BYTES + 1) as u32).to_le_bytes(), ); value }, ]; for wire in malformed { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } @@ -416,15 +427,16 @@ mod tests { update.extend_from_slice(&[11_u8; 32]); for (wire, expected) in [(initialize, initialize_code), (update, update_code)] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([{"position":0,"accountIndex":0,"accountKey":"account0"}]), serde_json::json!([account(0, true, true)]), false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded, "{expected}"); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded, "{expected}"); assert_eq!(result.recognized_entry_code.as_deref(), Some(expected)); assert!( result.observations[0].payload_json["parameters"][address_field].is_string() @@ -451,33 +463,35 @@ mod tests { }, ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, "0", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } #[test] - fn classic_token_and_unknown_programs_never_emit_token_2022_events() { + fn classic_token_and_unknown_programs_never_emit_token2022_events() { for program_id in [kb_program_ids::SPL_TOKEN_PROGRAM_ID, kb_program_ids::SYSTEM_PROGRAM_ID] { let input = input(program_id, &[17], serde_json::json!([]), serde_json::json!([]), false, "0"); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Unsupported); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Unsupported); assert!(result.observations.is_empty()); } } fn matrix() -> serde_json::Value { return match serde_json::from_str(include_str!( - "../../../../../docs/SPL_TOKEN_2022_MATRIX.json" + "../../../../../docs/SPL_TOKEN2022_MATRIX.json" )) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("invalid Token-2022 matrix JSON: {error}"), @@ -487,7 +501,7 @@ mod tests { #[test] fn initial_matrix_has_exact_program_boundary_and_candidate_inventory() { let matrix = matrix(); - assert_eq!(matrix["programId"], kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID); + assert_eq!(matrix["programId"], kb_program_ids::SPL_TOKEN2022_PROGRAM_ID); assert_eq!(matrix["surfaceEquality"]["topLevelInstructionCount"], 48); assert_eq!(matrix["surfaceEquality"]["productionExtensionTypeCount"], 29); assert_eq!(matrix["instructions"].as_array().map(std::vec::Vec::len), Some(48)); @@ -540,11 +554,11 @@ mod tests { let matrix = matrix(); assert_eq!( spl_token_2022_interface::ID.to_string(), - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, ); assert_eq!( spl_elgamal_registry_interface::ID.to_string(), - kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID, ); assert_eq!(spl_elgamal_registry_interface::REGISTRY_ADDRESS_SEED, b"elgamal-registry",); assert_eq!(matrix["interfaceAudit"]["resolvedVersion"], "3.1.1"); @@ -556,7 +570,7 @@ mod tests { assert_eq!(matrix["elgamalRegistryBoundary"]["resolvedVersion"], "0.2.1"); assert_eq!( matrix["elgamalRegistryBoundary"]["programId"], - kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID + kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID ); assert_eq!(matrix["elgamalRegistryBoundary"]["sharedDecoder"], false); assert_eq!(matrix["elgamalRegistryBoundary"]["sharedExecutor"], false); @@ -808,15 +822,16 @@ mod tests { ]; for (wire, expected) in cases { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, expected, ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) @@ -837,15 +852,16 @@ mod tests { ]; for (wire, expected) in cases { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, expected, ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) @@ -864,15 +880,16 @@ mod tests { std::vec![34, 2], ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, "invalid", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); assert!(result.observations.is_empty()); } } @@ -906,15 +923,16 @@ mod tests { ]; for (wire, expected) in cases { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, expected, ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded, "{expected}"); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded, "{expected}"); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) @@ -944,15 +962,16 @@ mod tests { }, ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, "invalid", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } @@ -983,15 +1002,16 @@ mod tests { (std::vec![27, 12], "disable_non_confidential_credits"), ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, expected, ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded, "{expected}"); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded, "{expected}"); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) @@ -1019,15 +1039,16 @@ mod tests { std::vec![27, 15], ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, "invalid", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } @@ -1060,15 +1081,16 @@ mod tests { (std::vec![27, 14], "configure_confidential_transfer_account_with_registry"), ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, expected, ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded, "{expected}"); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded, "{expected}"); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) @@ -1094,15 +1116,16 @@ mod tests { std::vec![27, 14, 0], ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, "invalid", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } @@ -1124,21 +1147,22 @@ mod tests { (std::vec![37, 5], "disable_confidential_harvest_to_mint"), ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, expected, ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded, "{expected}"); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded, "{expected}"); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) ); assert_eq!(result.observations.len(), 1); - assert_eq!(result.observations[0].event.event_family, crate::EventFamily::Fee); + assert_eq!(result.observations[0].event.event_family, crate::MdEventFamily::Fee); } } @@ -1153,15 +1177,16 @@ mod tests { std::vec![37, 6], ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, "invalid", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } @@ -1195,15 +1220,16 @@ mod tests { (permissioned, "permissioned_confidential_burn"), ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, expected, ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Decoded, "{expected}"); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Decoded, "{expected}"); assert_eq!( result.recognized_entry_code.as_deref(), std::option::Option::Some(expected) @@ -1224,15 +1250,16 @@ mod tests { std::vec![46, 3, 0], ] { let input = input( - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, wire.as_slice(), serde_json::json!([]), serde_json::json!([]), false, "invalid", ); - let result = crate::InstructionDecoder::decode(&crate::SplToken2022Decoder, &input); - assert_eq!(result.status, crate::DecoderOutcomeStatus::Failed); + let result = + crate::DcApiInstructionDecoder::decode(&crate::DcSplToken2022Decoder, &input); + assert_eq!(result.status, crate::DcApiDecoderOutcomeStatus::Failed); } } } diff --git a/kb-lib/src/decoder/spl/token_2022/state.rs b/kb-lib/src/decoder/spl/token2022/state.rs similarity index 86% rename from kb-lib/src/decoder/spl/token_2022/state.rs rename to kb-lib/src/decoder/spl/token2022/state.rs index 32ac749..d4f52e7 100644 --- a/kb-lib/src/decoder/spl/token_2022/state.rs +++ b/kb-lib/src/decoder/spl/token2022/state.rs @@ -1,4 +1,4 @@ -// file: kb-lib/src/decoder/spl/token_2022/state.rs +// file: kb-lib/src/decoder/spl/token2022/state.rs // version: 1 //! Strict Token-2022 base-state and TLV parsing. @@ -17,7 +17,7 @@ const MAX_METADATA_PAIRS: usize = 64; /// Token-2022 account state category selected by the caller. #[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum Token2022StateKind { +pub enum DcToken2022StateKind { /// Mint base state, optionally followed by Token-2022 TLV extensions. Mint, /// Token account base state, optionally followed by Token-2022 TLV extensions. @@ -28,7 +28,7 @@ pub enum Token2022StateKind { /// One bounded Token-2022 TLV extension entry. #[derive(Clone, Debug, Eq, PartialEq)] -pub struct Token2022TlvEntry { +pub struct DcToken2022TlvEntry { /// Numeric `ExtensionType` discriminant retained exactly from the wire. pub extension_type: u16, /// Stable name for published types, or `unknown` for a future type. @@ -41,9 +41,9 @@ pub struct Token2022TlvEntry { /// Strictly parsed Token-2022 account state. #[derive(Clone, Debug, Eq, PartialEq)] -pub struct Token2022State { +pub struct DcToken2022State { /// Caller-selected base state category. - pub kind: Token2022StateKind, + pub kind: DcToken2022StateKind, /// Structured fields decoded from the exact base layout. pub base_fields: serde_json::Value, /// Base layout bytes encoded as lowercase hexadecimal. @@ -51,14 +51,14 @@ pub struct Token2022State { /// Account-type discriminator for extended Mint or Account states. pub account_type: Option, /// Ordered TLV entries. - pub extensions: Vec, + pub extensions: Vec, } /// Parse one Token-2022 Mint, Account, or Multisig state without interpreting extension payloads. -pub fn parse_token_2022_state( - kind: Token2022StateKind, +pub fn decoder_spl_token2022_parse_token2022_state( + kind: DcToken2022StateKind, data: &[u8], -) -> Result { +) -> Result { if data.len() > MAX_ACCOUNT_DATA_LEN { return Err(format!( "Token-2022 account data length {} exceeds bound {}", @@ -67,16 +67,16 @@ pub fn parse_token_2022_state( )); } return match kind { - Token2022StateKind::Mint => parse_mint(data), - Token2022StateKind::Account => parse_account(data), - Token2022StateKind::Multisig => parse_multisig(data), + DcToken2022StateKind::Mint => parse_mint(data), + DcToken2022StateKind::Account => parse_account(data), + DcToken2022StateKind::Multisig => parse_multisig(data), }; } -fn parse_mint(data: &[u8]) -> Result { +fn parse_mint(data: &[u8]) -> Result { if data.len() == MINT_BASE_LEN { - return Ok(Token2022State { - kind: Token2022StateKind::Mint, + return Ok(DcToken2022State { + kind: DcToken2022StateKind::Mint, base_fields: match parse_mint_base(data) { Ok(value) => value, Err(error) => return Err(error), @@ -105,8 +105,8 @@ fn parse_mint(data: &[u8]) -> Result { Ok(extensions) => extensions, Err(error) => return Err(error), }; - return Ok(Token2022State { - kind: Token2022StateKind::Mint, + return Ok(DcToken2022State { + kind: DcToken2022StateKind::Mint, base_fields: match parse_mint_base(&data[..MINT_BASE_LEN]) { Ok(value) => value, Err(error) => return Err(error), @@ -117,10 +117,10 @@ fn parse_mint(data: &[u8]) -> Result { }); } -fn parse_account(data: &[u8]) -> Result { +fn parse_account(data: &[u8]) -> Result { if data.len() == ACCOUNT_BASE_LEN { - return Ok(Token2022State { - kind: Token2022StateKind::Account, + return Ok(DcToken2022State { + kind: DcToken2022StateKind::Account, base_fields: match parse_account_base(data) { Ok(value) => value, Err(error) => return Err(error), @@ -146,8 +146,8 @@ fn parse_account(data: &[u8]) -> Result { Ok(extensions) => extensions, Err(error) => return Err(error), }; - return Ok(Token2022State { - kind: Token2022StateKind::Account, + return Ok(DcToken2022State { + kind: DcToken2022StateKind::Account, base_fields: match parse_account_base(&data[..ACCOUNT_BASE_LEN]) { Ok(value) => value, Err(error) => return Err(error), @@ -158,15 +158,15 @@ fn parse_account(data: &[u8]) -> Result { }); } -fn parse_multisig(data: &[u8]) -> Result { +fn parse_multisig(data: &[u8]) -> Result { if data.len() != MULTISIG_BASE_LEN { return Err(format!( "Token-2022 multisig requires exactly {MULTISIG_BASE_LEN} bytes, got {}", data.len() )); } - return Ok(Token2022State { - kind: Token2022StateKind::Multisig, + return Ok(DcToken2022State { + kind: DcToken2022StateKind::Multisig, base_fields: match parse_multisig_base(data) { Ok(value) => value, Err(error) => return Err(error), @@ -300,7 +300,7 @@ fn read_i64(data: &[u8]) -> i64 { ]); } -fn parse_tlv(data: &[u8], kind_from_account_type: u8) -> Result, String> { +fn parse_tlv(data: &[u8], kind_from_account_type: u8) -> Result, String> { let mut entries = Vec::new(); let mut offset = 0usize; let mut seen = std::collections::BTreeSet::new(); @@ -340,7 +340,7 @@ fn parse_tlv(data: &[u8], kind_from_account_type: u8) -> Result value_fields, Err(error) => return Err(error), }; - entries.push(Token2022TlvEntry { + entries.push(DcToken2022TlvEntry { extension_type, extension_name: extension_name(extension_type), value_hex: lower_hex(value), @@ -916,10 +916,18 @@ mod tests { #[test] fn exact_base_mint_account_and_multisig_layouts_are_preserved() { - let mint = super::parse_token_2022_state(super::Token2022StateKind::Mint, &[0; 82]); - let account = super::parse_token_2022_state(super::Token2022StateKind::Account, &[0; 165]); - let multisig = - super::parse_token_2022_state(super::Token2022StateKind::Multisig, &[0; 355]); + let mint = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &[0; 82], + ); + let account = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &[0; 165], + ); + let multisig = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Multisig, + &[0; 355], + ); assert_eq!(mint.as_ref().map(|state| return state.base_hex.len()), Ok(164)); assert_eq!(account.as_ref().map(|state| return state.base_hex.len()), Ok(330)); assert_eq!(multisig.as_ref().map(|state| return state.base_hex.len()), Ok(710)); @@ -947,7 +955,10 @@ mod tests { mint.extend_from_slice(&1u16.to_le_bytes()); mint.push(0xcc); mint.extend_from_slice(&[0; 8]); - let parsed_mint = super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint); + let parsed_mint = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint, + ); assert_eq!(parsed_mint.as_ref().map(|state| return state.extensions.len()), Ok(2)); assert_eq!( parsed_mint.as_ref().map(|state| return state.extensions[0].extension_name), @@ -962,8 +973,10 @@ mod tests { account.extend_from_slice(&8u16.to_le_bytes()); account.extend_from_slice(&1u16.to_le_bytes()); account.push(1); - let parsed_account = - super::parse_token_2022_state(super::Token2022StateKind::Account, &account); + let parsed_account = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &account, + ); assert_eq!( parsed_account.as_ref().map(|state| return state.extensions[0].extension_name), Ok("memo_transfer") @@ -982,12 +995,20 @@ mod tests { mint_padding[82] = 1; mint_padding[165] = 1; assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint_padding).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint_padding + ) + .is_err() ); let mut wrong_type = vec![0; 166]; wrong_type[165] = 2; assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &wrong_type).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &wrong_type + ) + .is_err() ); let mut truncated = vec![0; 166]; truncated[165] = 2; @@ -995,7 +1016,11 @@ mod tests { truncated.extend_from_slice(&3u16.to_le_bytes()); truncated.push(9); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Account, &truncated).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &truncated + ) + .is_err() ); let mut duplicate = vec![0; 166]; duplicate[165] = 2; @@ -1005,18 +1030,30 @@ mod tests { duplicate.push(1); } assert!( - super::parse_token_2022_state(super::Token2022StateKind::Account, &duplicate).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &duplicate + ) + .is_err() ); } #[test] fn state_lengths_and_tlv_count_are_bounded() { assert!( - super::parse_token_2022_state(super::Token2022StateKind::Multisig, &[0; 354]).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Multisig, + &[0; 354] + ) + .is_err() ); let oversized = vec![0; 1_048_577]; assert!( - super::parse_token_2022_state(super::Token2022StateKind::Account, &oversized).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &oversized + ) + .is_err() ); let mut account = vec![0; 166]; account[165] = 2; @@ -1025,7 +1062,11 @@ mod tests { account.extend_from_slice(&0u16.to_le_bytes()); } assert!( - super::parse_token_2022_state(super::Token2022StateKind::Account, &account).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &account + ) + .is_err() ); } #[test] @@ -1038,7 +1079,10 @@ mod tests { mint.extend_from_slice(&18u16.to_le_bytes()); mint.extend_from_slice(&64u16.to_le_bytes()); mint.extend_from_slice(&[0; 64]); - let parsed = super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint); + let parsed = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint, + ); assert_eq!( parsed .as_ref() @@ -1057,8 +1101,11 @@ mod tests { incompatible.extend_from_slice(&1u16.to_le_bytes()); incompatible.push(1); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Account, &incompatible) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &incompatible + ) + .is_err() ); } @@ -1070,8 +1117,11 @@ mod tests { invalid_bool.extend_from_slice(&1u16.to_le_bytes()); invalid_bool.push(2); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Account, &invalid_bool) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &invalid_bool + ) + .is_err() ); let mut invalid_pointer = vec![0; 166]; invalid_pointer[165] = 1; @@ -1079,8 +1129,11 @@ mod tests { invalid_pointer.extend_from_slice(&63u16.to_le_bytes()); invalid_pointer.extend_from_slice(&[0; 63]); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &invalid_pointer) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &invalid_pointer + ) + .is_err() ); } @@ -1101,7 +1154,10 @@ mod tests { mint.extend_from_slice(&1u16.to_le_bytes()); mint.extend_from_slice(&108u16.to_le_bytes()); mint.extend_from_slice(&config); - let parsed_mint = super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint); + let parsed_mint = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint, + ); assert_eq!( parsed_mint .as_ref() @@ -1117,8 +1173,10 @@ mod tests { account.extend_from_slice(&2u16.to_le_bytes()); account.extend_from_slice(&8u16.to_le_bytes()); account.extend_from_slice(&19u64.to_le_bytes()); - let parsed_account = - super::parse_token_2022_state(super::Token2022StateKind::Account, &account); + let parsed_account = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &account, + ); assert_eq!( parsed_account .as_ref() @@ -1135,7 +1193,11 @@ mod tests { short_config.extend_from_slice(&107u16.to_le_bytes()); short_config.extend_from_slice(&[0; 107]); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &short_config).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &short_config + ) + .is_err() ); let mut invalid_basis_points = vec![0; 166]; invalid_basis_points[165] = 1; @@ -1145,8 +1207,11 @@ mod tests { invalid_basis_points.extend_from_slice(&108u16.to_le_bytes()); invalid_basis_points.extend_from_slice(&config); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &invalid_basis_points) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &invalid_basis_points + ) + .is_err() ); let mut short_amount = vec![0; 166]; short_amount[165] = 2; @@ -1154,8 +1219,11 @@ mod tests { short_amount.extend_from_slice(&7u16.to_le_bytes()); short_amount.extend_from_slice(&[0; 7]); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Account, &short_amount) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &short_amount + ) + .is_err() ); } @@ -1170,7 +1238,10 @@ mod tests { mint.extend_from_slice(&4u16.to_le_bytes()); mint.extend_from_slice(&65u16.to_le_bytes()); mint.extend_from_slice(&mint_extension); - let parsed_mint = super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint); + let parsed_mint = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint, + ); assert_eq!( parsed_mint .as_ref() @@ -1203,8 +1274,10 @@ mod tests { account.extend_from_slice(&5u16.to_le_bytes()); account.extend_from_slice(&295u16.to_le_bytes()); account.extend_from_slice(&account_extension); - let parsed_account = - super::parse_token_2022_state(super::Token2022StateKind::Account, &account); + let parsed_account = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &account, + ); assert_eq!( parsed_account .as_ref() @@ -1234,7 +1307,11 @@ mod tests { short_mint.extend_from_slice(&64u16.to_le_bytes()); short_mint.extend_from_slice(&[0; 64]); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &short_mint).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &short_mint + ) + .is_err() ); let mut invalid_mint_flag = vec![0; 166]; invalid_mint_flag[165] = 1; @@ -1244,8 +1321,11 @@ mod tests { invalid_mint_flag.extend_from_slice(&65u16.to_le_bytes()); invalid_mint_flag.extend_from_slice(&mint_extension); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &invalid_mint_flag) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &invalid_mint_flag + ) + .is_err() ); let mut invalid_account_flag = vec![0; 166]; invalid_account_flag[165] = 2; @@ -1255,8 +1335,8 @@ mod tests { invalid_account_flag.extend_from_slice(&295u16.to_le_bytes()); invalid_account_flag.extend_from_slice(&account_extension); assert!( - super::parse_token_2022_state( - super::Token2022StateKind::Account, + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, &invalid_account_flag ) .is_err() @@ -1276,7 +1356,10 @@ mod tests { mint.extend_from_slice(&10u16.to_le_bytes()); mint.extend_from_slice(&(interest.len() as u16).to_le_bytes()); mint.extend_from_slice(&interest); - let parsed = super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint); + let parsed = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint, + ); assert_eq!( parsed .as_ref() @@ -1295,8 +1378,10 @@ mod tests { scaled_mint.extend_from_slice(&25u16.to_le_bytes()); scaled_mint.extend_from_slice(&(scaled.len() as u16).to_le_bytes()); scaled_mint.extend_from_slice(&scaled); - let parsed_scaled = - super::parse_token_2022_state(super::Token2022StateKind::Mint, &scaled_mint); + let parsed_scaled = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &scaled_mint, + ); assert_eq!( parsed_scaled .as_ref() @@ -1310,8 +1395,10 @@ mod tests { pausable_mint.extend_from_slice(&33u16.to_le_bytes()); pausable_mint.extend_from_slice(&[0; 32]); pausable_mint.push(1); - let parsed_pausable = - super::parse_token_2022_state(super::Token2022StateKind::Mint, &pausable_mint); + let parsed_pausable = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &pausable_mint, + ); assert_eq!( parsed_pausable .as_ref() @@ -1328,8 +1415,11 @@ mod tests { short_interest.extend_from_slice(&51u16.to_le_bytes()); short_interest.extend_from_slice(&[0; 51]); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &short_interest) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &short_interest + ) + .is_err() ); let mut invalid_scaled = vec![0; 166]; @@ -1341,8 +1431,11 @@ mod tests { invalid_scaled.extend_from_slice(&0i64.to_le_bytes()); invalid_scaled.extend_from_slice(&1.0f64.to_le_bytes()); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &invalid_scaled) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &invalid_scaled + ) + .is_err() ); let mut invalid_pausable = vec![0; 166]; @@ -1352,8 +1445,11 @@ mod tests { invalid_pausable.extend_from_slice(&[0; 32]); invalid_pausable.push(2); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &invalid_pausable) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &invalid_pausable + ) + .is_err() ); let mut account_marker = vec![0; 166]; @@ -1361,8 +1457,11 @@ mod tests { account_marker.extend_from_slice(&27u16.to_le_bytes()); account_marker.extend_from_slice(&0u16.to_le_bytes()); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Account, &account_marker) - .is_ok() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &account_marker + ) + .is_ok() ); } @@ -1378,8 +1477,10 @@ mod tests { fee_mint.extend_from_slice(&16u16.to_le_bytes()); fee_mint.extend_from_slice(&129u16.to_le_bytes()); fee_mint.extend_from_slice(&fee_config); - let parsed_fee_mint = - super::parse_token_2022_state(super::Token2022StateKind::Mint, &fee_mint); + let parsed_fee_mint = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &fee_mint, + ); assert_eq!( parsed_fee_mint .as_ref() @@ -1399,8 +1500,10 @@ mod tests { fee_account.extend_from_slice(&17u16.to_le_bytes()); fee_account.extend_from_slice(&64u16.to_le_bytes()); fee_account.extend_from_slice(&[4; 64]); - let parsed_fee_account = - super::parse_token_2022_state(super::Token2022StateKind::Account, &fee_account); + let parsed_fee_account = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &fee_account, + ); assert_eq!( parsed_fee_account .as_ref() @@ -1418,8 +1521,10 @@ mod tests { mint_burn.extend_from_slice(&24u16.to_le_bytes()); mint_burn.extend_from_slice(&196u16.to_le_bytes()); mint_burn.extend_from_slice(&mint_burn_extension); - let parsed_mint_burn = - super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint_burn); + let parsed_mint_burn = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint_burn, + ); assert_eq!( parsed_mint_burn .as_ref() @@ -1445,8 +1550,11 @@ mod tests { invalid_fee_flag.extend_from_slice(&129u16.to_le_bytes()); invalid_fee_flag.extend_from_slice(&fee_config); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &invalid_fee_flag) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &invalid_fee_flag + ) + .is_err() ); let mut short_fee_amount = vec![0; 166]; @@ -1455,8 +1563,11 @@ mod tests { short_fee_amount.extend_from_slice(&63u16.to_le_bytes()); short_fee_amount.extend_from_slice(&[0; 63]); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Account, &short_fee_amount) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Account, + &short_fee_amount + ) + .is_err() ); let mut short_mint_burn = vec![0; 166]; @@ -1465,8 +1576,11 @@ mod tests { short_mint_burn.extend_from_slice(&195u16.to_le_bytes()); short_mint_burn.extend_from_slice(&[0; 195]); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &short_mint_burn) - .is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &short_mint_burn + ) + .is_err() ); } @@ -1482,7 +1596,10 @@ mod tests { mint.extend_from_slice(&21u16.to_le_bytes()); mint.extend_from_slice(&80u16.to_le_bytes()); mint.extend_from_slice(&group); - let parsed_group = super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint); + let parsed_group = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint, + ); assert_eq!( parsed_group .as_ref() @@ -1504,8 +1621,10 @@ mod tests { member_mint.extend_from_slice(&23u16.to_le_bytes()); member_mint.extend_from_slice(&72u16.to_le_bytes()); member_mint.extend_from_slice(&member); - let parsed_member = - super::parse_token_2022_state(super::Token2022StateKind::Mint, &member_mint); + let parsed_member = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &member_mint, + ); assert_eq!( parsed_member .as_ref() @@ -1528,7 +1647,11 @@ mod tests { short_group.extend_from_slice(&79u16.to_le_bytes()); short_group.extend_from_slice(&[0; 79]); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &short_group).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &short_group + ) + .is_err() ); let mut invalid_size = vec![0; 166]; invalid_size[165] = 1; @@ -1539,7 +1662,11 @@ mod tests { invalid_size.extend_from_slice(&80u16.to_le_bytes()); invalid_size.extend_from_slice(&group); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &invalid_size).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &invalid_size + ) + .is_err() ); let mut short_member = vec![0; 166]; short_member[165] = 1; @@ -1547,7 +1674,11 @@ mod tests { short_member.extend_from_slice(&71u16.to_le_bytes()); short_member.extend_from_slice(&[0; 71]); assert!( - super::parse_token_2022_state(super::Token2022StateKind::Mint, &short_member).is_err() + super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &short_member + ) + .is_err() ); } @@ -1569,7 +1700,10 @@ mod tests { mint.extend_from_slice(&19u16.to_le_bytes()); mint.extend_from_slice(&(metadata.len() as u16).to_le_bytes()); mint.extend_from_slice(&metadata); - let parsed = super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint); + let parsed = super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint, + ); assert_eq!( parsed .as_ref() @@ -1611,13 +1745,16 @@ mod tests { assert!(parse_metadata_extension(&oversized_value).is_err()); } - fn parse_metadata_extension(value: &[u8]) -> Result { + fn parse_metadata_extension(value: &[u8]) -> Result { let mut mint = vec![0; 166]; mint[165] = 1; mint.extend_from_slice(&19u16.to_le_bytes()); mint.extend_from_slice(&(value.len() as u16).to_le_bytes()); mint.extend_from_slice(value); - return super::parse_token_2022_state(super::Token2022StateKind::Mint, &mint); + return super::decoder_spl_token2022_parse_token2022_state( + super::DcToken2022StateKind::Mint, + &mint, + ); } fn token_metadata_fixture( diff --git a/kb-lib/src/decoder/spl/token_2022/wire.rs b/kb-lib/src/decoder/spl/token2022/wire.rs similarity index 96% rename from kb-lib/src/decoder/spl/token_2022/wire.rs rename to kb-lib/src/decoder/spl/token2022/wire.rs index 2261261..e34b199 100644 --- a/kb-lib/src/decoder/spl/token_2022/wire.rs +++ b/kb-lib/src/decoder/spl/token2022/wire.rs @@ -1,4 +1,4 @@ -// file: kb-lib/src/decoder/spl/token_2022/wire.rs +// file: kb-lib/src/decoder/spl/token2022/wire.rs // version: 1 //! Bounded Token-2022 wire, account and authority decoding. @@ -24,25 +24,25 @@ struct ResolvedAccount { source: serde_json::Value, } -pub(crate) fn spl_token_2022_entry_for_tag( +pub(crate) fn decoder_spl_token2022_entry_for_tag( tag: u8, ) -> std::option::Option<(u8, &'static str, bool)> { - return crate::SPL_TOKEN_2022_INSTRUCTION_ENTRIES + return crate::DC_SPL_TOKEN2022_INSTRUCTION_ENTRIES .iter() .copied() .find(|(candidate, _, _)| return *candidate == tag); } -pub(crate) fn spl_token_2022_payload_tag( - input: &crate::CoreInstructionReplayInput, +pub(crate) fn decoder_spl_token2022_payload_tag( + input: &crate::MdCoreInstructionReplayInput, ) -> std::option::Option { let bytes = decode_payload(input).ok(); return bytes.and_then(|value| return value.first().copied()); } -pub(crate) fn spl_token_2022_decode( - input: &crate::CoreInstructionReplayInput, -) -> crate::DecoderExecutionResult { +pub(crate) fn decoder_spl_token2022_decode( + input: &crate::MdCoreInstructionReplayInput, +) -> crate::DcApiDecoderExecutionResult { let bytes = match decode_payload(input) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { @@ -63,15 +63,15 @@ pub(crate) fn spl_token_2022_decode( ); }, }; - let recognized_code = crate::spl_token_2022_entry_for_tag(tag) + let recognized_code = crate::decoder_spl_token2022_entry_for_tag(tag) .map(|(_, code, _)| return code) .or_else(|| return embedded_interface_code(bytes.as_slice())); if recognized_code.is_none() { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Unsupported, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Unsupported, recognized_entry_code: std::option::Option::None, observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: "unknown_token_instruction_tag_or_interface_discriminator".to_string(), message: format!( "unknown Token-2022 tag or embedded interface discriminator; payloadPrefixHex={}", @@ -132,21 +132,23 @@ pub(crate) fn spl_token_2022_decode( bytes.as_slice(), suffix_length, committed, - format!("token_2022:{}:0", parsed.code), + format!("token2022:{}:0", parsed.code), input.instruction_path.clone(), event_family(parsed.code), ); let mut observations = std::vec![parent]; observations.extend(batch_children); - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Decoded, + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Decoded, recognized_entry_code: std::option::Option::Some(parsed.code.to_string()), observations, diagnostics: std::vec::Vec::new(), }; } -fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result> { +fn decode_payload( + input: &crate::MdCoreInstructionReplayInput, +) -> kb_core::Result> { let payload = match input.instruction_payload_json.as_ref() { std::option::Option::Some(value) => value, std::option::Option::None => { @@ -163,7 +165,7 @@ fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result< )); }, }; - let maximum_encoded = crate::SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES + let maximum_encoded = crate::DC_SPL_TOKEN2022_MAX_INSTRUCTION_BYTES .saturating_mul(4) .saturating_div(3) .saturating_add(4); @@ -180,10 +182,10 @@ fn decode_payload(input: &crate::CoreInstructionReplayInput) -> kb_core::Result< ))); }, }; - if decoded.len() > crate::SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES { + if decoded.len() > crate::DC_SPL_TOKEN2022_MAX_INSTRUCTION_BYTES { return std::result::Result::Err(kb_core::Error::invalid_state(format!( "Token-2022 payload exceeds {} decoded bytes", - crate::SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES + crate::DC_SPL_TOKEN2022_MAX_INSTRUCTION_BYTES ))); } return std::result::Result::Ok(decoded); @@ -202,7 +204,7 @@ fn parse_instruction( return std::result::Result::Err("empty instruction".to_string()); }, }; - let code = match crate::spl_token_2022_entry_for_tag(tag) { + let code = match crate::decoder_spl_token2022_entry_for_tag(tag) { std::option::Option::Some((_, value, _)) => value, std::option::Option::None => { return std::result::Result::Err(format!("unknown instruction tag {tag}")); @@ -452,10 +454,10 @@ fn read_borsh_string( let length = u32::from_le_bytes([length_bytes[0], length_bytes[1], length_bytes[2], length_bytes[3]]) as usize; - if length > crate::SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES { + if length > crate::DC_SPL_TOKEN2022_MAX_METADATA_STRING_BYTES { return std::result::Result::Err(format!( "{label} exceeds {} bytes", - crate::SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES + crate::DC_SPL_TOKEN2022_MAX_METADATA_STRING_BYTES )); } let start = length_end; @@ -1962,7 +1964,7 @@ fn one_parameter(field: &str, value: serde_json::Value) -> serde_json::Value { } fn resolve_accounts( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, ) -> kb_core::Result> { let instruction_accounts = match input.instruction_accounts_json.as_array() { std::option::Option::Some(value) => value, @@ -2328,7 +2330,7 @@ fn valid_account_count(code: &str, count: usize) -> bool { #[allow(clippy::too_many_arguments)] fn observation( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, code: &str, tag: u8, parameters: serde_json::Value, @@ -2340,31 +2342,35 @@ fn observation( committed: bool, event_key: std::string::String, instruction_path: std::string::String, - family: crate::EventFamily, -) -> crate::DecodedObservation { + family: crate::MdEventFamily, +) -> crate::DcApiDecodedObservation { let wire_hash = hash(wire); - let event = crate::DecodedProtocolEvent { - signature: crate::Signature(input.signature.clone()), - slot: crate::Slot(input.slot), - instruction_path: crate::InstructionPath(instruction_path.clone()), - program_id: crate::ProgramId(input.program_id.clone()), - protocol_code: crate::ProtocolCode(crate::SPL_TOKEN_2022_SURFACE_CODE.to_string()), - surface_code: crate::SurfaceCode(crate::SPL_TOKEN_2022_SURFACE_CODE.to_string()), - event_code: crate::EventCode(format!("{}.{}", crate::SPL_TOKEN_2022_SURFACE_CODE, code)), - event_name: crate::EventName(code.to_string()), + let event = crate::MdDecodedProtocolEvent { + signature: crate::MdSignature(input.signature.clone()), + slot: crate::MdSlot(input.slot), + instruction_path: crate::MdInstructionPath(instruction_path.clone()), + program_id: crate::MdProgramId(input.program_id.clone()), + protocol_code: crate::MdProtocolCode(crate::DC_SPL_TOKEN2022_SURFACE_CODE.to_string()), + surface_code: crate::MdSurfaceCode(crate::DC_SPL_TOKEN2022_SURFACE_CODE.to_string()), + event_code: crate::MdEventCode(format!( + "{}.{}", + crate::DC_SPL_TOKEN2022_SURFACE_CODE, + code + )), + event_name: crate::MdEventName(code.to_string()), event_family: family, source_kind: if input.instruction_path.contains('/') { - crate::EventSourceKind::InnerInstruction + crate::MdEventSourceKind::InnerInstruction } else { - crate::EventSourceKind::Instruction + crate::MdEventSourceKind::Instruction }, - confidence: crate::DecoderConfidence::ManualExact, + confidence: crate::MdDecoderConfidence::ManualExact, }; - return crate::DecodedObservation { + return crate::DcApiDecodedObservation { event_key, event, payload_json: serde_json::json!({ - "eventVersion": crate::SPL_TOKEN_2022_EVENT_VERSION, + "eventVersion": crate::DC_SPL_TOKEN2022_EVENT_VERSION, "programId": input.program_id, "instruction": code, "wireTag": tag, @@ -2397,9 +2403,9 @@ fn observation( transaction_failed: input.transaction_failed, transaction_error: input.transaction_err_json.clone(), observation_committed: committed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: std::vec![ "spl_token_interface_3_0_0_wire_audit".to_string(), format!("wire_tag:{tag}"), @@ -2410,11 +2416,11 @@ fn observation( } fn batch_observations( - input: &crate::CoreInstructionReplayInput, + input: &crate::MdCoreInstructionReplayInput, bytes: &[u8], accounts: &[ResolvedAccount], ) -> std::result::Result< - (std::vec::Vec, serde_json::Value), + (std::vec::Vec, serde_json::Value), std::string::String, > { if bytes.len() == 1 { @@ -2426,10 +2432,10 @@ fn batch_observations( let mut observations = std::vec::Vec::new(); let mut manifest = std::vec::Vec::new(); while cursor < bytes.len() { - if index >= crate::SPL_TOKEN_2022_MAX_BATCH_INSTRUCTIONS { + if index >= crate::DC_SPL_TOKEN2022_MAX_BATCH_INSTRUCTIONS { return std::result::Result::Err(format!( "Batch exceeds {} sub-instructions", - crate::SPL_TOKEN_2022_MAX_BATCH_INSTRUCTIONS + crate::DC_SPL_TOKEN2022_MAX_BATCH_INSTRUCTIONS )); } let account_count = match bytes.get(cursor).copied() { @@ -2460,7 +2466,8 @@ fn batch_observations( }, }; let account_end = account_cursor.saturating_add(account_count); - if account_end > crate::SPL_TOKEN_2022_MAX_BATCH_ACCOUNTS || account_end > accounts.len() { + if account_end > crate::DC_SPL_TOKEN2022_MAX_BATCH_ACCOUNTS || account_end > accounts.len() + { return std::result::Result::Err(format!( "Batch entry {index} account slice exceeds provided accounts or bound" )); @@ -2484,7 +2491,7 @@ fn batch_observations( child_wire, suffix_length, !input.transaction_failed, - format!("token_2022:batch:{index}"), + format!("token2022:batch:{index}"), format!("{}/batch/{index}", input.instruction_path), event_family(parsed.code), )); @@ -2518,7 +2525,7 @@ fn batch_observations( )); } -fn event_family(code: &str) -> crate::EventFamily { +fn event_family(code: &str) -> crate::MdEventFamily { return match code { "set_authority" | "initialize_multisig" @@ -2528,13 +2535,13 @@ fn event_family(code: &str) -> crate::EventFamily { | "update_interest_bearing_rate" | "update_token_metadata_authority" | "update_token_group_authority" - | "update_token_group_max_size" => crate::EventFamily::Admin, + | "update_token_group_max_size" => crate::MdEventFamily::Admin, "initialize_mint" | "initialize_mint2" | "mint_to" | "mint_to_checked" - | "initialize_non_transferable_mint" => crate::EventFamily::TokenMint, - "burn" | "burn_checked" => crate::EventFamily::TokenBurn, + | "initialize_non_transferable_mint" => crate::MdEventFamily::TokenMint, + "burn" | "burn_checked" => crate::MdEventFamily::TokenBurn, "initialize_transfer_fee_config" | "set_transfer_fee" | "withdraw_withheld_tokens_from_mint" @@ -2547,23 +2554,23 @@ fn event_family(code: &str) -> crate::EventFamily { | "harvest_confidential_withheld_tokens_to_mint" | "enable_confidential_harvest_to_mint" | "disable_confidential_harvest_to_mint" - | "transfer_confidential_tokens_with_fee" => crate::EventFamily::Fee, + | "transfer_confidential_tokens_with_fee" => crate::MdEventFamily::Fee, "initialize_default_account_state" | "update_default_account_state" | "enable_required_transfer_memos" | "disable_required_transfer_memos" | "enable_cpi_guard" - | "disable_cpi_guard" => crate::EventFamily::Audit, + | "disable_cpi_guard" => crate::MdEventFamily::Audit, "initialize_token_metadata" | "update_token_metadata_field" | "remove_token_metadata_key" | "emit_token_metadata" | "initialize_token_group" - | "initialize_token_group_member" => crate::EventFamily::Metadata, + | "initialize_token_group_member" => crate::MdEventFamily::Metadata, "batch" | "get_account_data_size" | "amount_to_ui_amount" | "ui_amount_to_amount" => { - crate::EventFamily::Audit + crate::MdEventFamily::Audit }, - _ => crate::EventFamily::TokenAccount, + _ => crate::MdEventFamily::TokenAccount, }; } @@ -2577,7 +2584,7 @@ fn hash(bytes: &[u8]) -> std::string::String { } fn hex_prefix(bytes: &[u8]) -> std::string::String { - let length = std::cmp::min(bytes.len(), crate::SPL_TOKEN_2022_DIAGNOSTIC_PREFIX_BYTES); + let length = std::cmp::min(bytes.len(), crate::DC_SPL_TOKEN2022_DIAGNOSTIC_PREFIX_BYTES); let mut output = std::string::String::with_capacity(length.saturating_mul(2)); for byte in &bytes[..length] { output.push_str(format!("{byte:02x}").as_str()); @@ -2589,12 +2596,12 @@ fn failed( entry_code: std::option::Option<&str>, code: &str, message: std::string::String, -) -> crate::DecoderExecutionResult { - return crate::DecoderExecutionResult { - status: crate::DecoderOutcomeStatus::Failed, +) -> crate::DcApiDecoderExecutionResult { + return crate::DcApiDecoderExecutionResult { + status: crate::DcApiDecoderOutcomeStatus::Failed, recognized_entry_code: entry_code.map(str::to_string), observations: std::vec::Vec::new(), - diagnostics: std::vec![crate::DecoderDiagnostic { + diagnostics: std::vec![crate::DcApiDecoderDiagnostic { code: code.to_string(), message, retriable: false, diff --git a/kb-lib/src/decoder/stable.rs b/kb-lib/src/decoder/stable.rs index 1faa4ac..ba8e2ea 100644 --- a/kb-lib/src/decoder/stable.rs +++ b/kb-lib/src/decoder/stable.rs @@ -3,7 +3,7 @@ //! `stable` decoder family. -pub mod swap_hylo_exchange; -pub mod swap_jupiter_stable; -pub mod swap_numeraire; -pub mod swap_stabble; +mod swap_hylo_exchange; +mod swap_jupiter_stable; +mod swap_numeraire; +mod swap_stabble; diff --git a/kb-lib/src/decoder/stable/swap_hylo_exchange.rs b/kb-lib/src/decoder/stable/swap_hylo_exchange.rs index 668ecbc..ffeb0b7 100644 --- a/kb-lib/src/decoder/stable/swap_hylo_exchange.rs +++ b/kb-lib/src/decoder/stable/swap_hylo_exchange.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_stable_swap_hylo_exchange`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_stable_swap_hylo_exchange"; +const LEGACY_CRATE: &str = "kb_decoder_stable_swap_hylo_exchange"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/stable/swap_jupiter_stable.rs b/kb-lib/src/decoder/stable/swap_jupiter_stable.rs index e07f3c0..a0f3248 100644 --- a/kb-lib/src/decoder/stable/swap_jupiter_stable.rs +++ b/kb-lib/src/decoder/stable/swap_jupiter_stable.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_stable_swap_jupiter_stable`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_stable_swap_jupiter_stable"; +const LEGACY_CRATE: &str = "kb_decoder_stable_swap_jupiter_stable"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/stable/swap_numeraire.rs b/kb-lib/src/decoder/stable/swap_numeraire.rs index bf10ea5..a460c30 100644 --- a/kb-lib/src/decoder/stable/swap_numeraire.rs +++ b/kb-lib/src/decoder/stable/swap_numeraire.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_stable_swap_numeraire`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_stable_swap_numeraire"; +const LEGACY_CRATE: &str = "kb_decoder_stable_swap_numeraire"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/stable/swap_stabble.rs b/kb-lib/src/decoder/stable/swap_stabble.rs index 3680e6b..30e4be2 100644 --- a/kb-lib/src/decoder/stable/swap_stabble.rs +++ b/kb-lib/src/decoder/stable/swap_stabble.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_stable_swap_stabble`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_stable_swap_stabble"; +const LEGACY_CRATE: &str = "kb_decoder_stable_swap_stabble"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/staking.rs b/kb-lib/src/decoder/staking.rs index e8cec74..2d543f2 100644 --- a/kb-lib/src/decoder/staking.rs +++ b/kb-lib/src/decoder/staking.rs @@ -3,6 +3,6 @@ //! `staking` decoder family. -pub mod kamino_farm; -pub mod marinade_finance; -pub mod solayer; +mod kamino_farm; +mod marinade_finance; +mod solayer; diff --git a/kb-lib/src/decoder/staking/kamino_farm.rs b/kb-lib/src/decoder/staking/kamino_farm.rs index cf3578e..9d5f8af 100644 --- a/kb-lib/src/decoder/staking/kamino_farm.rs +++ b/kb-lib/src/decoder/staking/kamino_farm.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_staking_kamino_farm`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_staking_kamino_farm"; +const LEGACY_CRATE: &str = "kb_decoder_staking_kamino_farm"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/staking/marinade_finance.rs b/kb-lib/src/decoder/staking/marinade_finance.rs index d78e821..6d550bd 100644 --- a/kb-lib/src/decoder/staking/marinade_finance.rs +++ b/kb-lib/src/decoder/staking/marinade_finance.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_staking_marinade_finance`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_staking_marinade_finance"; +const LEGACY_CRATE: &str = "kb_decoder_staking_marinade_finance"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/staking/solayer.rs b/kb-lib/src/decoder/staking/solayer.rs index 24ce55e..e5bd11a 100644 --- a/kb-lib/src/decoder/staking/solayer.rs +++ b/kb-lib/src/decoder/staking/solayer.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_staking_solayer`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_staking_solayer"; +const LEGACY_CRATE: &str = "kb_decoder_staking_solayer"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/treasury.rs b/kb-lib/src/decoder/treasury.rs index df134a1..e346807 100644 --- a/kb-lib/src/decoder/treasury.rs +++ b/kb-lib/src/decoder/treasury.rs @@ -3,4 +3,4 @@ //! `treasury` decoder family. -pub mod helium_treasury_management; +mod helium_treasury_management; diff --git a/kb-lib/src/decoder/treasury/helium_treasury_management.rs b/kb-lib/src/decoder/treasury/helium_treasury_management.rs index 0c7f343..19a8abb 100644 --- a/kb-lib/src/decoder/treasury/helium_treasury_management.rs +++ b/kb-lib/src/decoder/treasury/helium_treasury_management.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_treasury_helium_treasury_management`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_treasury_helium_treasury_management"; +const LEGACY_CRATE: &str = "kb_decoder_treasury_helium_treasury_management"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/vault.rs b/kb-lib/src/decoder/vault.rs index e62911a..a94e727 100644 --- a/kb-lib/src/decoder/vault.rs +++ b/kb-lib/src/decoder/vault.rs @@ -3,9 +3,9 @@ //! `vault` decoder family. -pub mod carrot_defi; -pub mod hylo_stability_pool; -pub mod kamino; -pub mod kamino_v2; -pub mod kamino_yvaults; -pub mod meteora; +mod carrot_defi; +mod hylo_stability_pool; +mod kamino; +mod kamino_v2; +mod kamino_yvaults; +mod meteora; diff --git a/kb-lib/src/decoder/vault/carrot_defi.rs b/kb-lib/src/decoder/vault/carrot_defi.rs index ab3e985..5270f6d 100644 --- a/kb-lib/src/decoder/vault/carrot_defi.rs +++ b/kb-lib/src/decoder/vault/carrot_defi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_vault_carrot_defi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_vault_carrot_defi"; +const LEGACY_CRATE: &str = "kb_decoder_vault_carrot_defi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/vault/hylo_stability_pool.rs b/kb-lib/src/decoder/vault/hylo_stability_pool.rs index 3523575..f7b9ec5 100644 --- a/kb-lib/src/decoder/vault/hylo_stability_pool.rs +++ b/kb-lib/src/decoder/vault/hylo_stability_pool.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_vault_hylo_stability_pool`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_vault_hylo_stability_pool"; +const LEGACY_CRATE: &str = "kb_decoder_vault_hylo_stability_pool"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/vault/kamino.rs b/kb-lib/src/decoder/vault/kamino.rs index ebc03f6..e197850 100644 --- a/kb-lib/src/decoder/vault/kamino.rs +++ b/kb-lib/src/decoder/vault/kamino.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_vault_kamino`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_vault_kamino"; +const LEGACY_CRATE: &str = "kb_decoder_vault_kamino"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/vault/kamino_v2.rs b/kb-lib/src/decoder/vault/kamino_v2.rs index 99bed69..dbdc10b 100644 --- a/kb-lib/src/decoder/vault/kamino_v2.rs +++ b/kb-lib/src/decoder/vault/kamino_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_vault_kamino_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_vault_kamino_v2"; +const LEGACY_CRATE: &str = "kb_decoder_vault_kamino_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/vault/kamino_yvaults.rs b/kb-lib/src/decoder/vault/kamino_yvaults.rs index fce5680..5bfe555 100644 --- a/kb-lib/src/decoder/vault/kamino_yvaults.rs +++ b/kb-lib/src/decoder/vault/kamino_yvaults.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_vault_kamino_yvaults`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_vault_kamino_yvaults"; +const LEGACY_CRATE: &str = "kb_decoder_vault_kamino_yvaults"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/vault/meteora.rs b/kb-lib/src/decoder/vault/meteora.rs index 7c5732f..3ef46b7 100644 --- a/kb-lib/src/decoder/vault/meteora.rs +++ b/kb-lib/src/decoder/vault/meteora.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_vault_meteora`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_vault_meteora"; +const LEGACY_CRATE: &str = "kb_decoder_vault_meteora"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/vesting.rs b/kb-lib/src/decoder/vesting.rs index 5a0aee5..3904370 100644 --- a/kb-lib/src/decoder/vesting.rs +++ b/kb-lib/src/decoder/vesting.rs @@ -3,4 +3,4 @@ //! `vesting` decoder family. -pub mod streamflow; +mod streamflow; diff --git a/kb-lib/src/decoder/vesting/streamflow.rs b/kb-lib/src/decoder/vesting/streamflow.rs index cfacc41..6dba305 100644 --- a/kb-lib/src/decoder/vesting/streamflow.rs +++ b/kb-lib/src/decoder/vesting/streamflow.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_vesting_streamflow`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_vesting_streamflow"; +const LEGACY_CRATE: &str = "kb_decoder_vesting_streamflow"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/wallet.rs b/kb-lib/src/decoder/wallet.rs index f260b88..b311150 100644 --- a/kb-lib/src/decoder/wallet.rs +++ b/kb-lib/src/decoder/wallet.rs @@ -3,4 +3,4 @@ //! `wallet` decoder family. -pub mod jupiter_apepro_smart_wallet; +mod jupiter_apepro_smart_wallet; diff --git a/kb-lib/src/decoder/wallet/jupiter_apepro_smart_wallet.rs b/kb-lib/src/decoder/wallet/jupiter_apepro_smart_wallet.rs index 771454c..07d4892 100644 --- a/kb-lib/src/decoder/wallet/jupiter_apepro_smart_wallet.rs +++ b/kb-lib/src/decoder/wallet/jupiter_apepro_smart_wallet.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_wallet_jupiter_apepro_smart_wallet`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_wallet_jupiter_apepro_smart_wallet"; +const LEGACY_CRATE: &str = "kb_decoder_wallet_jupiter_apepro_smart_wallet"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/decoder/weighted.rs b/kb-lib/src/decoder/weighted.rs index 206c266..0d87088 100644 --- a/kb-lib/src/decoder/weighted.rs +++ b/kb-lib/src/decoder/weighted.rs @@ -3,4 +3,4 @@ //! `weighted` decoder family. -pub mod swap_stabble; +mod swap_stabble; diff --git a/kb-lib/src/decoder/weighted/swap_stabble.rs b/kb-lib/src/decoder/weighted/swap_stabble.rs index 60aed3e..99366aa 100644 --- a/kb-lib/src/decoder/weighted/swap_stabble.rs +++ b/kb-lib/src/decoder/weighted/swap_stabble.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_decoder_weighted_swap_stabble`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_decoder_weighted_swap_stabble"; +const LEGACY_CRATE: &str = "kb_decoder_weighted_swap_stabble"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor.rs b/kb-lib/src/executor.rs index 9e58a78..b3cdff8 100644 --- a/kb-lib/src/executor.rs +++ b/kb-lib/src/executor.rs @@ -3,31 +3,81 @@ //! Consolidated executor modules. -pub mod adapter; -pub mod admin; -pub mod amm; -pub mod api; -pub mod bridge; -pub mod clmm; -pub mod cpmm; -pub mod dlmm; -pub mod fees; -pub mod governance; -pub mod launchpad; -pub mod lending; -pub mod lock; -pub mod metadata; -pub mod nft; -pub mod orderbook; -pub mod perpetuals; -pub mod router; -pub mod rwa; -pub mod solana; -pub mod spl; -pub mod stable; -pub mod staking; -pub mod treasury; -pub mod vault; -pub mod vesting; -pub mod wallet; -pub mod weighted; +mod adapter; +mod admin; +mod amm; +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 treasury; +mod vault; +mod vesting; +mod wallet; +mod weighted; +/// Exposes the blockhash policy kind. +pub use self::api::ExApiExecutionBlockhashKind; +/// Exposes the blockhash policy. +pub use self::api::ExApiExecutionBlockhashPolicy; +/// Exposes the exact execution capability result. +pub use self::api::ExApiExecutionCapability; +/// Exposes supported Solana clusters. +pub use self::api::ExApiExecutionCluster; +/// Exposes cluster restrictions. +pub use self::api::ExApiExecutionClusterPolicy; +/// Exposes the result of waiting for transaction confirmation. +pub use self::api::ExApiExecutionConfirmationResult; +/// Exposes transaction confirmation states. +pub use self::api::ExApiExecutionConfirmationStatus; +/// Exposes explicit execution cost ceilings. +pub use self::api::ExApiExecutionCostLimit; +/// Exposes the legacy common execution plan type. +pub use self::api::ExApiExecutionPlan; +/// Exposes the complete execution policy. +pub use self::api::ExApiExecutionPolicy; +/// Exposes the legacy common execution request type. +pub use self::api::ExApiExecutionRequest; +/// Exposes the result of a transaction send adapter. +pub use self::api::ExApiExecutionSendResult; +/// Exposes the simulation policy. +pub use self::api::ExApiExecutionSimulationPolicy; +/// Exposes the simulation result contract. +pub use self::api::ExApiExecutionSimulationResult; +/// Exposes the legacy common execution support enum. +pub use self::api::ExApiExecutionSupport; +/// Exposes the legacy common instruction executor trait. +pub use self::api::ExApiInstructionExecutor; +/// Exposes one planned instruction account. +pub use self::api::ExApiPlannedAccount; +/// Exposes one encoded planned instruction. +pub use self::api::ExApiPlannedInstruction; +/// Exposes post-execution replay diagnostics. +pub use self::api::ExApiPostExecutionDiagnostic; +/// Exposes post-execution validation requirements. +pub use self::api::ExApiPostExecutionValidationPolicy; +/// Exposes a typed execution plan. +pub use self::api::ExApiPreparedExecutionPlan; +/// Exposes one required signer. +pub use self::api::ExApiRequiredSigner; +/// Exposes the typed executor contract. +pub use self::api::ExApiTypedInstructionExecutor; +/// Exposes the compact JSON payload serializer. +pub use self::api::executor_api_serialize_payload_json; +/// Exposes the pretty JSON payload serializer. +pub use self::api::executor_api_serialize_payload_json_pretty; diff --git a/kb-lib/src/executor/adapter.rs b/kb-lib/src/executor/adapter.rs index 9b6e95e..e4794e5 100644 --- a/kb-lib/src/executor/adapter.rs +++ b/kb-lib/src/executor/adapter.rs @@ -3,4 +3,4 @@ //! `adapter` executor family. -pub mod saber_decimal_wrapper; +mod saber_decimal_wrapper; diff --git a/kb-lib/src/executor/adapter/saber_decimal_wrapper.rs b/kb-lib/src/executor/adapter/saber_decimal_wrapper.rs index bfa640e..c6e82a8 100644 --- a/kb-lib/src/executor/adapter/saber_decimal_wrapper.rs +++ b/kb-lib/src/executor/adapter/saber_decimal_wrapper.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_adapter_saber_decimal_wrapper`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_adapter_saber_decimal_wrapper"; +const LEGACY_CRATE: &str = "kb_executor_adapter_saber_decimal_wrapper"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/admin.rs b/kb-lib/src/executor/admin.rs index 85aa52c..487fd2a 100644 --- a/kb-lib/src/executor/admin.rs +++ b/kb-lib/src/executor/admin.rs @@ -3,5 +3,5 @@ //! `admin` executor family. -pub mod jupiter_lock; -pub mod pump_fees; +mod jupiter_lock; +mod pump_fees; diff --git a/kb-lib/src/executor/admin/jupiter_lock.rs b/kb-lib/src/executor/admin/jupiter_lock.rs index 9b417e2..77c55a9 100644 --- a/kb-lib/src/executor/admin/jupiter_lock.rs +++ b/kb-lib/src/executor/admin/jupiter_lock.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_admin_jupiter_lock`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_admin_jupiter_lock"; +const LEGACY_CRATE: &str = "kb_executor_admin_jupiter_lock"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/admin/pump_fees.rs b/kb-lib/src/executor/admin/pump_fees.rs index 5fce2fa..8ba9de5 100644 --- a/kb-lib/src/executor/admin/pump_fees.rs +++ b/kb-lib/src/executor/admin/pump_fees.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_admin_pump_fees`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_admin_pump_fees"; +const LEGACY_CRATE: &str = "kb_executor_admin_pump_fees"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm.rs b/kb-lib/src/executor/amm.rs index bb5c941..c87f3e4 100644 --- a/kb-lib/src/executor/amm.rs +++ b/kb-lib/src/executor/amm.rs @@ -3,29 +3,29 @@ //! `amm` executor family. -pub mod aldrin_v1; -pub mod aldrin_v2; -pub mod alphaq; -pub mod believe; -pub mod bonk_swap; -pub mod fluxbeam; -pub mod goon_fi; -pub mod goosefx_gamma; -pub mod goosefx_v2; -pub mod guac_swap; -pub mod lifinity_swap_v2; -pub mod metadao_futarchy_amm; -pub mod metadao_v0_5; -pub mod meteora_damm_v1; -pub mod meteora_damm_v2; -pub mod obric_v2; -pub mod one_dex; -pub mod pump_swap; -pub mod raydium_lp_v4; -pub mod solfi; -pub mod solfi_v2; -pub mod vertigo; -pub mod virtuals; -pub mod woofi; -pub mod zero_fi; -pub mod zora; +mod aldrin_v1; +mod aldrin_v2; +mod alphaq; +mod believe; +mod bonk_swap; +mod fluxbeam; +mod goon_fi; +mod goosefx_gamma; +mod goosefx_v2; +mod guac_swap; +mod lifinity_swap_v2; +mod metadao_futarchy_amm; +mod metadao_v0_5; +mod meteora_damm_v1; +mod meteora_damm_v2; +mod obric_v2; +mod one_dex; +mod pump_swap; +mod raydium_lp_v4; +mod solfi; +mod solfi_v2; +mod vertigo; +mod virtuals; +mod woofi; +mod zero_fi; +mod zora; diff --git a/kb-lib/src/executor/amm/aldrin_v1.rs b/kb-lib/src/executor/amm/aldrin_v1.rs index 48e1c2e..2651535 100644 --- a/kb-lib/src/executor/amm/aldrin_v1.rs +++ b/kb-lib/src/executor/amm/aldrin_v1.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_aldrin_v1`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v1"; +const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v1"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/aldrin_v2.rs b/kb-lib/src/executor/amm/aldrin_v2.rs index 6688a49..139670b 100644 --- a/kb-lib/src/executor/amm/aldrin_v2.rs +++ b/kb-lib/src/executor/amm/aldrin_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_aldrin_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v2"; +const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/alphaq.rs b/kb-lib/src/executor/amm/alphaq.rs index 8aa3790..d97dd38 100644 --- a/kb-lib/src/executor/amm/alphaq.rs +++ b/kb-lib/src/executor/amm/alphaq.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_alphaq`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_alphaq"; +const LEGACY_CRATE: &str = "kb_executor_amm_alphaq"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/believe.rs b/kb-lib/src/executor/amm/believe.rs index 97863ac..4185a63 100644 --- a/kb-lib/src/executor/amm/believe.rs +++ b/kb-lib/src/executor/amm/believe.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_believe`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_believe"; +const LEGACY_CRATE: &str = "kb_executor_amm_believe"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/bonk_swap.rs b/kb-lib/src/executor/amm/bonk_swap.rs index cf8f42d..c522505 100644 --- a/kb-lib/src/executor/amm/bonk_swap.rs +++ b/kb-lib/src/executor/amm/bonk_swap.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_bonk_swap`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_bonk_swap"; +const LEGACY_CRATE: &str = "kb_executor_amm_bonk_swap"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/fluxbeam.rs b/kb-lib/src/executor/amm/fluxbeam.rs index eb41497..e3c5c3f 100644 --- a/kb-lib/src/executor/amm/fluxbeam.rs +++ b/kb-lib/src/executor/amm/fluxbeam.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_fluxbeam`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_fluxbeam"; +const LEGACY_CRATE: &str = "kb_executor_amm_fluxbeam"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/goon_fi.rs b/kb-lib/src/executor/amm/goon_fi.rs index 0ea86c4..ebda121 100644 --- a/kb-lib/src/executor/amm/goon_fi.rs +++ b/kb-lib/src/executor/amm/goon_fi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_goon_fi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_goon_fi"; +const LEGACY_CRATE: &str = "kb_executor_amm_goon_fi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/goosefx_gamma.rs b/kb-lib/src/executor/amm/goosefx_gamma.rs index 7fdd2ac..5da8682 100644 --- a/kb-lib/src/executor/amm/goosefx_gamma.rs +++ b/kb-lib/src/executor/amm/goosefx_gamma.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_goosefx_gamma`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_gamma"; +const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_gamma"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/goosefx_v2.rs b/kb-lib/src/executor/amm/goosefx_v2.rs index 769761c..080377f 100644 --- a/kb-lib/src/executor/amm/goosefx_v2.rs +++ b/kb-lib/src/executor/amm/goosefx_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_goosefx_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_v2"; +const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/guac_swap.rs b/kb-lib/src/executor/amm/guac_swap.rs index 941c19e..2d961ba 100644 --- a/kb-lib/src/executor/amm/guac_swap.rs +++ b/kb-lib/src/executor/amm/guac_swap.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_guac_swap`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_guac_swap"; +const LEGACY_CRATE: &str = "kb_executor_amm_guac_swap"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/lifinity_swap_v2.rs b/kb-lib/src/executor/amm/lifinity_swap_v2.rs index b95aa3b..6bbd483 100644 --- a/kb-lib/src/executor/amm/lifinity_swap_v2.rs +++ b/kb-lib/src/executor/amm/lifinity_swap_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_lifinity_swap_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_lifinity_swap_v2"; +const LEGACY_CRATE: &str = "kb_executor_amm_lifinity_swap_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/metadao_futarchy_amm.rs b/kb-lib/src/executor/amm/metadao_futarchy_amm.rs index 1512038..40b5148 100644 --- a/kb-lib/src/executor/amm/metadao_futarchy_amm.rs +++ b/kb-lib/src/executor/amm/metadao_futarchy_amm.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_metadao_futarchy_amm`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_metadao_futarchy_amm"; +const LEGACY_CRATE: &str = "kb_executor_amm_metadao_futarchy_amm"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/metadao_v0_5.rs b/kb-lib/src/executor/amm/metadao_v0_5.rs index ba3dc52..d1a8ddc 100644 --- a/kb-lib/src/executor/amm/metadao_v0_5.rs +++ b/kb-lib/src/executor/amm/metadao_v0_5.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_metadao_v0_5`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_metadao_v0_5"; +const LEGACY_CRATE: &str = "kb_executor_amm_metadao_v0_5"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/meteora_damm_v1.rs b/kb-lib/src/executor/amm/meteora_damm_v1.rs index 3333ec5..b31f08d 100644 --- a/kb-lib/src/executor/amm/meteora_damm_v1.rs +++ b/kb-lib/src/executor/amm/meteora_damm_v1.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_meteora_damm_v1`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v1"; +const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v1"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/meteora_damm_v2.rs b/kb-lib/src/executor/amm/meteora_damm_v2.rs index 9cc61a8..b00faf9 100644 --- a/kb-lib/src/executor/amm/meteora_damm_v2.rs +++ b/kb-lib/src/executor/amm/meteora_damm_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_meteora_damm_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v2"; +const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/obric_v2.rs b/kb-lib/src/executor/amm/obric_v2.rs index 60519ab..752cb9a 100644 --- a/kb-lib/src/executor/amm/obric_v2.rs +++ b/kb-lib/src/executor/amm/obric_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_obric_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_obric_v2"; +const LEGACY_CRATE: &str = "kb_executor_amm_obric_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/one_dex.rs b/kb-lib/src/executor/amm/one_dex.rs index 538b549..0d89e88 100644 --- a/kb-lib/src/executor/amm/one_dex.rs +++ b/kb-lib/src/executor/amm/one_dex.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_one_dex`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_one_dex"; +const LEGACY_CRATE: &str = "kb_executor_amm_one_dex"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/pump_swap.rs b/kb-lib/src/executor/amm/pump_swap.rs index 511e8de..1216c8a 100644 --- a/kb-lib/src/executor/amm/pump_swap.rs +++ b/kb-lib/src/executor/amm/pump_swap.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_pump_swap`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_pump_swap"; +const LEGACY_CRATE: &str = "kb_executor_amm_pump_swap"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/raydium_lp_v4.rs b/kb-lib/src/executor/amm/raydium_lp_v4.rs index 1207165..1f67425 100644 --- a/kb-lib/src/executor/amm/raydium_lp_v4.rs +++ b/kb-lib/src/executor/amm/raydium_lp_v4.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_raydium_lp_v4`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_raydium_lp_v4"; +const LEGACY_CRATE: &str = "kb_executor_amm_raydium_lp_v4"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/solfi.rs b/kb-lib/src/executor/amm/solfi.rs index 8aa1097..79ce671 100644 --- a/kb-lib/src/executor/amm/solfi.rs +++ b/kb-lib/src/executor/amm/solfi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_solfi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_solfi"; +const LEGACY_CRATE: &str = "kb_executor_amm_solfi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/solfi_v2.rs b/kb-lib/src/executor/amm/solfi_v2.rs index 1448257..373d91d 100644 --- a/kb-lib/src/executor/amm/solfi_v2.rs +++ b/kb-lib/src/executor/amm/solfi_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_solfi_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_solfi_v2"; +const LEGACY_CRATE: &str = "kb_executor_amm_solfi_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/vertigo.rs b/kb-lib/src/executor/amm/vertigo.rs index 022a429..b3a1ad7 100644 --- a/kb-lib/src/executor/amm/vertigo.rs +++ b/kb-lib/src/executor/amm/vertigo.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_vertigo`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_vertigo"; +const LEGACY_CRATE: &str = "kb_executor_amm_vertigo"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/virtuals.rs b/kb-lib/src/executor/amm/virtuals.rs index 6b4fdfc..b5586d9 100644 --- a/kb-lib/src/executor/amm/virtuals.rs +++ b/kb-lib/src/executor/amm/virtuals.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_virtuals`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_virtuals"; +const LEGACY_CRATE: &str = "kb_executor_amm_virtuals"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/woofi.rs b/kb-lib/src/executor/amm/woofi.rs index 50fea7d..45b9786 100644 --- a/kb-lib/src/executor/amm/woofi.rs +++ b/kb-lib/src/executor/amm/woofi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_woofi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_woofi"; +const LEGACY_CRATE: &str = "kb_executor_amm_woofi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/zero_fi.rs b/kb-lib/src/executor/amm/zero_fi.rs index 168aaf1..09505d4 100644 --- a/kb-lib/src/executor/amm/zero_fi.rs +++ b/kb-lib/src/executor/amm/zero_fi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_zero_fi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_zero_fi"; +const LEGACY_CRATE: &str = "kb_executor_amm_zero_fi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/amm/zora.rs b/kb-lib/src/executor/amm/zora.rs index b36d341..e49fc62 100644 --- a/kb-lib/src/executor/amm/zora.rs +++ b/kb-lib/src/executor/amm/zora.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_amm_zora`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_amm_zora"; +const LEGACY_CRATE: &str = "kb_executor_amm_zora"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/api.rs b/kb-lib/src/executor/api.rs index c49a959..14f2c38 100644 --- a/kb-lib/src/executor/api.rs +++ b/kb-lib/src/executor/api.rs @@ -3,55 +3,55 @@ //! Executor contracts consolidated from `kb_execution_api`. -pub mod execution; -pub mod executor; +mod execution; +mod executor; /// Exposes the blockhash policy kind. -pub use crate::executor::api::execution::ExecutionBlockhashKind; +pub use self::execution::ExApiExecutionBlockhashKind; /// Exposes the blockhash policy. -pub use crate::executor::api::execution::ExecutionBlockhashPolicy; +pub use self::execution::ExApiExecutionBlockhashPolicy; /// Exposes the exact execution capability result. -pub use crate::executor::api::execution::ExecutionCapability; +pub use self::execution::ExApiExecutionCapability; /// Exposes supported Solana clusters. -pub use crate::executor::api::execution::ExecutionCluster; +pub use self::execution::ExApiExecutionCluster; /// Exposes cluster restrictions. -pub use crate::executor::api::execution::ExecutionClusterPolicy; +pub use self::execution::ExApiExecutionClusterPolicy; /// Exposes the result of waiting for transaction confirmation. -pub use crate::executor::api::execution::ExecutionConfirmationResult; +pub use self::execution::ExApiExecutionConfirmationResult; /// Exposes transaction confirmation states. -pub use crate::executor::api::execution::ExecutionConfirmationStatus; +pub use self::execution::ExApiExecutionConfirmationStatus; /// Exposes explicit execution cost ceilings. -pub use crate::executor::api::execution::ExecutionCostLimit; +pub use self::execution::ExApiExecutionCostLimit; /// Exposes the complete execution policy. -pub use crate::executor::api::execution::ExecutionPolicy; +pub use self::execution::ExApiExecutionPolicy; /// Exposes the result of a transaction send adapter. -pub use crate::executor::api::execution::ExecutionSendResult; +pub use self::execution::ExApiExecutionSendResult; /// Exposes the simulation policy. -pub use crate::executor::api::execution::ExecutionSimulationPolicy; +pub use self::execution::ExApiExecutionSimulationPolicy; /// Exposes the simulation result contract. -pub use crate::executor::api::execution::ExecutionSimulationResult; +pub use self::execution::ExApiExecutionSimulationResult; /// Exposes one planned instruction account. -pub use crate::executor::api::execution::PlannedAccount; +pub use self::execution::ExApiPlannedAccount; /// Exposes one encoded planned instruction. -pub use crate::executor::api::execution::PlannedInstruction; +pub use self::execution::ExApiPlannedInstruction; /// Exposes post-execution replay diagnostics. -pub use crate::executor::api::execution::PostExecutionDiagnostic; +pub use self::execution::ExApiPostExecutionDiagnostic; /// Exposes post-execution validation requirements. -pub use crate::executor::api::execution::PostExecutionValidationPolicy; +pub use self::execution::ExApiPostExecutionValidationPolicy; /// Exposes a typed execution plan. -pub use crate::executor::api::execution::PreparedExecutionPlan; +pub use self::execution::ExApiPreparedExecutionPlan; /// Exposes one required signer. -pub use crate::executor::api::execution::RequiredSigner; +pub use self::execution::ExApiRequiredSigner; /// Exposes the typed executor contract. -pub use crate::executor::api::execution::TypedInstructionExecutor; +pub use self::execution::ExApiTypedInstructionExecutor; /// Exposes the legacy common execution plan type. -pub use crate::executor::api::executor::ExecutionPlan; +pub use self::executor::ExApiExecutionPlan; /// Exposes the legacy common execution request type. -pub use crate::executor::api::executor::ExecutionRequest; +pub use self::executor::ExApiExecutionRequest; /// Exposes the legacy common execution support enum. -pub use crate::executor::api::executor::ExecutionSupport; +pub use self::executor::ExApiExecutionSupport; /// Exposes the legacy common instruction executor trait. -pub use crate::executor::api::executor::InstructionExecutor; +pub use self::executor::ExApiInstructionExecutor; /// Exposes the compact JSON payload serializer. -pub use crate::executor::api::executor::serialize_payload_json; +pub use self::executor::executor_api_serialize_payload_json; /// Exposes the pretty JSON payload serializer. -pub use crate::executor::api::executor::serialize_payload_json_pretty; +pub use self::executor::executor_api_serialize_payload_json_pretty; diff --git a/kb-lib/src/executor/api/execution.rs b/kb-lib/src/executor/api/execution.rs index 74b329a..2da6272 100644 --- a/kb-lib/src/executor/api/execution.rs +++ b/kb-lib/src/executor/api/execution.rs @@ -12,7 +12,7 @@ use ts_rs::TS; // rust-rules: derive-import export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionCapability.ts" )] -pub enum ExecutionCapability { +pub enum ExApiExecutionCapability { /// The operation is implemented by the executor. Supported { /// Stable operation code implemented by the executor. @@ -27,7 +27,7 @@ pub enum ExecutionCapability { }, } -impl crate::ExecutionCapability { +impl crate::ExApiExecutionCapability { /// Creates a supported capability value. pub fn supported(operation_code: impl std::convert::Into) -> Self { return Self::Supported { operation_code: operation_code.into() }; @@ -57,7 +57,7 @@ impl crate::ExecutionCapability { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionCluster.ts" )] -pub enum ExecutionCluster { +pub enum ExApiExecutionCluster { /// Local validator cluster. Localnet, /// Public development cluster. @@ -80,7 +80,7 @@ enum ExecutionClusterWire { Mainnet, } -impl<'de> serde::Deserialize<'de> for crate::ExecutionCluster { +impl<'de> serde::Deserialize<'de> for crate::ExApiExecutionCluster { fn deserialize( deserializer: Deserializer, ) -> std::result::Result @@ -106,19 +106,19 @@ impl<'de> serde::Deserialize<'de> for crate::ExecutionCluster { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionClusterPolicy.ts" )] -pub struct ExecutionClusterPolicy { +pub struct ExApiExecutionClusterPolicy { /// Cluster that the RPC endpoint must report. - pub expected_cluster: crate::ExecutionCluster, + pub expected_cluster: crate::ExApiExecutionCluster, /// Whether production execution may proceed after all other checks. pub allow_mainnet: bool, /// Whether the operator explicitly confirmed this production execution. pub mainnet_confirmation: bool, } -impl std::default::Default for crate::ExecutionClusterPolicy { +impl std::default::Default for crate::ExApiExecutionClusterPolicy { fn default() -> Self { return Self { - expected_cluster: crate::ExecutionCluster::Devnet, + expected_cluster: crate::ExApiExecutionCluster::Devnet, allow_mainnet: false, mainnet_confirmation: false, }; @@ -132,7 +132,7 @@ impl std::default::Default for crate::ExecutionClusterPolicy { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionSimulationPolicy.ts" )] -pub enum ExecutionSimulationPolicy { +pub enum ExApiExecutionSimulationPolicy { /// Simulation must succeed before signing or sending. Required, /// Simulation is not required. Safety policy rejects this mode by default. @@ -146,7 +146,7 @@ pub enum ExecutionSimulationPolicy { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionBlockhashKind.ts" )] -pub enum ExecutionBlockhashKind { +pub enum ExApiExecutionBlockhashKind { /// Fetch a recent blockhash and enforce a bounded age. Latest, /// Use a durable nonce account and authority. @@ -159,21 +159,21 @@ pub enum ExecutionBlockhashKind { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionBlockhashPolicy.ts" )] -pub struct ExecutionBlockhashPolicy { +pub struct ExApiExecutionBlockhashPolicy { /// Selected blockhash source. - pub kind: crate::ExecutionBlockhashKind, + pub kind: crate::ExApiExecutionBlockhashKind, /// Maximum accepted age for a recent blockhash, in slots. pub max_age_slots: std::option::Option, /// Durable nonce account when `kind` is `DurableNonce`. - pub nonce_account: std::option::Option, + pub nonce_account: std::option::Option, /// Durable nonce authority when `kind` is `DurableNonce`. - pub nonce_authority: std::option::Option, + pub nonce_authority: std::option::Option, } -impl std::default::Default for crate::ExecutionBlockhashPolicy { +impl std::default::Default for crate::ExApiExecutionBlockhashPolicy { fn default() -> Self { return Self { - kind: crate::ExecutionBlockhashKind::Latest, + kind: crate::ExApiExecutionBlockhashKind::Latest, max_age_slots: std::option::Option::Some(150), nonce_account: std::option::Option::None, nonce_authority: std::option::Option::None, @@ -187,7 +187,7 @@ impl std::default::Default for crate::ExecutionBlockhashPolicy { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionCostLimit.ts" )] -pub struct ExecutionCostLimit { +pub struct ExApiExecutionCostLimit { /// Maximum lamports that operation instructions may transfer or lock. pub max_spend_lamports: std::option::Option, /// Maximum total transaction fee accepted after simulation. @@ -196,7 +196,7 @@ pub struct ExecutionCostLimit { pub max_compute_unit_price_micro_lamports: std::option::Option, } -impl std::default::Default for crate::ExecutionCostLimit { +impl std::default::Default for crate::ExApiExecutionCostLimit { fn default() -> Self { return Self { max_spend_lamports: std::option::Option::None, @@ -212,7 +212,7 @@ impl std::default::Default for crate::ExecutionCostLimit { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/PostExecutionValidationPolicy.ts" )] -pub struct PostExecutionValidationPolicy { +pub struct ExApiPostExecutionValidationPolicy { /// Whether the sent signature must be inserted into canonical storage. pub canonical_insert_required: bool, /// Whether core extraction must complete. @@ -223,7 +223,7 @@ pub struct PostExecutionValidationPolicy { pub materialization_required: bool, } -impl std::default::Default for crate::PostExecutionValidationPolicy { +impl std::default::Default for crate::ExApiPostExecutionValidationPolicy { fn default() -> Self { return Self { canonical_insert_required: true, @@ -240,33 +240,33 @@ impl std::default::Default for crate::PostExecutionValidationPolicy { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionPolicy.ts" )] -pub struct ExecutionPolicy { +pub struct ExApiExecutionPolicy { /// Cluster restrictions. - pub cluster: crate::ExecutionClusterPolicy, + pub cluster: crate::ExApiExecutionClusterPolicy, /// Simulation requirement. - pub simulation: crate::ExecutionSimulationPolicy, + pub simulation: crate::ExApiExecutionSimulationPolicy, /// Blockhash source restrictions. - pub blockhash: crate::ExecutionBlockhashPolicy, + pub blockhash: crate::ExApiExecutionBlockhashPolicy, /// Explicit operation and fee ceilings. - pub cost_limit: crate::ExecutionCostLimit, + pub cost_limit: crate::ExApiExecutionCostLimit, /// Public keys authorized to sign this plan. - pub authorized_signers: std::vec::Vec, + pub authorized_signers: std::vec::Vec, /// Whether the operation is restricted to plan construction and simulation. pub dry_run: bool, /// Required post-execution validation steps. - pub post_execution_validation: crate::PostExecutionValidationPolicy, + pub post_execution_validation: crate::ExApiPostExecutionValidationPolicy, } -impl std::default::Default for crate::ExecutionPolicy { +impl std::default::Default for crate::ExApiExecutionPolicy { fn default() -> Self { return Self { - cluster: crate::ExecutionClusterPolicy::default(), - simulation: crate::ExecutionSimulationPolicy::Required, - blockhash: crate::ExecutionBlockhashPolicy::default(), - cost_limit: crate::ExecutionCostLimit::default(), + cluster: crate::ExApiExecutionClusterPolicy::default(), + simulation: crate::ExApiExecutionSimulationPolicy::Required, + blockhash: crate::ExApiExecutionBlockhashPolicy::default(), + cost_limit: crate::ExApiExecutionCostLimit::default(), authorized_signers: std::vec::Vec::new(), dry_run: true, - post_execution_validation: crate::PostExecutionValidationPolicy::default(), + post_execution_validation: crate::ExApiPostExecutionValidationPolicy::default(), }; } } @@ -277,9 +277,9 @@ impl std::default::Default for crate::ExecutionPolicy { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/PlannedAccount.ts" )] -pub struct PlannedAccount { +pub struct ExApiPlannedAccount { /// Account public key. - pub pubkey: crate::Pubkey, + pub pubkey: crate::MdPubkey, /// Whether the account must sign the transaction. pub is_signer: bool, /// Whether the account must be writable. @@ -292,13 +292,13 @@ pub struct PlannedAccount { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/PlannedInstruction.ts" )] -pub struct PlannedInstruction { +pub struct ExApiPlannedInstruction { /// Target program id. - pub program_id: crate::ProgramId, + pub program_id: crate::MdProgramId, /// Stable operation code represented by the instruction. pub operation_code: std::string::String, /// Ordered account metadata. - pub accounts: std::vec::Vec, + pub accounts: std::vec::Vec, /// Exact encoded instruction payload. pub data: std::vec::Vec, } @@ -309,9 +309,9 @@ pub struct PlannedInstruction { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/RequiredSigner.ts" )] -pub struct RequiredSigner { +pub struct ExApiRequiredSigner { /// Signer public key. - pub pubkey: crate::Pubkey, + pub pubkey: crate::MdPubkey, /// Stable signer role such as `fee_payer`, `funding_account` or `new_account`. pub role: std::string::String, } @@ -322,7 +322,7 @@ pub struct RequiredSigner { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/PreparedExecutionPlan.ts" )] -pub struct PreparedExecutionPlan { +pub struct ExApiPreparedExecutionPlan { /// Stable executor crate name. pub executor_name: std::string::String, /// Executor package version. @@ -332,13 +332,13 @@ pub struct PreparedExecutionPlan { /// Stable operation code. pub operation_code: std::string::String, /// Transaction fee payer. - pub fee_payer: crate::Pubkey, + pub fee_payer: crate::MdPubkey, /// Ordered instructions to place in the transaction message. - pub instructions: std::vec::Vec, + pub instructions: std::vec::Vec, /// Deduplicated signers required by the fee payer and instruction metas. - pub required_signers: std::vec::Vec, + pub required_signers: std::vec::Vec, /// Explicit policy to evaluate before simulation, signing and sending. - pub policy: crate::ExecutionPolicy, + pub policy: crate::ExApiExecutionPolicy, /// Lamports explicitly transferred or locked by planned instructions. pub requested_spend_lamports: u64, /// Requested compute-unit price, when present. @@ -351,15 +351,15 @@ pub struct PreparedExecutionPlan { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionSimulationResult.ts" )] -pub struct ExecutionSimulationResult { +pub struct ExApiExecutionSimulationResult { /// Whether an RPC simulation call was actually performed. pub simulated: bool, /// Whether the simulated transaction completed successfully. pub success: bool, /// Cluster reported by the simulation adapter. - pub cluster: crate::ExecutionCluster, + pub cluster: crate::ExApiExecutionCluster, /// Blockhash source used by the simulated transaction. - pub blockhash_kind: crate::ExecutionBlockhashKind, + pub blockhash_kind: crate::ExApiExecutionBlockhashKind, /// Observed recent blockhash age, in slots. pub blockhash_age_slots: std::option::Option, /// Replacement blockhash returned by the node, if replacement was requested. @@ -369,9 +369,9 @@ pub struct ExecutionSimulationResult { #[serde(default)] pub replacement_last_valid_block_height: std::option::Option, /// Durable nonce account used by the simulated transaction. - pub nonce_account: std::option::Option, + pub nonce_account: std::option::Option, /// Durable nonce authority used by the simulated transaction. - pub nonce_authority: std::option::Option, + pub nonce_authority: std::option::Option, /// Compute units consumed when reported by the RPC endpoint. pub units_consumed: std::option::Option, /// Estimated transaction fee in lamports when available. @@ -388,11 +388,11 @@ pub struct ExecutionSimulationResult { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionSendResult.ts" )] -pub struct ExecutionSendResult { +pub struct ExApiExecutionSendResult { /// Cluster used for submission. - pub cluster: crate::ExecutionCluster, + pub cluster: crate::ExApiExecutionCluster, /// Signature returned by the RPC endpoint. - pub signature: crate::Signature, + pub signature: crate::MdSignature, /// Whether submission was accepted by the RPC endpoint. pub submitted: bool, } @@ -404,7 +404,7 @@ pub struct ExecutionSendResult { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionConfirmationStatus.ts" )] -pub enum ExecutionConfirmationStatus { +pub enum ExApiExecutionConfirmationStatus { /// The transaction was observed at processed commitment. Processed, /// The transaction reached confirmed commitment. @@ -425,13 +425,13 @@ pub enum ExecutionConfirmationStatus { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/ExecutionConfirmationResult.ts" )] -pub struct ExecutionConfirmationResult { +pub struct ExApiExecutionConfirmationResult { /// Cluster queried for confirmation. - pub cluster: crate::ExecutionCluster, + pub cluster: crate::ExApiExecutionCluster, /// Submitted transaction signature. - pub signature: crate::Signature, + pub signature: crate::MdSignature, /// Highest confirmation state reached. - pub status: crate::ExecutionConfirmationStatus, + pub status: crate::ExApiExecutionConfirmationStatus, /// Slot that reported the transaction when available. pub slot: std::option::Option, /// Number of status polling attempts performed. @@ -448,9 +448,9 @@ pub struct ExecutionConfirmationResult { export, export_to = "../frontend/ts/bindings/kb_execution_api/execution/PostExecutionDiagnostic.ts" )] -pub struct PostExecutionDiagnostic { +pub struct ExApiPostExecutionDiagnostic { /// Executed transaction signature. - pub signature: crate::Signature, + pub signature: crate::MdSignature, /// Whether canonical insertion completed. pub canonical_inserted: bool, /// Whether core extraction completed. @@ -464,33 +464,33 @@ pub struct PostExecutionDiagnostic { } /// Contract implemented by executors that expose typed intents and exact plans. -pub trait TypedInstructionExecutor { +pub trait ExApiTypedInstructionExecutor { /// Protocol-specific typed intent. type Intent; /// Returns the exact capability for one program and operation code. fn capability( &self, - program_id: &crate::ProgramId, + program_id: &crate::MdProgramId, operation_code: &str, - ) -> crate::ExecutionCapability; + ) -> crate::ExApiExecutionCapability; /// Builds a typed execution plan without signing, sending or performing I/O. fn build_prepared_plan( &self, intent: &Self::Intent, - ) -> kb_core::Result; + ) -> kb_core::Result; } #[cfg(test)] mod tests { #[test] fn mainnet_cluster_serializes_with_current_name() { - let serialized = serde_json::to_string(&crate::ExecutionCluster::Mainnet) + let serialized = serde_json::to_string(&crate::ExApiExecutionCluster::Mainnet) .unwrap_or_else(|error| panic!("unexpected serialization error: {error}")); assert_eq!(serialized, "\"mainnet\""); - let legacy = serde_json::from_str::("\"mainnet_beta\"") + let legacy = serde_json::from_str::("\"mainnet_beta\"") .unwrap_or_else(|error| panic!("unexpected deserialization error: {error}")); - assert_eq!(legacy, crate::ExecutionCluster::Mainnet); + assert_eq!(legacy, crate::ExApiExecutionCluster::Mainnet); } } diff --git a/kb-lib/src/executor/api/executor.rs b/kb-lib/src/executor/api/executor.rs index 499ce59..39c043f 100644 --- a/kb-lib/src/executor/api/executor.rs +++ b/kb-lib/src/executor/api/executor.rs @@ -11,7 +11,7 @@ use ts_rs::TS; // rust-rules: derive-import export, export_to = "../frontend/ts/bindings/kb_execution_api/executor/ExecutionSupport.ts" )] -pub enum ExecutionSupport { +pub enum ExApiExecutionSupport { /// The executor cannot handle the request. No, /// The executor may handle the request after account and payload validation. @@ -26,9 +26,9 @@ pub enum ExecutionSupport { export, export_to = "../frontend/ts/bindings/kb_execution_api/executor/ExecutionRequest.ts" )] -pub struct ExecutionRequest { +pub struct ExApiExecutionRequest { /// Target program id. - pub program_id: crate::ProgramId, + pub program_id: crate::MdProgramId, /// Stable operation code such as buy, sell, transfer or route. pub operation_code: std::string::String, /// Serialized JSON payload reserved for protocol-specific arguments. @@ -41,7 +41,7 @@ pub struct ExecutionRequest { export, export_to = "../frontend/ts/bindings/kb_execution_api/executor/ExecutionPlan.ts" )] -pub struct ExecutionPlan { +pub struct ExApiExecutionPlan { /// Stable executor crate name. pub executor_name: std::string::String, /// Number of instructions that would be produced by the final implementation. @@ -51,7 +51,9 @@ pub struct ExecutionPlan { } /// Serializes a JSON payload to its compact string representation. -pub fn serialize_payload_json(value: &serde_json::Value) -> kb_core::Result { +pub fn executor_api_serialize_payload_json( + value: &serde_json::Value, +) -> kb_core::Result { return match serde_json::to_string(value) { std::result::Result::Ok(serialized) => std::result::Result::Ok(serialized), std::result::Result::Err(error) => std::result::Result::Err(kb_core::Error::new( @@ -62,7 +64,7 @@ pub fn serialize_payload_json(value: &serde_json::Value) -> kb_core::Result kb_core::Result { return match serde_json::to_string_pretty(value) { @@ -75,7 +77,7 @@ pub fn serialize_payload_json_pretty( } /// Common contract implemented by all execution crates. -pub trait InstructionExecutor { +pub trait ExApiInstructionExecutor { /// Returns the stable executor name. fn executor_name(&self) -> &'static str; @@ -86,7 +88,7 @@ pub trait InstructionExecutor { fn program_ids(&self) -> &'static [&'static str]; /// Tests whether this executor owns a program id. - fn handles_program_id(&self, program_id: &crate::ProgramId) -> bool { + fn handles_program_id(&self, program_id: &crate::MdProgramId) -> bool { return self .program_ids() .iter() @@ -94,11 +96,14 @@ pub trait InstructionExecutor { } /// Tests whether this executor supports a request. - fn supports_request(&self, request: &crate::ExecutionRequest) -> crate::ExecutionSupport; + fn supports_request( + &self, + request: &crate::ExApiExecutionRequest, + ) -> crate::ExApiExecutionSupport; /// Builds a neutral execution plan placeholder. fn build_plan( &self, - request: &crate::ExecutionRequest, - ) -> kb_core::Result; + request: &crate::ExApiExecutionRequest, + ) -> kb_core::Result; } diff --git a/kb-lib/src/executor/bridge.rs b/kb-lib/src/executor/bridge.rs index a7318eb..08c5b84 100644 --- a/kb-lib/src/executor/bridge.rs +++ b/kb-lib/src/executor/bridge.rs @@ -3,7 +3,7 @@ //! `bridge` executor family. -pub mod circle_cctp_token_messenger_minter; -pub mod circle_cctp_token_messenger_minter_v2; -pub mod layer_zero_endpoint; -pub mod layer_zero_executor; +mod circle_cctp_token_messenger_minter; +mod circle_cctp_token_messenger_minter_v2; +mod layer_zero_endpoint; +mod layer_zero_executor; diff --git a/kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs b/kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs index fde20ef..2ebf2fa 100644 --- a/kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs +++ b/kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_bridge_circle_cctp_token_messenger_minter`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter"; +const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs b/kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs index b30dcc7..361c61d 100644 --- a/kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs +++ b/kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_bridge_circle_cctp_token_messenger_minter_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter_v2"; +const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/bridge/layer_zero_endpoint.rs b/kb-lib/src/executor/bridge/layer_zero_endpoint.rs index d25f62f..25cea74 100644 --- a/kb-lib/src/executor/bridge/layer_zero_endpoint.rs +++ b/kb-lib/src/executor/bridge/layer_zero_endpoint.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_bridge_layer_zero_endpoint`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_endpoint"; +const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_endpoint"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/bridge/layer_zero_executor.rs b/kb-lib/src/executor/bridge/layer_zero_executor.rs index be521ae..a13dfe1 100644 --- a/kb-lib/src/executor/bridge/layer_zero_executor.rs +++ b/kb-lib/src/executor/bridge/layer_zero_executor.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_bridge_layer_zero_executor`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_executor"; +const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_executor"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/clmm.rs b/kb-lib/src/executor/clmm.rs index 10e30be..9afb745 100644 --- a/kb-lib/src/executor/clmm.rs +++ b/kb-lib/src/executor/clmm.rs @@ -3,9 +3,9 @@ //! `clmm` executor family. -pub mod byreal; -pub mod fusion; -pub mod orca_whirlpool; -pub mod pancake_swap; -pub mod raydium; -pub mod stabble; +mod byreal; +mod fusion; +mod orca_whirlpool; +mod pancake_swap; +mod raydium; +mod stabble; diff --git a/kb-lib/src/executor/clmm/byreal.rs b/kb-lib/src/executor/clmm/byreal.rs index 474a272..a9c803a 100644 --- a/kb-lib/src/executor/clmm/byreal.rs +++ b/kb-lib/src/executor/clmm/byreal.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_clmm_byreal`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_clmm_byreal"; +const LEGACY_CRATE: &str = "kb_executor_clmm_byreal"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/clmm/fusion.rs b/kb-lib/src/executor/clmm/fusion.rs index b4372c9..987f0db 100644 --- a/kb-lib/src/executor/clmm/fusion.rs +++ b/kb-lib/src/executor/clmm/fusion.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_clmm_fusion`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_clmm_fusion"; +const LEGACY_CRATE: &str = "kb_executor_clmm_fusion"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/clmm/orca_whirlpool.rs b/kb-lib/src/executor/clmm/orca_whirlpool.rs index e928020..86f809c 100644 --- a/kb-lib/src/executor/clmm/orca_whirlpool.rs +++ b/kb-lib/src/executor/clmm/orca_whirlpool.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_clmm_orca_whirlpool`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_clmm_orca_whirlpool"; +const LEGACY_CRATE: &str = "kb_executor_clmm_orca_whirlpool"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/clmm/pancake_swap.rs b/kb-lib/src/executor/clmm/pancake_swap.rs index 6597e32..f998ccc 100644 --- a/kb-lib/src/executor/clmm/pancake_swap.rs +++ b/kb-lib/src/executor/clmm/pancake_swap.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_clmm_pancake_swap`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_clmm_pancake_swap"; +const LEGACY_CRATE: &str = "kb_executor_clmm_pancake_swap"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/clmm/raydium.rs b/kb-lib/src/executor/clmm/raydium.rs index cbcafc3..5ea34d7 100644 --- a/kb-lib/src/executor/clmm/raydium.rs +++ b/kb-lib/src/executor/clmm/raydium.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_clmm_raydium`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_clmm_raydium"; +const LEGACY_CRATE: &str = "kb_executor_clmm_raydium"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/clmm/stabble.rs b/kb-lib/src/executor/clmm/stabble.rs index 9e7ef93..3640bbf 100644 --- a/kb-lib/src/executor/clmm/stabble.rs +++ b/kb-lib/src/executor/clmm/stabble.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_clmm_stabble`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_clmm_stabble"; +const LEGACY_CRATE: &str = "kb_executor_clmm_stabble"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/cpmm.rs b/kb-lib/src/executor/cpmm.rs index b478176..d1913c8 100644 --- a/kb-lib/src/executor/cpmm.rs +++ b/kb-lib/src/executor/cpmm.rs @@ -3,4 +3,4 @@ //! `cpmm` executor family. -pub mod raydium; +mod raydium; diff --git a/kb-lib/src/executor/cpmm/raydium.rs b/kb-lib/src/executor/cpmm/raydium.rs index ec33d26..be53c43 100644 --- a/kb-lib/src/executor/cpmm/raydium.rs +++ b/kb-lib/src/executor/cpmm/raydium.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_cpmm_raydium`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_cpmm_raydium"; +const LEGACY_CRATE: &str = "kb_executor_cpmm_raydium"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/dlmm.rs b/kb-lib/src/executor/dlmm.rs index be1c1b3..b32fba1 100644 --- a/kb-lib/src/executor/dlmm.rs +++ b/kb-lib/src/executor/dlmm.rs @@ -3,4 +3,4 @@ //! `dlmm` executor family. -pub mod meteora; +mod meteora; diff --git a/kb-lib/src/executor/dlmm/meteora.rs b/kb-lib/src/executor/dlmm/meteora.rs index f0ec784..9b7e7e4 100644 --- a/kb-lib/src/executor/dlmm/meteora.rs +++ b/kb-lib/src/executor/dlmm/meteora.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_dlmm_meteora`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_dlmm_meteora"; +const LEGACY_CRATE: &str = "kb_executor_dlmm_meteora"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/fees.rs b/kb-lib/src/executor/fees.rs index 52be93c..ad9c4c1 100644 --- a/kb-lib/src/executor/fees.rs +++ b/kb-lib/src/executor/fees.rs @@ -3,5 +3,5 @@ //! `fees` executor family. -pub mod bags_fee_share_v1; -pub mod bags_fee_share_v2; +mod bags_fee_share_v1; +mod bags_fee_share_v2; diff --git a/kb-lib/src/executor/fees/bags_fee_share_v1.rs b/kb-lib/src/executor/fees/bags_fee_share_v1.rs index 0a4b259..c8939ce 100644 --- a/kb-lib/src/executor/fees/bags_fee_share_v1.rs +++ b/kb-lib/src/executor/fees/bags_fee_share_v1.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_fees_bags_fee_share_v1`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v1"; +const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v1"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/fees/bags_fee_share_v2.rs b/kb-lib/src/executor/fees/bags_fee_share_v2.rs index 1dbed37..6053f84 100644 --- a/kb-lib/src/executor/fees/bags_fee_share_v2.rs +++ b/kb-lib/src/executor/fees/bags_fee_share_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_fees_bags_fee_share_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v2"; +const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/governance.rs b/kb-lib/src/executor/governance.rs index f570307..ee48869 100644 --- a/kb-lib/src/executor/governance.rs +++ b/kb-lib/src/executor/governance.rs @@ -3,4 +3,4 @@ //! `governance` executor family. -pub mod metadao_bid_wall; +mod metadao_bid_wall; diff --git a/kb-lib/src/executor/governance/metadao_bid_wall.rs b/kb-lib/src/executor/governance/metadao_bid_wall.rs index 7ca7ecf..420b2f8 100644 --- a/kb-lib/src/executor/governance/metadao_bid_wall.rs +++ b/kb-lib/src/executor/governance/metadao_bid_wall.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_governance_metadao_bid_wall`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_governance_metadao_bid_wall"; +const LEGACY_CRATE: &str = "kb_executor_governance_metadao_bid_wall"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/launchpad.rs b/kb-lib/src/executor/launchpad.rs index bbc2ba3..b4b5b9e 100644 --- a/kb-lib/src/executor/launchpad.rs +++ b/kb-lib/src/executor/launchpad.rs @@ -3,12 +3,12 @@ //! `launchpad` executor family. -pub mod boop_fun; -pub mod metadao_ico; -pub mod meteora_dbc; -pub mod moonit; -pub mod orca_wavebreak; -pub mod printr; -pub mod pump_fun; -pub mod pump_pumpup_ai; -pub mod raydium_launchlab; +mod boop_fun; +mod metadao_ico; +mod meteora_dbc; +mod moonit; +mod orca_wavebreak; +mod printr; +mod pump_fun; +mod pump_pumpup_ai; +mod raydium_launchlab; diff --git a/kb-lib/src/executor/launchpad/boop_fun.rs b/kb-lib/src/executor/launchpad/boop_fun.rs index 6022143..48b240a 100644 --- a/kb-lib/src/executor/launchpad/boop_fun.rs +++ b/kb-lib/src/executor/launchpad/boop_fun.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_launchpad_boop_fun`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_launchpad_boop_fun"; +const LEGACY_CRATE: &str = "kb_executor_launchpad_boop_fun"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/launchpad/metadao_ico.rs b/kb-lib/src/executor/launchpad/metadao_ico.rs index 1a8ef7e..2dccf12 100644 --- a/kb-lib/src/executor/launchpad/metadao_ico.rs +++ b/kb-lib/src/executor/launchpad/metadao_ico.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_launchpad_metadao_ico`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_launchpad_metadao_ico"; +const LEGACY_CRATE: &str = "kb_executor_launchpad_metadao_ico"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/launchpad/meteora_dbc.rs b/kb-lib/src/executor/launchpad/meteora_dbc.rs index bb25599..417eac9 100644 --- a/kb-lib/src/executor/launchpad/meteora_dbc.rs +++ b/kb-lib/src/executor/launchpad/meteora_dbc.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_launchpad_meteora_dbc`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_launchpad_meteora_dbc"; +const LEGACY_CRATE: &str = "kb_executor_launchpad_meteora_dbc"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/launchpad/moonit.rs b/kb-lib/src/executor/launchpad/moonit.rs index e460dd6..ce22f20 100644 --- a/kb-lib/src/executor/launchpad/moonit.rs +++ b/kb-lib/src/executor/launchpad/moonit.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_launchpad_moonit`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_launchpad_moonit"; +const LEGACY_CRATE: &str = "kb_executor_launchpad_moonit"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/launchpad/orca_wavebreak.rs b/kb-lib/src/executor/launchpad/orca_wavebreak.rs index c18acb7..b50d4f3 100644 --- a/kb-lib/src/executor/launchpad/orca_wavebreak.rs +++ b/kb-lib/src/executor/launchpad/orca_wavebreak.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_launchpad_orca_wavebreak`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_launchpad_orca_wavebreak"; +const LEGACY_CRATE: &str = "kb_executor_launchpad_orca_wavebreak"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/launchpad/printr.rs b/kb-lib/src/executor/launchpad/printr.rs index 58db109..d6ca468 100644 --- a/kb-lib/src/executor/launchpad/printr.rs +++ b/kb-lib/src/executor/launchpad/printr.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_launchpad_printr`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_launchpad_printr"; +const LEGACY_CRATE: &str = "kb_executor_launchpad_printr"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/launchpad/pump_fun.rs b/kb-lib/src/executor/launchpad/pump_fun.rs index 39f1bab..4337755 100644 --- a/kb-lib/src/executor/launchpad/pump_fun.rs +++ b/kb-lib/src/executor/launchpad/pump_fun.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_launchpad_pump_fun`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_fun"; +const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_fun"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/launchpad/pump_pumpup_ai.rs b/kb-lib/src/executor/launchpad/pump_pumpup_ai.rs index 7e265b8..dcc20d4 100644 --- a/kb-lib/src/executor/launchpad/pump_pumpup_ai.rs +++ b/kb-lib/src/executor/launchpad/pump_pumpup_ai.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_launchpad_pump_pumpup_ai`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_pumpup_ai"; +const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_pumpup_ai"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/launchpad/raydium_launchlab.rs b/kb-lib/src/executor/launchpad/raydium_launchlab.rs index 3ca77cf..96e2c1e 100644 --- a/kb-lib/src/executor/launchpad/raydium_launchlab.rs +++ b/kb-lib/src/executor/launchpad/raydium_launchlab.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_launchpad_raydium_launchlab`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_launchpad_raydium_launchlab"; +const LEGACY_CRATE: &str = "kb_executor_launchpad_raydium_launchlab"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/lending.rs b/kb-lib/src/executor/lending.rs index ef2039a..14e47d0 100644 --- a/kb-lib/src/executor/lending.rs +++ b/kb-lib/src/executor/lending.rs @@ -3,10 +3,10 @@ //! `lending` executor family. -pub mod clone; -pub mod jupiter_lend_borrow; -pub mod jupiter_lend_earn; -pub mod jupiter_lend_flash_loan; -pub mod jupiter_lend_liquidity; -pub mod kamino; -pub mod marginfi_v2; +mod clone; +mod jupiter_lend_borrow; +mod jupiter_lend_earn; +mod jupiter_lend_flash_loan; +mod jupiter_lend_liquidity; +mod kamino; +mod marginfi_v2; diff --git a/kb-lib/src/executor/lending/clone.rs b/kb-lib/src/executor/lending/clone.rs index c65ca42..aeac188 100644 --- a/kb-lib/src/executor/lending/clone.rs +++ b/kb-lib/src/executor/lending/clone.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_lending_clone`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_lending_clone"; +const LEGACY_CRATE: &str = "kb_executor_lending_clone"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/lending/jupiter_lend_borrow.rs b/kb-lib/src/executor/lending/jupiter_lend_borrow.rs index 88ae809..c4ba60e 100644 --- a/kb-lib/src/executor/lending/jupiter_lend_borrow.rs +++ b/kb-lib/src/executor/lending/jupiter_lend_borrow.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_lending_jupiter_lend_borrow`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_borrow"; +const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_borrow"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/lending/jupiter_lend_earn.rs b/kb-lib/src/executor/lending/jupiter_lend_earn.rs index d617478..18bcfbd 100644 --- a/kb-lib/src/executor/lending/jupiter_lend_earn.rs +++ b/kb-lib/src/executor/lending/jupiter_lend_earn.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_lending_jupiter_lend_earn`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_earn"; +const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_earn"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs b/kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs index f63b6e0..9481dac 100644 --- a/kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs +++ b/kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_lending_jupiter_lend_flash_loan`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_flash_loan"; +const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_flash_loan"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/lending/jupiter_lend_liquidity.rs b/kb-lib/src/executor/lending/jupiter_lend_liquidity.rs index 718ebcb..67b1cc4 100644 --- a/kb-lib/src/executor/lending/jupiter_lend_liquidity.rs +++ b/kb-lib/src/executor/lending/jupiter_lend_liquidity.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_lending_jupiter_lend_liquidity`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_liquidity"; +const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_liquidity"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/lending/kamino.rs b/kb-lib/src/executor/lending/kamino.rs index 22e777a..139d6dd 100644 --- a/kb-lib/src/executor/lending/kamino.rs +++ b/kb-lib/src/executor/lending/kamino.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_lending_kamino`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_lending_kamino"; +const LEGACY_CRATE: &str = "kb_executor_lending_kamino"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/lending/marginfi_v2.rs b/kb-lib/src/executor/lending/marginfi_v2.rs index d50e56f..0cd1d9c 100644 --- a/kb-lib/src/executor/lending/marginfi_v2.rs +++ b/kb-lib/src/executor/lending/marginfi_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_lending_marginfi_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_lending_marginfi_v2"; +const LEGACY_CRATE: &str = "kb_executor_lending_marginfi_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/lock.rs b/kb-lib/src/executor/lock.rs index 6cd3b9c..75953bd 100644 --- a/kb-lib/src/executor/lock.rs +++ b/kb-lib/src/executor/lock.rs @@ -3,4 +3,4 @@ //! `lock` executor family. -pub mod raydium_lp; +mod raydium_lp; diff --git a/kb-lib/src/executor/lock/raydium_lp.rs b/kb-lib/src/executor/lock/raydium_lp.rs index 7819f0e..07f8d88 100644 --- a/kb-lib/src/executor/lock/raydium_lp.rs +++ b/kb-lib/src/executor/lock/raydium_lp.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_lock_raydium_lp`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_lock_raydium_lp"; +const LEGACY_CRATE: &str = "kb_executor_lock_raydium_lp"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/metadata.rs b/kb-lib/src/executor/metadata.rs index a9c6301..38df151 100644 --- a/kb-lib/src/executor/metadata.rs +++ b/kb-lib/src/executor/metadata.rs @@ -3,5 +3,5 @@ //! `metadata` executor family. -pub mod metaplex_token_metadata; -pub mod spl_name_service; +mod metaplex_token_metadata; +mod spl_name_service; diff --git a/kb-lib/src/executor/metadata/metaplex_token_metadata.rs b/kb-lib/src/executor/metadata/metaplex_token_metadata.rs index e6dbc89..3f04199 100644 --- a/kb-lib/src/executor/metadata/metaplex_token_metadata.rs +++ b/kb-lib/src/executor/metadata/metaplex_token_metadata.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_metadata_metaplex_token_metadata`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_metadata_metaplex_token_metadata"; +const LEGACY_CRATE: &str = "kb_executor_metadata_metaplex_token_metadata"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/metadata/spl_name_service.rs b/kb-lib/src/executor/metadata/spl_name_service.rs index b30e226..4319563 100644 --- a/kb-lib/src/executor/metadata/spl_name_service.rs +++ b/kb-lib/src/executor/metadata/spl_name_service.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_metadata_spl_name_service`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_metadata_spl_name_service"; +const LEGACY_CRATE: &str = "kb_executor_metadata_spl_name_service"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/nft.rs b/kb-lib/src/executor/nft.rs index 9c0ad96..925c37e 100644 --- a/kb-lib/src/executor/nft.rs +++ b/kb-lib/src/executor/nft.rs @@ -3,4 +3,4 @@ //! `nft` executor family. -pub mod metaplex_bubblegum; +mod metaplex_bubblegum; diff --git a/kb-lib/src/executor/nft/metaplex_bubblegum.rs b/kb-lib/src/executor/nft/metaplex_bubblegum.rs index c44f26b..227f334 100644 --- a/kb-lib/src/executor/nft/metaplex_bubblegum.rs +++ b/kb-lib/src/executor/nft/metaplex_bubblegum.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_nft_metaplex_bubblegum`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_nft_metaplex_bubblegum"; +const LEGACY_CRATE: &str = "kb_executor_nft_metaplex_bubblegum"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/orderbook.rs b/kb-lib/src/executor/orderbook.rs index 54fa55d..248388a 100644 --- a/kb-lib/src/executor/orderbook.rs +++ b/kb-lib/src/executor/orderbook.rs @@ -3,6 +3,6 @@ //! `orderbook` executor family. -pub mod jupiter_limit_order; -pub mod jupiter_limit_order_v2; -pub mod openbook_v2; +mod jupiter_limit_order; +mod jupiter_limit_order_v2; +mod openbook_v2; diff --git a/kb-lib/src/executor/orderbook/jupiter_limit_order.rs b/kb-lib/src/executor/orderbook/jupiter_limit_order.rs index ab3f427..02eda6c 100644 --- a/kb-lib/src/executor/orderbook/jupiter_limit_order.rs +++ b/kb-lib/src/executor/orderbook/jupiter_limit_order.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_orderbook_jupiter_limit_order`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order"; +const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs b/kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs index a7de10b..f7a7980 100644 --- a/kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs +++ b/kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_orderbook_jupiter_limit_order_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order_v2"; +const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/orderbook/openbook_v2.rs b/kb-lib/src/executor/orderbook/openbook_v2.rs index c1ec67c..b56fd80 100644 --- a/kb-lib/src/executor/orderbook/openbook_v2.rs +++ b/kb-lib/src/executor/orderbook/openbook_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_orderbook_openbook_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_orderbook_openbook_v2"; +const LEGACY_CRATE: &str = "kb_executor_orderbook_openbook_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/perpetuals.rs b/kb-lib/src/executor/perpetuals.rs index 5695fc7..f7586fa 100644 --- a/kb-lib/src/executor/perpetuals.rs +++ b/kb-lib/src/executor/perpetuals.rs @@ -3,6 +3,6 @@ //! `perpetuals` executor family. -pub mod drift_v2; -pub mod jupiter; -pub mod zeta; +mod drift_v2; +mod jupiter; +mod zeta; diff --git a/kb-lib/src/executor/perpetuals/drift_v2.rs b/kb-lib/src/executor/perpetuals/drift_v2.rs index fd40831..5e533ad 100644 --- a/kb-lib/src/executor/perpetuals/drift_v2.rs +++ b/kb-lib/src/executor/perpetuals/drift_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_perpetuals_drift_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_perpetuals_drift_v2"; +const LEGACY_CRATE: &str = "kb_executor_perpetuals_drift_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/perpetuals/jupiter.rs b/kb-lib/src/executor/perpetuals/jupiter.rs index d9933ff..29c0eeb 100644 --- a/kb-lib/src/executor/perpetuals/jupiter.rs +++ b/kb-lib/src/executor/perpetuals/jupiter.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_perpetuals_jupiter`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_perpetuals_jupiter"; +const LEGACY_CRATE: &str = "kb_executor_perpetuals_jupiter"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/perpetuals/zeta.rs b/kb-lib/src/executor/perpetuals/zeta.rs index 40ec751..e877665 100644 --- a/kb-lib/src/executor/perpetuals/zeta.rs +++ b/kb-lib/src/executor/perpetuals/zeta.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_perpetuals_zeta`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_perpetuals_zeta"; +const LEGACY_CRATE: &str = "kb_executor_perpetuals_zeta"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/router.rs b/kb-lib/src/executor/router.rs index 7f7c883..063d3f9 100644 --- a/kb-lib/src/executor/router.rs +++ b/kb-lib/src/executor/router.rs @@ -3,9 +3,9 @@ //! `router` executor family. -pub mod dflow_aggregator_v4; -pub mod jupiter_aggregator_v4; -pub mod jupiter_aggregator_v6; -pub mod jupiter_dca; -pub mod okx_labs_v1; -pub mod okx_labs_v2; +mod dflow_aggregator_v4; +mod jupiter_aggregator_v4; +mod jupiter_aggregator_v6; +mod jupiter_dca; +mod okx_labs_v1; +mod okx_labs_v2; diff --git a/kb-lib/src/executor/router/dflow_aggregator_v4.rs b/kb-lib/src/executor/router/dflow_aggregator_v4.rs index 27f3bda..86c8b6e 100644 --- a/kb-lib/src/executor/router/dflow_aggregator_v4.rs +++ b/kb-lib/src/executor/router/dflow_aggregator_v4.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_router_dflow_aggregator_v4`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_router_dflow_aggregator_v4"; +const LEGACY_CRATE: &str = "kb_executor_router_dflow_aggregator_v4"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/router/jupiter_aggregator_v4.rs b/kb-lib/src/executor/router/jupiter_aggregator_v4.rs index d9cf3ec..ccd3013 100644 --- a/kb-lib/src/executor/router/jupiter_aggregator_v4.rs +++ b/kb-lib/src/executor/router/jupiter_aggregator_v4.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_router_jupiter_aggregator_v4`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v4"; +const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v4"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/router/jupiter_aggregator_v6.rs b/kb-lib/src/executor/router/jupiter_aggregator_v6.rs index fc80545..173b958 100644 --- a/kb-lib/src/executor/router/jupiter_aggregator_v6.rs +++ b/kb-lib/src/executor/router/jupiter_aggregator_v6.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_router_jupiter_aggregator_v6`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v6"; +const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v6"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/router/jupiter_dca.rs b/kb-lib/src/executor/router/jupiter_dca.rs index fc08cfb..6f9024d 100644 --- a/kb-lib/src/executor/router/jupiter_dca.rs +++ b/kb-lib/src/executor/router/jupiter_dca.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_router_jupiter_dca`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_router_jupiter_dca"; +const LEGACY_CRATE: &str = "kb_executor_router_jupiter_dca"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/router/okx_labs_v1.rs b/kb-lib/src/executor/router/okx_labs_v1.rs index dbe5ddf..b5f07c3 100644 --- a/kb-lib/src/executor/router/okx_labs_v1.rs +++ b/kb-lib/src/executor/router/okx_labs_v1.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_router_okx_labs_v1`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v1"; +const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v1"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/router/okx_labs_v2.rs b/kb-lib/src/executor/router/okx_labs_v2.rs index 5151d15..6fbd9bb 100644 --- a/kb-lib/src/executor/router/okx_labs_v2.rs +++ b/kb-lib/src/executor/router/okx_labs_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_router_okx_labs_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v2"; +const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/rwa.rs b/kb-lib/src/executor/rwa.rs index b964b14..9fd3357 100644 --- a/kb-lib/src/executor/rwa.rs +++ b/kb-lib/src/executor/rwa.rs @@ -3,4 +3,4 @@ //! `rwa` executor family. -pub mod ondo_global_markets; +mod ondo_global_markets; diff --git a/kb-lib/src/executor/rwa/ondo_global_markets.rs b/kb-lib/src/executor/rwa/ondo_global_markets.rs index b00f533..504d43f 100644 --- a/kb-lib/src/executor/rwa/ondo_global_markets.rs +++ b/kb-lib/src/executor/rwa/ondo_global_markets.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_rwa_ondo_global_markets`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_rwa_ondo_global_markets"; +const LEGACY_CRATE: &str = "kb_executor_rwa_ondo_global_markets"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/solana.rs b/kb-lib/src/executor/solana.rs index 0b85a08..c164ea1 100644 --- a/kb-lib/src/executor/solana.rs +++ b/kb-lib/src/executor/solana.rs @@ -3,4 +3,4 @@ //! `solana` executor family. -pub mod core; +mod core; diff --git a/kb-lib/src/executor/solana/core.rs b/kb-lib/src/executor/solana/core.rs index ea6ba2a..7e53f98 100644 --- a/kb-lib/src/executor/solana/core.rs +++ b/kb-lib/src/executor/solana/core.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_solana_core`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_solana_core"; +const LEGACY_CRATE: &str = "kb_executor_solana_core"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/spl.rs b/kb-lib/src/executor/spl.rs index b331ab9..2df3a8f 100644 --- a/kb-lib/src/executor/spl.rs +++ b/kb-lib/src/executor/spl.rs @@ -3,12 +3,12 @@ //! `spl` executor family. -pub mod account_compression; -pub mod associated_token_account; -pub mod elgamal_registry; -pub mod memo; -pub mod noop; -pub mod single_pool; -pub mod stake_pool; -pub mod token; -pub mod token_2022; +mod account_compression; +mod associated_token_account; +mod elgamal_registry; +mod memo; +mod noop; +mod single_pool; +mod stake_pool; +mod token; +mod token2022; diff --git a/kb-lib/src/executor/spl/account_compression.rs b/kb-lib/src/executor/spl/account_compression.rs index 7bb7f10..dc12c17 100644 --- a/kb-lib/src/executor/spl/account_compression.rs +++ b/kb-lib/src/executor/spl/account_compression.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_spl_account_compression`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_spl_account_compression"; +const LEGACY_CRATE: &str = "kb_executor_spl_account_compression"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/spl/associated_token_account.rs b/kb-lib/src/executor/spl/associated_token_account.rs index 937f148..193f657 100644 --- a/kb-lib/src/executor/spl/associated_token_account.rs +++ b/kb-lib/src/executor/spl/associated_token_account.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_spl_associated_token_account`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_spl_associated_token_account"; +const LEGACY_CRATE: &str = "kb_executor_spl_associated_token_account"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/spl/elgamal_registry.rs b/kb-lib/src/executor/spl/elgamal_registry.rs index 9f490ac..b230fcb 100644 --- a/kb-lib/src/executor/spl/elgamal_registry.rs +++ b/kb-lib/src/executor/spl/elgamal_registry.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_spl_elgamal_registry`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_spl_elgamal_registry"; +const LEGACY_CRATE: &str = "kb_executor_spl_elgamal_registry"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/spl/memo.rs b/kb-lib/src/executor/spl/memo.rs index 50aab62..a88265a 100644 --- a/kb-lib/src/executor/spl/memo.rs +++ b/kb-lib/src/executor/spl/memo.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_spl_memo`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_spl_memo"; +const LEGACY_CRATE: &str = "kb_executor_spl_memo"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/spl/noop.rs b/kb-lib/src/executor/spl/noop.rs index c162f17..f3b26d8 100644 --- a/kb-lib/src/executor/spl/noop.rs +++ b/kb-lib/src/executor/spl/noop.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_spl_noop`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_spl_noop"; +const LEGACY_CRATE: &str = "kb_executor_spl_noop"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/spl/single_pool.rs b/kb-lib/src/executor/spl/single_pool.rs index 0087f53..64a715a 100644 --- a/kb-lib/src/executor/spl/single_pool.rs +++ b/kb-lib/src/executor/spl/single_pool.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_spl_single_pool`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_spl_single_pool"; +const LEGACY_CRATE: &str = "kb_executor_spl_single_pool"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/spl/stake_pool.rs b/kb-lib/src/executor/spl/stake_pool.rs index 96a0e24..bea9030 100644 --- a/kb-lib/src/executor/spl/stake_pool.rs +++ b/kb-lib/src/executor/spl/stake_pool.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_spl_stake_pool`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_spl_stake_pool"; +const LEGACY_CRATE: &str = "kb_executor_spl_stake_pool"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/spl/token.rs b/kb-lib/src/executor/spl/token.rs index 868e586..6bde217 100644 --- a/kb-lib/src/executor/spl/token.rs +++ b/kb-lib/src/executor/spl/token.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_spl_token`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_spl_token"; +const LEGACY_CRATE: &str = "kb_executor_spl_token"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/spl/token_2022.rs b/kb-lib/src/executor/spl/token2022.rs similarity index 51% rename from kb-lib/src/executor/spl/token_2022.rs rename to kb-lib/src/executor/spl/token2022.rs index fc839bf..6fa7b37 100644 --- a/kb-lib/src/executor/spl/token_2022.rs +++ b/kb-lib/src/executor/spl/token2022.rs @@ -1,10 +1,10 @@ -// file: kb-lib/src/executor/spl/token_2022.rs +// file: kb-lib/src/executor/spl/token2022.rs // version: 1 //! Migration boundary for legacy crate `kb_executor_spl_token_2022`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_spl_token_2022"; +const LEGACY_CRATE: &str = "kb_executor_spl_token2022"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/stable.rs b/kb-lib/src/executor/stable.rs index f8254a0..0357764 100644 --- a/kb-lib/src/executor/stable.rs +++ b/kb-lib/src/executor/stable.rs @@ -3,7 +3,7 @@ //! `stable` executor family. -pub mod swap_hylo_exchange; -pub mod swap_jupiter_stable; -pub mod swap_numeraire; -pub mod swap_stabble; +mod swap_hylo_exchange; +mod swap_jupiter_stable; +mod swap_numeraire; +mod swap_stabble; diff --git a/kb-lib/src/executor/stable/swap_hylo_exchange.rs b/kb-lib/src/executor/stable/swap_hylo_exchange.rs index 92f7706..9486fc6 100644 --- a/kb-lib/src/executor/stable/swap_hylo_exchange.rs +++ b/kb-lib/src/executor/stable/swap_hylo_exchange.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_stable_swap_hylo_exchange`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_stable_swap_hylo_exchange"; +const LEGACY_CRATE: &str = "kb_executor_stable_swap_hylo_exchange"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/stable/swap_jupiter_stable.rs b/kb-lib/src/executor/stable/swap_jupiter_stable.rs index 81a1b69..56db504 100644 --- a/kb-lib/src/executor/stable/swap_jupiter_stable.rs +++ b/kb-lib/src/executor/stable/swap_jupiter_stable.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_stable_swap_jupiter_stable`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_stable_swap_jupiter_stable"; +const LEGACY_CRATE: &str = "kb_executor_stable_swap_jupiter_stable"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/stable/swap_numeraire.rs b/kb-lib/src/executor/stable/swap_numeraire.rs index 968444e..95afdc6 100644 --- a/kb-lib/src/executor/stable/swap_numeraire.rs +++ b/kb-lib/src/executor/stable/swap_numeraire.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_stable_swap_numeraire`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_stable_swap_numeraire"; +const LEGACY_CRATE: &str = "kb_executor_stable_swap_numeraire"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/stable/swap_stabble.rs b/kb-lib/src/executor/stable/swap_stabble.rs index e0d6023..cb02240 100644 --- a/kb-lib/src/executor/stable/swap_stabble.rs +++ b/kb-lib/src/executor/stable/swap_stabble.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_stable_swap_stabble`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_stable_swap_stabble"; +const LEGACY_CRATE: &str = "kb_executor_stable_swap_stabble"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/staking.rs b/kb-lib/src/executor/staking.rs index 2531085..f48ac3c 100644 --- a/kb-lib/src/executor/staking.rs +++ b/kb-lib/src/executor/staking.rs @@ -3,6 +3,6 @@ //! `staking` executor family. -pub mod kamino_farm; -pub mod marinade_finance; -pub mod solayer; +mod kamino_farm; +mod marinade_finance; +mod solayer; diff --git a/kb-lib/src/executor/staking/kamino_farm.rs b/kb-lib/src/executor/staking/kamino_farm.rs index d0984a4..33c53f4 100644 --- a/kb-lib/src/executor/staking/kamino_farm.rs +++ b/kb-lib/src/executor/staking/kamino_farm.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_staking_kamino_farm`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_staking_kamino_farm"; +const LEGACY_CRATE: &str = "kb_executor_staking_kamino_farm"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/staking/marinade_finance.rs b/kb-lib/src/executor/staking/marinade_finance.rs index 7450d6e..930ef3c 100644 --- a/kb-lib/src/executor/staking/marinade_finance.rs +++ b/kb-lib/src/executor/staking/marinade_finance.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_staking_marinade_finance`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_staking_marinade_finance"; +const LEGACY_CRATE: &str = "kb_executor_staking_marinade_finance"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/staking/solayer.rs b/kb-lib/src/executor/staking/solayer.rs index 49e386e..0d8823b 100644 --- a/kb-lib/src/executor/staking/solayer.rs +++ b/kb-lib/src/executor/staking/solayer.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_staking_solayer`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_staking_solayer"; +const LEGACY_CRATE: &str = "kb_executor_staking_solayer"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/treasury.rs b/kb-lib/src/executor/treasury.rs index 00f22e4..3d62acc 100644 --- a/kb-lib/src/executor/treasury.rs +++ b/kb-lib/src/executor/treasury.rs @@ -3,4 +3,4 @@ //! `treasury` executor family. -pub mod helium_treasury_management; +mod helium_treasury_management; diff --git a/kb-lib/src/executor/treasury/helium_treasury_management.rs b/kb-lib/src/executor/treasury/helium_treasury_management.rs index 75ef644..38bfb25 100644 --- a/kb-lib/src/executor/treasury/helium_treasury_management.rs +++ b/kb-lib/src/executor/treasury/helium_treasury_management.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_treasury_helium_treasury_management`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_treasury_helium_treasury_management"; +const LEGACY_CRATE: &str = "kb_executor_treasury_helium_treasury_management"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/vault.rs b/kb-lib/src/executor/vault.rs index abba931..2603929 100644 --- a/kb-lib/src/executor/vault.rs +++ b/kb-lib/src/executor/vault.rs @@ -3,9 +3,9 @@ //! `vault` executor family. -pub mod carrot_defi; -pub mod hylo_stability_pool; -pub mod kamino; -pub mod kamino_v2; -pub mod kamino_yvaults; -pub mod meteora; +mod carrot_defi; +mod hylo_stability_pool; +mod kamino; +mod kamino_v2; +mod kamino_yvaults; +mod meteora; diff --git a/kb-lib/src/executor/vault/carrot_defi.rs b/kb-lib/src/executor/vault/carrot_defi.rs index 070dd77..58355af 100644 --- a/kb-lib/src/executor/vault/carrot_defi.rs +++ b/kb-lib/src/executor/vault/carrot_defi.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_vault_carrot_defi`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_vault_carrot_defi"; +const LEGACY_CRATE: &str = "kb_executor_vault_carrot_defi"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/vault/hylo_stability_pool.rs b/kb-lib/src/executor/vault/hylo_stability_pool.rs index 98ad890..e6d05f7 100644 --- a/kb-lib/src/executor/vault/hylo_stability_pool.rs +++ b/kb-lib/src/executor/vault/hylo_stability_pool.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_vault_hylo_stability_pool`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_vault_hylo_stability_pool"; +const LEGACY_CRATE: &str = "kb_executor_vault_hylo_stability_pool"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/vault/kamino.rs b/kb-lib/src/executor/vault/kamino.rs index c773b6b..4e2228c 100644 --- a/kb-lib/src/executor/vault/kamino.rs +++ b/kb-lib/src/executor/vault/kamino.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_vault_kamino`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_vault_kamino"; +const LEGACY_CRATE: &str = "kb_executor_vault_kamino"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/vault/kamino_v2.rs b/kb-lib/src/executor/vault/kamino_v2.rs index f8fb6cf..85c94d6 100644 --- a/kb-lib/src/executor/vault/kamino_v2.rs +++ b/kb-lib/src/executor/vault/kamino_v2.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_vault_kamino_v2`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_vault_kamino_v2"; +const LEGACY_CRATE: &str = "kb_executor_vault_kamino_v2"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/vault/kamino_yvaults.rs b/kb-lib/src/executor/vault/kamino_yvaults.rs index 5c1acd4..05d47c2 100644 --- a/kb-lib/src/executor/vault/kamino_yvaults.rs +++ b/kb-lib/src/executor/vault/kamino_yvaults.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_vault_kamino_yvaults`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_vault_kamino_yvaults"; +const LEGACY_CRATE: &str = "kb_executor_vault_kamino_yvaults"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/vault/meteora.rs b/kb-lib/src/executor/vault/meteora.rs index 4510a87..3eec4c9 100644 --- a/kb-lib/src/executor/vault/meteora.rs +++ b/kb-lib/src/executor/vault/meteora.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_vault_meteora`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_vault_meteora"; +const LEGACY_CRATE: &str = "kb_executor_vault_meteora"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/vesting.rs b/kb-lib/src/executor/vesting.rs index c45954d..2402fad 100644 --- a/kb-lib/src/executor/vesting.rs +++ b/kb-lib/src/executor/vesting.rs @@ -3,4 +3,4 @@ //! `vesting` executor family. -pub mod streamflow; +mod streamflow; diff --git a/kb-lib/src/executor/vesting/streamflow.rs b/kb-lib/src/executor/vesting/streamflow.rs index fd7e62f..e77a21b 100644 --- a/kb-lib/src/executor/vesting/streamflow.rs +++ b/kb-lib/src/executor/vesting/streamflow.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_vesting_streamflow`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_vesting_streamflow"; +const LEGACY_CRATE: &str = "kb_executor_vesting_streamflow"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/wallet.rs b/kb-lib/src/executor/wallet.rs index a2e9330..d8e0955 100644 --- a/kb-lib/src/executor/wallet.rs +++ b/kb-lib/src/executor/wallet.rs @@ -3,4 +3,4 @@ //! `wallet` executor family. -pub mod jupiter_apepro_smart_wallet; +mod jupiter_apepro_smart_wallet; diff --git a/kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs b/kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs index f64a725..09ea8cb 100644 --- a/kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs +++ b/kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_wallet_jupiter_apepro_smart_wallet`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_wallet_jupiter_apepro_smart_wallet"; +const LEGACY_CRATE: &str = "kb_executor_wallet_jupiter_apepro_smart_wallet"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/executor/weighted.rs b/kb-lib/src/executor/weighted.rs index e061b49..4381539 100644 --- a/kb-lib/src/executor/weighted.rs +++ b/kb-lib/src/executor/weighted.rs @@ -3,4 +3,4 @@ //! `weighted` executor family. -pub mod swap_stabble; +mod swap_stabble; diff --git a/kb-lib/src/executor/weighted/swap_stabble.rs b/kb-lib/src/executor/weighted/swap_stabble.rs index 460e5a1..976560c 100644 --- a/kb-lib/src/executor/weighted/swap_stabble.rs +++ b/kb-lib/src/executor/weighted/swap_stabble.rs @@ -4,7 +4,7 @@ //! Migration boundary for legacy crate `kb_executor_weighted_swap_stabble`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_executor_weighted_swap_stabble"; +const LEGACY_CRATE: &str = "kb_executor_weighted_swap_stabble"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/lib.rs b/kb-lib/src/lib.rs index 6bf06c3..dd2c345 100644 --- a/kb-lib/src/lib.rs +++ b/kb-lib/src/lib.rs @@ -1,520 +1,783 @@ // file: kb-lib/src/lib.rs -// version: 12 +// version: 13 //! Consolidated decoder, executor, materializer and shared model library. #![warn(missing_docs)] #![deny(unreachable_pub)] #![forbid(unsafe_code)] -pub mod decoder; -pub mod executor; -pub mod materializer; -pub mod model; +mod decoder; +mod executor; +mod materializer; +mod model; -/// One parsed SPL ElGamal registry instruction. -pub(crate) use crate::decoder::ParsedRegistryInstruction; -/// Current stable Associated Token Account decoded event contract version. -pub(crate) use crate::decoder::SPL_ASSOCIATED_TOKEN_ACCOUNT_EVENT_VERSION; -/// Exact Associated Token Account instructions published by the official interface. -pub(crate) use crate::decoder::SPL_ASSOCIATED_TOKEN_ACCOUNT_INSTRUCTION_ENTRIES; -/// Maximum retained account-key text length for the Associated Token Account decoder. -pub(crate) use crate::decoder::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNT_KEY_BYTES; -/// Maximum retained instruction account count for the Associated Token Account decoder. -pub(crate) use crate::decoder::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_ACCOUNTS; -/// Maximum retained semantic diagnostic count for the Associated Token Account decoder. -pub(crate) use crate::decoder::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_DIAGNOSTICS; -/// Maximum retained Associated Token Account instruction payload size. -pub(crate) use crate::decoder::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_INSTRUCTION_BYTES; -/// Maximum retained transaction account-key count for the Associated Token Account decoder. -pub(crate) use crate::decoder::SPL_ASSOCIATED_TOKEN_ACCOUNT_MAX_TRANSACTION_KEYS; -/// Stable protocol and surface code for the Associated Token Account program. -pub(crate) use crate::decoder::SPL_ASSOCIATED_TOKEN_ACCOUNT_SURFACE_CODE; -/// Canonical tracing target for the Associated Token Account decoder. -pub(crate) use crate::decoder::SPL_ASSOCIATED_TOKEN_ACCOUNT_TRACING_TARGET; -/// Current stable SPL ElGamal registry event contract version. -pub(crate) use crate::decoder::SPL_ELGAMAL_REGISTRY_EVENT_VERSION; -/// Maximum retained SPL ElGamal registry instruction payload size. -pub(crate) use crate::decoder::SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES; -/// Stable SPL ElGamal registry surface code. -pub(crate) use crate::decoder::SPL_ELGAMAL_REGISTRY_SURFACE_CODE; -/// Canonical tracing target for the SPL ElGamal registry decoder. -pub(crate) use crate::decoder::SPL_ELGAMAL_REGISTRY_TRACING_TARGET; -/// Maximum payload prefix retained for bounded Memo diagnostics. -pub(crate) use crate::decoder::SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; -/// Current stable Memo decoded event contract version. -pub(crate) use crate::decoder::SPL_MEMO_EVENT_VERSION; -/// Maximum decoded instruction data retained as a complete Memo payload. -pub(crate) use crate::decoder::SPL_MEMO_MAX_PAYLOAD_BYTES; -/// Stable protocol code shared by Memo generations. -pub(crate) use crate::decoder::SPL_MEMO_PROTOCOL_CODE; -/// Canonical tracing target for the SPL Memo decoder. -pub(crate) use crate::decoder::SPL_MEMO_TRACING_TARGET; -/// Stable Memo v1 surface code. -pub(crate) use crate::decoder::SPL_MEMO_V1_SURFACE_CODE; -/// Stable Memo v3 surface code. -pub(crate) use crate::decoder::SPL_MEMO_V3_SURFACE_CODE; -/// Stable Memo v4 surface code. -pub(crate) use crate::decoder::SPL_MEMO_V4_SURFACE_CODE; -/// Maximum prefix retained in bounded Token-2022 diagnostics. -pub(crate) use crate::decoder::SPL_TOKEN_2022_DIAGNOSTIC_PREFIX_BYTES; -/// Current stable Token-2022 decoded event contract version. -pub(crate) use crate::decoder::SPL_TOKEN_2022_EVENT_VERSION; -/// Exact top-level instruction inventory published by the resolved Token-2022 interface. -pub(crate) use crate::decoder::SPL_TOKEN_2022_INSTRUCTION_ENTRIES; -/// Maximum total account metas consumed by one Token-2022 batch. -pub(crate) use crate::decoder::SPL_TOKEN_2022_MAX_BATCH_ACCOUNTS; -/// Maximum decoded sub-instructions in one Token-2022 batch. -pub(crate) use crate::decoder::SPL_TOKEN_2022_MAX_BATCH_INSTRUCTIONS; -/// Maximum retained Token-2022 instruction payload size. -pub(crate) use crate::decoder::SPL_TOKEN_2022_MAX_INSTRUCTION_BYTES; -/// Maximum retained UTF-8 string size for embedded Token Metadata instructions. -pub(crate) use crate::decoder::SPL_TOKEN_2022_MAX_METADATA_STRING_BYTES; -/// Stable Token-2022 surface code. -pub(crate) use crate::decoder::SPL_TOKEN_2022_SURFACE_CODE; -/// Canonical tracing target for the Token-2022 decoder. -pub(crate) use crate::decoder::SPL_TOKEN_2022_TRACING_TARGET; -/// Maximum prefix retained in bounded classic SPL Token diagnostics. -pub(crate) use crate::decoder::SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES; -/// Current stable classic SPL Token decoded event contract version. -pub(crate) use crate::decoder::SPL_TOKEN_EVENT_VERSION; -/// One exact classic SPL Token instruction entry published by the official interface. -pub(crate) use crate::decoder::SPL_TOKEN_INSTRUCTION_ENTRIES; -/// Maximum total account metas consumed by one classic SPL Token batch. -pub(crate) use crate::decoder::SPL_TOKEN_MAX_BATCH_ACCOUNTS; -/// Maximum decoded sub-instructions in one classic SPL Token batch. -pub(crate) use crate::decoder::SPL_TOKEN_MAX_BATCH_INSTRUCTIONS; -/// Maximum retained classic SPL Token instruction payload size. -pub(crate) use crate::decoder::SPL_TOKEN_MAX_INSTRUCTION_BYTES; -/// Stable protocol and surface code for the classic SPL Token program. -pub(crate) use crate::decoder::SPL_TOKEN_SURFACE_CODE; -/// Canonical tracing target for the classic SPL Token decoder. -pub(crate) use crate::decoder::SPL_TOKEN_TRACING_TARGET; -/// Stable Address Lookup Table surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE; -/// Stable deprecated immutable BPF Loader surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE; -/// Stable immutable BPF Loader v2 surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_BPF_LOADER_SURFACE_CODE; -/// Stable upgradeable BPF Loader surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE; -/// Stable Compute Budget surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE; -/// Stable Config Program surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_CONFIG_SURFACE_CODE; -/// Byte length of an Ed25519 public key. -pub(crate) use crate::decoder::solana::SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES; -/// Stable Ed25519 signature precompile surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_ED25519_SURFACE_CODE; -/// Stable Feature Gate surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_FEATURE_SURFACE_CODE; -/// Stable Loader v4 surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_LOADER_V4_SURFACE_CODE; -/// Maximum retained native instruction payload accepted by the first decoder phase. -pub(crate) use crate::decoder::solana::SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES; -/// Current native event payload contract version. -pub(crate) use crate::decoder::solana::SOLANA_CORE_NATIVE_EVENT_VERSION; -/// Stable Native Loader surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE; -/// Maximum number of component bytes retained as a hexadecimal event prefix. -pub(crate) use crate::decoder::solana::SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES; -/// Stable protocol code shared by native Solana events. -pub(crate) use crate::decoder::solana::SOLANA_CORE_PROTOCOL_CODE; -/// Byte length of a secp256k1 Ethereum address. -pub(crate) use crate::decoder::solana::SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; -/// Stable secp256k1 signature precompile surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_SECP256K1_SURFACE_CODE; -/// Runtime maximum number of secp256r1 signatures in one precompile instruction. -pub(crate) use crate::decoder::solana::SOLANA_CORE_SECP256R1_MAX_SIGNATURES; -/// Byte length of a compressed secp256r1 public key. -pub(crate) use crate::decoder::solana::SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES; -/// Stable secp256r1 signature precompile surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_SECP256R1_SURFACE_CODE; -/// Byte length shared by compact Ed25519, secp256k1 and secp256r1 signatures. -pub(crate) use crate::decoder::solana::SOLANA_CORE_SIGNATURE_BYTES; -/// Stable Slashing Program decoder surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_SLASHING_SURFACE_CODE; -/// Stable Stake Program surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_STAKE_SURFACE_CODE; -/// Stable System Program surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_SYSTEM_SURFACE_CODE; +/// Approve Collection Authority discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR; +/// Approve Use Authority discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_APPROVE_USE_AUTHORITY_DISCRIMINATOR; +/// Bubblegum Set Collection Size discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_BUBBLEGUM_SET_COLLECTION_SIZE_DISCRIMINATOR; +/// Burn discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_BURN_DISCRIMINATOR; +/// Historical Burn Edition NFT discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_BURN_EDITION_NFT_DISCRIMINATOR; +/// Historical Burn NFT discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_BURN_NFT_DISCRIMINATOR; +/// Close Accounts discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CLOSE_ACCOUNTS_DISCRIMINATOR; +/// Close Escrow Account discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CLOSE_ESCROW_ACCOUNT_DISCRIMINATOR; +/// Collect discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_COLLECT_DISCRIMINATOR; +/// Convert Master Edition V1 to V2 discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CONVERT_MASTER_EDITION_V1_TO_V2_DISCRIMINATOR; +/// Modern Create discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CREATE_DISCRIMINATOR; +/// Create Escrow Account discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CREATE_ESCROW_ACCOUNT_DISCRIMINATOR; +/// Historical Create Master Edition discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CREATE_MASTER_EDITION_DISCRIMINATOR; +/// Create Master Edition V3 discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CREATE_MASTER_EDITION_V3_DISCRIMINATOR; +/// Historical Create Metadata Account discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_DISCRIMINATOR; +/// Historical Create Metadata Account V2 discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V2_DISCRIMINATOR; +/// Create Metadata Account V3 discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR; +/// Delegate discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_DELEGATE_DISCRIMINATOR; +/// Deprecated Create Master Edition discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_DEPRECATED_CREATE_MASTER_EDITION_DISCRIMINATOR; +/// Deprecated Create Reservation List discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_DEPRECATED_CREATE_RESERVATION_LIST_DISCRIMINATOR; +/// Deprecated printing-token mint-new-edition discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_DEPRECATED_MINT_NEW_EDITION_VIA_PRINTING_TOKEN_DISCRIMINATOR; +/// Deprecated Mint Printing Tokens discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_DISCRIMINATOR; +/// Deprecated Mint Printing Tokens Via Token discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_DEPRECATED_MINT_PRINTING_TOKENS_VIA_TOKEN_DISCRIMINATOR; +/// Deprecated Set Reservation List discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_DEPRECATED_SET_RESERVATION_LIST_DISCRIMINATOR; +/// Number of bytes retained in malformed-wire diagnostics. +pub(crate) use self::decoder::DC_METADATA_MTM_DIAGNOSTIC_PREFIX_BYTES; +/// Stable event payload contract version. +pub(crate) use self::decoder::DC_METADATA_MTM_EVENT_VERSION; +/// Freeze Delegated Account discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_FREEZE_DELEGATED_ACCOUNT_DISCRIMINATOR; +/// Current pre-release instruction inventory. +pub(crate) use self::decoder::DC_METADATA_MTM_INSTRUCTION_ENTRIES; +/// Lock discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_LOCK_DISCRIMINATOR; +/// Maximum encoded base64 instruction payload size. +pub(crate) use self::decoder::DC_METADATA_MTM_MAX_BASE64_BYTES; +/// Maximum number of instruction accounts accepted by this decoder. +pub(crate) use self::decoder::DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS; +/// Tracing target for this decoder. +/// Maximum retained instruction payload size. +pub(crate) use self::decoder::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES; +/// Migrate discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_MIGRATE_DISCRIMINATOR; +/// Modern Mint discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_MINT_DISCRIMINATOR; +/// Mint New Edition From Master Edition Via Token discriminator. +pub(crate) use self::decoder::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::decoder::DC_METADATA_MTM_MINT_NEW_EDITION_FROM_MASTER_EDITION_VIA_VAULT_PROXY_DISCRIMINATOR; +/// Modern Print discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_PRINT_DISCRIMINATOR; +/// Puff Metadata discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_PUFF_METADATA_DISCRIMINATOR; +/// Remove Creator Verification discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_REMOVE_CREATOR_VERIFICATION_DISCRIMINATOR; +/// Resize discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_RESIZE_DISCRIMINATOR; +/// Revoke Collection Authority discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_REVOKE_COLLECTION_AUTHORITY_DISCRIMINATOR; +/// Revoke discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_REVOKE_DISCRIMINATOR; +/// Revoke Use Authority discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_REVOKE_USE_AUTHORITY_DISCRIMINATOR; +/// Set And Verify Collection discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_SET_AND_VERIFY_COLLECTION_DISCRIMINATOR; +/// Set And Verify Sized Collection Item discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_SET_AND_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; +/// Set Collection Size discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_SET_COLLECTION_SIZE_DISCRIMINATOR; +/// Set Token Standard discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_SET_TOKEN_STANDARD_DISCRIMINATOR; +/// Sign Metadata discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_SIGN_METADATA_DISCRIMINATOR; +/// Stable decoder surface code. +pub(crate) use self::decoder::DC_METADATA_MTM_SURFACE_CODE; +/// Thaw Delegated Account discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_THAW_DELEGATED_ACCOUNT_DISCRIMINATOR; /// Canonical tracing target for this crate. -pub(crate) use crate::decoder::solana::SOLANA_CORE_TRACING_TARGET; +pub(crate) use self::decoder::DC_METADATA_MTM_TRACING_TARGET; +/// Transfer discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_TRANSFER_DISCRIMINATOR; +/// Transfer Out Of Escrow discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_TRANSFER_OUT_OF_ESCROW_DISCRIMINATOR; +/// Unlock discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_UNLOCK_DISCRIMINATOR; +/// Unverify Collection discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_UNVERIFY_COLLECTION_DISCRIMINATOR; +/// Modern Unverify discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_UNVERIFY_DISCRIMINATOR; +/// Unverify Sized Collection Item discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_UNVERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; +/// Modern Update discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_UPDATE_DISCRIMINATOR; +/// Historical Update Metadata Account discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_DISCRIMINATOR; +/// Update Metadata Account V2 discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR; +/// Update Primary Sale Happened Via Token discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_UPDATE_PRIMARY_SALE_HAPPENED_VIA_TOKEN_DISCRIMINATOR; +/// Modern Use discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_USE_DISCRIMINATOR; +/// Utilize discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_UTILIZE_DISCRIMINATOR; +/// Verify Collection discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_VERIFY_COLLECTION_DISCRIMINATOR; +/// Modern Verify discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_VERIFY_DISCRIMINATOR; +/// Verify Sized Collection Item discriminator. +pub(crate) use self::decoder::DC_METADATA_MTM_VERIFY_SIZED_COLLECTION_ITEM_DISCRIMINATOR; +/// Stable Address Lookup Table surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_ADDRESS_LOOKUP_TABLE_SURFACE_CODE; +/// Stable deprecated immutable BPF Loader surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_BPF_LOADER_DEPRECATED_SURFACE_CODE; +/// Stable immutable BPF Loader v2 surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_BPF_LOADER_SURFACE_CODE; +/// Stable upgradeable BPF Loader surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_BPF_LOADER_UPGRADEABLE_SURFACE_CODE; +/// Stable Compute Budget surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_COMPUTE_BUDGET_SURFACE_CODE; +/// Stable Config Program surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_CONFIG_SURFACE_CODE; +/// Byte length of an Ed25519 public key. +pub(crate) use self::decoder::DC_SOLANA_CORE_ED25519_PUBLIC_KEY_BYTES; +/// Stable Ed25519 signature precompile surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_ED25519_SURFACE_CODE; +/// Stable Feature Gate surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_FEATURE_SURFACE_CODE; +/// Stable Loader v4 surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_LOADER_V4_SURFACE_CODE; +/// Maximum retained native instruction payload accepted by the first decoder phase. +pub(crate) use self::decoder::DC_SOLANA_CORE_MAX_NATIVE_INSTRUCTION_PAYLOAD_BYTES; +/// Current native event payload contract version. +pub(crate) use self::decoder::DC_SOLANA_CORE_NATIVE_EVENT_VERSION; +/// Stable Native Loader surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_NATIVE_LOADER_SURFACE_CODE; +/// Maximum number of component bytes retained as a hexadecimal event prefix. +pub(crate) use self::decoder::DC_SOLANA_CORE_PRECOMPILE_COMPONENT_PREFIX_BYTES; +/// Stable protocol code shared by native Solana events. +pub(crate) use self::decoder::DC_SOLANA_CORE_PROTOCOL_CODE; +/// Byte length of a secp256k1 Ethereum address. +pub(crate) use self::decoder::DC_SOLANA_CORE_SECP256K1_ETHEREUM_ADDRESS_BYTES; +/// Stable secp256k1 signature precompile surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_SECP256K1_SURFACE_CODE; +/// Runtime maximum number of secp256r1 signatures in one precompile instruction. +pub(crate) use self::decoder::DC_SOLANA_CORE_SECP256R1_MAX_SIGNATURES; +/// Byte length of a compressed secp256r1 public key. +pub(crate) use self::decoder::DC_SOLANA_CORE_SECP256R1_PUBLIC_KEY_BYTES; +/// Stable secp256r1 signature precompile surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_SECP256R1_SURFACE_CODE; +/// Byte length shared by compact Ed25519, secp256k1 and secp256r1 signatures. +pub(crate) use self::decoder::DC_SOLANA_CORE_SIGNATURE_BYTES; +/// Stable Slashing Program decoder surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_SLASHING_SURFACE_CODE; +/// Stable Stake Program surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_STAKE_SURFACE_CODE; +/// Stable System Program surface code. +pub(crate) use self::decoder::DC_SOLANA_CORE_SYSTEM_SURFACE_CODE; +/// Canonical tracing target for this crate. +pub(crate) use self::decoder::DC_SOLANA_CORE_TRACING_TARGET; /// Byte length of one secp256k1 offsets entry. -pub(crate) use crate::decoder::solana::SOLANA_CORE_U8_OFFSETS_BYTES; +pub(crate) use self::decoder::DC_SOLANA_CORE_U8_OFFSETS_BYTES; /// Byte length of one Ed25519 or secp256r1 offsets entry. -pub(crate) use crate::decoder::solana::SOLANA_CORE_U16_OFFSETS_BYTES; +pub(crate) use self::decoder::DC_SOLANA_CORE_U16_OFFSETS_BYTES; /// Stable Vote Program surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_VOTE_SURFACE_CODE; +pub(crate) use self::decoder::DC_SOLANA_CORE_VOTE_SURFACE_CODE; /// Stable native ZK ElGamal Proof surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE; +pub(crate) use self::decoder::DC_SOLANA_CORE_ZK_ELGAMAL_PROOF_SURFACE_CODE; /// Stable historical ZK Token Proof surface code. -pub(crate) use crate::decoder::solana::SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE; +pub(crate) use self::decoder::DC_SOLANA_CORE_ZK_TOKEN_PROOF_SURFACE_CODE; +/// Current stable Associated Token Account decoded event contract version. +pub(crate) use self::decoder::DC_SPL_ATA_EVENT_VERSION; +/// Exact Associated Token Account instructions published by the official interface. +pub(crate) use self::decoder::DC_SPL_ATA_INSTRUCTION_ENTRIES; +/// Maximum retained account-key text length for the Associated Token Account decoder. +pub(crate) use self::decoder::DC_SPL_ATA_MAX_ACCOUNT_KEY_BYTES; +/// Maximum retained instruction account count for the Associated Token Account decoder. +pub(crate) use self::decoder::DC_SPL_ATA_MAX_ACCOUNTS; +/// Maximum retained semantic diagnostic count for the Associated Token Account decoder. +pub(crate) use self::decoder::DC_SPL_ATA_MAX_DIAGNOSTICS; +/// Maximum retained Associated Token Account instruction payload size. +pub(crate) use self::decoder::DC_SPL_ATA_MAX_INSTRUCTION_BYTES; +/// Maximum retained transaction account-key count for the Associated Token Account decoder. +pub(crate) use self::decoder::DC_SPL_ATA_MAX_TRANSACTION_KEYS; +/// Stable protocol and surface code for the Associated Token Account program. +pub(crate) use self::decoder::DC_SPL_ATA_SURFACE_CODE; +/// Canonical tracing target for the Associated Token Account decoder. +pub(crate) use self::decoder::DC_SPL_ATA_TRACING_TARGET; +/// Current stable SPL ElGamal registry event contract version. +pub(crate) use self::decoder::DC_SPL_ELGAMAL_REGISTRY_EVENT_VERSION; +/// Maximum retained SPL ElGamal registry instruction payload size. +pub(crate) use self::decoder::DC_SPL_ELGAMAL_REGISTRY_MAX_INSTRUCTION_BYTES; +/// Stable SPL ElGamal registry surface code. +pub(crate) use self::decoder::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE; +/// Canonical tracing target for the SPL ElGamal registry decoder. +pub(crate) use self::decoder::DC_SPL_ELGAMAL_REGISTRY_TRACING_TARGET; +/// Maximum payload prefix retained for bounded Memo diagnostics. +pub(crate) use self::decoder::DC_SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; +/// Current stable Memo decoded event contract version. +pub(crate) use self::decoder::DC_SPL_MEMO_EVENT_VERSION; +/// Maximum decoded instruction data retained as a complete Memo payload. +pub(crate) use self::decoder::DC_SPL_MEMO_MAX_PAYLOAD_BYTES; +/// Stable protocol code shared by Memo generations. +pub(crate) use self::decoder::DC_SPL_MEMO_PROTOCOL_CODE; +/// Canonical tracing target for the SPL Memo decoder. +pub(crate) use self::decoder::DC_SPL_MEMO_TRACING_TARGET; +/// Stable Memo v1 surface code. +pub(crate) use self::decoder::DC_SPL_MEMO_V1_SURFACE_CODE; +/// Stable Memo v3 surface code. +pub(crate) use self::decoder::DC_SPL_MEMO_V3_SURFACE_CODE; +/// Stable Memo v4 surface code. +pub(crate) use self::decoder::DC_SPL_MEMO_V4_SURFACE_CODE; +/// Maximum prefix retained in bounded classic SPL Token diagnostics. +pub(crate) use self::decoder::DC_SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES; +/// Current stable classic SPL Token decoded event contract version. +pub(crate) use self::decoder::DC_SPL_TOKEN_EVENT_VERSION; +/// One exact classic SPL Token instruction entry published by the official interface. +pub(crate) use self::decoder::DC_SPL_TOKEN_INSTRUCTION_ENTRIES; +/// Maximum total account metas consumed by one classic SPL Token batch. +pub(crate) use self::decoder::DC_SPL_TOKEN_MAX_BATCH_ACCOUNTS; +/// Maximum decoded sub-instructions in one classic SPL Token batch. +pub(crate) use self::decoder::DC_SPL_TOKEN_MAX_BATCH_INSTRUCTIONS; +/// Maximum retained classic SPL Token instruction payload size. +pub(crate) use self::decoder::DC_SPL_TOKEN_MAX_INSTRUCTION_BYTES; +/// Stable protocol and surface code for the classic SPL Token program. +pub(crate) use self::decoder::DC_SPL_TOKEN_SURFACE_CODE; +/// Canonical tracing target for the classic SPL Token decoder. +pub(crate) use self::decoder::DC_SPL_TOKEN_TRACING_TARGET; +/// Maximum prefix retained in bounded Token-2022 diagnostics. +pub(crate) use self::decoder::DC_SPL_TOKEN2022_DIAGNOSTIC_PREFIX_BYTES; +/// Current stable Token-2022 decoded event contract version. +pub(crate) use self::decoder::DC_SPL_TOKEN2022_EVENT_VERSION; +/// Exact top-level instruction inventory published by the resolved Token-2022 interface. +pub(crate) use self::decoder::DC_SPL_TOKEN2022_INSTRUCTION_ENTRIES; +/// Maximum total account metas consumed by one Token-2022 batch. +pub(crate) use self::decoder::DC_SPL_TOKEN2022_MAX_BATCH_ACCOUNTS; +/// Maximum decoded sub-instructions in one Token-2022 batch. +pub(crate) use self::decoder::DC_SPL_TOKEN2022_MAX_BATCH_INSTRUCTIONS; +/// Maximum retained Token-2022 instruction payload size. +pub(crate) use self::decoder::DC_SPL_TOKEN2022_MAX_INSTRUCTION_BYTES; +/// Maximum retained UTF-8 string size for embedded Token Metadata instructions. +pub(crate) use self::decoder::DC_SPL_TOKEN2022_MAX_METADATA_STRING_BYTES; +/// Stable Token-2022 surface code. +pub(crate) use self::decoder::DC_SPL_TOKEN2022_SURFACE_CODE; +/// Canonical tracing target for the Token-2022 decoder. +pub(crate) use self::decoder::DC_SPL_TOKEN2022_TRACING_TARGET; /// Expected role and privileges for one positional instruction account. -pub(crate) use crate::decoder::solana::SolanaCoreAccountRole; +pub(crate) use self::decoder::DcSolanaCoreAccountRole; /// One resolved outer instruction payload and its provenance relative to the target instruction. -pub(crate) use crate::decoder::solana::SolanaCoreResolvedInstructionPayload; +pub(crate) use self::decoder::DcSolanaCoreResolvedInstructionPayload; +/// One parsed SPL ElGamal registry instruction. +pub(crate) use self::decoder::DcSplElGamalRegistryParsedRegistryInstruction; +/// Crate-root access to `decode` from `instruction`. +pub(crate) use self::decoder::decoder_metadata_metaplex_token_metadata_decode; +/// Crate-root access to `entry_for_discriminator` from `instruction`. +pub(crate) use self::decoder::decoder_metadata_metaplex_token_metadata_entry_for_discriminator; +/// Crate-root access to `payload_discriminator` from `instruction`. +pub(crate) use self::decoder::decoder_metadata_metaplex_token_metadata_payload_discriminator; /// Returns declared Address Lookup Table instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_address_lookup_table_coverage; +pub(crate) use self::decoder::decoder_solana_core_address_lookup_table_coverage; /// Decodes one Address Lookup Table instruction. -pub(crate) use crate::decoder::solana::solana_core_address_lookup_table_decode; +pub(crate) use self::decoder::decoder_solana_core_address_lookup_table_decode; /// Recognizes one Address Lookup Table instruction without producing an event. -pub(crate) use crate::decoder::solana::solana_core_address_lookup_table_recognize; +pub(crate) use self::decoder::decoder_solana_core_address_lookup_table_recognize; /// Returns a hexadecimal prefix no longer than the available byte slice. -pub(crate) use crate::decoder::solana::solana_core_bounded_hexadecimal_prefix; +pub(crate) use self::decoder::decoder_solana_core_bounded_hexadecimal_prefix; /// Extracts one exact bounded byte slice with checked arithmetic. -pub(crate) use crate::decoder::solana::solana_core_bounded_slice; +pub(crate) use self::decoder::decoder_solana_core_bounded_slice; /// Returns declared Compute Budget instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_compute_budget_coverage; +pub(crate) use self::decoder::decoder_solana_core_compute_budget_coverage; /// Decodes one Compute Budget instruction. -pub(crate) use crate::decoder::solana::solana_core_compute_budget_decode; +pub(crate) use self::decoder::decoder_solana_core_compute_budget_decode; /// Recognizes one Compute Budget instruction without producing an event. -pub(crate) use crate::decoder::solana::solana_core_compute_budget_recognize; +pub(crate) use self::decoder::decoder_solana_core_compute_budget_recognize; /// Returns declared Config Program instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_config_coverage; +pub(crate) use self::decoder::decoder_solana_core_config_coverage; /// Decodes one generic Config Program store instruction. -pub(crate) use crate::decoder::solana::solana_core_config_decode; +pub(crate) use self::decoder::decoder_solana_core_config_decode; /// Recognizes one generic Config Program store instruction. -pub(crate) use crate::decoder::solana::solana_core_config_recognize; +pub(crate) use self::decoder::decoder_solana_core_config_recognize; /// Decodes one retained base64 instruction payload with an explicit byte limit. -pub(crate) use crate::decoder::solana::solana_core_decode_instruction_data; +pub(crate) use self::decoder::decoder_solana_core_decode_instruction_data; /// Returns the decoded target payload length when retained and valid. -pub(crate) use crate::decoder::solana::solana_core_decoded_payload_length; +pub(crate) use self::decoder::decoder_solana_core_decoded_payload_length; /// Returns the SHA-256 of the decoded target instruction data when available. -pub(crate) use crate::decoder::solana::solana_core_decoded_payload_sha256; +pub(crate) use self::decoder::decoder_solana_core_decoded_payload_sha256; /// Builds one exact decoded native observation. -pub(crate) use crate::decoder::solana::solana_core_decoded_result; +pub(crate) use self::decoder::decoder_solana_core_decoded_result; /// Builds one failed native decode result. -pub(crate) use crate::decoder::solana::solana_core_failed_result; +pub(crate) use self::decoder::decoder_solana_core_failed_result; /// Returns declared Feature Gate instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_feature_coverage; +pub(crate) use self::decoder::decoder_solana_core_feature_coverage; /// Decodes one Feature Gate instruction. -pub(crate) use crate::decoder::solana::solana_core_feature_decode; +pub(crate) use self::decoder::decoder_solana_core_feature_decode; /// Recognizes one Feature Gate instruction without producing an event. -pub(crate) use crate::decoder::solana::solana_core_feature_recognize; +pub(crate) use self::decoder::decoder_solana_core_feature_recognize; /// Returns the lowercase SHA-256 of one bounded byte slice. -pub(crate) use crate::decoder::solana::solana_core_hash_bytes; +pub(crate) use self::decoder::decoder_solana_core_hash_bytes; /// Returns a normalized lowercase hexadecimal prefix. -pub(crate) use crate::decoder::solana::solana_core_hexadecimal_prefix; +pub(crate) use self::decoder::decoder_solana_core_hexadecimal_prefix; /// Returns declared loader instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_loaders_coverage; +pub(crate) use self::decoder::decoder_solana_core_loaders_coverage; /// Decodes one loader instruction. -pub(crate) use crate::decoder::solana::solana_core_loaders_decode; +pub(crate) use self::decoder::decoder_solana_core_loaders_decode; /// Recognizes one loader instruction without producing an event. -pub(crate) use crate::decoder::solana::solana_core_loaders_recognize; +pub(crate) use self::decoder::decoder_solana_core_loaders_recognize; /// Returns a stable payload hash from core or computes it from retained JSON. -pub(crate) use crate::decoder::solana::solana_core_payload_hash; +pub(crate) use self::decoder::decoder_solana_core_payload_hash; /// Returns declared signature precompile coverage. -pub(crate) use crate::decoder::solana::solana_core_precompiles_coverage; +pub(crate) use self::decoder::decoder_solana_core_precompiles_coverage; /// Decodes one signature precompile instruction structurally without cryptographic recomputation. -pub(crate) use crate::decoder::solana::solana_core_precompiles_decode; +pub(crate) use self::decoder::decoder_solana_core_precompiles_decode; /// Recognizes one signature precompile instruction without resolving referenced data. -pub(crate) use crate::decoder::solana::solana_core_precompiles_recognize; +pub(crate) use self::decoder::decoder_solana_core_precompiles_recognize; /// Reads one little-endian `u32` from an exact byte range. -pub(crate) use crate::decoder::solana::solana_core_read_u32_le; +pub(crate) use self::decoder::decoder_solana_core_read_u32_le; /// Reads one little-endian `u64` from an exact byte range. -pub(crate) use crate::decoder::solana::solana_core_read_u64_le; +pub(crate) use self::decoder::decoder_solana_core_read_u64_le; /// Resolves positional instruction accounts and validates their core indexes. -pub(crate) use crate::decoder::solana::solana_core_resolve_accounts; +pub(crate) use self::decoder::decoder_solana_core_resolve_accounts; /// 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 crate::decoder::solana::solana_core_resolve_u8_instruction_payload; +pub(crate) use self::decoder::decoder_solana_core_resolve_u8_instruction_payload; /// Resolves an Ed25519 or secp256r1 instruction reference using the official `u16::MAX` sentinel. -pub(crate) use crate::decoder::solana::solana_core_resolve_u16_instruction_payload; +pub(crate) use self::decoder::decoder_solana_core_resolve_u16_instruction_payload; /// Returns declared Slashing Program instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_slashing_coverage; +pub(crate) use self::decoder::decoder_solana_core_slashing_coverage; /// Decodes one Slashing Program instruction. -pub(crate) use crate::decoder::solana::solana_core_slashing_decode; +pub(crate) use self::decoder::decoder_solana_core_slashing_decode; /// Recognizes one Slashing Program instruction without producing an event. -pub(crate) use crate::decoder::solana::solana_core_slashing_recognize; +pub(crate) use self::decoder::decoder_solana_core_slashing_recognize; /// Returns declared Stake Program instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_stake_coverage; +pub(crate) use self::decoder::decoder_solana_core_stake_coverage; /// Decodes one Stake Program instruction. -pub(crate) use crate::decoder::solana::solana_core_stake_decode; +pub(crate) use self::decoder::decoder_solana_core_stake_decode; /// Recognizes one Stake Program instruction without producing an event. -pub(crate) use crate::decoder::solana::solana_core_stake_recognize; +pub(crate) use self::decoder::decoder_solana_core_stake_recognize; /// Returns declared System Program instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_system_coverage; +pub(crate) use self::decoder::decoder_solana_core_system_coverage; /// Decodes one System Program instruction. -pub(crate) use crate::decoder::solana::solana_core_system_decode; +pub(crate) use self::decoder::decoder_solana_core_system_decode; /// Recognizes one System Program instruction without producing an event. -pub(crate) use crate::decoder::solana::solana_core_system_recognize; +pub(crate) use self::decoder::decoder_solana_core_system_recognize; /// Returns the numeric outer index of the target instruction. -pub(crate) use crate::decoder::solana::solana_core_target_outer_instruction_index; +pub(crate) use self::decoder::decoder_solana_core_target_outer_instruction_index; /// Builds one unsupported native decode result with a bounded diagnostic. -pub(crate) use crate::decoder::solana::solana_core_unsupported_result; +pub(crate) use self::decoder::decoder_solana_core_unsupported_result; /// Returns declared Vote Program instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_vote_coverage; +pub(crate) use self::decoder::decoder_solana_core_vote_coverage; /// Decodes one Vote Program instruction. -pub(crate) use crate::decoder::solana::solana_core_vote_decode; +pub(crate) use self::decoder::decoder_solana_core_vote_decode; /// Recognizes one Vote Program instruction without producing an event. -pub(crate) use crate::decoder::solana::solana_core_vote_recognize; +pub(crate) use self::decoder::decoder_solana_core_vote_recognize; /// Returns declared ZK ElGamal Proof instruction coverage. -pub(crate) use crate::decoder::solana::solana_core_zk_elgamal_coverage; +pub(crate) use self::decoder::decoder_solana_core_zk_elgamal_coverage; /// Decodes one native ZK ElGamal Proof instruction without recomputing the proof. -pub(crate) use crate::decoder::solana::solana_core_zk_elgamal_decode; +pub(crate) use self::decoder::decoder_solana_core_zk_elgamal_decode; /// Recognizes one native ZK ElGamal Proof instruction. -pub(crate) use crate::decoder::solana::solana_core_zk_elgamal_recognize; +pub(crate) use self::decoder::decoder_solana_core_zk_elgamal_recognize; /// Returns declared historical and current ZK Token Proof coverage. -pub(crate) use crate::decoder::solana::solana_core_zk_token_proof_coverage; +pub(crate) use self::decoder::decoder_solana_core_zk_token_proof_coverage; /// Decodes one historical ZK Token Proof layout without recomputing any proof. -pub(crate) use crate::decoder::solana::solana_core_zk_token_proof_decode; +pub(crate) use self::decoder::decoder_solana_core_zk_token_proof_decode; /// Recognizes one historical ZK Token Proof layout or the current no-op runtime fallback. -pub(crate) use crate::decoder::solana::solana_core_zk_token_proof_recognize; +pub(crate) use self::decoder::decoder_solana_core_zk_token_proof_recognize; /// Decodes one bounded Associated Token Account instruction. -pub(crate) use crate::decoder::spl_associated_token_account_decode; +pub(crate) use self::decoder::decoder_spl_associated_token_account_decode; /// Returns the exact entry matching an Associated Token Account wire. -pub(crate) use crate::decoder::spl_associated_token_account_entry; +pub(crate) use self::decoder::decoder_spl_associated_token_account_entry; /// Reads one bounded Associated Token Account payload. -pub(crate) use crate::decoder::spl_associated_token_account_payload; +pub(crate) use self::decoder::decoder_spl_associated_token_account_payload; /// Decodes one bounded SPL ElGamal registry instruction. -pub(crate) use crate::decoder::spl_elgamal_registry_decode; +pub(crate) use self::decoder::decoder_spl_elgamal_registry_decode; /// Decodes one bounded SPL ElGamal registry instruction payload. -pub(crate) use crate::decoder::spl_elgamal_registry_decode_payload; +pub(crate) use self::decoder::decoder_spl_elgamal_registry_decode_payload; /// Parses one exact SPL ElGamal registry instruction. -pub(crate) use crate::decoder::spl_elgamal_registry_parse; +pub(crate) use self::decoder::decoder_spl_elgamal_registry_parse; /// Decodes one bounded SPL Memo instruction. -pub(crate) use crate::decoder::spl_memo_decode; -/// Decodes one bounded Token-2022 instruction. -pub(crate) use crate::decoder::spl_token_2022_decode; -/// Returns the exact entry matching one Token-2022 tag. -pub(crate) use crate::decoder::spl_token_2022_entry_for_tag; -/// Returns the first byte of one retained Token-2022 payload. -pub(crate) use crate::decoder::spl_token_2022_payload_tag; +pub(crate) use self::decoder::decoder_spl_memo_decode; /// Decodes one bounded classic SPL Token instruction. -pub(crate) use crate::decoder::spl_token_decode; +pub(crate) use self::decoder::decoder_spl_token_decode; /// Returns the published entry matching one classic SPL Token tag. -pub(crate) use crate::decoder::spl_token_entry_for_tag; +pub(crate) use self::decoder::decoder_spl_token_entry_for_tag; /// Returns the first byte of one retained classic SPL Token payload. -pub(crate) use crate::decoder::spl_token_payload_tag; -/// Canonical tracing target for the native and SPL administration materializer. -pub(crate) use crate::materializer::admin::MATERIALIZER_ADMIN_TRACING_TARGET; +pub(crate) use self::decoder::decoder_spl_token_payload_tag; +/// Decodes one bounded Token-2022 instruction. +pub(crate) use self::decoder::decoder_spl_token2022_decode; +/// Returns the exact entry matching one Token-2022 tag. +pub(crate) use self::decoder::decoder_spl_token2022_entry_for_tag; +/// Returns the first byte of one retained Token-2022 payload. +pub(crate) use self::decoder::decoder_spl_token2022_payload_tag; /// Canonical processor name for the native and SPL administration materializer. -pub(crate) use crate::materializer::admin::PROCESSOR_NAME as MATERIALIZER_ADMIN_PROCESSOR_NAME; +pub(crate) use self::materializer::MT_ADMIN_PROCESSOR_NAME; +/// Canonical tracing target for the native and SPL administration materializer. +pub(crate) use self::materializer::MT_ADMIN_TRACING_TARGET; /// Canonical tracing target for the native compliance audit materializer. -pub(crate) use crate::materializer::compliance::MATERIALIZER_COMPLIANCE_AUDIT_TRACING_TARGET; +pub(crate) use self::materializer::MT_COMPLIANCE_AUDIT_TRACING_TARGET; /// Canonical tracing target for the native lifecycle materializer. -pub(crate) use crate::materializer::lifecycle::MATERIALIZER_LIFECYCLE_TRACING_TARGET; +pub(crate) use self::materializer::MT_LIFECYCLE_TRACING_TARGET; +/// Stable processor name for SPL Token and ATA risk facts. +pub(crate) use self::materializer::MT_RISK_PROCESSOR_NAME; +/// Stable projection contract version for SPL Token and ATA risk facts. +pub(crate) use self::materializer::MT_RISK_PROJECTION_VERSION; +/// Canonical tracing target for SPL Token and ATA risk facts. +pub(crate) use self::materializer::MT_RISK_TRACING_TARGET; /// Canonical tracing target for the native stake and vote materializer. -pub(crate) use crate::materializer::staking::MATERIALIZER_STAKING_TRACING_TARGET; +pub(crate) use self::materializer::MT_STAKING_TRACING_TARGET; +/// Stable processor name for Token, ATA and Token-2022 account projections. +pub(crate) use self::materializer::MT_TOKEN_ACCOUNTS_PROCESSOR_NAME; +/// Stable projection contract version for Token, ATA and Token-2022 account projections. +pub(crate) use self::materializer::MT_TOKEN_ACCOUNTS_PROJECTION_VERSION; +/// Canonical tracing target for Token, ATA and Token-2022 account projections. +pub(crate) use self::materializer::MT_TOKEN_ACCOUNTS_TRACING_TARGET; +/// Maximum Memo payload accepted by transaction annotations. +pub(crate) use self::materializer::MT_TRANSACTION_ANNOTATIONS_MAX_MEMO_PAYLOAD_BYTES; +/// Stable processor name for transaction annotations. +pub(crate) use self::materializer::MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME; +/// Stable projection contract version for transaction annotations. +pub(crate) use self::materializer::MT_TRANSACTION_ANNOTATIONS_PROJECTION_VERSION; +/// Canonical tracing target for transaction annotations. +pub(crate) use self::materializer::MT_TRANSACTION_ANNOTATIONS_TRACING_TARGET; -/// Exact byte length of one SPL ElGamal registry account. -pub use crate::decoder::ELGAMAL_REGISTRY_ACCOUNT_LEN; -/// Parsed SPL ElGamal public-key registry account. -pub use crate::decoder::ElGamalRegistryState; -/// Exact decoder for the Metaplex Token Metadata program. -pub use crate::decoder::MetadataMetaplexTokenMetadataDecoder; -/// Exact decoder for the SPL Associated Token Account program. -pub use crate::decoder::SplAssociatedTokenAccountDecoder; -/// Exact decoder for the SPL ElGamal registry program. -pub use crate::decoder::SplElgamalRegistryDecoder; -/// Exact decoder for the three registered SPL Memo generations. -pub use crate::decoder::SplMemoDecoder; -/// Exact decoder for the Token-2022 program. -pub use crate::decoder::SplToken2022Decoder; -/// Exact decoder for the classic SPL Token program. -pub use crate::decoder::SplTokenDecoder; -/// Parsed Token-2022 Mint, Account, or Multisig state. -pub use crate::decoder::Token2022State; -/// Exact Token-2022 base account state kind. -pub use crate::decoder::Token2022StateKind; -/// One exact Token-2022 TLV entry. -pub use crate::decoder::Token2022TlvEntry; /// Current contextual core instruction input contract version. -pub use crate::decoder::api::contracts::CORE_INSTRUCTION_INPUT_CONTRACT_VERSION; +pub use self::decoder::DC_API_CORE_INSTRUCTION_INPUT_CONTRACT_VERSION; +/// Exhaustive published Metaplex account-key inventory. +pub use self::decoder::DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT; +/// Exact byte length of one SPL ElGamal registry account. +pub use self::decoder::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; /// Stable contextual decoded observation. -pub use crate::decoder::api::contracts::DecodedObservation; +pub use self::decoder::DcApiDecodedObservation; /// Machine-readable decoder coverage declaration. -pub use crate::decoder::api::contracts::DecoderCoverageDeclaration; +pub use self::decoder::DcApiDecoderCoverageDeclaration; /// Declared decoder coverage entry kind. -pub use crate::decoder::api::contracts::DecoderCoverageEntryKind; +pub use self::decoder::DcApiDecoderCoverageEntryKind; /// Structured decoder diagnostic. -pub use crate::decoder::api::contracts::DecoderDiagnostic; +pub use self::decoder::DcApiDecoderDiagnostic; /// Complete decoder execution result. -pub use crate::decoder::api::contracts::DecoderExecutionResult; +pub use self::decoder::DcApiDecoderExecutionResult; /// Stable decoder identity. -pub use crate::decoder::api::contracts::DecoderIdentity; +pub use self::decoder::DcApiDecoderIdentity; /// Decoder terminal result status. -pub use crate::decoder::api::contracts::DecoderOutcomeStatus; +pub use self::decoder::DcApiDecoderOutcomeStatus; /// Explicit decoding proof. -pub use crate::decoder::api::contracts::DecoderProof; +pub use self::decoder::DcApiDecoderProof; /// Decoding proof category. -pub use crate::decoder::api::contracts::DecoderProofKind; +pub use self::decoder::DcApiDecoderProofKind; /// Deterministic decoder recognition result. -pub use crate::decoder::api::contracts::DecoderRecognition; -/// One statically declared decoder surface. -pub use crate::decoder::api::contracts::DecoderSurface; -/// Contextual instruction decoder contract. -pub use crate::decoder::api::contracts::InstructionDecoder; -/// Computes the deterministic contextual input hash. -pub use crate::decoder::api::contracts::contextual_input_hash; -/// Returns true when a decoder declares the exact program id. -pub use crate::decoder::api::contracts::decoder_handles_program_id; -/// Computes a deterministic lowercase SHA-256 hash for one JSON value. -pub use crate::decoder::api::contracts::deterministic_json_hash; -/// Extracts the first eight payload bytes as hexadecimal when available. -pub use crate::decoder::api::contracts::discriminator_8_hex; +pub use self::decoder::DcApiDecoderRecognition; /// Exposes the decoder support level. -pub use crate::decoder::api::decoder::DecoderSupport; +pub use self::decoder::DcApiDecoderSupport; +/// One statically declared decoder surface. +pub use self::decoder::DcApiDecoderSurface; /// Initial decoder implementation placeholder for API-level tests. -pub use crate::decoder::api::decoder::InitialDecoder; +pub use self::decoder::DcApiInitialDecoder; +/// Contextual instruction decoder contract. +pub use self::decoder::DcApiInstructionDecoder; /// Exposes the common protocol decoder trait. -pub use crate::decoder::api::decoder::ProtocolDecoder; -/// Parses one exact SPL ElGamal registry account. -pub use crate::decoder::parse_elgamal_registry_state; -/// Parses one Token-2022 Mint, Account, or Multisig state. -pub use crate::decoder::parse_token_2022_state; +pub use self::decoder::DcApiProtocolDecoder; +/// Exact decoder for the Metaplex Token Metadata program. +/// Exact decoder for the Metaplex Token Metadata program. +pub use self::decoder::DcMetadataMetaplexTokenMetadataDecoder; +/// Canonical projection shared by Collection and Use Authority records. +pub use self::decoder::DcMetadataMtmAuthorityRecordAccountSnapshot; +/// Stable identity and policy of one canonical account snapshot. +pub use self::decoder::DcMetadataMtmCanonicalAccountIdentity; +/// Lifecycle represented by one canonical Metaplex account snapshot. +/// Lifecycle class of one canonical account layout. +pub use self::decoder::DcMetadataMtmCanonicalAccountLifecycle; +/// Provenance for one canonical Metaplex account snapshot. +/// Provenance retained for one canonical account observation. +pub use self::decoder::DcMetadataMtmCanonicalAccountProvenance; +/// Execution policy attached to one canonical Metaplex account layout. +/// Execution policy separated from historical materialization. +pub use self::decoder::DcMetadataMtmCanonicalExecutionPolicy; +/// Materialization policy attached to one canonical Metaplex account layout. +/// Materialization policy for active or historical state. +pub use self::decoder::DcMetadataMtmCanonicalMaterializationPolicy; +/// Canonical Metaplex account snapshot. +/// Canonical account envelope used by materializers and replay. +pub use self::decoder::DcMetadataMtmCanonicalMetadataAccountSnapshot; +/// Canonical state held by one Metaplex account snapshot. +/// Typed canonical Metaplex account state. +pub use self::decoder::DcMetadataMtmCanonicalMetadataAccountState; +/// Source of one canonical Metaplex account observation. +/// Origin of one canonical account observation. +pub use self::decoder::DcMetadataMtmCanonicalObservationSource; +/// Canonical projection shared by Metadata and Holder delegate records. +pub use self::decoder::DcMetadataMtmDelegateRecordAccountSnapshot; +/// Parsed Metaplex edition account kind. +/// Supported edition account layout. +pub use self::decoder::DcMetadataMtmEditionAccountKind; +/// Parsed Metaplex edition account snapshot. +/// Canonical bounded projection of one edition or master-edition account. +pub use self::decoder::DcMetadataMtmEditionAccountSnapshot; +/// Parsed Metaplex edition marker account kind. +/// Supported Edition Marker account layout. +pub use self::decoder::DcMetadataMtmEditionMarkerAccountKind; +/// Parsed Metaplex edition marker account snapshot. +/// Canonical bounded projection of one Edition Marker account. +pub use self::decoder::DcMetadataMtmEditionMarkerAccountSnapshot; +/// Bounded error returned while decoding a Metadata account. +pub use self::decoder::DcMetadataMtmMetadataAccountDecodeError; +/// One entry in the exhaustive published account-key audit. +pub use self::decoder::DcMetadataMtmMetadataAccountLayoutAuditEntry; +/// Parsed Metaplex MetadataV1 account snapshot. +/// Canonical bounded projection of one Metadata account. +pub use self::decoder::DcMetadataMtmMetadataAccountSnapshot; +/// One bounded historical reservation entry. +pub use self::decoder::DcMetadataMtmReservationEntrySnapshot; +/// Parsed Metaplex reservation-list account kind. +/// Historical Reservation List account generation. +pub use self::decoder::DcMetadataMtmReservationListAccountKind; +/// Parsed Metaplex reservation-list account snapshot. +/// Canonical decode-only projection of a historical Reservation List account. +pub use self::decoder::DcMetadataMtmReservationListAccountSnapshot; +/// Canonical projection of one Token Owned Escrow account. +pub use self::decoder::DcMetadataMtmTokenOwnedEscrowAccountSnapshot; +/// Authority form used by one Token Owned Escrow account. +pub use self::decoder::DcMetadataMtmTokenOwnedEscrowAuthorityKind; +/// Parsed Metaplex token-record account snapshot. +/// Canonical bounded projection of one programmable Token Record account. +pub use self::decoder::DcMetadataMtmTokenRecordAccountSnapshot; /// Runtime-native Solana decoder with maximal native instruction coverage. -pub use crate::decoder::solana::SolanaCoreDecoder; +pub use self::decoder::DcSolanaCoreDecoder; +/// Exact decoder for the SPL Associated Token Account program. +pub use self::decoder::DcSplAssociatedTokenAccountDecoder; +/// Parsed SPL ElGamal public-key registry account. +pub use self::decoder::DcSplElGamalRegistryState; +/// Exact decoder for the SPL ElGamal registry program. +pub use self::decoder::DcSplElgamalRegistryDecoder; +/// Exact decoder for the three registered SPL Memo generations. +pub use self::decoder::DcSplMemoDecoder; +/// Exact decoder for the Token-2022 program. +pub use self::decoder::DcSplToken2022Decoder; +/// Exact decoder for the classic SPL Token program. +pub use self::decoder::DcSplTokenDecoder; +/// Parsed Token-2022 Mint, Account, or Multisig state. +pub use self::decoder::DcToken2022State; +/// Exact Token-2022 base account state kind. +pub use self::decoder::DcToken2022StateKind; +/// One exact Token-2022 TLV entry. +pub use self::decoder::DcToken2022TlvEntry; +/// Computes the deterministic contextual input hash. +pub use self::decoder::decoder_api_decoder_api_contextual_input_hash; +/// Returns true when a decoder declares the exact program id. +pub use self::decoder::decoder_api_decoder_handles_program_id; +/// Computes a deterministic lowercase SHA-256 hash for one JSON value. +pub use self::decoder::decoder_api_deterministic_json_hash; +/// Extracts the first eight payload bytes as hexadecimal when available. +pub use self::decoder::decoder_api_discriminator_8_hex; +/// Decodes one Collection Authority Record account. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_collection_authority_record_account; +/// Decodes and validates one edition or master-edition account snapshot. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_edition_account; +/// Decodes and validates one Edition Marker account snapshot. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account; +/// Decodes one Holder Delegate Record account. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_holder_delegate_record_account; +/// Decodes and validates one canonical Metadata account snapshot. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_metadata_account; +/// Decodes one Metadata Delegate Record account. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_metadata_delegate_record_account; +/// Decodes one historical Reservation List V1 or V2 account. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account; +/// Decodes one Token Owned Escrow account. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_token_owned_escrow_account; +/// Decodes and validates one programmable Token Record account snapshot. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_token_record_account; +/// Decodes one Use Authority Record account. +pub use self::decoder::decoder_metadata_metaplex_token_metadata_decode_use_authority_record_account; +/// Parses one exact SPL ElGamal registry account. +pub use self::decoder::decoder_spl_elgamal_registry_parse_elgamal_registry_state; +/// Parses one Token-2022 Mint, Account, or Multisig state. +pub use self::decoder::decoder_spl_token2022_parse_token2022_state; /// Exposes the blockhash policy kind. -pub use crate::executor::api::execution::ExecutionBlockhashKind; +pub use self::executor::ExApiExecutionBlockhashKind; /// Exposes the blockhash policy. -pub use crate::executor::api::execution::ExecutionBlockhashPolicy; +pub use self::executor::ExApiExecutionBlockhashPolicy; /// Exposes the exact execution capability result. -pub use crate::executor::api::execution::ExecutionCapability; +pub use self::executor::ExApiExecutionCapability; /// Exposes supported Solana clusters. -pub use crate::executor::api::execution::ExecutionCluster; +pub use self::executor::ExApiExecutionCluster; /// Exposes cluster restrictions. -pub use crate::executor::api::execution::ExecutionClusterPolicy; +pub use self::executor::ExApiExecutionClusterPolicy; /// Exposes the result of waiting for transaction confirmation. -pub use crate::executor::api::execution::ExecutionConfirmationResult; +pub use self::executor::ExApiExecutionConfirmationResult; /// Exposes transaction confirmation states. -pub use crate::executor::api::execution::ExecutionConfirmationStatus; +pub use self::executor::ExApiExecutionConfirmationStatus; /// Exposes explicit execution cost ceilings. -pub use crate::executor::api::execution::ExecutionCostLimit; -/// Exposes the complete execution policy. -pub use crate::executor::api::execution::ExecutionPolicy; -/// Exposes the result of a transaction send adapter. -pub use crate::executor::api::execution::ExecutionSendResult; -/// Exposes the simulation policy. -pub use crate::executor::api::execution::ExecutionSimulationPolicy; -/// Exposes the simulation result contract. -pub use crate::executor::api::execution::ExecutionSimulationResult; -/// Exposes one planned instruction account. -pub use crate::executor::api::execution::PlannedAccount; -/// Exposes one encoded planned instruction. -pub use crate::executor::api::execution::PlannedInstruction; -/// Exposes post-execution replay diagnostics. -pub use crate::executor::api::execution::PostExecutionDiagnostic; -/// Exposes post-execution validation requirements. -pub use crate::executor::api::execution::PostExecutionValidationPolicy; -/// Exposes a typed execution plan. -pub use crate::executor::api::execution::PreparedExecutionPlan; -/// Exposes one required signer. -pub use crate::executor::api::execution::RequiredSigner; -/// Exposes the typed executor contract. -pub use crate::executor::api::execution::TypedInstructionExecutor; +pub use self::executor::ExApiExecutionCostLimit; /// Exposes the legacy common execution plan type. -pub use crate::executor::api::executor::ExecutionPlan; +pub use self::executor::ExApiExecutionPlan; +/// Exposes the complete execution policy. +pub use self::executor::ExApiExecutionPolicy; /// Exposes the legacy common execution request type. -pub use crate::executor::api::executor::ExecutionRequest; +pub use self::executor::ExApiExecutionRequest; +/// Exposes the result of a transaction send adapter. +pub use self::executor::ExApiExecutionSendResult; +/// Exposes the simulation policy. +pub use self::executor::ExApiExecutionSimulationPolicy; +/// Exposes the simulation result contract. +pub use self::executor::ExApiExecutionSimulationResult; /// Exposes the legacy common execution support enum. -pub use crate::executor::api::executor::ExecutionSupport; +pub use self::executor::ExApiExecutionSupport; /// Exposes the legacy common instruction executor trait. -pub use crate::executor::api::executor::InstructionExecutor; +pub use self::executor::ExApiInstructionExecutor; +/// Exposes one planned instruction account. +pub use self::executor::ExApiPlannedAccount; +/// Exposes one encoded planned instruction. +pub use self::executor::ExApiPlannedInstruction; +/// Exposes post-execution replay diagnostics. +pub use self::executor::ExApiPostExecutionDiagnostic; +/// Exposes post-execution validation requirements. +pub use self::executor::ExApiPostExecutionValidationPolicy; +/// Exposes a typed execution plan. +pub use self::executor::ExApiPreparedExecutionPlan; +/// Exposes one required signer. +pub use self::executor::ExApiRequiredSigner; +/// Exposes the typed executor contract. +pub use self::executor::ExApiTypedInstructionExecutor; /// Exposes the compact JSON payload serializer. -pub use crate::executor::api::executor::serialize_payload_json; +pub use self::executor::executor_api_serialize_payload_json; /// Exposes the pretty JSON payload serializer. -pub use crate::executor::api::executor::serialize_payload_json_pretty; +pub use self::executor::executor_api_serialize_payload_json_pretty; /// Stable native and SPL administration materializer. -pub use crate::materializer::admin::AdminMaterializer; -/// Materializes one exact SPL ElGamal registry account snapshot. -pub use crate::materializer::admin::materialize_elgamal_registry_state_snapshot; -/// Materializes exact Token-2022 administration account snapshots. -pub use crate::materializer::admin::materialize_token_2022_admin_state_snapshots; +pub use self::materializer::MtAdminMaterializer; /// Stable decoded observation materializer contract used by the common pipeline. -pub use crate::materializer::api::contracts::EventMaterializer; +pub use self::materializer::MtApiEventMaterializer; /// Explicit policy applied to successful and failed source transactions. -pub use crate::materializer::api::contracts::MaterializationTransactionPolicy; +pub use self::materializer::MtApiMaterializationTransactionPolicy; /// Stable processor-owned business output derived from one decoded observation. -pub use crate::materializer::api::contracts::MaterializedOutput; +pub use self::materializer::MtApiMaterializedOutput; /// Structured materializer diagnostic without generic error wrappers. -pub use crate::materializer::api::contracts::MaterializerDiagnostic; +pub use self::materializer::MtApiMaterializerDiagnostic; /// Complete explicit result produced by one materializer invocation. -pub use crate::materializer::api::contracts::MaterializerExecutionResult; +pub use self::materializer::MtApiMaterializerExecutionResult; /// Stable identity of one decoded event materializer. -pub use crate::materializer::api::contracts::MaterializerIdentity; +pub use self::materializer::MtApiMaterializerIdentity; /// Terminal materializer result status. -pub use crate::materializer::api::contracts::MaterializerOutcomeStatus; -/// Returns true when a materializer explicitly accepts one decoded family. -pub use crate::materializer::api::contracts::materializer_accepts_family; -/// Returns true when a materializer accepts one exact decoded observation. -pub use crate::materializer::api::contracts::materializer_accepts_observation; -/// Applies the mandatory source transaction policy before materialization. -pub use crate::materializer::api::contracts::validate_materialization_policy; -/// Rejects mutable business outputs derived from failed or uncommitted observations. -pub use crate::materializer::api::contracts::validate_materialized_output_policy; -/// Exposes the legacy common business materializer trait. -pub use crate::materializer::api::materializer::Materializer; +pub use self::materializer::MtApiMaterializerOutcomeStatus; /// Stable native compliance audit materializer. -pub use crate::materializer::compliance::ComplianceAuditMaterializer; +pub use self::materializer::MtComplianceAuditMaterializer; +/// Fee materializer for committed Token-2022 fee observations. +pub use self::materializer::MtFeesMaterializer; /// Stable native lifecycle materializer. -pub use crate::materializer::lifecycle::LifecycleMaterializer; +pub use self::materializer::MtLifecycleMaterializer; +/// Exposes the legacy common business materializer trait. +pub use self::materializer::MtMaterializer; +/// Token-2022 and Metaplex metadata snapshot materializer. +pub use self::materializer::MtMetadataMaterializer; +/// Stable SPL Token and ATA risk materializer. +pub use self::materializer::MtRiskMaterializer; /// Stable native stake and vote materializer. -pub use crate::materializer::staking::StakingMaterializer; +pub use self::materializer::MtStakingMaterializer; +/// Stable Token, ATA and Token-2022 account materializer. +pub use self::materializer::MtTokenAccountsMaterializer; +/// Stable committed Memo transaction annotation materializer. +pub use self::materializer::MtTransactionAnnotationMaterializer; +/// Materializes one canonical non-Metadata Metaplex account snapshot. +pub use self::materializer::materialize_metaplex_account_snapshot; +/// Materializes one canonical Metaplex Metadata account snapshot. +pub use self::materializer::materialize_metaplex_metadata_snapshot; +/// Materializes exact Token-2022 administration account snapshots. +pub use self::materializer::materialize_token2022_admin_state_snapshots; +/// Materializes authoritative Token-2022 fee extension snapshots. +pub use self::materializer::materialize_token2022_fee_state_snapshots; +/// Materializes Token-2022 embedded metadata and group snapshots. +pub use self::materializer::materialize_token2022_metadata_snapshot; +/// Materializes one bounded Token-2022 account state snapshot. +pub use self::materializer::materialize_token2022_state_snapshot; +/// Materializes one exact SPL ElGamal registry account snapshot. +pub use self::materializer::materializer_admin_materialize_elgamal_registry_state_snapshot; +/// Returns true when a materializer explicitly accepts one decoded family. +pub use self::materializer::materializer_api_accepts_family; +/// Returns true when a materializer accepts one exact decoded observation. +pub use self::materializer::materializer_api_accepts_observation; +/// Applies the mandatory source transaction policy before materialization. +pub use self::materializer::materializer_api_validate_materialization_policy; +/// Rejects mutable business outputs derived from failed or uncommitted observations. +pub use self::materializer::materializer_api_validate_materialized_output_policy; /// Current canonical transaction document version. -pub use crate::model::canonical_transaction::CANONICAL_TRANSACTION_FORMAT_VERSION; -/// Canonical address lookup table reference. -pub use crate::model::canonical_transaction::CanonicalAddressTableLookup; -/// Canonical compiled Solana instruction. -pub use crate::model::canonical_transaction::CanonicalCompiledInstruction; -/// Canonical group of inner instructions. -pub use crate::model::canonical_transaction::CanonicalInnerInstructionGroup; -/// Canonical runtime-loaded addresses. -pub use crate::model::canonical_transaction::CanonicalLoadedAddresses; -/// Canonical Solana message header. -pub use crate::model::canonical_transaction::CanonicalMessageHeader; -/// Canonical transaction return data. -pub use crate::model::canonical_transaction::CanonicalReturnData; -/// Canonical transaction reward. -pub use crate::model::canonical_transaction::CanonicalReward; -/// Canonical exact token balance. -pub use crate::model::canonical_transaction::CanonicalTokenBalance; -/// Source-independent canonical Solana transaction. -pub use crate::model::canonical_transaction::CanonicalTransaction; -/// Canonical Solana transaction message. -pub use crate::model::canonical_transaction::CanonicalTransactionMessage; -/// Canonical Solana transaction execution metadata. -pub use crate::model::canonical_transaction::CanonicalTransactionMetadata; -/// Canonical Solana transaction execution status. -pub use crate::model::canonical_transaction::CanonicalTransactionStatus; -/// Canonical Solana transaction version. -pub use crate::model::canonical_transaction::CanonicalTransactionVersion; -/// Protocol-level decoded event produced by a decoder. -pub use crate::model::decoded::DecodedProtocolEvent; -/// Confidence level for a decoded event. -pub use crate::model::decoded::DecoderConfidence; -/// Source from which a decoded event was derived. -pub use crate::model::decoded::EventSourceKind; -/// Business-level materialized event placeholder. -pub use crate::model::materialized::MaterializedEvent; -/// Materialized event family. -pub use crate::model::materialized::MaterializedEventFamily; -/// Canonical event code in `.` format. -pub use crate::model::nomenclature::EventCode; -/// High-level event family. -pub use crate::model::nomenclature::EventFamily; -/// Event name without surface prefix. -pub use crate::model::nomenclature::EventName; -/// Stable internal program code. -pub use crate::model::nomenclature::ProgramCode; -/// Protocol family code, for example `raydium` or `meteora`. -pub use crate::model::nomenclature::ProtocolCode; -/// Concrete protocol surface code, for example `raydium_amm_v4`. -pub use crate::model::nomenclature::SurfaceCode; -/// Generic program observation derived from a Solana instruction. -pub use crate::model::observation::ProgramObservation; +pub use self::model::MD_CANONICAL_TRANSACTION_FORMAT_VERSION; /// Source-neutral replay contracts. /// Version of the normalized core replay contract. -pub use crate::model::replay::CORE_REPLAY_INPUT_CONTRACT_VERSION; +pub use self::model::MD_CORE_REPLAY_INPUT_CONTRACT_VERSION; +/// Canonical address lookup table reference. +pub use self::model::MdCanonicalAddressTableLookup; +/// Canonical compiled Solana instruction. +pub use self::model::MdCanonicalCompiledInstruction; +/// Canonical group of inner instructions. +pub use self::model::MdCanonicalInnerInstructionGroup; +/// Canonical runtime-loaded addresses. +pub use self::model::MdCanonicalLoadedAddresses; +/// Canonical Solana message header. +pub use self::model::MdCanonicalMessageHeader; +/// Canonical transaction return data. +pub use self::model::MdCanonicalReturnData; +/// Canonical transaction reward. +pub use self::model::MdCanonicalReward; +/// Canonical exact token balance. +pub use self::model::MdCanonicalTokenBalance; +/// Source-independent canonical Solana transaction. +pub use self::model::MdCanonicalTransaction; +/// Canonical Solana transaction message. +pub use self::model::MdCanonicalTransactionMessage; +/// Canonical Solana transaction execution metadata. +pub use self::model::MdCanonicalTransactionMetadata; +/// Canonical Solana transaction execution status. +pub use self::model::MdCanonicalTransactionStatus; +/// Canonical Solana transaction version. +pub use self::model::MdCanonicalTransactionVersion; /// Decoder replay input containing one instruction plus extracted transaction context. -pub use crate::model::replay::CoreInstructionReplayInput; +pub use self::model::MdCoreInstructionReplayInput; +/// Protocol-level decoded event produced by a decoder. +pub use self::model::MdDecodedProtocolEvent; +/// Confidence level for a decoded event. +pub use self::model::MdDecoderConfidence; +/// Canonical event code in `.` format. +pub use self::model::MdEventCode; +/// High-level event family. +pub use self::model::MdEventFamily; +/// Event name without surface prefix. +pub use self::model::MdEventName; +/// Source from which a decoded event was derived. +pub use self::model::MdEventSourceKind; /// Stable top-level or inner instruction path. -pub use crate::model::solana::InstructionPath; +pub use self::model::MdInstructionPath; +/// Business-level materialized event placeholder. +pub use self::model::MdMaterializedEvent; +/// Materialized event family. +pub use self::model::MdMaterializedEventFamily; +/// Stable internal program code. +pub use self::model::MdProgramCode; /// Solana program id. -pub use crate::model::solana::ProgramId; +pub use self::model::MdProgramId; +/// Generic program observation derived from a Solana instruction. +pub use self::model::MdProgramObservation; +/// Protocol family code, for example `raydium` or `meteora`. +pub use self::model::MdProtocolCode; /// Solana public key. -pub use crate::model::solana::Pubkey; +pub use self::model::MdPubkey; /// Solana transaction signature. -pub use crate::model::solana::Signature; +pub use self::model::MdSignature; /// Solana slot. -pub use crate::model::solana::Slot; +pub use self::model::MdSlot; +/// Concrete protocol surface code, for example `raydium_amm_v4`. +pub use self::model::MdSurfaceCode; diff --git a/kb-lib/src/materializer.rs b/kb-lib/src/materializer.rs index e8a56b5..4785c2a 100644 --- a/kb-lib/src/materializer.rs +++ b/kb-lib/src/materializer.rs @@ -1,28 +1,116 @@ // file: kb-lib/src/materializer.rs -// version: 1 +// version: 2 //! Consolidated materializer modules. -pub mod admin; -pub mod api; -pub mod bridge; -pub mod compliance; -pub mod fees; -pub mod governance; -pub mod lending; -pub mod lifecycle; -pub mod liquidity; -pub mod metadata; -pub mod nft; -pub mod oracle; -pub mod orderbook; -pub mod perpetuals; -pub mod pool; -pub mod rewards; -pub mod risk; -pub mod routing; -pub mod staking; -pub mod token; -pub mod trades; -pub mod transaction; -pub mod vault; +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; + +/// Canonical processor name for the native and SPL administration materializer. +pub(crate) use self::admin::MT_ADMIN_PROCESSOR_NAME; +/// Canonical tracing target for the native and SPL administration materializer. +pub(crate) use self::admin::MT_ADMIN_TRACING_TARGET; +/// Canonical tracing target for the native compliance audit materializer. +pub(crate) use self::compliance::MT_COMPLIANCE_AUDIT_TRACING_TARGET; +/// Canonical tracing target for the native lifecycle materializer. +pub(crate) use self::lifecycle::MT_LIFECYCLE_TRACING_TARGET; +/// Stable processor name for SPL Token and ATA risk facts. +pub(crate) use self::risk::MT_RISK_PROCESSOR_NAME; +/// Stable projection contract version for SPL Token and ATA risk facts. +pub(crate) use self::risk::MT_RISK_PROJECTION_VERSION; +/// Canonical tracing target for SPL Token and ATA risk facts. +pub(crate) use self::risk::MT_RISK_TRACING_TARGET; +/// Canonical tracing target for the native stake and vote materializer. +pub(crate) use self::staking::MT_STAKING_TRACING_TARGET; +/// Stable processor name for Token, ATA and Token-2022 account projections. +pub(crate) use self::token::MT_TOKEN_ACCOUNTS_PROCESSOR_NAME; +/// Stable projection contract version for Token, ATA and Token-2022 account projections. +pub(crate) use self::token::MT_TOKEN_ACCOUNTS_PROJECTION_VERSION; +/// Canonical tracing target for Token, ATA and Token-2022 account projections. +pub(crate) use self::token::MT_TOKEN_ACCOUNTS_TRACING_TARGET; +/// Maximum Memo payload accepted by transaction annotations. +pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_MAX_MEMO_PAYLOAD_BYTES; +/// Stable processor name for transaction annotations. +pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME; +/// Stable projection contract version for transaction annotations. +pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_PROJECTION_VERSION; +/// Canonical tracing target for transaction annotations. +pub(crate) use self::transaction::MT_TRANSACTION_ANNOTATIONS_TRACING_TARGET; + +/// Stable native and SPL administration materializer. +pub use self::admin::MtAdminMaterializer; +/// Materializes exact Token-2022 administration account snapshots. +pub use self::admin::materialize_token2022_admin_state_snapshots; +/// Materializes one exact SPL ElGamal registry account snapshot. +pub use self::admin::materializer_admin_materialize_elgamal_registry_state_snapshot; +/// 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; +/// 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::materialize_token2022_fee_state_snapshots; +/// Stable native lifecycle materializer. +pub use self::lifecycle::MtLifecycleMaterializer; +/// Token-2022 and Metaplex metadata snapshot materializer. +pub use self::metadata::MtMetadataMaterializer; +/// Materializes one canonical non-Metadata Metaplex account snapshot. +pub use self::metadata::materialize_metaplex_account_snapshot; +/// Materializes one canonical Metaplex Metadata account snapshot. +pub use self::metadata::materialize_metaplex_metadata_snapshot; +/// Materializes Token-2022 embedded metadata and group snapshots. +pub use self::metadata::materialize_token2022_metadata_snapshot; +/// Stable SPL Token and ATA risk materializer. +pub use self::risk::MtRiskMaterializer; +/// Stable native stake and vote materializer. +pub use self::staking::MtStakingMaterializer; +/// Stable Token, ATA and Token-2022 account materializer. +pub use self::token::MtTokenAccountsMaterializer; +/// Materializes one bounded Token-2022 account state snapshot. +pub use self::token::materialize_token2022_state_snapshot; +/// Stable committed Memo transaction annotation materializer. +pub use self::transaction::MtTransactionAnnotationMaterializer; diff --git a/kb-lib/src/materializer/admin.rs b/kb-lib/src/materializer/admin.rs index 5557275..6752f17 100644 --- a/kb-lib/src/materializer/admin.rs +++ b/kb-lib/src/materializer/admin.rs @@ -1,17 +1,19 @@ // file: kb-lib/src/materializer/admin.rs -// version: 2 +// version: 3 //! `admin` materializer family. mod constants; -pub mod core; +mod core; -pub(crate) use crate::materializer::admin::constants::PROCESSOR_NAME; -pub(crate) use crate::materializer::admin::constants::TRACING_TARGET as MATERIALIZER_ADMIN_TRACING_TARGET; +/// Canonical processor name for the native and SPL administration materializer. +pub(crate) use self::constants::MT_ADMIN_PROCESSOR_NAME; +/// Canonical tracing target for the native and SPL administration materializer. +pub(crate) use self::constants::MT_ADMIN_TRACING_TARGET; /// Stable native and SPL administration materializer. -pub use crate::materializer::admin::core::AdminMaterializer; -/// Materializes one exact SPL ElGamal registry account snapshot. -pub use crate::materializer::admin::core::materialize_elgamal_registry_state_snapshot; +pub use self::core::MtAdminMaterializer; /// Materializes exact Token-2022 administration account snapshots. -pub use crate::materializer::admin::core::materialize_token_2022_admin_state_snapshots; +pub use self::core::materialize_token2022_admin_state_snapshots; +/// Materializes one exact SPL ElGamal registry account snapshot. +pub use self::core::materializer_admin_materialize_elgamal_registry_state_snapshot; diff --git a/kb-lib/src/materializer/admin/constants.rs b/kb-lib/src/materializer/admin/constants.rs index b7441fb..c3afa35 100644 --- a/kb-lib/src/materializer/admin/constants.rs +++ b/kb-lib/src/materializer/admin/constants.rs @@ -4,7 +4,7 @@ //! Local constants for the native and SPL administration materializer. /// Canonical processor name for this component. -pub(crate) const PROCESSOR_NAME: &str = "solana_native_admin"; +pub(crate) const MT_ADMIN_PROCESSOR_NAME: &str = "solana_native_admin"; /// Canonical tracing target for this component. -pub(crate) const TRACING_TARGET: &str = "kb-lib.materializer.admin"; +pub(crate) const MT_ADMIN_TRACING_TARGET: &str = "kb-lib.materializer.admin"; diff --git a/kb-lib/src/materializer/admin/core.rs b/kb-lib/src/materializer/admin/core.rs index cb0f8da..87d5b32 100644 --- a/kb-lib/src/materializer/admin/core.rs +++ b/kb-lib/src/materializer/admin/core.rs @@ -3,8 +3,8 @@ //! Stable administrative projections derived from exact committed observations. -const ACCEPTED_FAMILIES: &[crate::EventFamily] = - &[crate::EventFamily::Admin, crate::EventFamily::TokenAccount]; +const ACCEPTED_FAMILIES: &[crate::MdEventFamily] = + &[crate::MdEventFamily::Admin, crate::MdEventFamily::TokenAccount]; const SYSTEM_SURFACE: &str = "solana_native_system"; const SYSTEM_ENTRIES: &[&str] = &["assign", "assign_with_seed"]; const CONFIG_SURFACE: &str = "solana_native_config"; @@ -14,7 +14,7 @@ const BPF_LOADER_UPGRADEABLE_ENTRIES: &[&str] = &["set_authority", "set_authorit const LOADER_V4_SURFACE: &str = "solana_native_loader_v4"; const LOADER_V4_ENTRIES: &[&str] = &["transfer_authority"]; const SPL_TOKEN_SURFACE: &str = "spl_token"; -const SPL_TOKEN_2022_SURFACE: &str = "spl_token_2022"; +const SPL_TOKEN2022_SURFACE: &str = "spl_token2022"; const SPL_ELGAMAL_REGISTRY_SURFACE: &str = "spl_elgamal_registry"; const SPL_ELGAMAL_REGISTRY_ENTRIES: &[&str] = &["create_registry", "update_registry"]; const SPL_TOKEN_AUTHORITY_ENTRIES: &[&str] = &[ @@ -24,7 +24,7 @@ const SPL_TOKEN_AUTHORITY_ENTRIES: &[&str] = &[ "update_interest_bearing_rate", ]; const SPL_TOKEN_MULTISIG_ENTRIES: &[&str] = &["initialize_multisig", "initialize_multisig2"]; -const SPL_TOKEN_2022_EXTENSION_ADMIN_ENTRIES: &[&str] = &[ +const SPL_TOKEN2022_EXTENSION_ADMIN_ENTRIES: &[&str] = &[ "initialize_transfer_hook", "update_transfer_hook_program_id", "initialize_metadata_pointer", @@ -57,7 +57,7 @@ impl ProjectionKind { Self::SplTokenAuthority => "spl_token_authority", Self::SplTokenMultisig => "spl_token_multisig", Self::SplElgamalRegistry => "spl_elgamal_registry", - Self::SplToken2022ExtensionAdmin => "spl_token_2022_extension_admin", + Self::SplToken2022ExtensionAdmin => "spl_token2022_extension_admin", }; } @@ -79,7 +79,7 @@ impl ProjectionKind { Self::SplTokenMultisig => format!("spl_token_multisig:{operation}:0"), Self::SplElgamalRegistry => format!("spl_elgamal_registry:{operation}:0"), Self::SplToken2022ExtensionAdmin => { - format!("spl_token_2022_extension_admin:{operation}:0") + format!("spl_token2022_extension_admin:{operation}:0") }, }; } @@ -87,9 +87,9 @@ impl ProjectionKind { /// Stable administrative materializer for supported native mutations. #[derive(Clone, Debug, Default)] -pub struct AdminMaterializer; +pub struct MtAdminMaterializer; -impl crate::Materializer for crate::AdminMaterializer { +impl crate::MtMaterializer for crate::MtAdminMaterializer { fn materializer_name(&self) -> &'static str { return "kb_materializer_admin"; } @@ -98,7 +98,7 @@ impl crate::Materializer for crate::AdminMaterializer { return env!("CARGO_PKG_VERSION"); } - fn accepts_event(&self, event: &crate::DecodedProtocolEvent) -> bool { + fn accepts_event(&self, event: &crate::MdDecodedProtocolEvent) -> bool { return ACCEPTED_FAMILIES.contains(&event.event_family) && program_matches_surface(event) && projection(event.surface_code.0.as_str(), event.event_name.0.as_str()).is_some(); @@ -106,28 +106,28 @@ impl crate::Materializer for crate::AdminMaterializer { fn materialize_event( &self, - event: &crate::DecodedProtocolEvent, - ) -> kb_core::Result> { - if !crate::Materializer::accepts_event(self, event) { + event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result> { + if !crate::MtMaterializer::accepts_event(self, event) { return std::result::Result::Ok(std::vec::Vec::new()); } return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::EventMaterializer for crate::AdminMaterializer { - fn identity(&self) -> crate::MaterializerIdentity { - return crate::MaterializerIdentity { +impl crate::MtApiEventMaterializer for crate::MtAdminMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { name: "solana_native_admin".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn accepted_families(&self) -> &'static [crate::EventFamily] { + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { return ACCEPTED_FAMILIES; } - fn accepts_observation(&self, observation: &crate::DecodedObservation) -> bool { + fn accepts_observation(&self, observation: &crate::DcApiDecodedObservation) -> bool { return ACCEPTED_FAMILIES.contains(&observation.event.event_family) && program_matches_surface(&observation.event) && projection( @@ -139,15 +139,15 @@ impl crate::EventMaterializer for crate::AdminMaterializer { fn transaction_policy( &self, - _family: crate::EventFamily, - ) -> crate::MaterializationTransactionPolicy { - return crate::MaterializationTransactionPolicy::SuccessfulCommittedOnly; + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulCommittedOnly; } fn materialize( &self, - observation: &crate::DecodedObservation, - ) -> crate::MaterializerExecutionResult { + observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { let projection = match projection( observation.event.surface_code.0.as_str(), observation.event.event_name.0.as_str(), @@ -155,25 +155,25 @@ impl crate::EventMaterializer for crate::AdminMaterializer { std::option::Option::Some(value) => value, std::option::Option::None => { tracing::debug!( - target: crate::MATERIALIZER_ADMIN_TRACING_TARGET, + target: crate::MT_ADMIN_TRACING_TARGET, action = "materialize_admin", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), accepted = false, "ignore observation outside supported native administrative projections" ); - return crate::MaterializerExecutionResult::ignored(); + return crate::MtApiMaterializerExecutionResult::ignored(); }, }; if !ACCEPTED_FAMILIES.contains(&observation.event.event_family) { - return crate::MaterializerExecutionResult::ignored(); + return crate::MtApiMaterializerExecutionResult::ignored(); } if !program_matches_surface(&observation.event) { - return crate::MaterializerExecutionResult::ignored(); + return crate::MtApiMaterializerExecutionResult::ignored(); } if observation.transaction_failed || !observation.observation_committed { tracing::debug!( - target: crate::MATERIALIZER_ADMIN_TRACING_TARGET, + target: crate::MT_ADMIN_TRACING_TARGET, action = "materialize_admin", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), @@ -181,7 +181,7 @@ impl crate::EventMaterializer for crate::AdminMaterializer { transaction_failed = observation.transaction_failed, "refuse uncommitted native administrative observation" ); - return crate::MaterializerExecutionResult::refused( + return crate::MtApiMaterializerExecutionResult::refused( "failed_transaction_admin_refused", "failed or uncommitted native observations cannot create administrative mutation outputs", ); @@ -197,10 +197,10 @@ impl crate::EventMaterializer for crate::AdminMaterializer { .cloned() .unwrap_or_else(|| return observation.payload_json.clone()); let operation = observation.event.event_name.0.clone(); - let output = crate::MaterializedOutput { + let output = crate::MtApiMaterializedOutput { output_key: projection .output_key(observation.event.surface_code.0.as_str(), operation.as_str()), - family: crate::MaterializedEventFamily::Admin, + family: crate::MdMaterializedEventFamily::Admin, payload_json: serde_json::json!({ "projectionVersion": 1, "projectionSemantics": "committed_instruction_admin_event", @@ -223,7 +223,7 @@ impl crate::EventMaterializer for crate::AdminMaterializer { }), }; tracing::debug!( - target: crate::MATERIALIZER_ADMIN_TRACING_TARGET, + target: crate::MT_ADMIN_TRACING_TARGET, action = "materialize_admin", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), @@ -231,8 +231,8 @@ impl crate::EventMaterializer for crate::AdminMaterializer { output_count = 1_usize, "materialize committed native administrative observation" ); - return crate::MaterializerExecutionResult { - status: crate::MaterializerOutcomeStatus::Inserted, + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, outputs: std::vec![output], diagnostics: std::vec::Vec::new(), }; @@ -258,18 +258,18 @@ fn projection(surface_code: &str, entry_code: &str) -> std::option::Option std::option::Option bool { +fn program_matches_surface(event: &crate::MdDecodedProtocolEvent) -> bool { if event.surface_code.0 == SPL_TOKEN_SURFACE { return event.program_id.0 == kb_program_ids::SPL_TOKEN_PROGRAM_ID; } - if event.surface_code.0 == SPL_TOKEN_2022_SURFACE { - return event.program_id.0 == kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID; + if event.surface_code.0 == SPL_TOKEN2022_SURFACE { + return event.program_id.0 == kb_program_ids::SPL_TOKEN2022_PROGRAM_ID; } if event.surface_code.0 == SPL_ELGAMAL_REGISTRY_SURFACE { - return event.program_id.0 == kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID; + return event.program_id.0 == kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID; } return true; } @@ -497,21 +497,21 @@ mod tests { transaction_failed: bool, accounts: serde_json::Value, parameters: serde_json::Value, - ) -> crate::DecodedObservation { - return crate::DecodedObservation { + ) -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { event_key: format!("{entry_code}:0"), - event: crate::DecodedProtocolEvent { - signature: crate::Signature("signature".to_string()), - slot: crate::Slot(42), - instruction_path: crate::InstructionPath("0".to_string()), - program_id: crate::ProgramId("program-id".to_string()), - protocol_code: crate::ProtocolCode("solana_native".to_string()), - surface_code: crate::SurfaceCode(surface_code.to_string()), - event_code: crate::EventCode(format!("{surface_code}.{entry_code}")), - event_name: crate::EventName(entry_code.to_string()), - event_family: crate::EventFamily::Admin, - source_kind: crate::EventSourceKind::Instruction, - confidence: crate::DecoderConfidence::ManualExact, + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId("program-id".to_string()), + protocol_code: crate::MdProtocolCode("solana_native".to_string()), + surface_code: crate::MdSurfaceCode(surface_code.to_string()), + event_code: crate::MdEventCode(format!("{surface_code}.{entry_code}")), + event_name: crate::MdEventName(entry_code.to_string()), + event_family: crate::MdEventFamily::Admin, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::ManualExact, }, payload_json: serde_json::json!({"accounts": accounts, "parameters": parameters}), transaction_failed, @@ -521,9 +521,9 @@ mod tests { std::option::Option::None }, observation_committed: !transaction_failed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: std::vec!["fixture".to_string()], }, }; @@ -535,7 +535,7 @@ mod tests { #[test] fn system_assign_creates_owner_projection() { - let materializer = crate::AdminMaterializer; + let materializer = crate::MtAdminMaterializer; let observation = observation( super::SYSTEM_SURFACE, "assign", @@ -543,16 +543,16 @@ mod tests { serde_json::json!([account("assigned_account", "account111",)]), serde_json::json!({"owner": "owner111"}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); - assert_eq!(result.outputs[0].family, crate::MaterializedEventFamily::Admin); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs[0].family, crate::MdMaterializedEventFamily::Admin); assert_eq!(result.outputs[0].output_key, "system_account_ownership:assign:0"); assert_eq!(result.outputs[0].payload_json["projection"]["newOwner"], "owner111"); } #[test] fn seeded_assign_preserves_base_seed_and_owner() { - let materializer = crate::AdminMaterializer; + let materializer = crate::MtAdminMaterializer; let observation = observation( super::SYSTEM_SURFACE, "assign_with_seed", @@ -563,7 +563,7 @@ mod tests { ]), serde_json::json!({"owner": "owner111", "seed": "seed"}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); assert_eq!(result.outputs[0].payload_json["projection"]["targetAccount"], "derived111"); assert_eq!(result.outputs[0].payload_json["projection"]["baseAccount"], "base111"); assert_eq!(result.outputs[0].payload_json["projection"]["seed"], "seed"); @@ -571,7 +571,7 @@ mod tests { #[test] fn config_store_preserves_bounded_opaque_audit_fields() { - let materializer = crate::AdminMaterializer; + let materializer = crate::MtAdminMaterializer; let observation = observation( super::CONFIG_SURFACE, "store", @@ -589,7 +589,7 @@ mod tests { "configDataPrefixHex": "0102", }), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); assert_eq!(result.outputs[0].output_key, "config_account_update:store:0"); assert_eq!(result.outputs[0].payload_json["projection"]["targetAccount"], "config111"); assert_eq!(result.outputs[0].payload_json["projection"]["configDataSha256"], "abc"); @@ -598,7 +598,7 @@ mod tests { #[test] fn loader_authority_variants_create_exact_admin_outputs() { - let materializer = crate::AdminMaterializer; + let materializer = crate::MtAdminMaterializer; for (surface, entry, target_role) in [ (super::BPF_LOADER_UPGRADEABLE_SURFACE, "set_authority", "authority_target"), ( @@ -619,8 +619,8 @@ mod tests { ]), serde_json::json!({}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs[0].payload_json["projection"]["targetAccount"], "target111"); assert_eq!(result.outputs[0].payload_json["projection"]["newAuthority"], "new111"); } @@ -639,9 +639,9 @@ mod tests { serde_json::json!({"authorityType":"mint_tokens","newAuthority":null}), ); authority.event.program_id = - crate::ProgramId(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()); + crate::MdProgramId(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()); let authority_result = - crate::EventMaterializer::materialize(&crate::AdminMaterializer, &authority); + crate::MtApiEventMaterializer::materialize(&crate::MtAdminMaterializer, &authority); assert_eq!(authority_result.outputs[0].output_key, "spl_token_authority:set_authority:0"); assert_eq!( authority_result.outputs[0].payload_json["projection"]["stateTransition"], @@ -660,9 +660,9 @@ mod tests { serde_json::json!({"m":2}), ); multisig.event.program_id = - crate::ProgramId(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()); + crate::MdProgramId(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()); let multisig_result = - crate::EventMaterializer::materialize(&crate::AdminMaterializer, &multisig); + crate::MtApiEventMaterializer::materialize(&crate::MtAdminMaterializer, &multisig); assert_eq!( multisig_result.outputs[0].output_key, "spl_token_multisig:initialize_multisig2:0" @@ -676,9 +676,9 @@ mod tests { } #[test] - fn token_2022_authority_change_uses_the_admin_owner_once() { + fn token2022_authority_change_uses_the_admin_owner_once() { let mut observation = observation( - super::SPL_TOKEN_2022_SURFACE, + super::SPL_TOKEN2022_SURFACE, "set_authority", false, serde_json::json!([ @@ -688,19 +688,20 @@ mod tests { serde_json::json!({"authorityType":"mint_tokens","newAuthority":null}), ); observation.event.program_id = - crate::ProgramId(kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID.to_string()); - let result = crate::EventMaterializer::materialize(&crate::AdminMaterializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + crate::MdProgramId(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID.to_string()); + let result = + crate::MtApiEventMaterializer::materialize(&crate::MtAdminMaterializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs.len(), 1); assert_eq!( result.outputs[0].payload_json["programId"], - kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID ); } #[test] fn failed_admin_mutation_is_refused() { - let materializer = crate::AdminMaterializer; + let materializer = crate::MtAdminMaterializer; let observation = observation( super::SYSTEM_SURFACE, "assign", @@ -708,8 +709,8 @@ mod tests { serde_json::json!([account("assigned_account", "account111",)]), serde_json::json!({"owner": "owner111"}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Refused); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); assert!(result.outputs.is_empty()); } @@ -723,20 +724,21 @@ mod tests { serde_json::json!({}), ); observation.event.program_id = - crate::ProgramId(kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string()); - observation.event.event_family = crate::EventFamily::Lifecycle; - assert!(!crate::EventMaterializer::accepts_observation( - &crate::AdminMaterializer, + crate::MdProgramId(kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string()); + observation.event.event_family = crate::MdEventFamily::Lifecycle; + assert!(!crate::MtApiEventMaterializer::accepts_observation( + &crate::MtAdminMaterializer, &observation, )); - let result = crate::EventMaterializer::materialize(&crate::AdminMaterializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Ignored); + let result = + crate::MtApiEventMaterializer::materialize(&crate::MtAdminMaterializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); assert!(result.outputs.is_empty()); } #[test] fn unrelated_admin_observation_is_ignored() { - let materializer = crate::AdminMaterializer; + let materializer = crate::MtAdminMaterializer; let observation = observation( "other_surface", "set_authority", @@ -744,13 +746,13 @@ mod tests { serde_json::json!([]), serde_json::json!({}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Ignored); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); } #[test] fn output_serialization_is_deterministic() { - let materializer = crate::AdminMaterializer; + let materializer = crate::MtAdminMaterializer; let observation = observation( super::CONFIG_SURFACE, "store", @@ -765,8 +767,8 @@ mod tests { "configDataPrefixHex": "01", }), ); - let first = crate::EventMaterializer::materialize(&materializer, &observation); - let second = crate::EventMaterializer::materialize(&materializer, &observation); + let first = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + let second = crate::MtApiEventMaterializer::materialize(&materializer, &observation); let first_json = match serde_json::to_string(&first) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => panic!("first admin serialization failed: {error}"), @@ -780,7 +782,7 @@ mod tests { #[test] fn elgamal_registry_create_and_update_have_one_admin_owner() { - let materializer = crate::AdminMaterializer; + let materializer = crate::MtAdminMaterializer; for (operation, offset, owner_position, transition) in [ ("create_registry", 1_i64, 1_u64, "elgamal_registry_created"), ("update_registry", 0_i64, 2_u64, "elgamal_registry_key_updated"), @@ -797,8 +799,8 @@ mod tests { ]), serde_json::json!({}), ); - observation.event.program_id = crate::ProgramId( - kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID.to_string(), + observation.event.program_id = crate::MdProgramId( + kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID.to_string(), ); observation.payload_json = serde_json::json!({ "accounts": observation.payload_json["accounts"].clone(), @@ -809,8 +811,8 @@ mod tests { "relative_instruction_offset" }, }); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs.len(), 1); assert_eq!( result.outputs[0].payload_json["projection"]["registryAccount"], @@ -826,7 +828,7 @@ mod tests { #[test] fn elgamal_registry_foreign_program_and_failed_transaction_are_refused() { - let materializer = crate::AdminMaterializer; + let materializer = crate::MtAdminMaterializer; let mut foreign = observation( super::SPL_ELGAMAL_REGISTRY_SURFACE, "create_registry", @@ -835,20 +837,20 @@ mod tests { serde_json::json!({}), ); foreign.event.program_id = - crate::ProgramId(kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID.to_string()); - assert!(!crate::EventMaterializer::accepts_observation(&materializer, &foreign,)); + crate::MdProgramId(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID.to_string()); + assert!(!crate::MtApiEventMaterializer::accepts_observation(&materializer, &foreign,)); let mut failed = foreign.clone(); - failed.event.program_id = crate::ProgramId( - kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID.to_string(), + failed.event.program_id = crate::MdProgramId( + kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID.to_string(), ); failed.transaction_failed = true; failed.observation_committed = false; - let result = crate::EventMaterializer::materialize(&materializer, &failed); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Refused); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &failed); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); } #[test] - fn token_2022_pointer_and_hook_admin_events_have_one_owner() { + fn token2022_pointer_and_hook_admin_events_have_one_owner() { for (operation, field, value) in [ ("initialize_transfer_hook", "programId", "hook111"), ("update_metadata_pointer", "metadataAddress", "metadata111"), @@ -856,18 +858,20 @@ mod tests { ("update_group_member_pointer", "memberAddress", "member111"), ] { let mut observation = observation( - super::SPL_TOKEN_2022_SURFACE, + super::SPL_TOKEN2022_SURFACE, operation, false, serde_json::json!([{"position":0,"accountKey":"mint111"}]), serde_json::json!({(field):value,"authority":"authority111"}), ); - observation.event.event_family = crate::EventFamily::TokenAccount; + observation.event.event_family = crate::MdEventFamily::TokenAccount; observation.event.program_id = - crate::ProgramId(kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID.to_string()); - let result = - crate::EventMaterializer::materialize(&crate::AdminMaterializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + crate::MdProgramId(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID.to_string()); + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtAdminMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs.len(), 1); assert_eq!(result.outputs[0].payload_json["projection"][field], value); assert_eq!(result.outputs[0].payload_json["projection"]["stateReadRequired"], true); @@ -875,44 +879,45 @@ mod tests { } #[test] - fn token_2022_extension_admin_rejects_foreign_program_and_failed_transaction() { + fn token2022_extension_admin_rejects_foreign_program_and_failed_transaction() { let mut observation = observation( - super::SPL_TOKEN_2022_SURFACE, + super::SPL_TOKEN2022_SURFACE, "initialize_metadata_pointer", false, serde_json::json!([]), serde_json::json!({"metadataAddress":"metadata111"}), ); - observation.event.event_family = crate::EventFamily::TokenAccount; + observation.event.event_family = crate::MdEventFamily::TokenAccount; observation.event.program_id = - crate::ProgramId(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()); - assert!(!crate::EventMaterializer::accepts_observation( - &crate::AdminMaterializer, + crate::MdProgramId(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()); + assert!(!crate::MtApiEventMaterializer::accepts_observation( + &crate::MtAdminMaterializer, &observation, )); observation.event.program_id = - crate::ProgramId(kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID.to_string()); + crate::MdProgramId(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID.to_string()); observation.transaction_failed = true; observation.observation_committed = false; - let result = crate::EventMaterializer::materialize(&crate::AdminMaterializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Refused); + let result = + crate::MtApiEventMaterializer::materialize(&crate::MtAdminMaterializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); } } /// Materialize authoritative Token-2022 administrative extension snapshots. -pub fn materialize_token_2022_admin_state_snapshots( +pub fn materialize_token2022_admin_state_snapshots( account_key: &str, slot: u64, - state: &crate::Token2022State, -) -> std::result::Result, String> { + state: &crate::DcToken2022State, +) -> std::result::Result, String> { if account_key.is_empty() { return std::result::Result::Err( "Token-2022 admin state snapshot requires a non-empty account key".to_string(), ); } - if state.kind != crate::Token2022StateKind::Mint { + if state.kind != crate::DcToken2022StateKind::Mint { for entry in &state.extensions { - if is_token_2022_admin_mint_extension(entry.extension_name) { + if is_token2022_admin_mint_extension(entry.extension_name) { return std::result::Result::Err(format!( "Token-2022 {} extension requires mint state", entry.extension_name @@ -923,22 +928,22 @@ pub fn materialize_token_2022_admin_state_snapshots( } let mut outputs = std::vec::Vec::new(); for entry in &state.extensions { - if !is_token_2022_admin_mint_extension(entry.extension_name) { + if !is_token2022_admin_mint_extension(entry.extension_name) { continue; } let output_key = - format!("token_2022_admin_state:{}:{account_key}:{slot}", entry.extension_name); - outputs.push(crate::MaterializedOutput { + format!("token2022_admin_state:{}:{account_key}:{slot}", entry.extension_name); + outputs.push(crate::MtApiMaterializedOutput { output_key: output_key.clone(), - family: crate::MaterializedEventFamily::Admin, + family: crate::MdMaterializedEventFamily::Admin, payload_json: serde_json::json!({ "projectionVersion": 1, "projectionSemantics": "authoritative_bounded_admin_state_snapshot", - "domain": "token_2022_extension_admin_state", + "domain": "token2022_extension_admin_state", "idempotenceKey": output_key, "accountKey": account_key, "slot": slot, - "programId": kb_program_ids::SPL_TOKEN_2022_PROGRAM_ID, + "programId": kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, "stateKind": "mint", "extensionType": entry.extension_type, "extensionName": entry.extension_name, @@ -946,9 +951,9 @@ pub fn materialize_token_2022_admin_state_snapshots( "valueFields": entry.value_fields, "finalAccountStateCaptured": true, "provenance": { - "processorName": crate::MATERIALIZER_ADMIN_PROCESSOR_NAME, + "processorName": crate::MT_ADMIN_PROCESSOR_NAME, "processorVersion": env!("CARGO_PKG_VERSION"), - "source": "exact_token_2022_tlv_state_parser" + "source": "exact_token2022_tlv_state_parser" } }), }); @@ -956,7 +961,7 @@ pub fn materialize_token_2022_admin_state_snapshots( return std::result::Result::Ok(outputs); } -fn is_token_2022_admin_mint_extension(extension_name: &str) -> bool { +fn is_token2022_admin_mint_extension(extension_name: &str) -> bool { return matches!( extension_name, "mint_close_authority" @@ -974,27 +979,27 @@ fn is_token_2022_admin_mint_extension(extension_name: &str) -> bool { } #[cfg(test)] -mod token_2022_admin_state_tests { - fn mint_state() -> crate::Token2022State { - return crate::Token2022State { - kind: crate::Token2022StateKind::Mint, +mod token2022_admin_state_tests { + fn mint_state() -> crate::DcToken2022State { + return crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Mint, base_fields: serde_json::json!({}), base_hex: String::new(), account_type: std::option::Option::Some(1), extensions: vec![ - crate::Token2022TlvEntry { + crate::DcToken2022TlvEntry { extension_type: 6, extension_name: "default_account_state", value_hex: "02".to_string(), value_fields: serde_json::json!({"state": 2}), }, - crate::Token2022TlvEntry { + crate::DcToken2022TlvEntry { extension_type: 26, extension_name: "pausable", value_hex: "00".repeat(33), value_fields: serde_json::json!({"paused": false}), }, - crate::Token2022TlvEntry { + crate::DcToken2022TlvEntry { extension_type: 1, extension_name: "transfer_fee_config", value_hex: "00".to_string(), @@ -1007,8 +1012,8 @@ mod token_2022_admin_state_tests { #[test] fn admin_snapshots_are_owned_once_filtered_and_idempotent() { let state = mint_state(); - let first = crate::materialize_token_2022_admin_state_snapshots("mint111", 44, &state); - let second = crate::materialize_token_2022_admin_state_snapshots("mint111", 44, &state); + let first = crate::materialize_token2022_admin_state_snapshots("mint111", 44, &state); + let second = crate::materialize_token2022_admin_state_snapshots("mint111", 44, &state); assert_eq!(first, second); assert_eq!(first.as_ref().map(std::vec::Vec::len), std::result::Result::Ok(2)); assert_eq!( @@ -1028,35 +1033,35 @@ mod token_2022_admin_state_tests { #[test] fn admin_snapshots_reject_empty_identity_and_wrong_state_kind() { let state = mint_state(); - assert!(crate::materialize_token_2022_admin_state_snapshots("", 44, &state).is_err()); - let account_state = crate::Token2022State { - kind: crate::Token2022StateKind::Account, + assert!(crate::materialize_token2022_admin_state_snapshots("", 44, &state).is_err()); + let account_state = crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Account, base_fields: serde_json::json!({}), base_hex: String::new(), account_type: std::option::Option::Some(2), extensions: state.extensions[..1].to_vec(), }; assert!( - crate::materialize_token_2022_admin_state_snapshots("account111", 44, &account_state,) + crate::materialize_token2022_admin_state_snapshots("account111", 44, &account_state,) .is_err() ); } } /// Materialize one authoritative SPL ElGamal registry account snapshot. -pub fn materialize_elgamal_registry_state_snapshot( +pub fn materializer_admin_materialize_elgamal_registry_state_snapshot( registry_account_key: &str, slot: u64, - state: &crate::ElGamalRegistryState, -) -> std::result::Result { + state: &crate::DcSplElGamalRegistryState, +) -> std::result::Result { if registry_account_key.is_empty() { return std::result::Result::Err( "SPL ElGamal registry snapshot requires a non-empty account key".to_string(), ); } - return std::result::Result::Ok(crate::MaterializedOutput { + return std::result::Result::Ok(crate::MtApiMaterializedOutput { output_key: format!("spl_elgamal_registry_state:{registry_account_key}:{slot}"), - family: crate::MaterializedEventFamily::Admin, + family: crate::MdMaterializedEventFamily::Admin, payload_json: serde_json::json!({ "projectionVersion": 1, "domain": "spl_elgamal_registry_account_state", @@ -1064,7 +1069,7 @@ pub fn materialize_elgamal_registry_state_snapshot( "idempotenceKey": format!("spl_elgamal_registry:{registry_account_key}:{slot}"), "registryAccountKey": registry_account_key, "slot": slot, - "programId": kb_program_ids::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID, + "programId": kb_program_ids::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID, "owner": state.owner, "elgamalPubkeyBase64": state.elgamal_pubkey_base64, "wireHex": state.wire_hex, @@ -1072,7 +1077,7 @@ pub fn materialize_elgamal_registry_state_snapshot( "confidentialValuesDecrypted": false, "finalAccountStateCaptured": true, "provenance": { - "processorName": crate::MATERIALIZER_ADMIN_PROCESSOR_NAME, + "processorName": crate::MT_ADMIN_PROCESSOR_NAME, "processorVersion": env!("CARGO_PKG_VERSION"), "source": "exact_spl_elgamal_registry_state_parser" } @@ -1084,12 +1089,16 @@ pub fn materialize_elgamal_registry_state_snapshot( mod elgamal_registry_state_tests { #[test] fn exact_registry_snapshot_preserves_public_state_without_claiming_proof_validation() { - let state = crate::ElGamalRegistryState { + let state = crate::DcSplElGamalRegistryState { owner: "owner111".to_string(), elgamal_pubkey_base64: "AQID".to_string(), wire_hex: "00".repeat(64), }; - let output = crate::materialize_elgamal_registry_state_snapshot("registry111", 11, &state); + let output = crate::materializer_admin_materialize_elgamal_registry_state_snapshot( + "registry111", + 11, + &state, + ); assert_eq!( output.as_ref().map(|value| return value.payload_json["owner"].clone()), std::result::Result::Ok(serde_json::json!("owner111")) @@ -1111,14 +1120,25 @@ mod elgamal_registry_state_tests { #[test] fn registry_snapshot_is_idempotent_and_requires_account_identity() { - let state = crate::ElGamalRegistryState { + let state = crate::DcSplElGamalRegistryState { owner: "owner111".to_string(), elgamal_pubkey_base64: "AQID".to_string(), wire_hex: "00".repeat(64), }; - let first = crate::materialize_elgamal_registry_state_snapshot("registry111", 11, &state); - let second = crate::materialize_elgamal_registry_state_snapshot("registry111", 11, &state); + let first = crate::materializer_admin_materialize_elgamal_registry_state_snapshot( + "registry111", + 11, + &state, + ); + let second = crate::materializer_admin_materialize_elgamal_registry_state_snapshot( + "registry111", + 11, + &state, + ); assert_eq!(first, second); - assert!(crate::materialize_elgamal_registry_state_snapshot("", 11, &state).is_err()); + assert!( + crate::materializer_admin_materialize_elgamal_registry_state_snapshot("", 11, &state) + .is_err() + ); } } diff --git a/kb-lib/src/materializer/api.rs b/kb-lib/src/materializer/api.rs index 8745290..089a132 100644 --- a/kb-lib/src/materializer/api.rs +++ b/kb-lib/src/materializer/api.rs @@ -1,31 +1,32 @@ // file: kb-lib/src/materializer/api.rs -// version: 2 +// version: 3 //! Materializer contracts consolidated from `kb_materializer_api`. -pub mod contracts; -pub mod materializer; +mod contracts; +mod materializer; + /// Stable decoded observation materializer contract used by the common pipeline. -pub use crate::materializer::api::contracts::EventMaterializer; +pub use self::contracts::MtApiEventMaterializer; /// Explicit policy applied to successful and failed source transactions. -pub use crate::materializer::api::contracts::MaterializationTransactionPolicy; +pub use self::contracts::MtApiMaterializationTransactionPolicy; /// Stable processor-owned business output derived from one decoded observation. -pub use crate::materializer::api::contracts::MaterializedOutput; +pub use self::contracts::MtApiMaterializedOutput; /// Structured materializer diagnostic without generic error wrappers. -pub use crate::materializer::api::contracts::MaterializerDiagnostic; +pub use self::contracts::MtApiMaterializerDiagnostic; /// Complete explicit result produced by one materializer invocation. -pub use crate::materializer::api::contracts::MaterializerExecutionResult; +pub use self::contracts::MtApiMaterializerExecutionResult; /// Stable identity of one decoded event materializer. -pub use crate::materializer::api::contracts::MaterializerIdentity; +pub use self::contracts::MtApiMaterializerIdentity; /// Terminal materializer result status. -pub use crate::materializer::api::contracts::MaterializerOutcomeStatus; +pub use self::contracts::MtApiMaterializerOutcomeStatus; /// Returns true when a materializer explicitly accepts one decoded family. -pub use crate::materializer::api::contracts::materializer_accepts_family; +pub use self::contracts::materializer_api_accepts_family; /// Returns true when a materializer accepts one exact decoded observation. -pub use crate::materializer::api::contracts::materializer_accepts_observation; +pub use self::contracts::materializer_api_accepts_observation; /// Applies the mandatory source transaction policy before materialization. -pub use crate::materializer::api::contracts::validate_materialization_policy; +pub use self::contracts::materializer_api_validate_materialization_policy; /// Rejects mutable business outputs derived from failed or uncommitted observations. -pub use crate::materializer::api::contracts::validate_materialized_output_policy; +pub use self::contracts::materializer_api_validate_materialized_output_policy; /// Exposes the legacy common business materializer trait. -pub use crate::materializer::api::materializer::Materializer; +pub use self::materializer::MtMaterializer; diff --git a/kb-lib/src/materializer/api/contracts.rs b/kb-lib/src/materializer/api/contracts.rs index b449f61..c6aaf9c 100644 --- a/kb-lib/src/materializer/api/contracts.rs +++ b/kb-lib/src/materializer/api/contracts.rs @@ -5,14 +5,14 @@ /// Stable identity of one decoded event materializer. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct MaterializerIdentity { +pub struct MtApiMaterializerIdentity { /// Stable lower snake case processor name. pub name: std::string::String, /// Semantic or deterministic implementation version. pub version: std::string::String, } -impl MaterializerIdentity { +impl MtApiMaterializerIdentity { /// Builds a validated materializer identity. pub fn new( name: impl std::convert::Into, @@ -33,7 +33,7 @@ impl MaterializerIdentity { /// Explicit policy applied to successful and failed source transactions. #[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub enum MaterializationTransactionPolicy { +pub enum MtApiMaterializationTransactionPolicy { /// Accept committed observations from successful transactions only. SuccessfulCommittedOnly, /// Accept successful observations and failed audit-only observations. @@ -44,7 +44,7 @@ pub enum MaterializationTransactionPolicy { /// Terminal materializer result status. #[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub enum MaterializerOutcomeStatus { +pub enum MtApiMaterializerOutcomeStatus { /// One or more new stable outputs were inserted. Inserted, /// One or more processor-owned outputs were deterministically replaced. @@ -59,7 +59,7 @@ pub enum MaterializerOutcomeStatus { /// Structured materializer diagnostic without generic error wrappers. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct MaterializerDiagnostic { +pub struct MtApiMaterializerDiagnostic { /// Stable machine-readable diagnostic code. pub code: std::string::String, /// Human-readable diagnostic message. @@ -68,7 +68,7 @@ pub struct MaterializerDiagnostic { pub retriable: bool, } -impl MaterializerDiagnostic { +impl MtApiMaterializerDiagnostic { /// Builds a validated materializer diagnostic. pub fn new( code: impl std::convert::Into, @@ -91,16 +91,16 @@ impl MaterializerDiagnostic { /// Stable processor-owned business output derived from one decoded observation. #[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct MaterializedOutput { +pub struct MtApiMaterializedOutput { /// Stable processor-owned output key within one decoded observation. pub output_key: std::string::String, /// Business output family. - pub family: crate::MaterializedEventFamily, + pub family: crate::MdMaterializedEventFamily, /// Typed business payload serialized as deterministic JSON. pub payload_json: serde_json::Value, } -impl MaterializedOutput { +impl MtApiMaterializedOutput { /// Validates stable output identity. pub fn validate(&self) -> kb_core::Result<()> { if self.output_key.trim().is_empty() { @@ -114,22 +114,22 @@ impl MaterializedOutput { /// Complete explicit result produced by one materializer invocation. #[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct MaterializerExecutionResult { +pub struct MtApiMaterializerExecutionResult { /// Terminal materializer status. - pub status: MaterializerOutcomeStatus, + pub status: MtApiMaterializerOutcomeStatus, /// Stable business outputs. - pub outputs: std::vec::Vec, + pub outputs: std::vec::Vec, /// Structured diagnostics. - pub diagnostics: std::vec::Vec, + pub diagnostics: std::vec::Vec, } -impl MaterializerExecutionResult { +impl MtApiMaterializerExecutionResult { /// Builds a policy refusal result. pub fn refused(code: &str, message: &str) -> Self { return Self { - status: MaterializerOutcomeStatus::Refused, + status: MtApiMaterializerOutcomeStatus::Refused, outputs: std::vec::Vec::new(), - diagnostics: std::vec![MaterializerDiagnostic { + diagnostics: std::vec![MtApiMaterializerDiagnostic { code: code.to_string(), message: message.to_string(), retriable: false, @@ -140,7 +140,7 @@ impl MaterializerExecutionResult { /// Builds an ignored result. pub fn ignored() -> Self { return Self { - status: MaterializerOutcomeStatus::Ignored, + status: MtApiMaterializerOutcomeStatus::Ignored, outputs: std::vec::Vec::new(), diagnostics: std::vec::Vec::new(), }; @@ -148,8 +148,8 @@ impl MaterializerExecutionResult { /// Validates status and output consistency. pub fn validate(&self) -> kb_core::Result<()> { - let output_status = self.status == MaterializerOutcomeStatus::Inserted - || self.status == MaterializerOutcomeStatus::Replaced; + let output_status = self.status == MtApiMaterializerOutcomeStatus::Inserted + || self.status == MtApiMaterializerOutcomeStatus::Replaced; if output_status && self.outputs.is_empty() { return std::result::Result::Err(kb_core::Error::invalid_state( "inserted or replaced materializer status requires outputs", @@ -160,7 +160,7 @@ impl MaterializerExecutionResult { "ignored, refused or failed materializer status must not contain outputs", )); } - if self.status == MaterializerOutcomeStatus::Failed && self.diagnostics.is_empty() { + if self.status == MtApiMaterializerOutcomeStatus::Failed && self.diagnostics.is_empty() { return std::result::Result::Err(kb_core::Error::invalid_state( "failed materializer status requires at least one diagnostic", )); @@ -176,26 +176,32 @@ impl MaterializerExecutionResult { } /// Stable decoded observation materializer contract used by the common pipeline. -pub trait EventMaterializer: std::marker::Send + std::marker::Sync { +pub trait MtApiEventMaterializer: std::marker::Send + std::marker::Sync { /// Returns the stable materializer identity. - fn identity(&self) -> MaterializerIdentity; + fn identity(&self) -> MtApiMaterializerIdentity; /// Returns every decoded event family explicitly accepted by this materializer. - fn accepted_families(&self) -> &'static [crate::EventFamily]; + fn accepted_families(&self) -> &'static [crate::MdEventFamily]; /// Returns whether this materializer accepts one exact decoded observation. - fn accepts_observation(&self, observation: &crate::DecodedObservation) -> bool { + fn accepts_observation(&self, observation: &crate::DcApiDecodedObservation) -> bool { let family = observation.event.event_family; return self.accepted_families().iter().any(|accepted| return *accepted == family); } /// Returns the failed/successful transaction policy for one accepted family. - fn transaction_policy(&self, family: crate::EventFamily) -> MaterializationTransactionPolicy; + fn transaction_policy( + &self, + family: crate::MdEventFamily, + ) -> MtApiMaterializationTransactionPolicy; /// Materializes one validated decoded observation. - fn materialize(&self, observation: &crate::DecodedObservation) -> MaterializerExecutionResult; + fn materialize( + &self, + observation: &crate::DcApiDecodedObservation, + ) -> MtApiMaterializerExecutionResult; } /// Returns true when a materializer explicitly accepts one decoded family. -pub fn materializer_accepts_family( - materializer: &dyn EventMaterializer, - family: crate::EventFamily, +pub fn materializer_api_accepts_family( + materializer: &dyn MtApiEventMaterializer, + family: crate::MdEventFamily, ) -> bool { return materializer .accepted_families() @@ -204,48 +210,48 @@ pub fn materializer_accepts_family( } /// Returns true when a materializer accepts one exact decoded observation. -pub fn materializer_accepts_observation( - materializer: &dyn EventMaterializer, - observation: &crate::DecodedObservation, +pub fn materializer_api_accepts_observation( + materializer: &dyn MtApiEventMaterializer, + observation: &crate::DcApiDecodedObservation, ) -> bool { return materializer.accepts_observation(observation); } /// Applies the mandatory source transaction policy before materialization. -pub fn validate_materialization_policy( - materializer: &dyn EventMaterializer, - observation: &crate::DecodedObservation, -) -> std::result::Result<(), MaterializerExecutionResult> { +pub fn materializer_api_validate_materialization_policy( + materializer: &dyn MtApiEventMaterializer, + observation: &crate::DcApiDecodedObservation, +) -> std::result::Result<(), MtApiMaterializerExecutionResult> { let family = observation.event.event_family; - if !crate::materializer_accepts_observation(materializer, observation) { - return std::result::Result::Err(MaterializerExecutionResult::refused( + if !crate::materializer_api_accepts_observation(materializer, observation) { + return std::result::Result::Err(MtApiMaterializerExecutionResult::refused( "unsupported_decoded_observation", "materializer does not accept the decoded observation surface and entry", )); } let policy = materializer.transaction_policy(family); if observation.transaction_failed || !observation.observation_committed { - if family == crate::EventFamily::Trade - || family == crate::EventFamily::Liquidity - || family == crate::EventFamily::Lifecycle + if family == crate::MdEventFamily::Trade + || family == crate::MdEventFamily::Liquidity + || family == crate::MdEventFamily::Lifecycle { - return std::result::Result::Err(MaterializerExecutionResult::refused( + return std::result::Result::Err(MtApiMaterializerExecutionResult::refused( "failed_transaction_mutation_refused", "failed or uncommitted observations cannot create successful mutable business outputs", )); } - if policy == MaterializationTransactionPolicy::SuccessfulCommittedOnly { - return std::result::Result::Err(MaterializerExecutionResult::refused( + if policy == MtApiMaterializationTransactionPolicy::SuccessfulCommittedOnly { + return std::result::Result::Err(MtApiMaterializerExecutionResult::refused( "failed_transaction_policy_refused", "materializer accepts committed observations from successful transactions only", )); } - if policy == MaterializationTransactionPolicy::SuccessfulOrFailedAudit - && family != crate::EventFamily::Audit - && family != crate::EventFamily::ComplianceAudit - && family != crate::EventFamily::Risk + if policy == MtApiMaterializationTransactionPolicy::SuccessfulOrFailedAudit + && family != crate::MdEventFamily::Audit + && family != crate::MdEventFamily::ComplianceAudit + && family != crate::MdEventFamily::Risk { - return std::result::Result::Err(MaterializerExecutionResult::refused( + return std::result::Result::Err(MtApiMaterializerExecutionResult::refused( "failed_transaction_non_audit_refused", "failed transaction materialization is limited to declared audit or risk families", )); @@ -255,20 +261,20 @@ pub fn validate_materialization_policy( } /// Rejects successful mutable business outputs derived from failed or uncommitted observations. -pub fn validate_materialized_output_policy( - observation: &crate::DecodedObservation, - result: &MaterializerExecutionResult, -) -> std::result::Result<(), MaterializerExecutionResult> { +pub fn materializer_api_validate_materialized_output_policy( + observation: &crate::DcApiDecodedObservation, + result: &MtApiMaterializerExecutionResult, +) -> std::result::Result<(), MtApiMaterializerExecutionResult> { if !observation.transaction_failed && observation.observation_committed { return std::result::Result::Ok(()); } let forbidden_output = result.outputs.iter().any(|output| { - return output.family != crate::MaterializedEventFamily::ComplianceAudit - && output.family != crate::MaterializedEventFamily::TokenMetadataRisk - && output.family != crate::MaterializedEventFamily::Risk; + return output.family != crate::MdMaterializedEventFamily::ComplianceAudit + && output.family != crate::MdMaterializedEventFamily::TokenMetadataRisk + && output.family != crate::MdMaterializedEventFamily::Risk; }); if forbidden_output { - return std::result::Result::Err(MaterializerExecutionResult::refused( + return std::result::Result::Err(MtApiMaterializerExecutionResult::refused( "failed_transaction_output_refused", "failed or uncommitted observations may only produce audit or risk outputs", )); @@ -280,48 +286,48 @@ pub fn validate_materialized_output_policy( mod tests { struct TradeMaterializer; - impl crate::EventMaterializer for TradeMaterializer { - fn identity(&self) -> crate::MaterializerIdentity { - return crate::MaterializerIdentity { + impl crate::MtApiEventMaterializer for TradeMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { name: "trade_materializer".to_string(), version: "1".to_string(), }; } - fn accepted_families(&self) -> &'static [crate::EventFamily] { - return &[crate::EventFamily::Trade]; + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { + return &[crate::MdEventFamily::Trade]; } fn transaction_policy( &self, - _family: crate::EventFamily, - ) -> crate::MaterializationTransactionPolicy { - return crate::MaterializationTransactionPolicy::SuccessfulCommittedOnly; + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulCommittedOnly; } fn materialize( &self, - _observation: &crate::DecodedObservation, - ) -> crate::MaterializerExecutionResult { - return crate::MaterializerExecutionResult::ignored(); + _observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { + return crate::MtApiMaterializerExecutionResult::ignored(); } } - fn failed_trade_observation() -> crate::DecodedObservation { - return crate::DecodedObservation { + fn failed_trade_observation() -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { event_key: "trade".to_string(), - event: crate::DecodedProtocolEvent { - signature: crate::Signature("signature".to_string()), - slot: crate::Slot(42), - instruction_path: crate::InstructionPath("0".to_string()), - program_id: crate::ProgramId("program".to_string()), - protocol_code: crate::ProtocolCode("protocol".to_string()), - surface_code: crate::SurfaceCode("surface".to_string()), - event_code: crate::EventCode("trade".to_string()), - event_name: crate::EventName("trade".to_string()), - event_family: crate::EventFamily::Trade, - source_kind: crate::EventSourceKind::Instruction, - confidence: crate::DecoderConfidence::Exact, + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId("program".to_string()), + protocol_code: crate::MdProtocolCode("protocol".to_string()), + surface_code: crate::MdSurfaceCode("surface".to_string()), + event_code: crate::MdEventCode("trade".to_string()), + event_name: crate::MdEventName("trade".to_string()), + event_family: crate::MdEventFamily::Trade, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::Exact, }, payload_json: serde_json::json!({}), transaction_failed: true, @@ -329,9 +335,9 @@ mod tests { serde_json::json!({"InstructionError": [0, "Custom"]}), ), observation_committed: false, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::ExactLayout, - confidence: crate::DecoderConfidence::Exact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::ExactLayout, + confidence: crate::MdDecoderConfidence::Exact, evidence: std::vec!["layout".to_string()], }, }; @@ -339,47 +345,49 @@ mod tests { #[test] fn failed_trade_is_refused_before_materialization() { - let result = - crate::validate_materialization_policy(&TradeMaterializer, &failed_trade_observation()); + let result = crate::materializer_api_validate_materialization_policy( + &TradeMaterializer, + &failed_trade_observation(), + ); assert!(result.is_err()); let refusal = match result { std::result::Result::Ok(()) => panic!("failed trade unexpectedly accepted"), std::result::Result::Err(value) => value, }; - assert_eq!(refusal.status, crate::MaterializerOutcomeStatus::Refused); + assert_eq!(refusal.status, crate::MtApiMaterializerOutcomeStatus::Refused); assert_eq!(refusal.diagnostics[0].code, "failed_transaction_mutation_refused"); } struct FailedAuditToTradeMaterializer; - impl crate::EventMaterializer for FailedAuditToTradeMaterializer { - fn identity(&self) -> crate::MaterializerIdentity { - return crate::MaterializerIdentity { + impl crate::MtApiEventMaterializer for FailedAuditToTradeMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { name: "failed_audit_to_trade".to_string(), version: "1".to_string(), }; } - fn accepted_families(&self) -> &'static [crate::EventFamily] { - return &[crate::EventFamily::Audit]; + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { + return &[crate::MdEventFamily::Audit]; } fn transaction_policy( &self, - _family: crate::EventFamily, - ) -> crate::MaterializationTransactionPolicy { - return crate::MaterializationTransactionPolicy::SuccessfulOrFailedAudit; + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulOrFailedAudit; } fn materialize( &self, - _observation: &crate::DecodedObservation, - ) -> crate::MaterializerExecutionResult { - return crate::MaterializerExecutionResult { - status: crate::MaterializerOutcomeStatus::Inserted, - outputs: std::vec![crate::MaterializedOutput { + _observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, + outputs: std::vec![crate::MtApiMaterializedOutput { output_key: "trade".to_string(), - family: crate::MaterializedEventFamily::Trade, + family: crate::MdMaterializedEventFamily::Trade, payload_json: serde_json::json!({}), }], diagnostics: std::vec::Vec::new(), @@ -387,9 +395,9 @@ mod tests { } } - fn failed_audit_observation() -> crate::DecodedObservation { + fn failed_audit_observation() -> crate::DcApiDecodedObservation { let mut observation = failed_trade_observation(); - observation.event.event_family = crate::EventFamily::Audit; + observation.event.event_family = crate::MdEventFamily::Audit; return observation; } @@ -397,16 +405,20 @@ mod tests { fn failed_audit_cannot_emit_successful_trade_output() { let materializer = FailedAuditToTradeMaterializer; let observation = failed_audit_observation(); - let policy_result = crate::validate_materialization_policy(&materializer, &observation); + let policy_result = + crate::materializer_api_validate_materialization_policy(&materializer, &observation); assert!(policy_result.is_ok()); - let materialized = crate::EventMaterializer::materialize(&materializer, &observation); - let output_result = crate::validate_materialized_output_policy(&observation, &materialized); + let materialized = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + let output_result = crate::materializer_api_validate_materialized_output_policy( + &observation, + &materialized, + ); assert!(output_result.is_err()); let refusal = match output_result { std::result::Result::Ok(()) => panic!("failed audit unexpectedly emitted a trade"), std::result::Result::Err(value) => value, }; - assert_eq!(refusal.status, crate::MaterializerOutcomeStatus::Refused); + assert_eq!(refusal.status, crate::MtApiMaterializerOutcomeStatus::Refused); assert_eq!(refusal.diagnostics[0].code, "failed_transaction_output_refused"); } } diff --git a/kb-lib/src/materializer/api/materializer.rs b/kb-lib/src/materializer/api/materializer.rs index 71d6685..9150fbd 100644 --- a/kb-lib/src/materializer/api/materializer.rs +++ b/kb-lib/src/materializer/api/materializer.rs @@ -4,7 +4,7 @@ //! Materializer API contract used by business materializer crates. /// Common contract implemented by all business materializer crates. -pub trait Materializer { +pub trait MtMaterializer { /// Returns the stable materializer name. fn materializer_name(&self) -> &'static str; @@ -12,11 +12,11 @@ pub trait Materializer { fn materializer_version(&self) -> &'static str; /// Tests whether this materializer accepts a decoded event. - fn accepts_event(&self, event: &crate::DecodedProtocolEvent) -> bool; + fn accepts_event(&self, event: &crate::MdDecodedProtocolEvent) -> bool; /// Materializes a decoded event into zero or more business events. fn materialize_event( &self, - event: &crate::DecodedProtocolEvent, - ) -> kb_core::Result>; + event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result>; } diff --git a/kb-lib/src/materializer/bridge.rs b/kb-lib/src/materializer/bridge.rs index c9b771e..9ff6fc8 100644 --- a/kb-lib/src/materializer/bridge.rs +++ b/kb-lib/src/materializer/bridge.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/bridge.rs -// version: 1 +// version: 2 //! `bridge` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/bridge/core.rs b/kb-lib/src/materializer/bridge/core.rs index 9516200..db7aa56 100644 --- a/kb-lib/src/materializer/bridge/core.rs +++ b/kb-lib/src/materializer/bridge/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/bridge/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_bridge`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_bridge"; +const LEGACY_CRATE: &str = "kb_materializer_bridge"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/compliance.rs b/kb-lib/src/materializer/compliance.rs index c113c94..0f13a53 100644 --- a/kb-lib/src/materializer/compliance.rs +++ b/kb-lib/src/materializer/compliance.rs @@ -1,12 +1,13 @@ // file: kb-lib/src/materializer/compliance.rs -// version: 2 +// version: 3 //! `compliance` materializer family. -pub mod audit; +mod audit; mod constants; -pub(crate) use crate::materializer::compliance::constants::TRACING_TARGET as MATERIALIZER_COMPLIANCE_AUDIT_TRACING_TARGET; +/// Canonical tracing target for the native compliance audit materializer. +pub(crate) use self::constants::MT_COMPLIANCE_AUDIT_TRACING_TARGET; /// Stable native compliance audit materializer. -pub use crate::materializer::compliance::audit::ComplianceAuditMaterializer; +pub use self::audit::MtComplianceAuditMaterializer; diff --git a/kb-lib/src/materializer/compliance/audit.rs b/kb-lib/src/materializer/compliance/audit.rs index a5c6068..4da25d6 100644 --- a/kb-lib/src/materializer/compliance/audit.rs +++ b/kb-lib/src/materializer/compliance/audit.rs @@ -3,7 +3,7 @@ //! Stable compliance-audit projections for committed native bytecode mutations and execution profiles. -const ACCEPTED_FAMILIES: &[crate::EventFamily] = &[crate::EventFamily::Audit]; +const ACCEPTED_FAMILIES: &[crate::MdEventFamily] = &[crate::MdEventFamily::Audit]; const COMPUTE_BUDGET_SURFACE: &str = "solana_native_compute_budget"; const COMPUTE_BUDGET_ENTRIES: &[&str] = &[ "request_units_deprecated", @@ -47,9 +47,9 @@ impl ProjectionKind { /// Stable compliance-audit materializer for native bytecode mutations and execution profiles. #[derive(Clone, Debug, Default)] -pub struct ComplianceAuditMaterializer; +pub struct MtComplianceAuditMaterializer; -impl crate::Materializer for crate::ComplianceAuditMaterializer { +impl crate::MtMaterializer for crate::MtComplianceAuditMaterializer { fn materializer_name(&self) -> &'static str { return "kb_materializer_compliance_audit"; } @@ -58,36 +58,36 @@ impl crate::Materializer for crate::ComplianceAuditMaterializer { return env!("CARGO_PKG_VERSION"); } - fn accepts_event(&self, event: &crate::DecodedProtocolEvent) -> bool { - return event.event_family == crate::EventFamily::Audit + fn accepts_event(&self, event: &crate::MdDecodedProtocolEvent) -> bool { + return event.event_family == crate::MdEventFamily::Audit && projection(event.surface_code.0.as_str(), event.event_name.0.as_str()).is_some(); } fn materialize_event( &self, - event: &crate::DecodedProtocolEvent, - ) -> kb_core::Result> { - if !crate::Materializer::accepts_event(self, event) { + event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result> { + if !crate::MtMaterializer::accepts_event(self, event) { return std::result::Result::Ok(std::vec::Vec::new()); } return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::EventMaterializer for crate::ComplianceAuditMaterializer { - fn identity(&self) -> crate::MaterializerIdentity { - return crate::MaterializerIdentity { +impl crate::MtApiEventMaterializer for crate::MtComplianceAuditMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { name: "solana_native_compliance_audit".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn accepted_families(&self) -> &'static [crate::EventFamily] { + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { return ACCEPTED_FAMILIES; } - fn accepts_observation(&self, observation: &crate::DecodedObservation) -> bool { - return observation.event.event_family == crate::EventFamily::Audit + fn accepts_observation(&self, observation: &crate::DcApiDecodedObservation) -> bool { + return observation.event.event_family == crate::MdEventFamily::Audit && projection( observation.event.surface_code.0.as_str(), observation.event.event_name.0.as_str(), @@ -97,15 +97,15 @@ impl crate::EventMaterializer for crate::ComplianceAuditMaterializer { fn transaction_policy( &self, - _family: crate::EventFamily, - ) -> crate::MaterializationTransactionPolicy { - return crate::MaterializationTransactionPolicy::SuccessfulOrFailedAudit; + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulOrFailedAudit; } fn materialize( &self, - observation: &crate::DecodedObservation, - ) -> crate::MaterializerExecutionResult { + observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { let projection = match projection( observation.event.surface_code.0.as_str(), observation.event.event_name.0.as_str(), @@ -113,24 +113,24 @@ impl crate::EventMaterializer for crate::ComplianceAuditMaterializer { std::option::Option::Some(value) => value, std::option::Option::None => { tracing::debug!( - target: crate::MATERIALIZER_COMPLIANCE_AUDIT_TRACING_TARGET, + target: crate::MT_COMPLIANCE_AUDIT_TRACING_TARGET, action = "materialize_compliance_audit", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), accepted = false, "ignore observation outside supported native compliance-audit projections" ); - return crate::MaterializerExecutionResult::ignored(); + return crate::MtApiMaterializerExecutionResult::ignored(); }, }; - if observation.event.event_family != crate::EventFamily::Audit { - return crate::MaterializerExecutionResult::ignored(); + if observation.event.event_family != crate::MdEventFamily::Audit { + return crate::MtApiMaterializerExecutionResult::ignored(); } if projection != ProjectionKind::ComputeBudgetProfile && (observation.transaction_failed || !observation.observation_committed) { tracing::debug!( - target: crate::MATERIALIZER_COMPLIANCE_AUDIT_TRACING_TARGET, + target: crate::MT_COMPLIANCE_AUDIT_TRACING_TARGET, action = "materialize_compliance_audit", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), @@ -138,7 +138,7 @@ impl crate::EventMaterializer for crate::ComplianceAuditMaterializer { transaction_failed = observation.transaction_failed, "refuse uncommitted native bytecode mutation observation" ); - return crate::MaterializerExecutionResult::refused( + return crate::MtApiMaterializerExecutionResult::refused( "failed_transaction_compliance_audit_refused", "failed or uncommitted native observations cannot create committed bytecode mutation outputs", ); @@ -157,10 +157,10 @@ impl crate::EventMaterializer for crate::ComplianceAuditMaterializer { if projection == ProjectionKind::ComputeBudgetProfile { return materialize_compute_budget_profile(observation, parameters, operation); } - let output = crate::MaterializedOutput { + let output = crate::MtApiMaterializedOutput { output_key: projection .output_key(observation.event.surface_code.0.as_str(), operation.as_str()), - family: crate::MaterializedEventFamily::ComplianceAudit, + family: crate::MdMaterializedEventFamily::ComplianceAudit, payload_json: serde_json::json!({ "projectionVersion": 1, "projectionSemantics": "committed_instruction_compliance_audit_event", @@ -178,7 +178,7 @@ impl crate::EventMaterializer for crate::ComplianceAuditMaterializer { }), }; tracing::debug!( - target: crate::MATERIALIZER_COMPLIANCE_AUDIT_TRACING_TARGET, + target: crate::MT_COMPLIANCE_AUDIT_TRACING_TARGET, action = "materialize_compliance_audit", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), @@ -186,8 +186,8 @@ impl crate::EventMaterializer for crate::ComplianceAuditMaterializer { output_count = 1_usize, "materialize committed native bytecode mutation observation" ); - return crate::MaterializerExecutionResult { - status: crate::MaterializerOutcomeStatus::Inserted, + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, outputs: std::vec![output], diagnostics: std::vec::Vec::new(), }; @@ -195,17 +195,17 @@ impl crate::EventMaterializer for crate::ComplianceAuditMaterializer { } fn materialize_compute_budget_profile( - observation: &crate::DecodedObservation, + observation: &crate::DcApiDecodedObservation, parameters: serde_json::Value, operation: std::string::String, -) -> crate::MaterializerExecutionResult { +) -> crate::MtApiMaterializerExecutionResult { let profile = parameters.get("transactionProfile").cloned().unwrap_or(serde_json::Value::Null); if !compute_budget_profile_emits(&profile) { - return crate::MaterializerExecutionResult::ignored(); + return crate::MtApiMaterializerExecutionResult::ignored(); } - let output = crate::MaterializedOutput { + let output = crate::MtApiMaterializedOutput { output_key: "transaction_compute_budget_profile:0".to_string(), - family: crate::MaterializedEventFamily::ComplianceAudit, + family: crate::MdMaterializedEventFamily::ComplianceAudit, payload_json: serde_json::json!({ "projectionVersion": 1, "projectionSemantics": "transaction_compute_budget_profile", @@ -225,7 +225,7 @@ fn materialize_compute_budget_profile( }), }; tracing::debug!( - target: crate::MATERIALIZER_COMPLIANCE_AUDIT_TRACING_TARGET, + target: crate::MT_COMPLIANCE_AUDIT_TRACING_TARGET, action = "materialize_compute_budget_profile", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), @@ -233,8 +233,8 @@ fn materialize_compute_budget_profile( transaction_failed = observation.transaction_failed, "materialize native Compute Budget transaction profile" ); - return crate::MaterializerExecutionResult { - status: crate::MaterializerOutcomeStatus::Inserted, + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, outputs: std::vec![output], diagnostics: std::vec::Vec::new(), }; @@ -349,21 +349,21 @@ mod tests { transaction_failed: bool, accounts: serde_json::Value, parameters: serde_json::Value, - ) -> crate::DecodedObservation { - return crate::DecodedObservation { + ) -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { event_key: format!("{entry_code}:0"), - event: crate::DecodedProtocolEvent { - signature: crate::Signature("signature".to_string()), - slot: crate::Slot(42), - instruction_path: crate::InstructionPath("0".to_string()), - program_id: crate::ProgramId("program-id".to_string()), - protocol_code: crate::ProtocolCode("solana_native".to_string()), - surface_code: crate::SurfaceCode(surface_code.to_string()), - event_code: crate::EventCode(format!("{surface_code}.{entry_code}")), - event_name: crate::EventName(entry_code.to_string()), - event_family: crate::EventFamily::Audit, - source_kind: crate::EventSourceKind::Instruction, - confidence: crate::DecoderConfidence::ManualExact, + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId("program-id".to_string()), + protocol_code: crate::MdProtocolCode("solana_native".to_string()), + surface_code: crate::MdSurfaceCode(surface_code.to_string()), + event_code: crate::MdEventCode(format!("{surface_code}.{entry_code}")), + event_name: crate::MdEventName(entry_code.to_string()), + event_family: crate::MdEventFamily::Audit, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::ManualExact, }, payload_json: serde_json::json!({"accounts": accounts, "parameters": parameters}), transaction_failed, @@ -373,9 +373,9 @@ mod tests { std::option::Option::None }, observation_committed: !transaction_failed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: std::vec!["fixture".to_string()], }, }; @@ -387,7 +387,7 @@ mod tests { #[test] fn loader_write_variants_create_bounded_code_audits() { - let materializer = crate::ComplianceAuditMaterializer; + let materializer = crate::MtComplianceAuditMaterializer; for (surface, target_role, authority_role) in [ (super::BPF_LOADER_DEPRECATED_SURFACE, "program_account", "missing"), (super::BPF_LOADER_SURFACE, "program_account", "missing"), @@ -409,9 +409,9 @@ mod tests { "bytesPrefixHex": "0102", }), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); - assert_eq!(result.outputs[0].family, crate::MaterializedEventFamily::ComplianceAudit); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs[0].family, crate::MdMaterializedEventFamily::ComplianceAudit); assert_eq!(result.outputs[0].payload_json["projection"]["targetAccount"], "target111"); assert_eq!(result.outputs[0].payload_json["projection"]["bytesSha256"], "abc"); assert_eq!( @@ -423,7 +423,7 @@ mod tests { #[test] fn loader_v4_copy_preserves_source_and_bounded_ranges() { - let materializer = crate::ComplianceAuditMaterializer; + let materializer = crate::MtComplianceAuditMaterializer; let observation = observation( super::LOADER_V4_SURFACE, "copy", @@ -435,7 +435,7 @@ mod tests { ]), serde_json::json!({"destinationOffset": 8, "sourceOffset": 4, "length": 16}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); assert_eq!( result.outputs[0].output_key, "program_loader_code:solana_native_loader_v4:copy:0" @@ -449,7 +449,7 @@ mod tests { #[test] fn compute_budget_profile_is_emitted_only_by_profile_emitter() { - let materializer = crate::ComplianceAuditMaterializer; + let materializer = crate::MtComplianceAuditMaterializer; let emitter = observation( super::COMPUTE_BUDGET_SURFACE, "set_compute_unit_limit", @@ -469,10 +469,10 @@ mod tests { } }), ); - let emitted = crate::EventMaterializer::materialize(&materializer, &emitter); - assert_eq!(emitted.status, crate::MaterializerOutcomeStatus::Inserted); + let emitted = crate::MtApiEventMaterializer::materialize(&materializer, &emitter); + assert_eq!(emitted.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(emitted.outputs[0].output_key, "transaction_compute_budget_profile:0"); - assert_eq!(emitted.outputs[0].family, crate::MaterializedEventFamily::ComplianceAudit); + assert_eq!(emitted.outputs[0].family, crate::MdMaterializedEventFamily::ComplianceAudit); assert_eq!(emitted.outputs[0].payload_json["profile"]["computeBudgetInstructionCount"], 2); let non_emitter = observation( super::COMPUTE_BUDGET_SURFACE, @@ -486,13 +486,13 @@ mod tests { } }), ); - let ignored = crate::EventMaterializer::materialize(&materializer, &non_emitter); - assert_eq!(ignored.status, crate::MaterializerOutcomeStatus::Ignored); + let ignored = crate::MtApiEventMaterializer::materialize(&materializer, &non_emitter); + assert_eq!(ignored.status, crate::MtApiMaterializerOutcomeStatus::Ignored); } #[test] fn failed_compute_budget_profile_remains_audit_materializable() { - let materializer = crate::ComplianceAuditMaterializer; + let materializer = crate::MtComplianceAuditMaterializer; let observation = observation( super::COMPUTE_BUDGET_SURFACE, "set_compute_unit_price", @@ -506,14 +506,14 @@ mod tests { } }), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs[0].payload_json["transactionSucceeded"], false); } #[test] fn failed_code_mutation_is_refused() { - let materializer = crate::ComplianceAuditMaterializer; + let materializer = crate::MtComplianceAuditMaterializer; let observation = observation( super::LOADER_V4_SURFACE, "write", @@ -521,14 +521,14 @@ mod tests { serde_json::json!([account("program_account", "target111")]), serde_json::json!({"offset": 0, "byteLength": 1, "bytesSha256": "abc"}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Refused); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); assert!(result.outputs.is_empty()); } #[test] fn unrelated_audit_observation_is_ignored() { - let materializer = crate::ComplianceAuditMaterializer; + let materializer = crate::MtComplianceAuditMaterializer; let observation = observation( "other_surface", "write", @@ -536,13 +536,13 @@ mod tests { serde_json::json!([]), serde_json::json!({}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Ignored); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); } #[test] fn output_serialization_is_deterministic() { - let materializer = crate::ComplianceAuditMaterializer; + let materializer = crate::MtComplianceAuditMaterializer; let observation = observation( super::BPF_LOADER_UPGRADEABLE_SURFACE, "write", @@ -558,8 +558,8 @@ mod tests { "bytesPrefixHex": "0102", }), ); - let first = crate::EventMaterializer::materialize(&materializer, &observation); - let second = crate::EventMaterializer::materialize(&materializer, &observation); + let first = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + let second = crate::MtApiEventMaterializer::materialize(&materializer, &observation); let first_json = match serde_json::to_string(&first) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { diff --git a/kb-lib/src/materializer/compliance/constants.rs b/kb-lib/src/materializer/compliance/constants.rs index e47bbc8..21a5c9b 100644 --- a/kb-lib/src/materializer/compliance/constants.rs +++ b/kb-lib/src/materializer/compliance/constants.rs @@ -4,4 +4,4 @@ //! Local constants for the native compliance audit materializer. /// Canonical tracing target for this component. -pub(crate) const TRACING_TARGET: &str = "kb-lib.materializer.compliance"; +pub(crate) const MT_COMPLIANCE_AUDIT_TRACING_TARGET: &str = "kb-lib.materializer.compliance"; diff --git a/kb-lib/src/materializer/fees.rs b/kb-lib/src/materializer/fees.rs index 0fd4295..80f3fca 100644 --- a/kb-lib/src/materializer/fees.rs +++ b/kb-lib/src/materializer/fees.rs @@ -1,6 +1,11 @@ // file: kb-lib/src/materializer/fees.rs -// version: 1 +// version: 2 //! `fees` materializer family. -pub mod core; +mod core; + +/// Fee materializer for committed Token-2022 fee observations. +pub use self::core::MtFeesMaterializer; +/// Materializes authoritative Token-2022 fee extension snapshots. +pub use self::core::materialize_token2022_fee_state_snapshots; diff --git a/kb-lib/src/materializer/fees/core.rs b/kb-lib/src/materializer/fees/core.rs index e5cb3db..7041a3d 100644 --- a/kb-lib/src/materializer/fees/core.rs +++ b/kb-lib/src/materializer/fees/core.rs @@ -1,10 +1,432 @@ // file: kb-lib/src/materializer/fees/core.rs -// version: 1 +// version: 2 -//! Migration boundary for legacy crate `kb_materializer_fees`. +//! Stable fee projections derived from exact committed Token-2022 observations. -/// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_fees"; +const ACCEPTED_FAMILIES: &[crate::MdEventFamily] = &[crate::MdEventFamily::Fee]; +const SPL_TOKEN2022_SURFACE: &str = "spl_token2022"; +const TOKEN2022_FEE_ENTRIES: &[&str] = &[ + "initialize_transfer_fee_config", + "set_transfer_fee", + "withdraw_withheld_tokens_from_mint", + "withdraw_withheld_tokens_from_accounts", + "harvest_withheld_tokens_to_mint", + "transfer_checked_with_fee", + "initialize_confidential_transfer_fee_config", + "withdraw_confidential_withheld_tokens_from_mint", + "withdraw_confidential_withheld_tokens_from_accounts", + "harvest_confidential_withheld_tokens_to_mint", + "enable_confidential_harvest_to_mint", + "disable_confidential_harvest_to_mint", + "transfer_confidential_tokens_with_fee", +]; -/// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +/// Fee materializer for committed Token-2022 fee instructions. +#[derive(Clone, Debug, Default)] +pub struct MtFeesMaterializer; + +impl crate::MtMaterializer for crate::MtFeesMaterializer { + fn materializer_name(&self) -> &'static str { + return "kb_materializer_fees"; + } + fn materializer_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + fn accepts_event(&self, event: &crate::MdDecodedProtocolEvent) -> bool { + return accepts_event(event); + } + fn materialize_event( + &self, + _event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} + +impl crate::MtApiEventMaterializer for crate::MtFeesMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { + name: "fees".to_string(), + version: env!("CARGO_PKG_VERSION").to_string(), + }; + } + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { + return ACCEPTED_FAMILIES; + } + fn accepts_observation(&self, observation: &crate::DcApiDecodedObservation) -> bool { + return accepts_event(&observation.event); + } + fn transaction_policy( + &self, + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulCommittedOnly; + } + fn materialize( + &self, + observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { + if !accepts_event(&observation.event) { + return crate::MtApiMaterializerExecutionResult::ignored(); + } + if observation.transaction_failed || !observation.observation_committed { + return crate::MtApiMaterializerExecutionResult::refused( + "failed_transaction_fee_refused", + "failed or uncommitted Token-2022 observations cannot create fee outputs", + ); + } + let operation = observation.event.event_name.0.clone(); + let accounts = observation + .payload_json + .get("accounts") + .cloned() + .unwrap_or(serde_json::Value::Null); + let parameters = observation + .payload_json + .get("parameters") + .cloned() + .unwrap_or_else(|| return observation.payload_json.clone()); + let output = crate::MtApiMaterializedOutput { + output_key: format!("token2022_fee:{operation}:0"), + family: crate::MdMaterializedEventFamily::Fee, + payload_json: serde_json::json!({ + "projectionVersion": 1, + "projectionSemantics": "committed_instruction_fee_event", + "domain": fee_domain(observation.event.event_name.0.as_str()), + "operation": operation, + "programId": observation.event.program_id.0.clone(), + "signature": observation.event.signature.0.clone(), + "slot": observation.event.slot.0, + "instructionPath": observation.event.instruction_path.0.clone(), + "transactionSucceeded": true, + "accounts": accounts, + "parameters": parameters, + "stateReadRequired": state_read_required( + observation.event.event_name.0.as_str(), + ), + "confidentialValuesDecrypted": false, + }), + }; + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, + outputs: std::vec![output], + diagnostics: std::vec::Vec::new(), + }; + } +} + +fn accepts_event(event: &crate::MdDecodedProtocolEvent) -> bool { + return event.event_family == crate::MdEventFamily::Fee + && event.surface_code.0 == SPL_TOKEN2022_SURFACE + && event.program_id.0 == kb_program_ids::SPL_TOKEN2022_PROGRAM_ID + && contains(TOKEN2022_FEE_ENTRIES, event.event_name.0.as_str()); +} + +fn fee_domain(operation: &str) -> &'static str { + if operation.contains("confidential") { + return "token2022_confidential_transfer_fee"; + } + return "token2022_transfer_fee"; +} + +fn state_read_required(operation: &str) -> bool { + return matches!( + operation, + "initialize_transfer_fee_config" + | "set_transfer_fee" + | "withdraw_withheld_tokens_from_mint" + | "withdraw_withheld_tokens_from_accounts" + | "harvest_withheld_tokens_to_mint" + | "initialize_confidential_transfer_fee_config" + | "withdraw_confidential_withheld_tokens_from_mint" + | "withdraw_confidential_withheld_tokens_from_accounts" + | "harvest_confidential_withheld_tokens_to_mint" + | "enable_confidential_harvest_to_mint" + | "disable_confidential_harvest_to_mint" + ); +} + +fn contains(entries: &[&str], entry_code: &str) -> bool { + return entries.iter().any(|entry| return *entry == entry_code); +} + +/// Materialize authoritative Token-2022 fee extension snapshots without decrypting confidential values. +pub fn materialize_token2022_fee_state_snapshots( + account_key: &str, + slot: u64, + state: &crate::DcToken2022State, +) -> std::result::Result, String> { + if account_key.is_empty() { + return std::result::Result::Err( + "Token-2022 fee state snapshot requires a non-empty account key".to_string(), + ); + } + let state_kind = match state.kind { + crate::DcToken2022StateKind::Mint => "mint", + crate::DcToken2022StateKind::Account => "account", + crate::DcToken2022StateKind::Multisig => { + return std::result::Result::Err( + "Token-2022 multisig state cannot contain fee extensions".to_string(), + ); + }, + }; + let mut outputs = std::vec::Vec::new(); + for entry in &state.extensions { + let confidential = match entry.extension_name { + "transfer_fee_config" | "transfer_fee_amount" => false, + "confidential_transfer_fee_config" | "confidential_transfer_fee_amount" => true, + _ => continue, + }; + let expected_kind = match entry.extension_name { + "transfer_fee_config" | "confidential_transfer_fee_config" => "mint", + "transfer_fee_amount" | "confidential_transfer_fee_amount" => "account", + _ => continue, + }; + if state_kind != expected_kind { + return std::result::Result::Err(format!( + "Token-2022 {} extension requires {expected_kind} state, got {state_kind}", + entry.extension_name + )); + } + outputs.push(crate::MtApiMaterializedOutput { + output_key: format!( + "token2022_fee_state:{}:{account_key}:{slot}", + entry.extension_name + ), + family: crate::MdMaterializedEventFamily::Fee, + payload_json: serde_json::json!({ + "projectionVersion": 1, + "projectionSemantics": "authoritative_bounded_fee_state_snapshot", + "domain": if confidential { + "token2022_confidential_transfer_fee_state" + } else { + "token2022_transfer_fee_state" + }, + "idempotenceKey": format!( + "token2022_fee_state:{}:{account_key}:{slot}", + entry.extension_name + ), + "accountKey": account_key, + "slot": slot, + "programId": kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + "stateKind": state_kind, + "extensionType": entry.extension_type, + "extensionName": entry.extension_name, + "valueHex": entry.value_hex, + "valueFields": entry.value_fields, + "containsConfidentialState": confidential, + "confidentialValuesDecrypted": false, + "finalAccountStateCaptured": true, + "provenance": { + "processorName": "fees", + "processorVersion": env!("CARGO_PKG_VERSION"), + "source": "bounded_token2022_state_parser" + } + }), + }); + } + return std::result::Result::Ok(outputs); +} + +#[cfg(test)] +mod tests { + fn observation( + surface_code: &str, + program_id: &str, + entry_code: &str, + transaction_failed: bool, + ) -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { + event_key: format!("{entry_code}:0"), + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId(program_id.to_string()), + protocol_code: crate::MdProtocolCode("spl_token2022".to_string()), + surface_code: crate::MdSurfaceCode(surface_code.to_string()), + event_code: crate::MdEventCode(format!("{surface_code}.{entry_code}")), + event_name: crate::MdEventName(entry_code.to_string()), + event_family: crate::MdEventFamily::Fee, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::ManualExact, + }, + payload_json: serde_json::json!({ + "accounts": [{"position": 0, "role": "mint", "accountKey": "mint111"}], + "parameters": {"extension": "transfer_fee", "basisPoints": 25}, + }), + transaction_failed, + transaction_error: if transaction_failed { + std::option::Option::Some(serde_json::json!({"InstructionError": [0, "Custom"]})) + } else { + std::option::Option::None + }, + observation_committed: !transaction_failed, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, + evidence: std::vec!["fixture".to_string()], + }, + }; + } + + #[test] + fn committed_token2022_fee_instruction_creates_one_stable_output() { + let observation = observation( + super::SPL_TOKEN2022_SURFACE, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + "set_transfer_fee", + false, + ); + let result = + crate::MtApiEventMaterializer::materialize(&crate::MtFeesMaterializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs.len(), 1); + assert_eq!(result.outputs[0].family, crate::MdMaterializedEventFamily::Fee); + assert_eq!(result.outputs[0].output_key, "token2022_fee:set_transfer_fee:0"); + assert_eq!(result.outputs[0].payload_json["stateReadRequired"], true); + } + + #[test] + fn failed_token2022_fee_instruction_is_refused() { + let observation = observation( + super::SPL_TOKEN2022_SURFACE, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + "harvest_withheld_tokens_to_mint", + true, + ); + let result = + crate::MtApiEventMaterializer::materialize(&crate::MtFeesMaterializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); + assert!(result.outputs.is_empty()); + } + + #[test] + fn classic_token_and_program_surface_mismatches_are_ignored() { + let classic = observation( + "spl_token", + kb_program_ids::SPL_TOKEN_PROGRAM_ID, + "set_transfer_fee", + false, + ); + let wrong_program = observation( + super::SPL_TOKEN2022_SURFACE, + kb_program_ids::SPL_TOKEN_PROGRAM_ID, + "set_transfer_fee", + false, + ); + assert!(!crate::MtApiEventMaterializer::accepts_observation( + &crate::MtFeesMaterializer, + &classic, + )); + assert!(!crate::MtApiEventMaterializer::accepts_observation( + &crate::MtFeesMaterializer, + &wrong_program, + )); + } + + #[test] + fn transfer_checked_with_fee_is_self_contained_but_state_mutations_are_not() { + assert!(!super::state_read_required("transfer_checked_with_fee")); + assert!(super::state_read_required("withdraw_withheld_tokens_from_accounts")); + } + + #[test] + fn committed_confidential_fee_instruction_is_projected_without_decryption() { + let observation = observation( + super::SPL_TOKEN2022_SURFACE, + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + "initialize_confidential_transfer_fee_config", + false, + ); + let result = + crate::MtApiEventMaterializer::materialize(&crate::MtFeesMaterializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs.len(), 1); + assert_eq!(result.outputs[0].payload_json["domain"], "token2022_confidential_transfer_fee"); + assert_eq!(result.outputs[0].payload_json["stateReadRequired"], true); + assert_eq!(result.outputs[0].payload_json["confidentialValuesDecrypted"], false); + } + + #[test] + fn confidential_transfer_with_fee_is_instructionally_self_contained() { + assert!(!super::state_read_required("transfer_confidential_tokens_with_fee",)); + assert_eq!( + super::fee_domain("transfer_confidential_tokens_with_fee"), + "token2022_confidential_transfer_fee" + ); + } + + #[test] + fn public_fee_state_snapshots_are_owned_once_and_idempotent() { + let mint = crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Mint, + base_fields: serde_json::json!({}), + base_hex: "00".to_string(), + account_type: std::option::Option::Some(1), + extensions: std::vec![crate::DcToken2022TlvEntry { + extension_type: 1, + extension_name: "transfer_fee_config", + value_hex: "01".to_string(), + value_fields: serde_json::json!({"withheldAmount":"7"}), + }], + }; + let first = crate::materialize_token2022_fee_state_snapshots("mint111", 42, &mint); + let second = crate::materialize_token2022_fee_state_snapshots("mint111", 42, &mint); + assert!(first.is_ok()); + assert_eq!(first, second); + let outputs = match first { + std::result::Result::Ok(outputs) => outputs, + std::result::Result::Err(error) => panic!("unexpected error: {error}"), + }; + assert_eq!(outputs.len(), 1); + assert_eq!(outputs[0].payload_json["stateKind"], "mint"); + assert_eq!(outputs[0].payload_json["valueFields"]["withheldAmount"], "7"); + assert_eq!(outputs[0].payload_json["confidentialValuesDecrypted"], false); + } + + #[test] + fn confidential_fee_amount_preserves_ciphertext_without_decryption_claim() { + let account = crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Account, + base_fields: serde_json::json!({}), + base_hex: "00".to_string(), + account_type: std::option::Option::Some(2), + extensions: std::vec![crate::DcToken2022TlvEntry { + extension_type: 17, + extension_name: "confidential_transfer_fee_amount", + value_hex: "02".to_string(), + value_fields: serde_json::json!({"withheldAmount":"ciphertext"}), + }], + }; + let result = crate::materialize_token2022_fee_state_snapshots("account111", 43, &account); + assert!(result.is_ok()); + let outputs = match result { + std::result::Result::Ok(outputs) => outputs, + std::result::Result::Err(error) => panic!("unexpected error: {error}"), + }; + assert_eq!(outputs[0].payload_json["containsConfidentialState"], true); + assert_eq!(outputs[0].payload_json["confidentialValuesDecrypted"], false); + assert_eq!(outputs[0].payload_json["valueFields"]["withheldAmount"], "ciphertext"); + } + + #[test] + fn fee_state_snapshot_rejects_wrong_state_kind_and_empty_identity() { + let wrong = crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Account, + base_fields: serde_json::json!({}), + base_hex: "00".to_string(), + account_type: std::option::Option::Some(2), + extensions: std::vec![crate::DcToken2022TlvEntry { + extension_type: 1, + extension_name: "transfer_fee_config", + value_hex: "01".to_string(), + value_fields: serde_json::json!({}), + }], + }; + assert!( + crate::materialize_token2022_fee_state_snapshots("account111", 44, &wrong,).is_err() + ); + assert!(crate::materialize_token2022_fee_state_snapshots("", 44, &wrong,).is_err()); + } +} diff --git a/kb-lib/src/materializer/governance.rs b/kb-lib/src/materializer/governance.rs index fafad37..d586494 100644 --- a/kb-lib/src/materializer/governance.rs +++ b/kb-lib/src/materializer/governance.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/governance.rs -// version: 1 +// version: 2 //! `governance` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/governance/core.rs b/kb-lib/src/materializer/governance/core.rs index 35736bd..e1f5591 100644 --- a/kb-lib/src/materializer/governance/core.rs +++ b/kb-lib/src/materializer/governance/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/governance/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_governance`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_governance"; +const LEGACY_CRATE: &str = "kb_materializer_governance"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/lending.rs b/kb-lib/src/materializer/lending.rs index efee829..7c00cdc 100644 --- a/kb-lib/src/materializer/lending.rs +++ b/kb-lib/src/materializer/lending.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/lending.rs -// version: 1 +// version: 2 //! `lending` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/lending/core.rs b/kb-lib/src/materializer/lending/core.rs index b481d6e..9741c17 100644 --- a/kb-lib/src/materializer/lending/core.rs +++ b/kb-lib/src/materializer/lending/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/lending/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_lending`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_lending"; +const LEGACY_CRATE: &str = "kb_materializer_lending"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/lifecycle.rs b/kb-lib/src/materializer/lifecycle.rs index 6158d65..6408034 100644 --- a/kb-lib/src/materializer/lifecycle.rs +++ b/kb-lib/src/materializer/lifecycle.rs @@ -1,12 +1,13 @@ // file: kb-lib/src/materializer/lifecycle.rs -// version: 2 +// version: 3 //! `lifecycle` materializer family. mod constants; -pub mod core; +mod core; -pub(crate) use crate::materializer::lifecycle::constants::TRACING_TARGET as MATERIALIZER_LIFECYCLE_TRACING_TARGET; +/// Canonical tracing target for the native lifecycle materializer. +pub(crate) use self::constants::MT_LIFECYCLE_TRACING_TARGET; /// Stable native lifecycle materializer. -pub use crate::materializer::lifecycle::core::LifecycleMaterializer; +pub use self::core::MtLifecycleMaterializer; diff --git a/kb-lib/src/materializer/lifecycle/constants.rs b/kb-lib/src/materializer/lifecycle/constants.rs index a5c1215..f4e63d0 100644 --- a/kb-lib/src/materializer/lifecycle/constants.rs +++ b/kb-lib/src/materializer/lifecycle/constants.rs @@ -4,4 +4,4 @@ //! Local constants for the native lifecycle materializer. /// Canonical tracing target for this component. -pub(crate) const TRACING_TARGET: &str = "kb-lib.materializer.lifecycle"; +pub(crate) const MT_LIFECYCLE_TRACING_TARGET: &str = "kb-lib.materializer.lifecycle"; diff --git a/kb-lib/src/materializer/lifecycle/core.rs b/kb-lib/src/materializer/lifecycle/core.rs index aea7f85..1fca2a8 100644 --- a/kb-lib/src/materializer/lifecycle/core.rs +++ b/kb-lib/src/materializer/lifecycle/core.rs @@ -3,10 +3,10 @@ //! Stable lifecycle projections derived from exact decoded observations. -const ACCEPTED_FAMILIES: &[crate::EventFamily] = &[ - crate::EventFamily::Lifecycle, - crate::EventFamily::Admin, - crate::EventFamily::Audit, +const ACCEPTED_FAMILIES: &[crate::MdEventFamily] = &[ + crate::MdEventFamily::Lifecycle, + crate::MdEventFamily::Admin, + crate::MdEventFamily::Audit, ]; const ADDRESS_LOOKUP_TABLE_SURFACE: &str = "solana_native_address_lookup_table"; const ADDRESS_LOOKUP_TABLE_ENTRIES: &[&str] = &[ @@ -121,9 +121,9 @@ impl ProjectionKind { /// Stable lifecycle materializer for supported native lifecycle projections. #[derive(Clone, Debug, Default)] -pub struct LifecycleMaterializer; +pub struct MtLifecycleMaterializer; -impl crate::Materializer for crate::LifecycleMaterializer { +impl crate::MtMaterializer for crate::MtLifecycleMaterializer { fn materializer_name(&self) -> &'static str { return "kb_materializer_lifecycle"; } @@ -132,7 +132,7 @@ impl crate::Materializer for crate::LifecycleMaterializer { return env!("CARGO_PKG_VERSION"); } - fn accepts_event(&self, event: &crate::DecodedProtocolEvent) -> bool { + fn accepts_event(&self, event: &crate::MdDecodedProtocolEvent) -> bool { return family_is_accepted(event.event_family) && static_projection(event.surface_code.0.as_str(), event.event_name.0.as_str()) .is_some(); @@ -140,60 +140,60 @@ impl crate::Materializer for crate::LifecycleMaterializer { fn materialize_event( &self, - event: &crate::DecodedProtocolEvent, - ) -> kb_core::Result> { - if !crate::Materializer::accepts_event(self, event) { + event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result> { + if !crate::MtMaterializer::accepts_event(self, event) { return std::result::Result::Ok(std::vec::Vec::new()); } return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::EventMaterializer for crate::LifecycleMaterializer { - fn identity(&self) -> crate::MaterializerIdentity { - return crate::MaterializerIdentity { +impl crate::MtApiEventMaterializer for crate::MtLifecycleMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { name: "solana_native_lifecycle".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn accepted_families(&self) -> &'static [crate::EventFamily] { + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { return ACCEPTED_FAMILIES; } - fn accepts_observation(&self, observation: &crate::DecodedObservation) -> bool { + fn accepts_observation(&self, observation: &crate::DcApiDecodedObservation) -> bool { return family_is_accepted(observation.event.event_family) && observation_projection(observation).is_some(); } fn transaction_policy( &self, - _family: crate::EventFamily, - ) -> crate::MaterializationTransactionPolicy { - return crate::MaterializationTransactionPolicy::SuccessfulCommittedOnly; + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulCommittedOnly; } fn materialize( &self, - observation: &crate::DecodedObservation, - ) -> crate::MaterializerExecutionResult { + observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { let projection = match observation_projection(observation) { std::option::Option::Some(value) => value, std::option::Option::None => { tracing::debug!( - target: crate::MATERIALIZER_LIFECYCLE_TRACING_TARGET, + target: crate::MT_LIFECYCLE_TRACING_TARGET, action = "materialize_lifecycle", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), accepted = false, "ignore observation outside supported native lifecycle projections" ); - return crate::MaterializerExecutionResult::ignored(); + return crate::MtApiMaterializerExecutionResult::ignored(); }, }; if observation.transaction_failed || !observation.observation_committed { tracing::debug!( - target: crate::MATERIALIZER_LIFECYCLE_TRACING_TARGET, + target: crate::MT_LIFECYCLE_TRACING_TARGET, action = "materialize_lifecycle", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), @@ -202,7 +202,7 @@ impl crate::EventMaterializer for crate::LifecycleMaterializer { transaction_failed = observation.transaction_failed, "refuse uncommitted native lifecycle observation" ); - return crate::MaterializerExecutionResult::refused( + return crate::MtApiMaterializerExecutionResult::refused( "failed_transaction_lifecycle_refused", "failed or uncommitted native lifecycle observations cannot create lifecycle outputs", ); @@ -225,7 +225,7 @@ impl crate::EventMaterializer for crate::LifecycleMaterializer { let projection_details = projection_details(projection, &accounts, ¶meters, operation.as_str()); tracing::debug!( - target: crate::MATERIALIZER_LIFECYCLE_TRACING_TARGET, + target: crate::MT_LIFECYCLE_TRACING_TARGET, action = "materialize_lifecycle", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), @@ -235,9 +235,9 @@ impl crate::EventMaterializer for crate::LifecycleMaterializer { output_count = 1_usize, "materialize committed native lifecycle observation" ); - let output = crate::MaterializedOutput { + let output = crate::MtApiMaterializedOutput { output_key, - family: crate::MaterializedEventFamily::Lifecycle, + family: crate::MdMaterializedEventFamily::Lifecycle, payload_json: serde_json::json!({ "projectionVersion": 1, "projectionSemantics": "committed_instruction_lifecycle_event", @@ -254,20 +254,20 @@ impl crate::EventMaterializer for crate::LifecycleMaterializer { "projection": projection_details, }), }; - return crate::MaterializerExecutionResult { - status: crate::MaterializerOutcomeStatus::Inserted, + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, outputs: std::vec![output], diagnostics: std::vec::Vec::new(), }; } } -fn family_is_accepted(family: crate::EventFamily) -> bool { +fn family_is_accepted(family: crate::MdEventFamily) -> bool { return ACCEPTED_FAMILIES.iter().any(|accepted| return *accepted == family); } fn observation_projection( - observation: &crate::DecodedObservation, + observation: &crate::DcApiDecodedObservation, ) -> std::option::Option { let surface_code = observation.event.surface_code.0.as_str(); let entry_code = observation.event.event_name.0.as_str(); @@ -479,25 +479,25 @@ mod tests { fn observation_with_payload( surface_code: &str, entry_code: &str, - event_family: crate::EventFamily, + event_family: crate::MdEventFamily, transaction_failed: bool, accounts: serde_json::Value, parameters: serde_json::Value, - ) -> crate::DecodedObservation { - return crate::DecodedObservation { + ) -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { event_key: format!("{entry_code}:0"), - event: crate::DecodedProtocolEvent { - signature: crate::Signature("signature".to_string()), - slot: crate::Slot(42), - instruction_path: crate::InstructionPath("0".to_string()), - program_id: crate::ProgramId("program-id".to_string()), - protocol_code: crate::ProtocolCode("solana_native".to_string()), - surface_code: crate::SurfaceCode(surface_code.to_string()), - event_code: crate::EventCode(format!("{surface_code}.{entry_code}")), - event_name: crate::EventName(entry_code.to_string()), + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId("program-id".to_string()), + protocol_code: crate::MdProtocolCode("solana_native".to_string()), + surface_code: crate::MdSurfaceCode(surface_code.to_string()), + event_code: crate::MdEventCode(format!("{surface_code}.{entry_code}")), + event_name: crate::MdEventName(entry_code.to_string()), event_family, - source_kind: crate::EventSourceKind::Instruction, - confidence: crate::DecoderConfidence::ManualExact, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::ManualExact, }, payload_json: serde_json::json!({ "accounts": accounts, @@ -510,9 +510,9 @@ mod tests { std::option::Option::None }, observation_committed: !transaction_failed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: std::vec!["fixture".to_string()], }, }; @@ -522,11 +522,11 @@ mod tests { surface_code: &str, entry_code: &str, transaction_failed: bool, - ) -> crate::DecodedObservation { + ) -> crate::DcApiDecodedObservation { return observation_with_payload( surface_code, entry_code, - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, transaction_failed, serde_json::json!([{"role": "target", "accountKey": "account"}]), serde_json::json!({"value": 41}), @@ -535,9 +535,9 @@ mod tests { fn nonce_observation( entry_code: &str, - family: crate::EventFamily, + family: crate::MdEventFamily, transaction_failed: bool, - ) -> crate::DecodedObservation { + ) -> crate::DcApiDecodedObservation { return observation_with_payload( super::SYSTEM_SURFACE, entry_code, @@ -558,10 +558,10 @@ mod tests { fn slashing_observation( entry_code: &str, transaction_failed: bool, - ) -> crate::DecodedObservation { + ) -> crate::DcApiDecodedObservation { let (family, accounts) = if entry_code == "duplicate_block_proof" { ( - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, serde_json::json!([ {"role": "proof_account", "accountKey": "proof111"}, {"role": "violation_report", "accountKey": "report111"}, @@ -571,7 +571,7 @@ mod tests { ) } else { ( - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, serde_json::json!([ {"role": "violation_report", "accountKey": "report111"}, {"role": "destination", "accountKey": "destination111"} @@ -599,7 +599,7 @@ mod tests { entry_code: &str, context_state_requested: bool, transaction_failed: bool, - ) -> crate::DecodedObservation { + ) -> crate::DcApiDecodedObservation { let accounts = if entry_code == "close_context_state" { serde_json::json!([ {"role": "proof_context_state", "accountKey": "context111"}, @@ -615,9 +615,9 @@ mod tests { serde_json::json!([]) }; let family = if entry_code == "close_context_state" { - crate::EventFamily::Lifecycle + crate::MdEventFamily::Lifecycle } else { - crate::EventFamily::Audit + crate::MdEventFamily::Audit }; return observation_with_payload( super::ZK_ELGAMAL_PROOF_SURFACE, @@ -634,12 +634,12 @@ mod tests { #[test] fn successful_alt_lifecycle_creates_one_stable_output() { - let materializer = crate::LifecycleMaterializer; - let result = crate::EventMaterializer::materialize( + let materializer = crate::MtLifecycleMaterializer; + let result = crate::MtApiEventMaterializer::materialize( &materializer, &observation(super::ADDRESS_LOOKUP_TABLE_SURFACE, "create_lookup_table", false), ); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs.len(), 1); assert_eq!(result.outputs[0].output_key, "address_lookup_table:create_lookup_table:0"); assert_eq!(result.outputs[0].payload_json["domain"], "address_lookup_table"); @@ -648,12 +648,12 @@ mod tests { #[test] fn successful_loader_lifecycle_creates_program_projection() { - let materializer = crate::LifecycleMaterializer; - let result = crate::EventMaterializer::materialize( + let materializer = crate::MtLifecycleMaterializer; + let result = crate::MtApiEventMaterializer::materialize( &materializer, &observation(super::BPF_LOADER_UPGRADEABLE_SURFACE, "deploy_with_max_data_len", false), ); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!( result.outputs[0].output_key, "program_loader:solana_native_bpf_loader_upgradeable:deploy_with_max_data_len:0" @@ -667,19 +667,19 @@ mod tests { #[test] fn successful_feature_revoke_creates_feature_gate_projection() { - let materializer = crate::LifecycleMaterializer; - let result = crate::EventMaterializer::materialize( + let materializer = crate::MtLifecycleMaterializer; + let result = crate::MtApiEventMaterializer::materialize( &materializer, &observation(super::FEATURE_SURFACE, "revoke_pending_activation", false), ); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs[0].output_key, "feature_gate:revoke_pending_activation:0"); assert_eq!(result.outputs[0].payload_json["domain"], "feature_gate"); } #[test] fn every_committed_system_account_operation_creates_a_lifecycle_projection() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; for (operation, role, transition) in [ ("create_account", "new_account", "created_allocated_funded_and_assigned"), ( @@ -698,7 +698,7 @@ mod tests { let observation = observation_with_payload( super::SYSTEM_SURFACE, operation, - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, serde_json::json!([ {"role": role, "accountKey": "target111"}, @@ -712,8 +712,8 @@ mod tests { "seed": "seed", }), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs[0].output_key, format!("system_account:{operation}:0")); assert_eq!(result.outputs[0].payload_json["projection"]["targetAccount"], "target111"); assert_eq!(result.outputs[0].payload_json["projection"]["stateTransition"], transition); @@ -722,11 +722,11 @@ mod tests { #[test] fn system_account_creation_does_not_duplicate_balance_changes() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; let observation = observation_with_payload( super::SYSTEM_SURFACE, "create_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, serde_json::json!([ {"role": "funding_account", "accountKey": "funding111"}, @@ -734,7 +734,7 @@ mod tests { ]), serde_json::json!({"lamports": 55, "space": 64, "owner": "owner111"}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); assert_eq!(result.outputs[0].payload_json["projection"]["requestedLamports"], 55); assert_eq!( result.outputs[0].payload_json["projection"]["lamportTransferRepresentedByCoreBalanceChanges"], @@ -745,26 +745,29 @@ mod tests { #[test] fn every_committed_system_nonce_operation_creates_a_lifecycle_projection() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; for (entry_code, family, transition) in [ - ("initialize_nonce_account", crate::EventFamily::Lifecycle, "initialized"), - ("advance_nonce_account", crate::EventFamily::Lifecycle, "nonce_advanced"), - ("authorize_nonce_account", crate::EventFamily::Admin, "authority_changed"), + ("initialize_nonce_account", crate::MdEventFamily::Lifecycle, "initialized"), + ("advance_nonce_account", crate::MdEventFamily::Lifecycle, "nonce_advanced"), + ("authorize_nonce_account", crate::MdEventFamily::Admin, "authority_changed"), ( "upgrade_nonce_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, "legacy_version_upgraded", ), ( "withdraw_nonce_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, "lamports_withdrawn_possible_closure", ), ] { let observation = nonce_observation(entry_code, family, false); - assert!(crate::EventMaterializer::accepts_observation(&materializer, &observation,)); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + assert!(crate::MtApiEventMaterializer::accepts_observation( + &materializer, + &observation, + )); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs[0].payload_json["domain"], "durable_nonce_account"); assert_eq!(result.outputs[0].payload_json["projection"]["targetAccount"], "nonce111"); assert_eq!( @@ -777,10 +780,10 @@ mod tests { #[test] fn nonce_withdrawal_preserves_conditional_closure_semantics() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; let observation = - nonce_observation("withdraw_nonce_account", crate::EventFamily::Lifecycle, false); - let result = crate::EventMaterializer::materialize(&materializer, &observation); + nonce_observation("withdraw_nonce_account", crate::MdEventFamily::Lifecycle, false); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); assert_eq!(result.outputs[0].payload_json["projection"]["withdrawLamports"], 55); assert_eq!( result.outputs[0].payload_json["projection"]["lamportDestination"], @@ -799,13 +802,16 @@ mod tests { #[test] fn zk_context_is_materialized_only_when_requested() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; let without_context = zk_observation("verify_zero_ciphertext", false, false); - assert!(!crate::EventMaterializer::accepts_observation(&materializer, &without_context,)); + assert!(!crate::MtApiEventMaterializer::accepts_observation( + &materializer, + &without_context, + )); let with_context = zk_observation("verify_zero_ciphertext", true, false); - assert!(crate::EventMaterializer::accepts_observation(&materializer, &with_context,)); - let result = crate::EventMaterializer::materialize(&materializer, &with_context); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + assert!(crate::MtApiEventMaterializer::accepts_observation(&materializer, &with_context,)); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &with_context); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs[0].payload_json["domain"], "zk_proof_context"); assert_eq!(result.outputs[0].payload_json["projection"]["targetAccount"], "context111"); assert_eq!( @@ -820,10 +826,10 @@ mod tests { #[test] fn zk_context_close_creates_a_stable_lifecycle_projection() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; let observation = zk_observation("close_context_state", false, false); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!(result.outputs[0].output_key, "zk_proof_context:close_context_state:0"); assert_eq!( result.outputs[0].payload_json["projection"]["lamportDestination"], @@ -837,11 +843,11 @@ mod tests { #[test] fn successful_slashing_proof_initializes_violation_report_projection() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; let observation = slashing_observation("duplicate_block_proof", false); - assert!(crate::EventMaterializer::accepts_observation(&materializer, &observation,)); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + assert!(crate::MtApiEventMaterializer::accepts_observation(&materializer, &observation,)); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!( result.outputs[0].output_key, "slashing_violation_report:duplicate_block_proof:0" @@ -854,10 +860,10 @@ mod tests { #[test] fn successful_slashing_close_creates_stable_closure_projection() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; let observation = slashing_observation("close_violation_report", false); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); assert_eq!( result.outputs[0].payload_json["projection"]["stateTransition"], "closed_after_minimum_retention_lamports_reclaimed_owner_reset_to_system_program" @@ -871,78 +877,86 @@ mod tests { #[test] fn historical_zk_token_proof_is_not_materialized() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; let observation = observation_with_payload( "solana_native_zk_token_proof", "close_context_state", - crate::EventFamily::Audit, + crate::MdEventFamily::Audit, false, serde_json::json!([]), serde_json::json!({}), ); - assert!(!crate::EventMaterializer::accepts_observation(&materializer, &observation,)); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Ignored); + assert!(!crate::MtApiEventMaterializer::accepts_observation(&materializer, &observation,)); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); } #[test] fn loader_write_and_admin_events_are_not_lifecycle_projections() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; for entry_code in ["write", "set_authority", "transfer_authority"] { let observation = observation(super::BPF_LOADER_UPGRADEABLE_SURFACE, entry_code, false); - assert!(!crate::EventMaterializer::accepts_observation(&materializer, &observation,)); + assert!(!crate::MtApiEventMaterializer::accepts_observation( + &materializer, + &observation, + )); } } #[test] fn unrelated_lifecycle_is_ignored() { - let materializer = crate::LifecycleMaterializer; - let result = crate::EventMaterializer::materialize( + let materializer = crate::MtLifecycleMaterializer; + let result = crate::MtApiEventMaterializer::materialize( &materializer, &observation(super::SYSTEM_SURFACE, "transfer", false), ); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Ignored); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); } #[test] fn ata_lifecycle_is_owned_by_token_accounts_materializer_only() { let mut observation = observation("spl_associated_token_account", "create", false); observation.event.program_id = - crate::ProgramId(kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string()); - assert!(!crate::EventMaterializer::accepts_observation( - &crate::LifecycleMaterializer, + crate::MdProgramId(kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string()); + assert!(!crate::MtApiEventMaterializer::accepts_observation( + &crate::MtLifecycleMaterializer, &observation, )); - let result = - crate::EventMaterializer::materialize(&crate::LifecycleMaterializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Ignored); + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtLifecycleMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); assert!(result.outputs.is_empty()); } #[test] fn failed_native_lifecycle_is_refused() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; let observations = [ observation(super::ADDRESS_LOOKUP_TABLE_SURFACE, "close_lookup_table", true), observation(super::LOADER_V4_SURFACE, "deploy", true), - nonce_observation("authorize_nonce_account", crate::EventFamily::Admin, true), + nonce_observation("authorize_nonce_account", crate::MdEventFamily::Admin, true), zk_observation("verify_zero_ciphertext", true, true), slashing_observation("duplicate_block_proof", true), ]; for observation in observations { - let policy = crate::validate_materialization_policy(&materializer, &observation); + let policy = crate::materializer_api_validate_materialization_policy( + &materializer, + &observation, + ); assert!(policy.is_err()); - let direct = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(direct.status, crate::MaterializerOutcomeStatus::Refused); + let direct = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(direct.status, crate::MtApiMaterializerOutcomeStatus::Refused); } } #[test] fn output_serialization_is_deterministic() { - let materializer = crate::LifecycleMaterializer; + let materializer = crate::MtLifecycleMaterializer; let observation = zk_observation("verify_batched_range_proof_u64", true, false); - let first = crate::EventMaterializer::materialize(&materializer, &observation); - let second = crate::EventMaterializer::materialize(&materializer, &observation); + let first = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + let second = crate::MtApiEventMaterializer::materialize(&materializer, &observation); let first_json = match serde_json::to_string(&first) { std::result::Result::Ok(value) => value, std::result::Result::Err(error) => { diff --git a/kb-lib/src/materializer/liquidity.rs b/kb-lib/src/materializer/liquidity.rs index 69479b5..38e5801 100644 --- a/kb-lib/src/materializer/liquidity.rs +++ b/kb-lib/src/materializer/liquidity.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/liquidity.rs -// version: 1 +// version: 2 //! `liquidity` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/liquidity/core.rs b/kb-lib/src/materializer/liquidity/core.rs index 03ec80a..dbfb075 100644 --- a/kb-lib/src/materializer/liquidity/core.rs +++ b/kb-lib/src/materializer/liquidity/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/liquidity/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_liquidity`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_liquidity"; +const LEGACY_CRATE: &str = "kb_materializer_liquidity"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/metadata.rs b/kb-lib/src/materializer/metadata.rs index 58d7ba9..e916720 100644 --- a/kb-lib/src/materializer/metadata.rs +++ b/kb-lib/src/materializer/metadata.rs @@ -1,6 +1,15 @@ // file: kb-lib/src/materializer/metadata.rs -// version: 1 +// version: 2 //! `metadata` materializer family. -pub mod core; +mod core; + +/// Token-2022 and Metaplex metadata snapshot materializer. +pub use self::core::MtMetadataMaterializer; +/// Materializes one canonical non-Metadata Metaplex account snapshot. +pub use self::core::materialize_metaplex_account_snapshot; +/// Materializes one canonical Metaplex Metadata account snapshot. +pub use self::core::materialize_metaplex_metadata_snapshot; +/// Materializes Token-2022 embedded metadata and group snapshots. +pub use self::core::materialize_token2022_metadata_snapshot; diff --git a/kb-lib/src/materializer/metadata/core.rs b/kb-lib/src/materializer/metadata/core.rs index ea64b17..4a983dd 100644 --- a/kb-lib/src/materializer/metadata/core.rs +++ b/kb-lib/src/materializer/metadata/core.rs @@ -1,10 +1,565 @@ // file: kb-lib/src/materializer/metadata/core.rs -// version: 1 +// version: 2 -//! Migration boundary for legacy crate `kb_materializer_metadata`. +//! Stable Token-2022 and Metaplex metadata snapshot materializer. -/// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_metadata"; +/// Initial materializer implementation placeholder. +#[derive(Clone, Debug, Default)] +pub struct MtMetadataMaterializer; -/// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::MtMaterializer for crate::MtMetadataMaterializer { + fn materializer_name(&self) -> &'static str { + return "kb_materializer_metadata"; + } + + fn materializer_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn accepts_event(&self, _event: &crate::MdDecodedProtocolEvent) -> bool { + return false; + } + + fn materialize_event( + &self, + event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result> { + let materialized = crate::MdMaterializedEvent { + signature: event.signature.clone(), + slot: event.slot, + decoded_family: event.event_family, + materialized_family: crate::MdMaterializedEventFamily::Metadata, + }; + return std::result::Result::Ok(std::vec![materialized]); + } +} + +/// Materialize embedded Token-2022 metadata, group, and group-member extensions. +pub fn materialize_token2022_metadata_snapshot( + account_key: &str, + slot: u64, + state: &crate::DcToken2022State, +) -> std::result::Result, String> { + if account_key.is_empty() { + return std::result::Result::Err( + "Token-2022 metadata snapshot requires a non-empty account key".to_string(), + ); + } + if state.kind != crate::DcToken2022StateKind::Mint { + return std::result::Result::Err( + "Token-2022 metadata snapshot requires a parsed mint state".to_string(), + ); + } + let mut outputs = std::vec::Vec::new(); + for entry in &state.extensions { + let projection_kind = match entry.extension_name { + "token_metadata" => std::option::Option::Some("token_metadata"), + "token_group" => std::option::Option::Some("token_group"), + "token_group_member" => std::option::Option::Some("token_group_member"), + _ => std::option::Option::None, + }; + let kind = match projection_kind { + std::option::Option::Some(value) => value, + std::option::Option::None => continue, + }; + outputs.push(crate::MtApiMaterializedOutput { + output_key: format!("token2022_metadata_snapshot:{account_key}:{slot}:{kind}"), + family: crate::MdMaterializedEventFamily::Metadata, + payload_json: serde_json::json!({ + "projectionVersion": 1, + "domain": "spl_token2022_embedded_metadata", + "projectionSemantics": "authoritative_bounded_mint_extension_snapshot", + "idempotenceKey": format!("token2022_metadata:{account_key}:{slot}:{kind}"), + "accountKey": account_key, + "slot": slot, + "programId": kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + "metadataSource": "token2022_embedded_tlv", + "projectionKind": kind, + "extensionType": entry.extension_type, + "extensionName": entry.extension_name, + "valueHex": entry.value_hex, + "valueFields": entry.value_fields, + "externalUriFetched": false, + "identityAuthority": "mint_address", + "finalAccountStateCaptured": true, + "provenance": { + "processorName": "kb_materializer_metadata", + "processorVersion": env!("CARGO_PKG_VERSION"), + "source": "bounded_token2022_state_parser" + } + }), + }); + } + return std::result::Result::Ok(outputs); +} + +/// Materialize one canonical Metaplex `MetadataV1` account snapshot. +/// +/// Account snapshots are authoritative for current state. Instruction observations may describe +/// mutations, but must not emit a second competing metadata-state projection. +pub fn materialize_metaplex_metadata_snapshot( + snapshot: &crate::DcMetadataMtmCanonicalMetadataAccountSnapshot, +) -> std::result::Result { + if !snapshot.provenance.committed { + return std::result::Result::Err( + "Metaplex metadata state materialization requires committed provenance".to_string(), + ); + } + if snapshot.identity.materialization + != crate::DcMetadataMtmCanonicalMaterializationPolicy::ActiveState + { + return std::result::Result::Err( + "Metaplex MetadataV1 materialization requires active-state policy".to_string(), + ); + } + let metadata = match &snapshot.state { + crate::DcMetadataMtmCanonicalMetadataAccountState::Metadata(value) => value, + _ => { + return std::result::Result::Err( + "Metaplex metadata materializer received another account layout".to_string(), + ); + }, + }; + let slot = snapshot.provenance.slot.map(|value| return value.to_string()); + let write_version = snapshot.provenance.write_version.map(|value| return value.to_string()); + let payload = serde_json::json!({ + "projectionVersion": 1, + "domain": "metaplex_token_metadata", + "projectionSemantics": "authoritative_committed_account_snapshot", + "stableId": snapshot.identity.stable_id, + "account": metadata.account, + "mint": metadata.mint, + "updateAuthority": metadata.update_authority, + "name": metadata.name, + "symbol": metadata.symbol, + "uri": metadata.uri, + "sellerFeeBasisPoints": metadata.seller_fee_basis_points, + "primarySaleHappened": metadata.primary_sale_happened, + "isMutable": metadata.is_mutable, + "layout": snapshot.identity.layout, + "layoutDiscriminant": snapshot.identity.discriminant, + "canonicalVersion": snapshot.identity.canonical_version, + "lifecycle": "active", + "materializationPolicy": "active_state", + "metadataSource": "metaplex_owned_account", + "accountState": metadata.payload_json, + "externalUriFetched": false, + "stateAuthority": "owned_account_snapshot", + "instructionProjectionRole": "mutation_observation_only_no_duplicate_state", + "provenance": { + "source": format!("{:?}", snapshot.provenance.source), + "slot": slot, + "writeVersion": write_version, + "signature": snapshot.provenance.signature, + "instructionIndex": snapshot.provenance.instruction_index, + "innerInstructionIndex": snapshot.provenance.inner_instruction_index, + "committed": snapshot.provenance.committed, + "processorName": "kb_materializer_metadata", + "processorVersion": env!("CARGO_PKG_VERSION") + } + }); + return std::result::Result::Ok(crate::MtApiMaterializedOutput { + output_key: format!("metaplex_metadata_state:{}", metadata.account), + family: crate::MdMaterializedEventFamily::Metadata, + payload_json: payload, + }); +} + +#[cfg(test)] +mod tests_metaplex_metadata_state { + pub(super) fn snapshot( + committed: bool, + ) -> crate::DcMetadataMtmCanonicalMetadataAccountSnapshot { + let metadata = crate::DcMetadataMtmMetadataAccountSnapshot { + account: "metadata111".to_string(), + bump: 1, + mint: "mint111".to_string(), + update_authority: "authority111".to_string(), + name: "Asset".to_string(), + symbol: "AST".to_string(), + uri: "https://example.invalid/asset.json".to_string(), + seller_fee_basis_points: 500, + primary_sale_happened: true, + is_mutable: false, + payload_json: serde_json::json!({ + "creators": [{"address":"creator111","verified":true,"share":100}], + "collection": {"verified":true,"key":"collection111"}, + "uses": {"useMethod":"Single","remaining":"0","total":"1"}, + "tokenStandard": "ProgrammableNonFungible", + "programmableConfig": {"ruleSet":"rules111"} + }), + }; + return crate::DcMetadataMtmCanonicalMetadataAccountSnapshot::from_metadata( + metadata, + crate::DcMetadataMtmCanonicalAccountProvenance { + source: crate::DcMetadataMtmCanonicalObservationSource::Backfill, + slot: std::option::Option::Some(42), + write_version: std::option::Option::Some(7), + signature: std::option::Option::Some("signature111".to_string()), + instruction_index: std::option::Option::Some(3), + inner_instruction_index: std::option::Option::None, + committed, + }, + ); + } + + #[test] + fn account_snapshot_is_one_stable_authoritative_metadata_projection() { + let first = crate::materialize_metaplex_metadata_snapshot(&snapshot(true)); + let second = crate::materialize_metaplex_metadata_snapshot(&snapshot(true)); + assert_eq!(first, second); + assert_eq!( + first.as_ref().map(|value| return value.output_key.as_str()), + std::result::Result::Ok("metaplex_metadata_state:metadata111") + ); + assert_eq!( + first.as_ref().map(|value| return value.payload_json["metadataSource"].clone()), + std::result::Result::Ok(serde_json::json!("metaplex_owned_account")) + ); + assert_eq!( + first + .as_ref() + .map(|value| return value.payload_json["instructionProjectionRole"].clone()), + std::result::Result::Ok(serde_json::json!( + "mutation_observation_only_no_duplicate_state" + )) + ); + assert_eq!( + first + .as_ref() + .map(|value| return value.payload_json["accountState"]["creators"][0]["share"] + .clone()), + std::result::Result::Ok(serde_json::json!(100)) + ); + } + + #[test] + fn uncommitted_or_non_metadata_state_is_rejected() { + assert!(crate::materialize_metaplex_metadata_snapshot(&snapshot(false)).is_err()); + let mut wrong = snapshot(true); + wrong.state = crate::DcMetadataMtmCanonicalMetadataAccountState::EditionMarker( + crate::DcMetadataMtmEditionMarkerAccountSnapshot { + account: "marker111".to_string(), + bump: 1, + mint: "mint111".to_string(), + kind: crate::DcMetadataMtmEditionMarkerAccountKind::EditionMarkerV1, + marker_group: std::option::Option::Some(0), + edition: 1, + byte_index: 0, + bit_mask: 64, + edition_taken: true, + ledger: std::vec![64], + payload_json: serde_json::json!({}), + }, + ); + assert!(crate::materialize_metaplex_metadata_snapshot(&wrong).is_err()); + } +} + +/// Materialize any canonical Metaplex account state other than `MetadataV1`. +/// +/// Every account address maps to one stable state key. Historical layouts remain materializable +/// with an explicit historical lifecycle, while execution policy remains independently disabled. +pub fn materialize_metaplex_account_snapshot( + snapshot: &crate::DcMetadataMtmCanonicalMetadataAccountSnapshot, +) -> std::result::Result { + if !snapshot.provenance.committed { + return std::result::Result::Err( + "Metaplex account-state materialization requires committed provenance".to_string(), + ); + } + let (projection_kind, fact_owner, state_json) = match &snapshot.state { + crate::DcMetadataMtmCanonicalMetadataAccountState::Metadata(_) => { + return std::result::Result::Err( + "MetadataV1 must use the dedicated metadata-state materializer".to_string(), + ); + }, + crate::DcMetadataMtmCanonicalMetadataAccountState::Edition(value) => { + ("edition_state", "kb_materializer_metadata", value.payload_json.clone()) + }, + crate::DcMetadataMtmCanonicalMetadataAccountState::EditionMarker(value) => { + ("edition_marker_state", "kb_materializer_metadata", value.payload_json.clone()) + }, + crate::DcMetadataMtmCanonicalMetadataAccountState::TokenRecord(value) => ( + "programmable_token_state", + "kb_materializer_lifecycle", + value.payload_json.clone(), + ), + crate::DcMetadataMtmCanonicalMetadataAccountState::DelegateRecord(value) => { + ("delegate_admin_state", "kb_materializer_admin", value.payload_json.clone()) + }, + crate::DcMetadataMtmCanonicalMetadataAccountState::AuthorityRecord(value) => { + ("authority_admin_state", "kb_materializer_admin", value.payload_json.clone()) + }, + crate::DcMetadataMtmCanonicalMetadataAccountState::TokenOwnedEscrow(value) => ( + "token_owned_escrow_state", + "kb_materializer_lifecycle", + value.payload_json.clone(), + ), + crate::DcMetadataMtmCanonicalMetadataAccountState::ReservationList(value) => ( + "historical_reservation_state", + "kb_materializer_metadata", + value.payload_json.clone(), + ), + }; + let lifecycle = match snapshot.identity.lifecycle { + crate::DcMetadataMtmCanonicalAccountLifecycle::Active => "active", + crate::DcMetadataMtmCanonicalAccountLifecycle::ActiveExperimental => "active_experimental", + crate::DcMetadataMtmCanonicalAccountLifecycle::Historical => "historical", + }; + let materialization_policy = match snapshot.identity.materialization { + crate::DcMetadataMtmCanonicalMaterializationPolicy::ActiveState => "active_state", + crate::DcMetadataMtmCanonicalMaterializationPolicy::HistoricalState => "historical_state", + }; + let execution_policy = match snapshot.identity.execution { + crate::DcMetadataMtmCanonicalExecutionPolicy::CurrentCandidate => "current_candidate", + crate::DcMetadataMtmCanonicalExecutionPolicy::ExperimentalCandidate => { + "experimental_candidate" + }, + crate::DcMetadataMtmCanonicalExecutionPolicy::NeverHistorical => "never_historical", + }; + return std::result::Result::Ok(crate::MtApiMaterializedOutput { + output_key: format!("metaplex_account_state:{}", snapshot.identity.account), + family: crate::MdMaterializedEventFamily::Metadata, + payload_json: serde_json::json!({ + "projectionVersion": 1, + "domain": "metaplex_token_metadata", + "projectionKind": projection_kind, + "projectionSemantics": "authoritative_committed_owned_account_snapshot", + "stableId": snapshot.identity.stable_id, + "account": snapshot.identity.account, + "programId": snapshot.identity.program_id, + "layout": snapshot.identity.layout, + "layoutDiscriminant": snapshot.identity.discriminant, + "canonicalVersion": snapshot.identity.canonical_version, + "lifecycle": lifecycle, + "materializationPolicy": materialization_policy, + "executionPolicy": execution_policy, + "factOwner": fact_owner, + "metadataSource": "metaplex_owned_account", + "accountState": state_json, + "instructionProjectionRole": "mutation_observation_only_no_duplicate_state", + "provenance": { + "source": format!("{:?}", snapshot.provenance.source), + "slot": snapshot.provenance.slot.map(|value: u64| return value.to_string()), + "writeVersion": snapshot.provenance.write_version.map(|value: u64| return value.to_string()), + "signature": snapshot.provenance.signature, + "instructionIndex": snapshot.provenance.instruction_index, + "innerInstructionIndex": snapshot.provenance.inner_instruction_index, + "committed": snapshot.provenance.committed, + "processorName": "kb_materializer_metadata", + "processorVersion": env!("CARGO_PKG_VERSION") + } + }), + }); +} + +#[cfg(test)] +mod tests_metaplex_account_state { + fn provenance() -> crate::DcMetadataMtmCanonicalAccountProvenance { + return crate::DcMetadataMtmCanonicalAccountProvenance { + source: crate::DcMetadataMtmCanonicalObservationSource::Backfill, + slot: std::option::Option::Some(90), + write_version: std::option::Option::Some(2), + signature: std::option::Option::None, + instruction_index: std::option::Option::None, + inner_instruction_index: std::option::Option::None, + committed: true, + }; + } + + #[test] + fn historical_edition_and_reservation_are_stable_materializable_state() { + let edition = crate::DcMetadataMtmCanonicalMetadataAccountSnapshot::from_edition( + crate::DcMetadataMtmEditionAccountSnapshot { + account: "master-v1".to_string(), + bump: 1, + mint: "mint-v1".to_string(), + kind: crate::DcMetadataMtmEditionAccountKind::MasterEditionV1, + supply: std::option::Option::Some(3), + max_supply: std::option::Option::Some(10), + parent: std::option::Option::None, + edition: std::option::Option::None, + printing_mint: std::option::Option::Some("printing".to_string()), + one_time_printing_authorization_mint: std::option::Option::Some( + "authorization".to_string(), + ), + payload_json: serde_json::json!({"supply":"3","maxSupply":"10"}), + }, + provenance(), + ); + let reservation = + crate::DcMetadataMtmCanonicalMetadataAccountSnapshot::from_reservation_list( + crate::DcMetadataMtmReservationListAccountSnapshot { + account: "reservation-v2".to_string(), + bump: 2, + kind: crate::DcMetadataMtmReservationListAccountKind::V2, + master_edition: "master-v1".to_string(), + resource: "resource".to_string(), + supply_snapshot: std::option::Option::Some(3), + reservations: std::vec::Vec::new(), + total_reservation_spots: 0, + current_reservation_spots: 0, + payload_json: serde_json::json!({"reservations":[]}), + }, + provenance(), + ); + let first = crate::materialize_metaplex_account_snapshot(&edition); + let second = crate::materialize_metaplex_account_snapshot(&reservation); + assert_eq!( + first.as_ref().map(|value| return value.payload_json["lifecycle"].clone()), + std::result::Result::Ok(serde_json::json!("historical")) + ); + assert_eq!( + first.as_ref().map(|value| return value.payload_json["executionPolicy"].clone()), + std::result::Result::Ok(serde_json::json!("never_historical")) + ); + assert_eq!( + second.as_ref().map(|value| return value.output_key.as_str()), + std::result::Result::Ok("metaplex_account_state:reservation-v2") + ); + } + + #[test] + fn programmable_delegate_authority_and_escrow_keep_unique_fact_owners() { + let token = crate::DcMetadataMtmCanonicalMetadataAccountSnapshot::from_token_record( + crate::DcMetadataMtmTokenRecordAccountSnapshot { + account: "token-record".to_string(), + bump: 1, + mint: "mint".to_string(), + token: "token".to_string(), + stored_bump: 1, + state: "Locked".to_string(), + rule_set_revision: std::option::Option::Some(4), + delegate: std::option::Option::Some("delegate".to_string()), + delegate_role: std::option::Option::Some("Transfer".to_string()), + locked_transfer: std::option::Option::Some("destination".to_string()), + locked: true, + payload_json: serde_json::json!({"state":"Locked"}), + }, + provenance(), + ); + let output = crate::materialize_metaplex_account_snapshot(&token); + assert_eq!( + output.as_ref().map(|value| return value.payload_json["factOwner"].clone()), + std::result::Result::Ok(serde_json::json!("kb_materializer_lifecycle")) + ); + assert_eq!( + output.as_ref().map(|value| return value.payload_json["projectionKind"].clone()), + std::result::Result::Ok(serde_json::json!("programmable_token_state")) + ); + } + + #[test] + fn uncommitted_and_metadata_snapshots_use_explicit_boundaries() { + let mut marker = crate::DcMetadataMtmCanonicalMetadataAccountSnapshot::from_edition_marker( + crate::DcMetadataMtmEditionMarkerAccountSnapshot { + account: "marker".to_string(), + bump: 1, + mint: "mint".to_string(), + kind: crate::DcMetadataMtmEditionMarkerAccountKind::EditionMarkerV2, + marker_group: std::option::Option::None, + edition: 8, + byte_index: 1, + bit_mask: 128, + edition_taken: true, + ledger: std::vec![0, 128], + payload_json: serde_json::json!({"editionTaken":true}), + }, + provenance(), + ); + marker.provenance.committed = false; + assert!(crate::materialize_metaplex_account_snapshot(&marker).is_err()); + assert!( + crate::materialize_metaplex_account_snapshot( + &super::tests_metaplex_metadata_state::snapshot(true) + ) + .is_err() + ); + } +} + +#[cfg(test)] +mod tests_token2022_state { + #[test] + fn embedded_metadata_group_and_member_have_distinct_stable_outputs() { + let state = crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Mint, + base_fields: serde_json::json!({"supply":"1","decimals":0}), + base_hex: "00".repeat(82), + account_type: std::option::Option::Some(1), + extensions: std::vec![ + crate::DcToken2022TlvEntry { + extension_type: 19, + extension_name: "token_metadata", + value_hex: "01".to_string(), + value_fields: serde_json::json!({"name":"Token","symbol":"TOK","uri":"https://example.invalid/token.json"}), + }, + crate::DcToken2022TlvEntry { + extension_type: 20, + extension_name: "token_group", + value_hex: "02".to_string(), + value_fields: serde_json::json!({"mint":"mint111","size":"1","maxSize":"10"}), + }, + crate::DcToken2022TlvEntry { + extension_type: 21, + extension_name: "token_group_member", + value_hex: "03".to_string(), + value_fields: serde_json::json!({"mint":"mint111","group":"group111","memberNumber":"1"}), + }, + ], + }; + let outputs = crate::materialize_token2022_metadata_snapshot("mint111", 9, &state); + assert_eq!(outputs.as_ref().map(|values| return values.len()), std::result::Result::Ok(3)); + assert_eq!( + outputs + .as_ref() + .map(|values| return values[0].payload_json["metadataSource"].clone()), + std::result::Result::Ok(serde_json::json!("token2022_embedded_tlv")) + ); + assert_eq!( + outputs + .as_ref() + .map(|values| return values[0].payload_json["externalUriFetched"].clone()), + std::result::Result::Ok(serde_json::json!(false)) + ); + assert_eq!( + outputs + .as_ref() + .map(|values| return values[1].payload_json["projectionKind"].clone()), + std::result::Result::Ok(serde_json::json!("token_group")) + ); + } + + #[test] + fn snapshot_is_idempotent_filters_unrelated_extensions_and_requires_mint_identity() { + let state = crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Mint, + base_fields: serde_json::json!({}), + base_hex: "00".repeat(82), + account_type: std::option::Option::Some(1), + extensions: std::vec![crate::DcToken2022TlvEntry { + extension_type: 1, + extension_name: "transfer_fee_config", + value_hex: "00".to_string(), + value_fields: serde_json::json!({}), + }], + }; + let first = crate::materialize_token2022_metadata_snapshot("mint111", 9, &state); + let second = crate::materialize_token2022_metadata_snapshot("mint111", 9, &state); + assert_eq!(first, second); + assert_eq!(first.as_ref().map(|values| return values.len()), std::result::Result::Ok(0)); + assert!(crate::materialize_token2022_metadata_snapshot("", 9, &state).is_err()); + let account_state = crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Account, + base_fields: serde_json::json!({}), + base_hex: "00".repeat(165), + account_type: std::option::Option::None, + extensions: std::vec::Vec::new(), + }; + assert!( + crate::materialize_token2022_metadata_snapshot("account111", 9, &account_state) + .is_err() + ); + } +} diff --git a/kb-lib/src/materializer/nft.rs b/kb-lib/src/materializer/nft.rs index 3220b11..2d615eb 100644 --- a/kb-lib/src/materializer/nft.rs +++ b/kb-lib/src/materializer/nft.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/nft.rs -// version: 1 +// version: 2 //! `nft` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/nft/core.rs b/kb-lib/src/materializer/nft/core.rs index 1a7c28e..31c83c8 100644 --- a/kb-lib/src/materializer/nft/core.rs +++ b/kb-lib/src/materializer/nft/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/nft/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_nft`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_nft"; +const LEGACY_CRATE: &str = "kb_materializer_nft"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/oracle.rs b/kb-lib/src/materializer/oracle.rs index 5bc5504..b0d18a8 100644 --- a/kb-lib/src/materializer/oracle.rs +++ b/kb-lib/src/materializer/oracle.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/oracle.rs -// version: 1 +// version: 2 //! `oracle` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/oracle/core.rs b/kb-lib/src/materializer/oracle/core.rs index c5c37e2..7fa19ba 100644 --- a/kb-lib/src/materializer/oracle/core.rs +++ b/kb-lib/src/materializer/oracle/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/oracle/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_oracle`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_oracle"; +const LEGACY_CRATE: &str = "kb_materializer_oracle"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/orderbook.rs b/kb-lib/src/materializer/orderbook.rs index 8c52bad..6fc67c4 100644 --- a/kb-lib/src/materializer/orderbook.rs +++ b/kb-lib/src/materializer/orderbook.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/orderbook.rs -// version: 1 +// version: 2 //! `orderbook` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/orderbook/core.rs b/kb-lib/src/materializer/orderbook/core.rs index c9690b1..f104c91 100644 --- a/kb-lib/src/materializer/orderbook/core.rs +++ b/kb-lib/src/materializer/orderbook/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/orderbook/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_orderbook`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_orderbook"; +const LEGACY_CRATE: &str = "kb_materializer_orderbook"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/perpetuals.rs b/kb-lib/src/materializer/perpetuals.rs index 79ab60f..f1000da 100644 --- a/kb-lib/src/materializer/perpetuals.rs +++ b/kb-lib/src/materializer/perpetuals.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/perpetuals.rs -// version: 1 +// version: 2 //! `perpetuals` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/perpetuals/core.rs b/kb-lib/src/materializer/perpetuals/core.rs index 632c795..321a421 100644 --- a/kb-lib/src/materializer/perpetuals/core.rs +++ b/kb-lib/src/materializer/perpetuals/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/perpetuals/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_perpetuals`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_perpetuals"; +const LEGACY_CRATE: &str = "kb_materializer_perpetuals"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/pool.rs b/kb-lib/src/materializer/pool.rs index 1802525..b561acf 100644 --- a/kb-lib/src/materializer/pool.rs +++ b/kb-lib/src/materializer/pool.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/pool.rs -// version: 1 +// version: 2 //! `pool` materializer family. -pub mod state; +mod state; diff --git a/kb-lib/src/materializer/pool/state.rs b/kb-lib/src/materializer/pool/state.rs index 98c2472..ad2d1b4 100644 --- a/kb-lib/src/materializer/pool/state.rs +++ b/kb-lib/src/materializer/pool/state.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/pool/state.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_pool_state`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_pool_state"; +const LEGACY_CRATE: &str = "kb_materializer_pool_state"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/rewards.rs b/kb-lib/src/materializer/rewards.rs index 757b67c..91fddba 100644 --- a/kb-lib/src/materializer/rewards.rs +++ b/kb-lib/src/materializer/rewards.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/rewards.rs -// version: 1 +// version: 2 //! `rewards` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/rewards/core.rs b/kb-lib/src/materializer/rewards/core.rs index c2a32b5..27e50f3 100644 --- a/kb-lib/src/materializer/rewards/core.rs +++ b/kb-lib/src/materializer/rewards/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/rewards/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_rewards`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_rewards"; +const LEGACY_CRATE: &str = "kb_materializer_rewards"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/risk.rs b/kb-lib/src/materializer/risk.rs index 5c5802c..937bbfd 100644 --- a/kb-lib/src/materializer/risk.rs +++ b/kb-lib/src/materializer/risk.rs @@ -1,6 +1,17 @@ // file: kb-lib/src/materializer/risk.rs -// version: 1 +// version: 2 //! `risk` materializer family. -pub mod core; +mod constants; +mod core; + +/// Stable processor name for SPL Token and ATA risk facts. +pub(crate) use self::constants::MT_RISK_PROCESSOR_NAME; +/// Stable projection contract version for SPL Token and ATA risk facts. +pub(crate) use self::constants::MT_RISK_PROJECTION_VERSION; +/// Canonical tracing target for SPL Token and ATA risk facts. +pub(crate) use self::constants::MT_RISK_TRACING_TARGET; + +/// Stable SPL Token and ATA risk materializer. +pub use self::core::MtRiskMaterializer; diff --git a/kb-lib/src/materializer/risk/constants.rs b/kb-lib/src/materializer/risk/constants.rs new file mode 100644 index 0000000..d8ebb01 --- /dev/null +++ b/kb-lib/src/materializer/risk/constants.rs @@ -0,0 +1,11 @@ +// file: kb-lib/src/materializer/risk/constants.rs +// version: 1 + +//! Local constants for fact-only risk projections. + +/// Stable processor name persisted by the replay ledger. +pub(crate) const MT_RISK_PROCESSOR_NAME: &str = "spl_token_risk"; +/// Stable projection payload contract version. +pub(crate) const MT_RISK_PROJECTION_VERSION: u32 = 2; +/// Canonical tracing target for this component. +pub(crate) const MT_RISK_TRACING_TARGET: &str = "kb-lib.materializer.risk"; diff --git a/kb-lib/src/materializer/risk/core.rs b/kb-lib/src/materializer/risk/core.rs index 1e75035..8da7b4b 100644 --- a/kb-lib/src/materializer/risk/core.rs +++ b/kb-lib/src/materializer/risk/core.rs @@ -1,10 +1,641 @@ // file: kb-lib/src/materializer/risk/core.rs -// version: 1 +// version: 2 -//! Migration boundary for legacy crate `kb_materializer_risk`. +//! Stable fact-only risk projections for committed SPL Token and ATA observations. -/// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_risk"; +const ACCEPTED_FAMILIES: &[crate::MdEventFamily] = &[ + crate::MdEventFamily::TokenAccount, + crate::MdEventFamily::TokenMint, + crate::MdEventFamily::Admin, + crate::MdEventFamily::Lifecycle, + crate::MdEventFamily::Audit, +]; +const RISK_ENTRIES: &[&str] = &[ + "approve", + "approve_checked", + "revoke", + "freeze_account", + "thaw_account", + "set_authority", + "initialize_multisig", + "initialize_multisig2", + "initialize_default_account_state", + "update_default_account_state", + "enable_required_transfer_memos", + "disable_required_transfer_memos", + "enable_cpi_guard", + "disable_cpi_guard", + "initialize_non_transferable_mint", + "initialize_pausable_config", + "pause", + "resume", + "initialize_permissioned_burn", + "enable_confidential_credits", + "disable_confidential_credits", + "enable_non_confidential_credits", + "disable_non_confidential_credits", +]; -/// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +/// Stable fact-only classic SPL Token risk materializer. +#[derive(Clone, Debug, Default)] +pub struct MtRiskMaterializer; + +impl crate::MtMaterializer for crate::MtRiskMaterializer { + fn materializer_name(&self) -> &'static str { + return "kb_materializer_risk"; + } + fn materializer_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + fn accepts_event(&self, event: &crate::MdDecodedProtocolEvent) -> bool { + return accepts_event(event); + } + fn materialize_event( + &self, + _event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} + +impl crate::MtApiEventMaterializer for crate::MtRiskMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { + name: crate::MT_RISK_PROCESSOR_NAME.to_string(), + version: env!("CARGO_PKG_VERSION").to_string(), + }; + } + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { + return ACCEPTED_FAMILIES; + } + fn accepts_observation(&self, observation: &crate::DcApiDecodedObservation) -> bool { + return accepts_event(&observation.event); + } + fn transaction_policy( + &self, + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulCommittedOnly; + } + fn materialize( + &self, + observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { + if !accepts_event(&observation.event) { + return crate::MtApiMaterializerExecutionResult::ignored(); + } + if observation.transaction_failed || !observation.observation_committed { + return crate::MtApiMaterializerExecutionResult::refused( + "uncommitted_token_risk_fact_refused", + "failed or uncommitted SPL Token or ATA observations cannot create risk facts", + ); + } + let ata = is_ata_recovery(&observation.event); + if ata && !ata_addresses_valid(&observation.payload_json) { + return crate::MtApiMaterializerExecutionResult::refused( + "invalid_nested_ata_risk_fact_refused", + "nested ATA risk fact requires all three canonical address validations", + ); + } + let operation = observation.event.event_name.0.as_str(); + let parameters = observation + .payload_json + .get("parameters") + .cloned() + .unwrap_or(serde_json::Value::Null); + let accounts = observation + .payload_json + .get("accounts") + .cloned() + .unwrap_or(serde_json::Value::Null); + let authority = observation + .payload_json + .get("authority") + .cloned() + .unwrap_or(serde_json::Value::Null); + let addresses = observation + .payload_json + .get("addresses") + .cloned() + .unwrap_or(serde_json::Value::Null); + let risk_kind = match risk_kind(operation, ¶meters, &accounts) { + std::option::Option::Some(value) => value, + std::option::Option::None => { + return crate::MtApiMaterializerExecutionResult::ignored(); + }, + }; + let output = crate::MtApiMaterializedOutput { + output_key: if ata { + format!("ata_risk_fact:{risk_kind}:0") + } else { + format!("spl_token_risk_fact:{risk_kind}:0") + }, + family: crate::MdMaterializedEventFamily::Risk, + payload_json: serde_json::json!({ + "projectionVersion": crate::MT_RISK_PROJECTION_VERSION, + "domain": if ata { "spl_associated_token_account_risk_fact" } else { "spl_token_risk_fact" }, + "riskKind": risk_kind, + "operation": operation, + "signature": observation.event.signature.0.clone(), + "slot": observation.event.slot.0, + "instructionPath": observation.event.instruction_path.0.clone(), + "programId": observation.event.program_id.0.clone(), + "parameters": parameters, + "accounts": accounts, + "authority": authority, + "addresses": addresses, + "interpretation": { + "score": serde_json::Value::Null, + "severity": serde_json::Value::Null, + "factOnly": true + }, + "committed": true, + "provenance": { + "processorName": crate::MT_RISK_PROCESSOR_NAME, + "processorVersion": env!("CARGO_PKG_VERSION"), + "sourceEventKey": observation.event_key.clone() + } + }), + }; + tracing::debug!(target: crate::MT_RISK_TRACING_TARGET, action = "materialize_token_risk_fact", risk_kind, operation, ata, "materialize committed SPL Token or ATA risk fact"); + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, + outputs: std::vec![output], + diagnostics: std::vec::Vec::new(), + }; + } +} + +fn accepts_event(event: &crate::MdDecodedProtocolEvent) -> bool { + let token_program = (event.program_id.0 == kb_program_ids::SPL_TOKEN_PROGRAM_ID + && event.surface_code.0 == "spl_token") + || (event.program_id.0 == kb_program_ids::SPL_TOKEN2022_PROGRAM_ID + && event.surface_code.0 == "spl_token2022"); + let token_risk = token_program && RISK_ENTRIES.contains(&event.event_name.0.as_str()); + return ACCEPTED_FAMILIES.contains(&event.event_family) + && (token_risk || is_ata_recovery(event)); +} + +fn is_ata_recovery(event: &crate::MdDecodedProtocolEvent) -> bool { + return event.program_id.0 == kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID + && event.surface_code.0 == "spl_associated_token_account" + && event.event_family == crate::MdEventFamily::Lifecycle + && event.event_name.0 == "recover_nested"; +} + +fn ata_addresses_valid(payload: &serde_json::Value) -> bool { + let addresses = match payload.get("addresses") { + std::option::Option::Some(value) => value, + std::option::Option::None => return false, + }; + let token_supported = addresses + .get("tokenProgram") + .and_then(|value| return value.get("supported")) + .and_then(serde_json::Value::as_bool) + == std::option::Option::Some(true); + let token_program_id = addresses + .get("tokenProgram") + .and_then(|value| return value.get("programId")) + .and_then(serde_json::Value::as_str); + let token_program_exact = matches!( + token_program_id, + std::option::Option::Some(kb_program_ids::SPL_TOKEN_PROGRAM_ID) + | std::option::Option::Some(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID) + ); + return token_supported + && token_program_exact + && [ + "ownerAssociatedTokenAccount", + "nestedAssociatedTokenAccount", + "walletNestedMintAssociatedTokenAccount", + ] + .iter() + .all(|field| { + let address = match addresses.get(*field) { + std::option::Option::Some(value) => value, + std::option::Option::None => return false, + }; + return address + .get("observed") + .and_then(serde_json::Value::as_str) + .is_some_and(|value| return !value.is_empty()) + && address.get("valid").and_then(serde_json::Value::as_bool) + == std::option::Option::Some(true); + }); +} + +fn risk_kind( + operation: &str, + parameters: &serde_json::Value, + accounts: &serde_json::Value, +) -> std::option::Option<&'static str> { + return match operation { + "recover_nested" => std::option::Option::Some("nested_ata_anti_pattern_recovered"), + "approve" | "approve_checked" => std::option::Option::Some("delegation_allowance_granted"), + "revoke" => std::option::Option::Some("delegation_revoked"), + "freeze_account" => std::option::Option::Some("account_frozen"), + "thaw_account" => std::option::Option::Some("account_thawed"), + "set_authority" + if parameters.get("newAuthority").is_some_and(serde_json::Value::is_null) => + { + std::option::Option::Some("authority_revoked") + }, + "set_authority" => std::option::Option::Some("authority_changed"), + "initialize_default_account_state" | "update_default_account_state" => { + std::option::Option::Some("default_account_state_configured") + }, + "enable_required_transfer_memos" => { + std::option::Option::Some("required_transfer_memos_enabled") + }, + "disable_required_transfer_memos" => { + std::option::Option::Some("required_transfer_memos_disabled") + }, + "enable_cpi_guard" => std::option::Option::Some("cpi_guard_enabled"), + "disable_cpi_guard" => std::option::Option::Some("cpi_guard_disabled"), + "initialize_non_transferable_mint" => { + std::option::Option::Some("non_transferable_mint_configured") + }, + "initialize_pausable_config" => std::option::Option::Some("pausable_mint_configured"), + "pause" => std::option::Option::Some("mint_activity_paused"), + "resume" => std::option::Option::Some("mint_activity_resumed"), + "initialize_permissioned_burn" => std::option::Option::Some("permissioned_burn_configured"), + "enable_confidential_credits" => std::option::Option::Some("confidential_credits_enabled"), + "disable_confidential_credits" => { + std::option::Option::Some("confidential_credits_disabled") + }, + "enable_non_confidential_credits" => { + std::option::Option::Some("non_confidential_credits_enabled") + }, + "disable_non_confidential_credits" => { + std::option::Option::Some("non_confidential_credits_disabled") + }, + "initialize_multisig" | "initialize_multisig2" => { + let m = parameters.get("m").and_then(serde_json::Value::as_u64).unwrap_or(0); + let n = role_count(accounts, "multisig_member"); + if m == 1 && n > 1 { + std::option::Option::Some("weak_multisig_threshold") + } else { + std::option::Option::None + } + }, + _ => std::option::Option::None, + }; +} + +fn role_count(accounts: &serde_json::Value, role: &str) -> usize { + return accounts + .as_array() + .map(|rows| { + return rows + .iter() + .filter(|row| { + return row.get("role").and_then(serde_json::Value::as_str) + == std::option::Option::Some(role); + }) + .count(); + }) + .unwrap_or(0); +} + +#[cfg(test)] +mod tests { + fn observation( + entry: &str, + family: crate::MdEventFamily, + parameters: serde_json::Value, + failed: bool, + ) -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { + event_key: format!("token:{entry}:0"), + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(1), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()), + protocol_code: crate::MdProtocolCode("spl_token".to_string()), + surface_code: crate::MdSurfaceCode("spl_token".to_string()), + event_code: crate::MdEventCode(format!("spl_token.{entry}")), + event_name: crate::MdEventName(entry.to_string()), + event_family: family, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::ManualExact, + }, + payload_json: serde_json::json!({"parameters":parameters,"accounts":[{"role":"multisig_member"},{"role":"multisig_member"}],"authority":{}}), + transaction_failed: failed, + transaction_error: std::option::Option::None, + observation_committed: !failed, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, + evidence: std::vec!["fixture".to_string()], + }, + }; + } + + fn token2022_observation( + entry: &str, + family: crate::MdEventFamily, + parameters: serde_json::Value, + failed: bool, + ) -> crate::DcApiDecodedObservation { + let mut observation = observation(entry, family, parameters, failed); + observation.event.program_id = + crate::MdProgramId(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID.to_string()); + observation.event.protocol_code = crate::MdProtocolCode("spl_token2022".to_string()); + observation.event.surface_code = crate::MdSurfaceCode("spl_token2022".to_string()); + observation.event.event_code = crate::MdEventCode(format!("spl_token2022.{entry}")); + observation.event_key = format!("token2022:{entry}:0"); + return observation; + } + + fn nested_ata_observation(failed: bool, valid: bool) -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { + event_key: "ata:recover_nested:0".to_string(), + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(2), + instruction_path: crate::MdInstructionPath("1/0".to_string()), + program_id: crate::MdProgramId( + kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string(), + ), + protocol_code: crate::MdProtocolCode("spl_associated_token_account".to_string()), + surface_code: crate::MdSurfaceCode("spl_associated_token_account".to_string()), + event_code: crate::MdEventCode( + "spl_associated_token_account.recover_nested".to_string(), + ), + event_name: crate::MdEventName("recover_nested".to_string()), + event_family: crate::MdEventFamily::Lifecycle, + source_kind: crate::MdEventSourceKind::InnerInstruction, + confidence: crate::MdDecoderConfidence::ManualExact, + }, + payload_json: serde_json::json!({ + "addresses": { + "tokenProgram": { + "programId": kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + "kind": "token2022", + "supported": true + }, + "ownerAssociatedTokenAccount": {"observed":"ownerAta","valid":valid}, + "nestedAssociatedTokenAccount": {"observed":"nestedAta","valid":valid}, + "walletNestedMintAssociatedTokenAccount": {"observed":"destinationAta","valid":valid} + } + }), + transaction_failed: failed, + transaction_error: std::option::Option::None, + observation_committed: !failed, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, + evidence: std::vec!["fixture".to_string()], + }, + }; + } + + #[test] + fn approval_and_authority_revocation_are_fact_only_without_score() { + for (entry, family, parameters, expected) in [ + ( + "approve_checked", + crate::MdEventFamily::TokenAccount, + serde_json::json!({"amountRaw":"10"}), + "delegation_allowance_granted", + ), + ( + "set_authority", + crate::MdEventFamily::Admin, + serde_json::json!({"newAuthority":null}), + "authority_revoked", + ), + ] { + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtRiskMaterializer, + &observation(entry, family, parameters, false), + ); + assert_eq!(result.outputs[0].payload_json["riskKind"], expected); + assert!(result.outputs[0].payload_json["interpretation"]["score"].is_null()); + } + } + + #[test] + fn token2022_revocation_is_owned_once_without_an_invented_score() { + let observation = token2022_observation( + "set_authority", + crate::MdEventFamily::Admin, + serde_json::json!({"newAuthority":null}), + false, + ); + let result = + crate::MtApiEventMaterializer::materialize(&crate::MtRiskMaterializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs.len(), 1); + assert_eq!(result.outputs[0].payload_json["riskKind"], "authority_revoked"); + assert!(result.outputs[0].payload_json["interpretation"]["score"].is_null()); + } + + #[test] + fn only_structurally_weak_multisig_creates_risk_fact() { + let weak = observation( + "initialize_multisig2", + crate::MdEventFamily::Admin, + serde_json::json!({"m":1}), + false, + ); + let strong = observation( + "initialize_multisig2", + crate::MdEventFamily::Admin, + serde_json::json!({"m":2}), + false, + ); + assert_eq!( + crate::MtApiEventMaterializer::materialize(&crate::MtRiskMaterializer, &weak).status, + crate::MtApiMaterializerOutcomeStatus::Inserted + ); + assert_eq!( + crate::MtApiEventMaterializer::materialize(&crate::MtRiskMaterializer, &strong).status, + crate::MtApiMaterializerOutcomeStatus::Ignored + ); + } + + #[test] + fn failed_risk_fact_is_refused() { + let failed = observation( + "freeze_account", + crate::MdEventFamily::TokenAccount, + serde_json::json!({}), + true, + ); + assert_eq!( + crate::MtApiEventMaterializer::materialize(&crate::MtRiskMaterializer, &failed).status, + crate::MtApiMaterializerOutcomeStatus::Refused + ); + } + + #[test] + fn committed_nested_ata_recovery_creates_one_fact_without_score() { + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtRiskMaterializer, + &nested_ata_observation(false, true), + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs.len(), 1); + assert_eq!( + result.outputs[0].output_key, + "ata_risk_fact:nested_ata_anti_pattern_recovered:0" + ); + assert_eq!(result.outputs[0].payload_json["riskKind"], "nested_ata_anti_pattern_recovered"); + assert_eq!( + result.outputs[0].payload_json["domain"], + "spl_associated_token_account_risk_fact" + ); + assert!(result.outputs[0].payload_json["interpretation"]["score"].is_null()); + assert!(result.outputs[0].payload_json["interpretation"]["severity"].is_null()); + } + + #[test] + fn failed_or_invalid_nested_ata_recovery_creates_no_risk_fact() { + for observation in + [nested_ata_observation(true, true), nested_ata_observation(false, false)] + { + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtRiskMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); + assert!(result.outputs.is_empty()); + } + } + + #[test] + fn ata_matrix_declares_the_single_compiled_risk_fact() { + let matrix: serde_json::Value = match serde_json::from_str(include_str!( + "../../../../docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json" + )) { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => panic!("ATA matrix is invalid: {error}"), + }; + let instructions = match matrix["instructions"].as_array() { + std::option::Option::Some(value) => value, + std::option::Option::None => panic!("ATA matrix instructions are absent"), + }; + let recover = match instructions.iter().find(|row| { + return row.get("name").and_then(serde_json::Value::as_str) + == std::option::Option::Some("recover_nested"); + }) { + std::option::Option::Some(value) => value, + std::option::Option::None => panic!("RecoverNested matrix entry is absent"), + }; + assert!(recover["authorizedProjections"].as_array().is_some_and(|values| { + return values.iter().any(|value| { + return value == "risk:nested_ata_anti_pattern_recovered"; + }); + })); + assert_eq!( + matrix["materializationContract"]["projectionOwners"][1]["facts"], + serde_json::json!(["nested_ata_anti_pattern_recovered"]) + ); + } + + #[test] + fn token2022_compliance_toggles_are_projected_as_fact_only_risk_rows() { + for (entry, expected) in [ + ("initialize_default_account_state", "default_account_state_configured"), + ("enable_required_transfer_memos", "required_transfer_memos_enabled"), + ("disable_required_transfer_memos", "required_transfer_memos_disabled"), + ("enable_cpi_guard", "cpi_guard_enabled"), + ("disable_cpi_guard", "cpi_guard_disabled"), + ] { + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtRiskMaterializer, + &token2022_observation( + entry, + crate::MdEventFamily::Audit, + serde_json::json!({}), + false, + ), + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs[0].payload_json["riskKind"], expected); + assert_eq!(result.outputs[0].payload_json["interpretation"]["factOnly"], true); + assert!(result.outputs[0].payload_json["interpretation"]["score"].is_null()); + } + } + + #[test] + fn token2022_restriction_and_pause_facts_have_unique_stable_kinds() { + for (entry, family, expected) in [ + ( + "initialize_non_transferable_mint", + crate::MdEventFamily::TokenMint, + "non_transferable_mint_configured", + ), + ( + "initialize_pausable_config", + crate::MdEventFamily::TokenAccount, + "pausable_mint_configured", + ), + ("pause", crate::MdEventFamily::TokenAccount, "mint_activity_paused"), + ("resume", crate::MdEventFamily::TokenAccount, "mint_activity_resumed"), + ( + "initialize_permissioned_burn", + crate::MdEventFamily::TokenAccount, + "permissioned_burn_configured", + ), + ] { + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtRiskMaterializer, + &token2022_observation(entry, family, serde_json::json!({}), false), + ); + assert_eq!(result.outputs[0].payload_json["riskKind"], expected); + } + } + #[test] + fn confidential_credit_toggles_are_fact_only_and_keep_wire_parameters() { + for (entry, credit_kind, enabled, expected) in [ + ( + "enable_confidential_credits", + "confidential", + true, + "confidential_credits_enabled", + ), + ( + "disable_confidential_credits", + "confidential", + false, + "confidential_credits_disabled", + ), + ( + "enable_non_confidential_credits", + "non_confidential", + true, + "non_confidential_credits_enabled", + ), + ( + "disable_non_confidential_credits", + "non_confidential", + false, + "non_confidential_credits_disabled", + ), + ] { + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtRiskMaterializer, + &token2022_observation( + entry, + crate::MdEventFamily::TokenAccount, + serde_json::json!({ + "extension":"confidential_transfer", + "creditKind":credit_kind, + "enabled":enabled, + }), + false, + ), + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs.len(), 1); + assert_eq!(result.outputs[0].payload_json["riskKind"], expected); + assert_eq!(result.outputs[0].payload_json["parameters"]["creditKind"], credit_kind); + assert_eq!(result.outputs[0].payload_json["parameters"]["enabled"], enabled); + assert_eq!(result.outputs[0].payload_json["interpretation"]["factOnly"], true); + assert!(result.outputs[0].payload_json["interpretation"]["score"].is_null()); + } + } +} diff --git a/kb-lib/src/materializer/routing.rs b/kb-lib/src/materializer/routing.rs index 7c72e13..eea8bb9 100644 --- a/kb-lib/src/materializer/routing.rs +++ b/kb-lib/src/materializer/routing.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/routing.rs -// version: 1 +// version: 2 //! `routing` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/routing/core.rs b/kb-lib/src/materializer/routing/core.rs index 832960f..137d00c 100644 --- a/kb-lib/src/materializer/routing/core.rs +++ b/kb-lib/src/materializer/routing/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/routing/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_routing`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_routing"; +const LEGACY_CRATE: &str = "kb_materializer_routing"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/staking.rs b/kb-lib/src/materializer/staking.rs index 05bf404..8c8f7a2 100644 --- a/kb-lib/src/materializer/staking.rs +++ b/kb-lib/src/materializer/staking.rs @@ -1,12 +1,13 @@ // file: kb-lib/src/materializer/staking.rs -// version: 2 +// version: 3 //! `staking` materializer family. mod constants; -pub mod core; +mod core; -pub(crate) use crate::materializer::staking::constants::TRACING_TARGET as MATERIALIZER_STAKING_TRACING_TARGET; +/// Canonical tracing target for the native stake and vote materializer. +pub(crate) use self::constants::MT_STAKING_TRACING_TARGET; /// Stable native stake and vote materializer. -pub use crate::materializer::staking::core::StakingMaterializer; +pub use self::core::MtStakingMaterializer; diff --git a/kb-lib/src/materializer/staking/constants.rs b/kb-lib/src/materializer/staking/constants.rs index a75272e..5be4894 100644 --- a/kb-lib/src/materializer/staking/constants.rs +++ b/kb-lib/src/materializer/staking/constants.rs @@ -4,4 +4,4 @@ //! Local constants for the native stake and vote materializer. /// Canonical tracing target for this component. -pub(crate) const TRACING_TARGET: &str = "kb-lib.materializer.staking"; +pub(crate) const MT_STAKING_TRACING_TARGET: &str = "kb-lib.materializer.staking"; diff --git a/kb-lib/src/materializer/staking/core.rs b/kb-lib/src/materializer/staking/core.rs index e7438f8..4ea45ec 100644 --- a/kb-lib/src/materializer/staking/core.rs +++ b/kb-lib/src/materializer/staking/core.rs @@ -3,11 +3,11 @@ //! Instruction-level staking projections for native Stake and Vote observations. -const ACCEPTED_FAMILIES: &[crate::EventFamily] = &[ - crate::EventFamily::Lifecycle, - crate::EventFamily::Admin, - crate::EventFamily::Staking, - crate::EventFamily::Reward, +const ACCEPTED_FAMILIES: &[crate::MdEventFamily] = &[ + crate::MdEventFamily::Lifecycle, + crate::MdEventFamily::Admin, + crate::MdEventFamily::Staking, + crate::MdEventFamily::Reward, ]; const STAKE_SURFACE: &str = "solana_native_stake"; const VOTE_SURFACE: &str = "solana_native_vote"; @@ -82,10 +82,10 @@ impl ProjectionKind { }; } - fn family(self) -> crate::MaterializedEventFamily { + fn family(self) -> crate::MdMaterializedEventFamily { return match self { - Self::VoteReward => crate::MaterializedEventFamily::Reward, - _ => crate::MaterializedEventFamily::Staking, + Self::VoteReward => crate::MdMaterializedEventFamily::Reward, + _ => crate::MdMaterializedEventFamily::Staking, }; } @@ -96,9 +96,9 @@ impl ProjectionKind { /// Stable staking materializer for committed native Stake and Vote observations. #[derive(Clone, Debug, Default)] -pub struct StakingMaterializer; +pub struct MtStakingMaterializer; -impl crate::Materializer for crate::StakingMaterializer { +impl crate::MtMaterializer for crate::MtStakingMaterializer { fn materializer_name(&self) -> &'static str { return "kb_materializer_staking"; } @@ -107,35 +107,35 @@ impl crate::Materializer for crate::StakingMaterializer { return env!("CARGO_PKG_VERSION"); } - fn accepts_event(&self, event: &crate::DecodedProtocolEvent) -> bool { + fn accepts_event(&self, event: &crate::MdDecodedProtocolEvent) -> bool { return family_is_accepted(event.event_family) && projection(event.surface_code.0.as_str(), event.event_name.0.as_str()).is_some(); } fn materialize_event( &self, - event: &crate::DecodedProtocolEvent, - ) -> kb_core::Result> { - if !crate::Materializer::accepts_event(self, event) { + event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result> { + if !crate::MtMaterializer::accepts_event(self, event) { return std::result::Result::Ok(std::vec::Vec::new()); } return std::result::Result::Ok(std::vec::Vec::new()); } } -impl crate::EventMaterializer for crate::StakingMaterializer { - fn identity(&self) -> crate::MaterializerIdentity { - return crate::MaterializerIdentity { +impl crate::MtApiEventMaterializer for crate::MtStakingMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { name: "solana_native_staking".to_string(), version: env!("CARGO_PKG_VERSION").to_string(), }; } - fn accepted_families(&self) -> &'static [crate::EventFamily] { + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { return ACCEPTED_FAMILIES; } - fn accepts_observation(&self, observation: &crate::DecodedObservation) -> bool { + fn accepts_observation(&self, observation: &crate::DcApiDecodedObservation) -> bool { return family_is_accepted(observation.event.event_family) && projection( observation.event.surface_code.0.as_str(), @@ -146,15 +146,15 @@ impl crate::EventMaterializer for crate::StakingMaterializer { fn transaction_policy( &self, - _family: crate::EventFamily, - ) -> crate::MaterializationTransactionPolicy { - return crate::MaterializationTransactionPolicy::SuccessfulCommittedOnly; + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulCommittedOnly; } fn materialize( &self, - observation: &crate::DecodedObservation, - ) -> crate::MaterializerExecutionResult { + observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { let projection = match projection( observation.event.surface_code.0.as_str(), observation.event.event_name.0.as_str(), @@ -162,22 +162,22 @@ impl crate::EventMaterializer for crate::StakingMaterializer { std::option::Option::Some(value) => value, std::option::Option::None => { tracing::debug!( - target: crate::MATERIALIZER_STAKING_TRACING_TARGET, + target: crate::MT_STAKING_TRACING_TARGET, action = "materialize_staking", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), accepted = false, "ignore observation outside supported native staking projections" ); - return crate::MaterializerExecutionResult::ignored(); + return crate::MtApiMaterializerExecutionResult::ignored(); }, }; if !family_is_accepted(observation.event.event_family) { - return crate::MaterializerExecutionResult::ignored(); + return crate::MtApiMaterializerExecutionResult::ignored(); } if observation.transaction_failed || !observation.observation_committed { tracing::debug!( - target: crate::MATERIALIZER_STAKING_TRACING_TARGET, + target: crate::MT_STAKING_TRACING_TARGET, action = "materialize_staking", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), @@ -185,7 +185,7 @@ impl crate::EventMaterializer for crate::StakingMaterializer { transaction_failed = observation.transaction_failed, "refuse uncommitted native staking observation" ); - return crate::MaterializerExecutionResult::refused( + return crate::MtApiMaterializerExecutionResult::refused( "failed_transaction_staking_refused", "failed or uncommitted native Stake/Vote observations cannot create staking outputs", ); @@ -201,7 +201,7 @@ impl crate::EventMaterializer for crate::StakingMaterializer { .cloned() .unwrap_or(serde_json::Value::Null); let operation = observation.event.event_name.0.clone(); - let output = crate::MaterializedOutput { + let output = crate::MtApiMaterializedOutput { output_key: projection.output_key(operation.as_str()), family: projection.family(), payload_json: serde_json::json!({ @@ -225,7 +225,7 @@ impl crate::EventMaterializer for crate::StakingMaterializer { }), }; tracing::debug!( - target: crate::MATERIALIZER_STAKING_TRACING_TARGET, + target: crate::MT_STAKING_TRACING_TARGET, action = "materialize_staking", surface_code = %observation.event.surface_code.0.as_str(), entry_code = %observation.event.event_name.0.as_str(), @@ -233,15 +233,15 @@ impl crate::EventMaterializer for crate::StakingMaterializer { output_count = 1_usize, "materialize committed native staking observation" ); - return crate::MaterializerExecutionResult { - status: crate::MaterializerOutcomeStatus::Inserted, + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, outputs: std::vec![output], diagnostics: std::vec::Vec::new(), }; } } -fn family_is_accepted(family: crate::EventFamily) -> bool { +fn family_is_accepted(family: crate::MdEventFamily) -> bool { return ACCEPTED_FAMILIES.iter().any(|accepted| return *accepted == family); } @@ -593,25 +593,25 @@ mod tests { fn observation( surface_code: &str, entry_code: &str, - family: crate::EventFamily, + family: crate::MdEventFamily, transaction_failed: bool, accounts: serde_json::Value, parameters: serde_json::Value, - ) -> crate::DecodedObservation { - return crate::DecodedObservation { + ) -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { event_key: format!("{entry_code}:0"), - event: crate::DecodedProtocolEvent { - signature: crate::Signature("signature".to_string()), - slot: crate::Slot(42), - instruction_path: crate::InstructionPath("0".to_string()), - program_id: crate::ProgramId("program-id".to_string()), - protocol_code: crate::ProtocolCode("solana_native".to_string()), - surface_code: crate::SurfaceCode(surface_code.to_string()), - event_code: crate::EventCode(format!("{surface_code}.{entry_code}")), - event_name: crate::EventName(entry_code.to_string()), + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId("program-id".to_string()), + protocol_code: crate::MdProtocolCode("solana_native".to_string()), + surface_code: crate::MdSurfaceCode(surface_code.to_string()), + event_code: crate::MdEventCode(format!("{surface_code}.{entry_code}")), + event_name: crate::MdEventName(entry_code.to_string()), event_family: family, - source_kind: crate::EventSourceKind::Instruction, - confidence: crate::DecoderConfidence::ManualExact, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::ManualExact, }, payload_json: serde_json::json!({"accounts": accounts, "parameters": parameters}), transaction_failed, @@ -621,9 +621,9 @@ mod tests { std::option::Option::None }, observation_committed: !transaction_failed, - proof: crate::DecoderProof { - kind: crate::DecoderProofKind::Manual, - confidence: crate::DecoderConfidence::ManualExact, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, evidence: std::vec!["fixture".to_string()], }, }; @@ -635,18 +635,18 @@ mod tests { #[test] fn stake_initialize_creates_instructional_staking_projection() { - let materializer = crate::StakingMaterializer; + let materializer = crate::MtStakingMaterializer; let observation = observation( super::STAKE_SURFACE, "initialize", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, serde_json::json!([account("stake_account", "stake111")]), serde_json::json!({"authorized": {"staker": "staker111"}}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Inserted); - assert_eq!(result.outputs[0].family, crate::MaterializedEventFamily::Staking); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs[0].family, crate::MdMaterializedEventFamily::Staking); assert_eq!(result.outputs[0].output_key, "stake_account:initialize:0"); assert_eq!(result.outputs[0].payload_json["projection"]["stakeAccount"], "stake111"); assert_eq!( @@ -657,11 +657,11 @@ mod tests { #[test] fn stake_authority_and_lockup_events_are_projected() { - let materializer = crate::StakingMaterializer; + let materializer = crate::MtStakingMaterializer; let authority = observation( super::STAKE_SURFACE, "authorize_with_seed", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, serde_json::json!([account("stake_account", "stake111")]), serde_json::json!({ @@ -674,7 +674,7 @@ mod tests { let lockup = observation( super::STAKE_SURFACE, "set_lockup_checked", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, serde_json::json!([ account("stake_account", "stake111"), @@ -682,8 +682,9 @@ mod tests { ]), serde_json::json!({"epoch": 42}), ); - let authority_result = crate::EventMaterializer::materialize(&materializer, &authority); - let lockup_result = crate::EventMaterializer::materialize(&materializer, &lockup); + let authority_result = + crate::MtApiEventMaterializer::materialize(&materializer, &authority); + let lockup_result = crate::MtApiEventMaterializer::materialize(&materializer, &lockup); assert_eq!(authority_result.outputs[0].output_key, "stake_authority:authorize_with_seed:0"); assert_eq!( authority_result.outputs[0].payload_json["projection"]["newAuthority"], @@ -698,11 +699,11 @@ mod tests { #[test] fn stake_value_projection_does_not_duplicate_lamport_changes() { - let materializer = crate::StakingMaterializer; + let materializer = crate::MtStakingMaterializer; let observation = observation( super::STAKE_SURFACE, "withdraw", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, serde_json::json!([ account("stake_account", "stake111"), @@ -710,7 +711,7 @@ mod tests { ]), serde_json::json!({"lamports": 99}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); assert_eq!(result.outputs[0].output_key, "stake_value:withdraw:0"); assert_eq!(result.outputs[0].payload_json["projection"]["lamports"], 99); assert_eq!( @@ -721,11 +722,11 @@ mod tests { #[test] fn vote_account_and_authority_events_are_projected() { - let materializer = crate::StakingMaterializer; + let materializer = crate::MtStakingMaterializer; let initialize = observation( super::VOTE_SURFACE, "initialize_account_v2", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, serde_json::json!([ account("vote_account", "vote111"), @@ -740,7 +741,7 @@ mod tests { let authorize = observation( super::VOTE_SURFACE, "authorize_checked", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, serde_json::json!([ account("vote_account", "vote111"), @@ -748,8 +749,10 @@ mod tests { ]), serde_json::json!({"authorizationType": {"kind": "voter"}, "newAuthorityFromAccount": true}), ); - let initialize_result = crate::EventMaterializer::materialize(&materializer, &initialize); - let authorize_result = crate::EventMaterializer::materialize(&materializer, &authorize); + let initialize_result = + crate::MtApiEventMaterializer::materialize(&materializer, &initialize); + let authorize_result = + crate::MtApiEventMaterializer::materialize(&materializer, &authorize); assert_eq!(initialize_result.outputs[0].output_key, "vote_account:initialize_account_v2:0"); assert_eq!( initialize_result.outputs[0].payload_json["projection"]["validatorIdentity"], @@ -764,11 +767,11 @@ mod tests { #[test] fn vote_state_and_reward_outputs_are_distinguished() { - let materializer = crate::StakingMaterializer; + let materializer = crate::MtStakingMaterializer; let vote_state = observation( super::VOTE_SURFACE, "tower_sync_switch", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, serde_json::json!([ account("vote_account", "vote111"), @@ -779,7 +782,7 @@ mod tests { let reward = observation( super::VOTE_SURFACE, "deposit_delegator_rewards", - crate::EventFamily::Reward, + crate::MdEventFamily::Reward, false, serde_json::json!([ account("vote_account", "vote111"), @@ -787,40 +790,40 @@ mod tests { ]), serde_json::json!({"depositLamports": 123}), ); - let vote_result = crate::EventMaterializer::materialize(&materializer, &vote_state); - let reward_result = crate::EventMaterializer::materialize(&materializer, &reward); + let vote_result = crate::MtApiEventMaterializer::materialize(&materializer, &vote_state); + let reward_result = crate::MtApiEventMaterializer::materialize(&materializer, &reward); assert_eq!(vote_result.outputs[0].output_key, "vote_state:tower_sync_switch:0"); assert_eq!( vote_result.outputs[0].payload_json["projection"]["switchProofHash"], "switch111" ); - assert_eq!(reward_result.outputs[0].family, crate::MaterializedEventFamily::Reward); + assert_eq!(reward_result.outputs[0].family, crate::MdMaterializedEventFamily::Reward); assert_eq!(reward_result.outputs[0].output_key, "vote_reward:deposit_delegator_rewards:0"); } #[test] fn failed_staking_mutation_is_refused() { - let materializer = crate::StakingMaterializer; + let materializer = crate::MtStakingMaterializer; let observation = observation( super::STAKE_SURFACE, "delegate_stake", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, true, serde_json::json!([account("stake_account", "stake111")]), serde_json::json!({}), ); - let result = crate::EventMaterializer::materialize(&materializer, &observation); - assert_eq!(result.status, crate::MaterializerOutcomeStatus::Refused); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); assert!(result.outputs.is_empty()); } #[test] fn unrelated_or_disabled_observations_are_ignored() { - let materializer = crate::StakingMaterializer; + let materializer = crate::MtStakingMaterializer; let unrelated = observation( "solana_native_system", "create_account", - crate::EventFamily::Lifecycle, + crate::MdEventFamily::Lifecycle, false, serde_json::json!([]), serde_json::json!({}), @@ -828,30 +831,32 @@ mod tests { let redelegate = observation( super::STAKE_SURFACE, "redelegate", - crate::EventFamily::Staking, + crate::MdEventFamily::Staking, false, serde_json::json!([]), serde_json::json!({"officiallyDisabled": true}), ); - let unrelated_result = crate::EventMaterializer::materialize(&materializer, &unrelated); - let redelegate_result = crate::EventMaterializer::materialize(&materializer, &redelegate); - assert_eq!(unrelated_result.status, crate::MaterializerOutcomeStatus::Ignored); - assert_eq!(redelegate_result.status, crate::MaterializerOutcomeStatus::Ignored); + let unrelated_result = + crate::MtApiEventMaterializer::materialize(&materializer, &unrelated); + let redelegate_result = + crate::MtApiEventMaterializer::materialize(&materializer, &redelegate); + assert_eq!(unrelated_result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); + assert_eq!(redelegate_result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); } #[test] fn output_serialization_is_deterministic() { - let materializer = crate::StakingMaterializer; + let materializer = crate::MtStakingMaterializer; let observation = observation( super::VOTE_SURFACE, "update_commission_bps", - crate::EventFamily::Admin, + crate::MdEventFamily::Admin, false, serde_json::json!([account("vote_account", "vote111")]), serde_json::json!({"commissionBasisPoints": 250, "commissionKind": "inflation_rewards"}), ); - let first = crate::EventMaterializer::materialize(&materializer, &observation); - let second = crate::EventMaterializer::materialize(&materializer, &observation); + let first = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + let second = crate::MtApiEventMaterializer::materialize(&materializer, &observation); let first_json_result = serde_json::to_string(&first.outputs[0].payload_json); let first_json = match first_json_result { std::result::Result::Ok(value) => value, diff --git a/kb-lib/src/materializer/token.rs b/kb-lib/src/materializer/token.rs index f141bbb..cfd8112 100644 --- a/kb-lib/src/materializer/token.rs +++ b/kb-lib/src/materializer/token.rs @@ -1,7 +1,20 @@ // file: kb-lib/src/materializer/token.rs -// version: 1 +// version: 2 //! `token` materializer family. -pub mod accounts; -pub mod metadata_risk; +mod accounts; +mod constants; +mod metadata_risk; + +/// Stable processor name for Token, ATA and Token-2022 account projections. +pub(crate) use self::constants::MT_TOKEN_ACCOUNTS_PROCESSOR_NAME; +/// Stable projection contract version for Token, ATA and Token-2022 account projections. +pub(crate) use self::constants::MT_TOKEN_ACCOUNTS_PROJECTION_VERSION; +/// Canonical tracing target for Token, ATA and Token-2022 account projections. +pub(crate) use self::constants::MT_TOKEN_ACCOUNTS_TRACING_TARGET; + +/// Stable Token, ATA and Token-2022 account materializer. +pub use self::accounts::MtTokenAccountsMaterializer; +/// Materializes one bounded Token-2022 account state snapshot. +pub use self::accounts::materialize_token2022_state_snapshot; diff --git a/kb-lib/src/materializer/token/accounts.rs b/kb-lib/src/materializer/token/accounts.rs index 9ce6749..55797d2 100644 --- a/kb-lib/src/materializer/token/accounts.rs +++ b/kb-lib/src/materializer/token/accounts.rs @@ -1,10 +1,831 @@ // file: kb-lib/src/materializer/token/accounts.rs -// version: 1 +// version: 2 -//! Migration boundary for legacy crate `kb_materializer_token_accounts`. +//! Stable committed SPL Token mutation and ATA lifecycle projections. -/// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_token_accounts"; +const ACCEPTED_FAMILIES: &[crate::MdEventFamily] = &[ + crate::MdEventFamily::TokenAccount, + crate::MdEventFamily::TokenMint, + crate::MdEventFamily::TokenBurn, + crate::MdEventFamily::Lifecycle, +]; -/// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MUTATION_ENTRIES: &[&str] = &[ + "initialize_mint", + "initialize_mint2", + "initialize_account", + "initialize_account2", + "initialize_account3", + "transfer", + "transfer_checked", + "approve", + "approve_checked", + "revoke", + "mint_to", + "mint_to_checked", + "burn", + "burn_checked", + "close_account", + "freeze_account", + "thaw_account", + "sync_native", + "initialize_immutable_owner", + "withdraw_excess_lamports", + "unwrap_lamports", + "initialize_non_transferable_mint", + "reallocate", +]; +const ATA_LIFECYCLE_ENTRIES: &[(&str, &str)] = &[ + ("create", "ata_created"), + ("create_idempotent", "ata_created_or_reused_idempotently"), + ("recover_nested", "nested_ata_recovered"), +]; + +/// Stable committed classic SPL Token account and mint mutation materializer. +#[derive(Clone, Debug, Default)] +pub struct MtTokenAccountsMaterializer; + +impl crate::MtMaterializer for crate::MtTokenAccountsMaterializer { + fn materializer_name(&self) -> &'static str { + return "kb_materializer_token_accounts"; + } + + fn materializer_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn accepts_event(&self, event: &crate::MdDecodedProtocolEvent) -> bool { + return accepts_event(event); + } + + fn materialize_event( + &self, + _event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} + +impl crate::MtApiEventMaterializer for crate::MtTokenAccountsMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { + name: crate::MT_TOKEN_ACCOUNTS_PROCESSOR_NAME.to_string(), + version: env!("CARGO_PKG_VERSION").to_string(), + }; + } + + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { + return ACCEPTED_FAMILIES; + } + + fn accepts_observation(&self, observation: &crate::DcApiDecodedObservation) -> bool { + return accepts_event(&observation.event); + } + + fn transaction_policy( + &self, + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulCommittedOnly; + } + + fn materialize( + &self, + observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { + if !accepts_event(&observation.event) { + return crate::MtApiMaterializerExecutionResult::ignored(); + } + if observation.transaction_failed || !observation.observation_committed { + return crate::MtApiMaterializerExecutionResult::refused( + "uncommitted_token_account_projection_refused", + "failed or uncommitted SPL Token or ATA observations cannot create mutable outputs", + ); + } + if is_ata_event(&observation.event) { + return materialize_ata(observation); + } + let parameters = observation + .payload_json + .get("parameters") + .cloned() + .unwrap_or(serde_json::Value::Null); + let accounts = observation + .payload_json + .get("accounts") + .cloned() + .unwrap_or(serde_json::Value::Null); + let authority = observation + .payload_json + .get("authority") + .cloned() + .unwrap_or(serde_json::Value::Null); + let operation = observation.event.event_name.0.clone(); + let output = crate::MtApiMaterializedOutput { + output_key: format!("token_account_mutation:{operation}:0"), + family: crate::MdMaterializedEventFamily::TokenAccount, + payload_json: serde_json::json!({ + "projectionVersion": crate::MT_TOKEN_ACCOUNTS_PROJECTION_VERSION, + "domain": "spl_token_account_mutation", + "projectionSemantics": "committed_instruction_mutation_not_final_account_snapshot", + "idempotenceKey": format!( + "spl_token:{}:{}:{}", + observation.event.signature.0, + observation.event.instruction_path.0, + operation + ), + "operation": operation, + "signature": observation.event.signature.0.clone(), + "slot": observation.event.slot.0, + "instructionPath": observation.event.instruction_path.0.clone(), + "programId": observation.event.program_id.0.clone(), + "mint": account_key_for_role(&accounts, "mint"), + "amountRaw": parameters.get("amountRaw").cloned().unwrap_or(serde_json::Value::Null), + "decimals": parameters.get("decimals").cloned().unwrap_or(serde_json::Value::Null), + "parameters": parameters, + "accounts": accounts, + "authority": authority, + "committed": true, + "transactionFinalAccountStateCaptured": false, + "coreBalanceChangesDuplicated": false, + "provenance": { + "processorName": crate::MT_TOKEN_ACCOUNTS_PROCESSOR_NAME, + "processorVersion": env!("CARGO_PKG_VERSION"), + "sourceSurface": observation.event.surface_code.0.clone(), + "sourceEventCode": observation.event.event_code.0.clone(), + "sourceEventKey": observation.event_key.clone() + } + }), + }; + tracing::debug!( + target: crate::MT_TOKEN_ACCOUNTS_TRACING_TARGET, + action = "materialize_token_account_mutation", + signature = %observation.event.signature.0, + instruction_path = %observation.event.instruction_path.0, + operation = %observation.event.event_name.0, + "materialize committed classic SPL Token mutation" + ); + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, + outputs: std::vec![output], + diagnostics: std::vec::Vec::new(), + }; + } +} + +fn accepts_event(event: &crate::MdDecodedProtocolEvent) -> bool { + let token_program = (event.program_id.0 == kb_program_ids::SPL_TOKEN_PROGRAM_ID + && event.surface_code.0 == "spl_token") + || (event.program_id.0 == kb_program_ids::SPL_TOKEN2022_PROGRAM_ID + && event.surface_code.0 == "spl_token2022"); + let token_mutation = token_program && MUTATION_ENTRIES.contains(&event.event_name.0.as_str()); + let ata = is_ata_event(event); + return ACCEPTED_FAMILIES.contains(&event.event_family) && (token_mutation || ata); +} + +fn is_ata_event(event: &crate::MdDecodedProtocolEvent) -> bool { + return event.program_id.0 == kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID + && event.surface_code.0 == "spl_associated_token_account" + && event.event_family == crate::MdEventFamily::Lifecycle + && ATA_LIFECYCLE_ENTRIES + .iter() + .any(|(entry, _)| return *entry == event.event_name.0); +} + +fn materialize_ata( + observation: &crate::DcApiDecodedObservation, +) -> crate::MtApiMaterializerExecutionResult { + let operation = observation.event.event_name.0.as_str(); + let addresses = match observation.payload_json.get("addresses") { + std::option::Option::Some(value) if value.is_object() => value, + _ => { + return crate::MtApiMaterializerExecutionResult::refused( + "ata_addresses_missing", + "committed ATA lifecycle projection requires the decoded address contract", + ); + }, + }; + let validation = validate_ata_addresses(operation, addresses); + if let std::result::Result::Err((code, message)) = validation { + return crate::MtApiMaterializerExecutionResult::refused(code, message); + } + let lifecycle_kind = + match ATA_LIFECYCLE_ENTRIES.iter().find(|(entry, _)| return *entry == operation) { + std::option::Option::Some((_, value)) => *value, + std::option::Option::None => { + return crate::MtApiMaterializerExecutionResult::ignored(); + }, + }; + let associated_token_account = if operation == "recover_nested" { + observed_address(addresses, "nestedAssociatedTokenAccount") + } else { + observed_address(addresses, "associatedTokenAccount") + }; + let token_program = addresses + .get("tokenProgram") + .and_then(|value| return value.get("programId")) + .cloned() + .unwrap_or(serde_json::Value::Null); + let wallet = addresses.get("walletOwner").cloned().unwrap_or(serde_json::Value::Null); + let mint = if operation == "recover_nested" { + addresses.get("nestedMint").cloned().unwrap_or(serde_json::Value::Null) + } else { + addresses.get("mint").cloned().unwrap_or(serde_json::Value::Null) + }; + let output = crate::MtApiMaterializedOutput { + output_key: format!("ata_lifecycle:{lifecycle_kind}:0"), + family: crate::MdMaterializedEventFamily::TokenAccount, + payload_json: serde_json::json!({ + "projectionVersion": crate::MT_TOKEN_ACCOUNTS_PROJECTION_VERSION, + "domain": "spl_associated_token_account_lifecycle", + "projectionSemantics": "committed_associated_address_lifecycle_not_token_state_snapshot", + "idempotenceKey": format!( + "ata:{}:{}:{}:{}:{}", + observation.event.signature.0, + observation.event.instruction_path.0, + observation.event.program_id.0, + lifecycle_kind, + associated_token_account.as_str().unwrap_or("") + ), + "operation": operation, + "lifecycleKind": lifecycle_kind, + "associatedTokenAccount": associated_token_account, + "walletOwner": wallet, + "mint": mint, + "tokenProgramId": token_program, + "fundingAccount": addresses.get("fundingAccount").cloned().unwrap_or(serde_json::Value::Null), + "ownerMint": addresses.get("ownerMint").cloned().unwrap_or(serde_json::Value::Null), + "nestedMint": addresses.get("nestedMint").cloned().unwrap_or(serde_json::Value::Null), + "ownerAssociatedTokenAccount": observed_address(addresses, "ownerAssociatedTokenAccount"), + "nestedAssociatedTokenAccount": observed_address(addresses, "nestedAssociatedTokenAccount"), + "walletNestedMintAssociatedTokenAccount": observed_address(addresses, "walletNestedMintAssociatedTokenAccount"), + "idempotentOutcome": if operation == "create_idempotent" { + "created_or_reused_not_distinguishable_from_parent_instruction_alone" + } else { + "not_applicable" + }, + "signature": observation.event.signature.0.clone(), + "slot": observation.event.slot.0, + "instructionPath": observation.event.instruction_path.0.clone(), + "programId": observation.event.program_id.0.clone(), + "committed": true, + "transactionFinalAccountStateCaptured": false, + "tokenBalanceReconstructed": false, + "splTokenCpiMutationsDuplicated": false, + "ownership": { + "ataParent": "associated_address_lifecycle_only", + "splTokenCpi": "initialize_transfer_and_close_mutations" + }, + "provenance": { + "processorName": crate::MT_TOKEN_ACCOUNTS_PROCESSOR_NAME, + "processorVersion": env!("CARGO_PKG_VERSION"), + "sourceSurface": observation.event.surface_code.0.clone(), + "sourceEventCode": observation.event.event_code.0.clone(), + "sourceEventKey": observation.event_key.clone() + } + }), + }; + tracing::debug!( + target: crate::MT_TOKEN_ACCOUNTS_TRACING_TARGET, + action = "materialize_ata_lifecycle", + signature = %observation.event.signature.0, + instruction_path = %observation.event.instruction_path.0, + operation, + lifecycle_kind, + "materialize committed ATA lifecycle without duplicating SPL Token CPI mutations" + ); + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, + outputs: std::vec![output], + diagnostics: std::vec::Vec::new(), + }; +} + +fn validate_ata_addresses( + operation: &str, + addresses: &serde_json::Value, +) -> std::result::Result<(), (&'static str, &'static str)> { + let token_supported = addresses + .get("tokenProgram") + .and_then(|value| return value.get("supported")) + .and_then(serde_json::Value::as_bool) + == std::option::Option::Some(true); + let token_program_id = addresses + .get("tokenProgram") + .and_then(|value| return value.get("programId")) + .and_then(serde_json::Value::as_str); + let token_program_exact = matches!( + token_program_id, + std::option::Option::Some(kb_program_ids::SPL_TOKEN_PROGRAM_ID) + | std::option::Option::Some(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID) + ); + if !token_supported || !token_program_exact { + return std::result::Result::Err(( + "ata_token_program_not_supported", + "ATA lifecycle projection requires classic SPL Token or Token-2022", + )); + } + let fields: &[&str] = if operation == "recover_nested" { + &[ + "ownerAssociatedTokenAccount", + "nestedAssociatedTokenAccount", + "walletNestedMintAssociatedTokenAccount", + ] + } else { + &["associatedTokenAccount"] + }; + for field in fields { + let valid = addresses + .get(*field) + .and_then(|value| return value.get("valid")) + .and_then(serde_json::Value::as_bool) + == std::option::Option::Some(true); + let observed = observed_address(addresses, field); + if !valid || observed.as_str().is_none_or(|value| return value.is_empty()) { + return std::result::Result::Err(( + "ata_derived_address_invalid", + "ATA lifecycle projection requires every canonical address validation to pass", + )); + } + } + let identity_fields: &[&str] = if operation == "recover_nested" { + &["walletOwner", "ownerMint", "nestedMint"] + } else { + &["walletOwner", "mint"] + }; + if identity_fields.iter().any(|field| { + return addresses + .get(*field) + .and_then(serde_json::Value::as_str) + .is_none_or(|value| return value.is_empty()); + }) { + return std::result::Result::Err(( + "ata_identity_field_missing", + "ATA lifecycle projection requires wallet and mint identities", + )); + } + return std::result::Result::Ok(()); +} + +fn observed_address(addresses: &serde_json::Value, field: &str) -> serde_json::Value { + return addresses + .get(field) + .and_then(|value| return value.get("observed")) + .cloned() + .unwrap_or(serde_json::Value::Null); +} + +fn account_key_for_role(accounts: &serde_json::Value, role: &str) -> serde_json::Value { + let value = accounts.as_array().and_then(|rows| { + return rows.iter().find_map(|row| { + if row.get("role").and_then(serde_json::Value::as_str) + != std::option::Option::Some(role) + { + return std::option::Option::None; + } + return row.get("accountKey").and_then(serde_json::Value::as_str); + }); + }); + return match value { + std::option::Option::Some(account_key) => { + serde_json::Value::String(account_key.to_string()) + }, + std::option::Option::None => serde_json::Value::Null, + }; +} + +/// Materialize one already parsed Token-2022 account snapshot without inferring hidden state. +pub fn materialize_token2022_state_snapshot( + account_key: &str, + slot: u64, + state: &crate::DcToken2022State, +) -> std::result::Result { + if account_key.is_empty() { + return std::result::Result::Err( + "Token-2022 state snapshot requires a non-empty account key".to_string(), + ); + } + let kind = match state.kind { + crate::DcToken2022StateKind::Mint => "mint", + crate::DcToken2022StateKind::Account => "account", + crate::DcToken2022StateKind::Multisig => "multisig", + }; + let extensions = state + .extensions + .iter() + .map(|entry| { + return serde_json::json!({ + "extensionType": entry.extension_type, + "extensionName": entry.extension_name, + "valueHex": entry.value_hex, + "valueFields": entry.value_fields, + }); + }) + .collect::>(); + let extension_names = state + .extensions + .iter() + .map(|entry| return entry.extension_name) + .collect::>(); + let contains_confidential_state = state.extensions.iter().any(|entry| { + return entry.extension_name.starts_with("confidential_") + || entry.extension_name == "confidential_mint_burn"; + }); + return std::result::Result::Ok(crate::MtApiMaterializedOutput { + output_key: format!("token2022_state_snapshot:{account_key}:{slot}"), + family: crate::MdMaterializedEventFamily::TokenAccount, + payload_json: serde_json::json!({ + "projectionVersion": crate::MT_TOKEN_ACCOUNTS_PROJECTION_VERSION, + "domain": "spl_token2022_account_state", + "projectionSemantics": "authoritative_bounded_account_snapshot", + "idempotenceKey": format!("token2022_state:{account_key}:{slot}"), + "accountKey": account_key, + "slot": slot, + "programId": kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + "stateKind": kind, + "baseFields": state.base_fields, + "baseHex": state.base_hex, + "accountType": state.account_type, + "extensionCount": state.extensions.len(), + "extensionNames": extension_names, + "extensions": extensions, + "containsConfidentialState": contains_confidential_state, + "confidentialValuesDecrypted": false, + "finalAccountStateCaptured": true, + "provenance": { + "processorName": crate::MT_TOKEN_ACCOUNTS_PROCESSOR_NAME, + "processorVersion": env!("CARGO_PKG_VERSION"), + "source": "bounded_token2022_state_parser" + } + }), + }); +} + +#[cfg(test)] +mod tests { + fn observation( + entry: &str, + family: crate::MdEventFamily, + failed: bool, + ) -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { + event_key: format!("token:{entry}:0"), + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("1/0".to_string()), + program_id: crate::MdProgramId(kb_program_ids::SPL_TOKEN_PROGRAM_ID.to_string()), + protocol_code: crate::MdProtocolCode("spl_token".to_string()), + surface_code: crate::MdSurfaceCode("spl_token".to_string()), + event_code: crate::MdEventCode(format!("spl_token.{entry}")), + event_name: crate::MdEventName(entry.to_string()), + event_family: family, + source_kind: crate::MdEventSourceKind::InnerInstruction, + confidence: crate::MdDecoderConfidence::ManualExact, + }, + payload_json: serde_json::json!({ + "parameters": {"amountRaw":"18446744073709551615","decimals":9}, + "accounts": [{"role":"mint","accountKey":"mint111"}], + "authority": {"form":"single"} + }), + transaction_failed: failed, + transaction_error: if failed { + std::option::Option::Some(serde_json::json!({"error":"failed"})) + } else { + std::option::Option::None + }, + observation_committed: !failed, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, + evidence: std::vec!["fixture".to_string()], + }, + }; + } + + fn token2022_observation( + entry: &str, + family: crate::MdEventFamily, + failed: bool, + ) -> crate::DcApiDecodedObservation { + let mut observation = observation(entry, family, failed); + observation.event.program_id = + crate::MdProgramId(kb_program_ids::SPL_TOKEN2022_PROGRAM_ID.to_string()); + observation.event.protocol_code = crate::MdProtocolCode("spl_token2022".to_string()); + observation.event.surface_code = crate::MdSurfaceCode("spl_token2022".to_string()); + observation.event.event_code = crate::MdEventCode(format!("spl_token2022.{entry}")); + observation.event_key = format!("token2022:{entry}:0"); + return observation; + } + + fn ata_observation(entry: &str, failed: bool, valid: bool) -> crate::DcApiDecodedObservation { + let addresses = if entry == "recover_nested" { + serde_json::json!({ + "tokenProgram": { + "programId": kb_program_ids::SPL_TOKEN_PROGRAM_ID, + "kind": "spl_token_classic", + "supported": true + }, + "ownerAssociatedTokenAccount": {"expected":"ownerAta","observed":"ownerAta","valid":valid}, + "nestedAssociatedTokenAccount": {"expected":"nestedAta","observed":"nestedAta","valid":valid}, + "walletNestedMintAssociatedTokenAccount": {"expected":"destinationAta","observed":"destinationAta","valid":valid}, + "walletOwner": "wallet111", + "ownerMint": "ownerMint111", + "nestedMint": "nestedMint111" + }) + } else { + serde_json::json!({ + "tokenProgram": { + "programId": kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + "kind": "token2022", + "supported": true + }, + "associatedTokenAccount": {"expected":"ata111","observed":"ata111","valid":valid}, + "fundingAccount": "payer111", + "walletOwner": "wallet111", + "mint": "mint111" + }) + }; + return crate::DcApiDecodedObservation { + event_key: format!("ata:{entry}:0"), + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId( + kb_program_ids::ASSOCIATED_TOKEN_PROGRAM_ID.to_string(), + ), + protocol_code: crate::MdProtocolCode("spl_associated_token_account".to_string()), + surface_code: crate::MdSurfaceCode("spl_associated_token_account".to_string()), + event_code: crate::MdEventCode(format!("spl_associated_token_account.{entry}")), + event_name: crate::MdEventName(entry.to_string()), + event_family: crate::MdEventFamily::Lifecycle, + source_kind: crate::MdEventSourceKind::Instruction, + confidence: crate::MdDecoderConfidence::ManualExact, + }, + payload_json: serde_json::json!({"addresses":addresses}), + transaction_failed: failed, + transaction_error: std::option::Option::None, + observation_committed: !failed, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, + evidence: std::vec!["fixture".to_string()], + }, + }; + } + + #[test] + fn committed_checked_transfer_preserves_exact_amount_mint_and_path() { + let observation = + observation("transfer_checked", crate::MdEventFamily::TokenAccount, false); + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs[0].payload_json["amountRaw"], "18446744073709551615"); + assert_eq!(result.outputs[0].payload_json["mint"], "mint111"); + assert_eq!(result.outputs[0].payload_json["instructionPath"], "1/0"); + assert_eq!(result.outputs[0].payload_json["transactionFinalAccountStateCaptured"], false); + } + + #[test] + fn committed_token2022_transfer_has_the_same_single_projection_owner() { + let observation = + token2022_observation("transfer_checked", crate::MdEventFamily::TokenAccount, false); + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs.len(), 1); + assert_eq!(result.outputs[0].payload_json["operation"], "transfer_checked"); + assert_eq!( + result.outputs[0].payload_json["programId"], + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID + ); + } + + #[test] + fn failed_mutation_is_refused() { + let observation = observation("burn", crate::MdEventFamily::TokenBurn, true); + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); + assert!(result.outputs.is_empty()); + } + + #[test] + fn batch_parent_admin_and_conversion_events_are_not_duplicated() { + for (entry, family) in [ + ("batch", crate::MdEventFamily::Audit), + ("set_authority", crate::MdEventFamily::Admin), + ("amount_to_ui_amount", crate::MdEventFamily::Audit), + ] { + let observation = observation(entry, family, false); + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); + } + } + + #[test] + fn every_ata_variant_has_one_exact_lifecycle_projection() { + for (entry, expected_kind, expected_ata, expected_token_program) in [ + ("create", "ata_created", "ata111", kb_program_ids::SPL_TOKEN2022_PROGRAM_ID), + ( + "create_idempotent", + "ata_created_or_reused_idempotently", + "ata111", + kb_program_ids::SPL_TOKEN2022_PROGRAM_ID, + ), + ( + "recover_nested", + "nested_ata_recovered", + "nestedAta", + kb_program_ids::SPL_TOKEN_PROGRAM_ID, + ), + ] { + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &ata_observation(entry, false, true), + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(result.outputs.len(), 1); + assert_eq!(result.outputs[0].payload_json["lifecycleKind"], expected_kind); + assert_eq!(result.outputs[0].payload_json["associatedTokenAccount"], expected_ata); + assert_eq!(result.outputs[0].payload_json["tokenProgramId"], expected_token_program); + assert_eq!(result.outputs[0].payload_json["tokenBalanceReconstructed"], false); + assert_eq!(result.outputs[0].payload_json["splTokenCpiMutationsDuplicated"], false); + } + } + + #[test] + fn idempotent_parent_does_not_invent_created_or_reused_branch() { + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &ata_observation("create_idempotent", false, true), + ); + assert_eq!( + result.outputs[0].payload_json["idempotentOutcome"], + "created_or_reused_not_distinguishable_from_parent_instruction_alone" + ); + assert!(result.outputs[0].payload_json.get("reused").is_none()); + assert!(result.outputs[0].payload_json.get("created").is_none()); + } + + #[test] + fn uncommitted_or_invalid_ata_lifecycle_is_refused() { + for observation in [ + ata_observation("create", true, true), + ata_observation("recover_nested", false, false), + ] { + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); + assert!(result.outputs.is_empty()); + } + } + + #[test] + fn ata_parent_and_classic_token_cpi_children_own_distinct_facts() { + let parent = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &ata_observation("recover_nested", false, true), + ); + let transfer = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &observation("transfer", crate::MdEventFamily::TokenAccount, false), + ); + let close = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &observation("close_account", crate::MdEventFamily::TokenAccount, false), + ); + assert_eq!(parent.outputs[0].payload_json["lifecycleKind"], "nested_ata_recovered"); + assert_eq!( + parent.outputs[0].payload_json["ownership"]["ataParent"], + "associated_address_lifecycle_only" + ); + assert!(parent.outputs[0].payload_json.get("amountRaw").is_none()); + assert_eq!(transfer.outputs[0].payload_json["operation"], "transfer"); + assert_eq!(close.outputs[0].payload_json["operation"], "close_account"); + assert_eq!(transfer.outputs[0].payload_json["domain"], "spl_token_account_mutation"); + assert_eq!(close.outputs[0].payload_json["domain"], "spl_token_account_mutation"); + } + + #[test] + fn ata_matrix_and_compiled_token_account_projection_ownership_are_equal() { + let matrix: serde_json::Value = match serde_json::from_str(include_str!( + "../../../../docs/SPL_ASSOCIATED_TOKEN_ACCOUNT_MATRIX.json" + )) { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => panic!("ATA matrix is invalid: {error}"), + }; + let instructions = match matrix.get("instructions").and_then(serde_json::Value::as_array) { + std::option::Option::Some(value) => value, + std::option::Option::None => panic!("ATA matrix instructions are absent"), + }; + for (entry, fact) in super::ATA_LIFECYCLE_ENTRIES { + let row = match instructions.iter().find(|row| { + return row.get("name").and_then(serde_json::Value::as_str) + == std::option::Option::Some(*entry); + }) { + std::option::Option::Some(value) => value, + std::option::Option::None => panic!("ATA matrix entry {entry} is absent"), + }; + let expected = format!("token_accounts:{fact}"); + assert!(row["authorizedProjections"].as_array().is_some_and(|values| { + return values.iter().any(|value| return value == expected.as_str()); + })); + } + let owner = &matrix["materializationContract"]["projectionOwners"][0]; + let matrix_facts = match owner["facts"].as_array() { + std::option::Option::Some(values) => values + .iter() + .filter_map(|value| return value.as_str()) + .collect::>(), + std::option::Option::None => panic!("ATA token-account owner facts are absent"), + }; + let compiled_facts = super::ATA_LIFECYCLE_ENTRIES + .iter() + .map(|(_, fact)| return *fact) + .collect::>(); + assert_eq!(matrix_facts, compiled_facts); + } + + #[test] + fn second_ata_materialization_is_byte_for_byte_idempotent() { + let observation = ata_observation("create_idempotent", false, true); + let first = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &observation, + ); + let second = crate::MtApiEventMaterializer::materialize( + &crate::MtTokenAccountsMaterializer, + &observation, + ); + assert_eq!(first, second); + assert_eq!(first.outputs[0].output_key, second.outputs[0].output_key); + assert_eq!( + first.outputs[0].payload_json["idempotenceKey"], + second.outputs[0].payload_json["idempotenceKey"] + ); + } + + #[test] + fn token2022_state_snapshot_preserves_base_and_ordered_extensions() { + let state = crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Mint, + base_fields: serde_json::json!({"supply":"42","decimals":9,"initialized":true}), + base_hex: "00".repeat(82), + account_type: std::option::Option::Some(1), + extensions: std::vec![ + crate::DcToken2022TlvEntry { + extension_type: 1, + extension_name: "transfer_fee_config", + value_hex: "11".repeat(108), + value_fields: serde_json::json!({"withheldAmount":"7"}), + }, + crate::DcToken2022TlvEntry { + extension_type: 4, + extension_name: "confidential_transfer_mint", + value_hex: "22".repeat(65), + value_fields: serde_json::json!({"autoApproveNewAccounts":true}), + }, + ], + }; + let output = match crate::materialize_token2022_state_snapshot("mint111", 99, &state) { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => panic!("snapshot failed: {error}"), + }; + assert_eq!(output.payload_json["stateKind"], "mint"); + assert_eq!(output.payload_json["extensionCount"], 2); + assert_eq!(output.payload_json["extensionNames"][0], "transfer_fee_config"); + assert_eq!(output.payload_json["extensionNames"][1], "confidential_transfer_mint"); + assert_eq!(output.payload_json["containsConfidentialState"], true); + assert_eq!(output.payload_json["confidentialValuesDecrypted"], false); + assert_eq!(output.payload_json["baseFields"]["supply"], "42"); + } + + #[test] + fn token2022_state_snapshot_is_idempotent_and_rejects_missing_identity() { + let state = crate::DcToken2022State { + kind: crate::DcToken2022StateKind::Account, + base_fields: serde_json::json!({"mint":"mint111","owner":"wallet111","amount":"5"}), + base_hex: "00".repeat(165), + account_type: std::option::Option::None, + extensions: std::vec::Vec::new(), + }; + let first = crate::materialize_token2022_state_snapshot("account111", 7, &state); + let second = crate::materialize_token2022_state_snapshot("account111", 7, &state); + assert_eq!(first, second); + assert!(crate::materialize_token2022_state_snapshot("", 7, &state).is_err()); + } +} diff --git a/kb-lib/src/materializer/token/constants.rs b/kb-lib/src/materializer/token/constants.rs new file mode 100644 index 0000000..495381c --- /dev/null +++ b/kb-lib/src/materializer/token/constants.rs @@ -0,0 +1,11 @@ +// file: kb-lib/src/materializer/token/constants.rs +// version: 1 + +//! Local constants for classic SPL Token account projections. + +/// Stable processor name persisted by the replay ledger. +pub(crate) const MT_TOKEN_ACCOUNTS_PROCESSOR_NAME: &str = "spl_token_accounts"; +/// Stable projection payload contract version. +pub(crate) const MT_TOKEN_ACCOUNTS_PROJECTION_VERSION: u32 = 3; +/// Canonical tracing target for this component. +pub(crate) const MT_TOKEN_ACCOUNTS_TRACING_TARGET: &str = "kb-lib.materializer.token"; diff --git a/kb-lib/src/materializer/token/metadata_risk.rs b/kb-lib/src/materializer/token/metadata_risk.rs index 39d4ccf..e6a0278 100644 --- a/kb-lib/src/materializer/token/metadata_risk.rs +++ b/kb-lib/src/materializer/token/metadata_risk.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/token/metadata_risk.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_token_metadata_risk`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_token_metadata_risk"; +const LEGACY_CRATE: &str = "kb_materializer_token_metadata_risk"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/trades.rs b/kb-lib/src/materializer/trades.rs index 6998d41..bff5e48 100644 --- a/kb-lib/src/materializer/trades.rs +++ b/kb-lib/src/materializer/trades.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/trades.rs -// version: 1 +// version: 2 //! `trades` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/trades/core.rs b/kb-lib/src/materializer/trades/core.rs index bfe58ad..06a8f4d 100644 --- a/kb-lib/src/materializer/trades/core.rs +++ b/kb-lib/src/materializer/trades/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/trades/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_trades`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_trades"; +const LEGACY_CRATE: &str = "kb_materializer_trades"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/transaction.rs b/kb-lib/src/materializer/transaction.rs index 53e79e6..4f9831d 100644 --- a/kb-lib/src/materializer/transaction.rs +++ b/kb-lib/src/materializer/transaction.rs @@ -1,6 +1,19 @@ // file: kb-lib/src/materializer/transaction.rs -// version: 1 +// version: 2 //! `transaction` materializer family. -pub mod annotations; +mod annotations; +mod constants; + +/// Maximum Memo payload accepted by transaction annotations. +pub(crate) use self::constants::MT_TRANSACTION_ANNOTATIONS_MAX_MEMO_PAYLOAD_BYTES; +/// Stable processor name for transaction annotations. +pub(crate) use self::constants::MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME; +/// Stable projection contract version for transaction annotations. +pub(crate) use self::constants::MT_TRANSACTION_ANNOTATIONS_PROJECTION_VERSION; +/// Canonical tracing target for transaction annotations. +pub(crate) use self::constants::MT_TRANSACTION_ANNOTATIONS_TRACING_TARGET; + +/// Stable committed Memo transaction annotation materializer. +pub use self::annotations::MtTransactionAnnotationMaterializer; diff --git a/kb-lib/src/materializer/transaction/annotations.rs b/kb-lib/src/materializer/transaction/annotations.rs index 5e66581..6be4ada 100644 --- a/kb-lib/src/materializer/transaction/annotations.rs +++ b/kb-lib/src/materializer/transaction/annotations.rs @@ -1,10 +1,614 @@ // file: kb-lib/src/materializer/transaction/annotations.rs -// version: 1 +// version: 2 -//! Migration boundary for legacy crate `kb_materializer_transaction_annotations`. +//! Exact committed SPL Memo transaction annotation projection. -/// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_transaction_annotations"; +const ACCEPTED_FAMILIES: &[crate::MdEventFamily] = &[crate::MdEventFamily::Audit]; +const MEMO_ENTRY_NAMES: &[&str] = &["add_memo", "memo_intent", "invalid_memo_attempt"]; -/// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +enum MemoGeneration { + V1, + V3, + V4, +} + +impl MemoGeneration { + fn from_event(event: &crate::MdDecodedProtocolEvent) -> std::option::Option { + if event.program_id.0 == kb_program_ids::SPL_MEMO_V1_PROGRAM_ID + && event.surface_code.0 == "spl_memo_v1" + { + return std::option::Option::Some(Self::V1); + } + if event.program_id.0 == kb_program_ids::SPL_MEMO_V3_PROGRAM_ID + && event.surface_code.0 == "spl_memo_v3" + { + return std::option::Option::Some(Self::V3); + } + if event.program_id.0 == kb_program_ids::SPL_MEMO_V4_PROGRAM_ID + && event.surface_code.0 == "spl_memo_v4" + { + return std::option::Option::Some(Self::V4); + } + return std::option::Option::None; + } + + fn code(self) -> &'static str { + return match self { + Self::V1 => "v1", + Self::V3 => "v3", + Self::V4 => "v4", + }; + } + + fn signer_status(self) -> &'static str { + return match self { + Self::V1 => "not_applicable", + Self::V3 | Self::V4 => "valid", + }; + } +} + +struct MemoProjection { + generation: MemoGeneration, + memo_text: std::string::String, + payload_length_bytes: u64, + payload_sha256: std::string::String, + required_signers: std::vec::Vec, + observed_signers: std::vec::Vec, + verified_signers: std::vec::Vec, + signer_validation_status: std::string::String, +} + +/// Stable transaction annotation materializer. +#[derive(Clone, Debug, Default)] +pub struct MtTransactionAnnotationMaterializer; + +impl crate::MtMaterializer for crate::MtTransactionAnnotationMaterializer { + fn materializer_name(&self) -> &'static str { + return "kb_materializer_transaction_annotations"; + } + + fn materializer_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn accepts_event(&self, event: &crate::MdDecodedProtocolEvent) -> bool { + return accepts_event(event); + } + + fn materialize_event( + &self, + _event: &crate::MdDecodedProtocolEvent, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} + +impl crate::MtApiEventMaterializer for crate::MtTransactionAnnotationMaterializer { + fn identity(&self) -> crate::MtApiMaterializerIdentity { + return crate::MtApiMaterializerIdentity { + name: crate::MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME.to_string(), + version: env!("CARGO_PKG_VERSION").to_string(), + }; + } + + fn accepted_families(&self) -> &'static [crate::MdEventFamily] { + return ACCEPTED_FAMILIES; + } + + fn accepts_observation(&self, observation: &crate::DcApiDecodedObservation) -> bool { + return accepts_event(&observation.event); + } + + fn transaction_policy( + &self, + _family: crate::MdEventFamily, + ) -> crate::MtApiMaterializationTransactionPolicy { + return crate::MtApiMaterializationTransactionPolicy::SuccessfulCommittedOnly; + } + + fn materialize( + &self, + observation: &crate::DcApiDecodedObservation, + ) -> crate::MtApiMaterializerExecutionResult { + if !accepts_event(&observation.event) { + return crate::MtApiMaterializerExecutionResult::ignored(); + } + if observation.transaction_failed || !observation.observation_committed { + return crate::MtApiMaterializerExecutionResult::refused( + "uncommitted_transaction_annotation_refused", + "failed or uncommitted Memo observations cannot create transaction annotations", + ); + } + if observation.event.event_name.0 != "add_memo" { + return crate::MtApiMaterializerExecutionResult::refused( + "invalid_transaction_annotation_source_refused", + "only a committed add_memo observation can create a transaction annotation", + ); + } + let projection_result = parse_projection(observation); + let projection = match projection_result { + std::result::Result::Ok(value) => value, + std::result::Result::Err(message) => { + return failed("memo_annotation_payload_invalid", message); + }, + }; + let idempotence_key = format!( + "spl_memo:{}:{}:{}:{}", + observation.event.signature.0, + observation.event.instruction_path.0, + observation.event.program_id.0, + projection.payload_sha256 + ); + let output = crate::MtApiMaterializedOutput { + output_key: "transaction_annotation:spl_memo:0".to_string(), + family: crate::MdMaterializedEventFamily::TransactionAnnotation, + payload_json: serde_json::json!({ + "projectionVersion": crate::MT_TRANSACTION_ANNOTATIONS_PROJECTION_VERSION, + "domain": "transaction_annotation", + "annotationKind": "spl_memo", + "idempotenceKey": idempotence_key, + "signature": observation.event.signature.0.clone(), + "slot": observation.event.slot.0, + "instructionPath": observation.event.instruction_path.0.clone(), + "sourceKind": match observation.event.source_kind { + crate::MdEventSourceKind::InnerInstruction => "inner_instruction", + _ => "instruction" + }, + "generation": projection.generation.code(), + "programId": observation.event.program_id.0.clone(), + "text": projection.memo_text, + "payloadLengthBytes": projection.payload_length_bytes, + "payloadSha256": projection.payload_sha256, + "signers": { + "validationStatus": projection.signer_validation_status, + "required": projection.required_signers, + "observed": projection.observed_signers, + "verified": projection.verified_signers + }, + "committed": true, + "provenance": { + "processorName": crate::MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME, + "processorVersion": env!("CARGO_PKG_VERSION"), + "sourceProtocol": observation.event.protocol_code.0.clone(), + "sourceSurface": observation.event.surface_code.0.clone(), + "sourceEventCode": observation.event.event_code.0.clone(), + "sourceEventKey": observation.event_key.clone() + } + }), + }; + tracing::debug!( + target: crate::MT_TRANSACTION_ANNOTATIONS_TRACING_TARGET, + action = "materialize_transaction_annotation", + signature = %observation.event.signature.0, + instruction_path = %observation.event.instruction_path.0, + program_id = %observation.event.program_id.0, + generation = projection.generation.code(), + payload_length_bytes = projection.payload_length_bytes, + output_count = 1_usize, + "materialize committed SPL Memo transaction annotation" + ); + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Inserted, + outputs: std::vec![output], + diagnostics: std::vec::Vec::new(), + }; + } +} + +fn accepts_event(event: &crate::MdDecodedProtocolEvent) -> bool { + return event.event_family == crate::MdEventFamily::Audit + && event.protocol_code.0 == "spl_memo" + && (event.source_kind == crate::MdEventSourceKind::Instruction + || event.source_kind == crate::MdEventSourceKind::InnerInstruction) + && MemoGeneration::from_event(event).is_some() + && MEMO_ENTRY_NAMES.contains(&event.event_name.0.as_str()); +} + +fn parse_projection( + observation: &crate::DcApiDecodedObservation, +) -> std::result::Result { + let generation = match MemoGeneration::from_event(&observation.event) { + std::option::Option::Some(value) => value, + std::option::Option::None => { + return std::result::Result::Err( + "Memo generation and Program ID do not match".to_string(), + ); + }, + }; + let payload = &observation.payload_json; + if payload.get("committed").and_then(serde_json::Value::as_bool) + != std::option::Option::Some(true) + { + return std::result::Result::Err("Memo payload is not marked committed".to_string()); + } + if payload.get("transactionSucceeded").and_then(serde_json::Value::as_bool) + != std::option::Option::Some(true) + || payload.get("payloadComplete").and_then(serde_json::Value::as_bool) + != std::option::Option::Some(true) + || string_field(payload, "runtimeValidation") + != std::option::Option::Some("proven_by_successful_transaction") + || payload + .get("utf8Validation") + .and_then(|value| return string_field(value, "status")) + != std::option::Option::Some("valid") + { + return std::result::Result::Err( + "Memo successful runtime validation proof is incomplete".to_string(), + ); + } + if string_field(payload, "generation") != std::option::Option::Some(generation.code()) { + return std::result::Result::Err( + "Memo payload generation does not match its surface".to_string(), + ); + } + if string_field(payload, "programId") + != std::option::Option::Some(observation.event.program_id.0.as_str()) + { + return std::result::Result::Err( + "Memo payload Program ID does not match its event".to_string(), + ); + } + if string_field(payload, "instructionPath") + != std::option::Option::Some(observation.event.instruction_path.0.as_str()) + { + return std::result::Result::Err( + "Memo payload instruction path does not match its event".to_string(), + ); + } + let memo_text = match string_field(payload, "memoText") { + std::option::Option::Some(value) => value.to_string(), + std::option::Option::None => { + return std::result::Result::Err("committed Memo has no UTF-8 text".to_string()); + }, + }; + let payload_length_bytes = + match payload.get("payloadLengthBytes").and_then(serde_json::Value::as_u64) { + std::option::Option::Some(value) => value, + std::option::Option::None => { + return std::result::Result::Err("committed Memo has no byte length".to_string()); + }, + }; + let measured_length = match u64::try_from(memo_text.len()) { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => { + return std::result::Result::Err(format!( + "Memo text length conversion failed: {error}" + )); + }, + }; + if measured_length != payload_length_bytes { + return std::result::Result::Err( + "Memo byte length does not match its UTF-8 text".to_string(), + ); + } + if payload_length_bytes > crate::MT_TRANSACTION_ANNOTATIONS_MAX_MEMO_PAYLOAD_BYTES { + return std::result::Result::Err( + "Memo byte length exceeds the projection limit".to_string(), + ); + } + let payload_sha256 = match string_field(payload, "payloadSha256") { + std::option::Option::Some(value) if is_sha256(value) => value.to_string(), + _ => return std::result::Result::Err("Memo payload SHA-256 is invalid".to_string()), + }; + let signer_validation = match payload.get("signerValidation") { + std::option::Option::Some(value) => value, + std::option::Option::None => { + return std::result::Result::Err("Memo signer validation is absent".to_string()); + }, + }; + let signer_validation_status = match string_field(signer_validation, "status") { + std::option::Option::Some(value) if value == generation.signer_status() => { + value.to_string() + }, + _ => { + return std::result::Result::Err( + "Memo signer validation status is inconsistent".to_string(), + ); + }, + }; + let missing_signers = match string_array(signer_validation, "missingRequiredSigners") { + std::result::Result::Ok(value) => value, + std::result::Result::Err(message) => return std::result::Result::Err(message), + }; + if !missing_signers.is_empty() { + return std::result::Result::Err("committed Memo reports missing signers".to_string()); + } + let required_signers = match string_array(signer_validation, "orderedRequiredSigners") { + std::result::Result::Ok(value) => value, + std::result::Result::Err(message) => return std::result::Result::Err(message), + }; + let observed_signers = match string_array(signer_validation, "orderedObservedSigners") { + std::result::Result::Ok(value) => value, + std::result::Result::Err(message) => return std::result::Result::Err(message), + }; + let verified_signers = if generation == MemoGeneration::V1 { + if !required_signers.is_empty() { + return std::result::Result::Err("Memo v1 cannot require signers".to_string()); + } + std::vec::Vec::new() + } else { + if required_signers != observed_signers { + return std::result::Result::Err( + "committed Memo required and observed signers differ".to_string(), + ); + } + observed_signers.clone() + }; + return std::result::Result::Ok(MemoProjection { + generation, + memo_text, + payload_length_bytes, + payload_sha256, + required_signers, + observed_signers, + verified_signers, + signer_validation_status, + }); +} + +fn string_field<'a>(value: &'a serde_json::Value, key: &str) -> std::option::Option<&'a str> { + return value.get(key).and_then(serde_json::Value::as_str); +} + +fn string_array( + value: &serde_json::Value, + key: &str, +) -> std::result::Result, std::string::String> { + let values = match value.get(key).and_then(serde_json::Value::as_array) { + std::option::Option::Some(values) => values, + std::option::Option::None => { + return std::result::Result::Err(format!("Memo signer field {key} is not an array")); + }, + }; + let mut output = std::vec::Vec::with_capacity(values.len()); + for item in values { + let text = match item.as_str() { + std::option::Option::Some(text) if !text.trim().is_empty() => text, + _ => { + return std::result::Result::Err(format!( + "Memo signer field {key} contains an invalid pubkey" + )); + }, + }; + output.push(text.to_string()); + } + return std::result::Result::Ok(output); +} + +fn is_sha256(value: &str) -> bool { + return value.len() == 64 + && value + .as_bytes() + .iter() + .all(|byte| return byte.is_ascii_hexdigit() && !byte.is_ascii_uppercase()); +} + +fn failed(code: &str, message: std::string::String) -> crate::MtApiMaterializerExecutionResult { + return crate::MtApiMaterializerExecutionResult { + status: crate::MtApiMaterializerOutcomeStatus::Failed, + outputs: std::vec::Vec::new(), + diagnostics: std::vec![crate::MtApiMaterializerDiagnostic { + code: code.to_string(), + message, + retriable: false, + }], + }; +} + +#[cfg(test)] +mod tests { + fn observation( + program_id: &str, + surface_code: &str, + generation: &str, + event_name: &str, + failed: bool, + committed: bool, + required_signers: serde_json::Value, + observed_signers: serde_json::Value, + ) -> crate::DcApiDecodedObservation { + return crate::DcApiDecodedObservation { + event_key: "memo:0".to_string(), + event: crate::MdDecodedProtocolEvent { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(42), + instruction_path: crate::MdInstructionPath("1/0".to_string()), + program_id: crate::MdProgramId(program_id.to_string()), + protocol_code: crate::MdProtocolCode("spl_memo".to_string()), + surface_code: crate::MdSurfaceCode(surface_code.to_string()), + event_code: crate::MdEventCode(format!("{surface_code}.{event_name}")), + event_name: crate::MdEventName(event_name.to_string()), + event_family: crate::MdEventFamily::Audit, + source_kind: crate::MdEventSourceKind::InnerInstruction, + confidence: crate::MdDecoderConfidence::ManualExact, + }, + payload_json: serde_json::json!({ + "generation": generation, + "programId": program_id, + "instructionPath": "1/0", + "transactionSucceeded": !failed, + "committed": committed, + "memoText": "memo", + "payloadLengthBytes": 4, + "payloadSha256": "1111111111111111111111111111111111111111111111111111111111111111", + "payloadComplete": true, + "utf8Validation": {"status":"valid","invalidFromByte":null}, + "signerValidation": { + "status": if generation == "v1" { "not_applicable" } else { "valid" }, + "orderedRequiredSigners": required_signers, + "orderedObservedSigners": observed_signers, + "missingRequiredSigners": [] + }, + "runtimeValidation": if failed { + "not_proven_transaction_failed" + } else { + "proven_by_successful_transaction" + } + }), + transaction_failed: failed, + transaction_error: if failed { + std::option::Option::Some(serde_json::json!({"InstructionError":[0,"Custom"]})) + } else { + std::option::Option::None + }, + observation_committed: committed, + proof: crate::DcApiDecoderProof { + kind: crate::DcApiDecoderProofKind::Manual, + confidence: crate::MdDecoderConfidence::ManualExact, + evidence: std::vec!["memo".to_string()], + }, + }; + } + + fn v4() -> crate::DcApiDecodedObservation { + return observation( + kb_program_ids::SPL_MEMO_V4_PROGRAM_ID, + "spl_memo_v4", + "v4", + "add_memo", + false, + true, + serde_json::json!(["signer", "signer"]), + serde_json::json!(["signer", "signer"]), + ); + } + + #[test] + fn committed_v4_memo_becomes_deterministic_transaction_annotation() { + let materializer = crate::MtTransactionAnnotationMaterializer; + let first = crate::MtApiEventMaterializer::materialize(&materializer, &v4()); + let second = crate::MtApiEventMaterializer::materialize(&materializer, &v4()); + assert_eq!(first, second); + assert_eq!(first.status, crate::MtApiMaterializerOutcomeStatus::Inserted); + assert_eq!(first.outputs.len(), 1); + assert_eq!( + first.outputs[0].family, + crate::MdMaterializedEventFamily::TransactionAnnotation + ); + assert_eq!( + first.outputs[0].payload_json["signers"]["verified"], + serde_json::json!(["signer", "signer"]) + ); + assert_eq!(first.outputs[0].payload_json["committed"], true); + assert!(first.validate().is_ok()); + } + + #[test] + fn exact_v1_v3_and_v4_surfaces_are_accepted() { + for (program_id, surface, generation) in [ + (kb_program_ids::SPL_MEMO_V1_PROGRAM_ID, "spl_memo_v1", "v1"), + (kb_program_ids::SPL_MEMO_V3_PROGRAM_ID, "spl_memo_v3", "v3"), + (kb_program_ids::SPL_MEMO_V4_PROGRAM_ID, "spl_memo_v4", "v4"), + ] { + let observation = observation( + program_id, + surface, + generation, + "add_memo", + false, + true, + serde_json::json!([]), + serde_json::json!([]), + ); + assert!(crate::MtApiEventMaterializer::accepts_observation( + &crate::MtTransactionAnnotationMaterializer, + &observation, + )); + } + } + + #[test] + fn v1_observed_accounts_are_not_claimed_as_runtime_verified() { + let observation = observation( + kb_program_ids::SPL_MEMO_V1_PROGRAM_ID, + "spl_memo_v1", + "v1", + "add_memo", + false, + true, + serde_json::json!([]), + serde_json::json!(["observed_only"]), + ); + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTransactionAnnotationMaterializer, + &observation, + ); + assert_eq!(result.outputs[0].payload_json["signers"]["verified"], serde_json::json!([])); + assert_eq!( + result.outputs[0].payload_json["signers"]["observed"], + serde_json::json!(["observed_only"]) + ); + } + + #[test] + fn failed_or_uncommitted_memo_is_refused_without_output() { + let observation = observation( + kb_program_ids::SPL_MEMO_V4_PROGRAM_ID, + "spl_memo_v4", + "v4", + "memo_intent", + true, + false, + serde_json::json!([]), + serde_json::json!([]), + ); + let materializer = crate::MtTransactionAnnotationMaterializer; + let policy = + crate::materializer_api_validate_materialization_policy(&materializer, &observation); + assert!(policy.is_err()); + let result = crate::MtApiEventMaterializer::materialize(&materializer, &observation); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Refused); + assert!(result.outputs.is_empty()); + } + + #[test] + fn malformed_committed_payload_fails_closed() { + let mut observation = v4(); + observation.payload_json["payloadSha256"] = serde_json::Value::String("bad".to_string()); + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTransactionAnnotationMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Failed); + assert!(result.outputs.is_empty()); + assert_eq!(result.diagnostics[0].code, "memo_annotation_payload_invalid"); + } + + #[test] + fn foreign_audit_observation_is_not_accepted() { + let mut observation = v4(); + observation.event.protocol_code = crate::MdProtocolCode("foreign".to_string()); + assert!(!crate::MtApiEventMaterializer::accepts_observation( + &crate::MtTransactionAnnotationMaterializer, + &observation, + )); + let result = crate::MtApiEventMaterializer::materialize( + &crate::MtTransactionAnnotationMaterializer, + &observation, + ); + assert_eq!(result.status, crate::MtApiMaterializerOutcomeStatus::Ignored); + } + + #[test] + fn machine_readable_matrix_declares_transaction_annotation_policy() { + let parsed = serde_json::from_str::(include_str!( + "../../../../docs/SPL_MEMO_MATRIX.json" + )); + let matrix = match parsed { + std::result::Result::Ok(value) => value, + std::result::Result::Err(error) => panic!("memo matrix is invalid JSON: {error}"), + }; + assert_eq!(matrix["matrixVersion"], 4); + assert_eq!( + matrix["materializationContract"]["crate"], + "kb_materializer_transaction_annotations" + ); + assert_eq!( + matrix["materializationContract"]["transactionPolicy"], + "SuccessfulCommittedOnly" + ); + assert_eq!(matrix["materializationContract"]["failedOrUncommittedOutput"], false); + } +} diff --git a/kb-lib/src/materializer/transaction/constants.rs b/kb-lib/src/materializer/transaction/constants.rs new file mode 100644 index 0000000..cd8db32 --- /dev/null +++ b/kb-lib/src/materializer/transaction/constants.rs @@ -0,0 +1,14 @@ +// file: kb-lib/src/materializer/transaction/constants.rs +// version: 1 + +//! Local constants for the transaction annotation materializer. + +/// Maximum Memo payload accepted from the decoded contract. +pub(crate) const MT_TRANSACTION_ANNOTATIONS_MAX_MEMO_PAYLOAD_BYTES: u64 = 4_096; +/// Stable materializer processor name. +pub(crate) const MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME: &str = "transaction_annotations"; +/// Stable projection contract version. +pub(crate) const MT_TRANSACTION_ANNOTATIONS_PROJECTION_VERSION: u32 = 1; +/// Canonical tracing target for this component. +pub(crate) const MT_TRANSACTION_ANNOTATIONS_TRACING_TARGET: &str = + "kb-lib.materializer.transaction"; diff --git a/kb-lib/src/materializer/vault.rs b/kb-lib/src/materializer/vault.rs index d95e9f1..b8347ef 100644 --- a/kb-lib/src/materializer/vault.rs +++ b/kb-lib/src/materializer/vault.rs @@ -1,6 +1,6 @@ // file: kb-lib/src/materializer/vault.rs -// version: 1 +// version: 2 //! `vault` materializer family. -pub mod core; +mod core; diff --git a/kb-lib/src/materializer/vault/core.rs b/kb-lib/src/materializer/vault/core.rs index d265c09..e2f296c 100644 --- a/kb-lib/src/materializer/vault/core.rs +++ b/kb-lib/src/materializer/vault/core.rs @@ -1,10 +1,10 @@ // file: kb-lib/src/materializer/vault/core.rs -// version: 1 +// version: 2 //! Migration boundary for legacy crate `kb_materializer_vault`. /// Legacy crate name retained for migration and compatibility tracking. -pub const LEGACY_CRATE: &str = "kb_materializer_vault"; +const LEGACY_CRATE: &str = "kb_materializer_vault"; /// Current porting status. -pub const MIGRATION_STATUS: &str = "source-preserved-pending-port"; +const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/model.rs b/kb-lib/src/model.rs index 2e100c1..d917462 100644 --- a/kb-lib/src/model.rs +++ b/kb-lib/src/model.rs @@ -3,79 +3,79 @@ //! Shared canonical models consolidated from `kb_model`. -pub mod canonical_transaction; -pub mod decoded; -pub mod materialized; -pub mod nomenclature; -pub mod observation; -pub mod solana; +mod canonical_transaction; +mod decoded; +mod materialized; +mod nomenclature; +mod observation; +/// Source-neutral replay contracts. +mod replay; +mod solana; /// Current canonical transaction document version. -pub use crate::model::canonical_transaction::CANONICAL_TRANSACTION_FORMAT_VERSION; +pub use self::canonical_transaction::MD_CANONICAL_TRANSACTION_FORMAT_VERSION; /// Canonical address lookup table reference. -pub use crate::model::canonical_transaction::CanonicalAddressTableLookup; +pub use self::canonical_transaction::MdCanonicalAddressTableLookup; /// Canonical compiled Solana instruction. -pub use crate::model::canonical_transaction::CanonicalCompiledInstruction; +pub use self::canonical_transaction::MdCanonicalCompiledInstruction; /// Canonical group of inner instructions. -pub use crate::model::canonical_transaction::CanonicalInnerInstructionGroup; +pub use self::canonical_transaction::MdCanonicalInnerInstructionGroup; /// Canonical runtime-loaded addresses. -pub use crate::model::canonical_transaction::CanonicalLoadedAddresses; +pub use self::canonical_transaction::MdCanonicalLoadedAddresses; /// Canonical Solana message header. -pub use crate::model::canonical_transaction::CanonicalMessageHeader; +pub use self::canonical_transaction::MdCanonicalMessageHeader; /// Canonical transaction return data. -pub use crate::model::canonical_transaction::CanonicalReturnData; +pub use self::canonical_transaction::MdCanonicalReturnData; /// Canonical transaction reward. -pub use crate::model::canonical_transaction::CanonicalReward; +pub use self::canonical_transaction::MdCanonicalReward; /// Canonical exact token balance. -pub use crate::model::canonical_transaction::CanonicalTokenBalance; +pub use self::canonical_transaction::MdCanonicalTokenBalance; /// Source-independent canonical Solana transaction. -pub use crate::model::canonical_transaction::CanonicalTransaction; +pub use self::canonical_transaction::MdCanonicalTransaction; /// Canonical Solana transaction message. -pub use crate::model::canonical_transaction::CanonicalTransactionMessage; +pub use self::canonical_transaction::MdCanonicalTransactionMessage; /// Canonical Solana transaction execution metadata. -pub use crate::model::canonical_transaction::CanonicalTransactionMetadata; +pub use self::canonical_transaction::MdCanonicalTransactionMetadata; /// Canonical Solana transaction execution status. -pub use crate::model::canonical_transaction::CanonicalTransactionStatus; +pub use self::canonical_transaction::MdCanonicalTransactionStatus; /// Canonical Solana transaction version. -pub use crate::model::canonical_transaction::CanonicalTransactionVersion; +pub use self::canonical_transaction::MdCanonicalTransactionVersion; /// Protocol-level decoded event produced by a decoder. -pub use crate::model::decoded::DecodedProtocolEvent; +pub use self::decoded::MdDecodedProtocolEvent; /// Confidence level for a decoded event. -pub use crate::model::decoded::DecoderConfidence; +pub use self::decoded::MdDecoderConfidence; /// Source from which a decoded event was derived. -pub use crate::model::decoded::EventSourceKind; +pub use self::decoded::MdEventSourceKind; /// Business-level materialized event placeholder. -pub use crate::model::materialized::MaterializedEvent; +pub use self::materialized::MdMaterializedEvent; /// Materialized event family. -pub use crate::model::materialized::MaterializedEventFamily; +pub use self::materialized::MdMaterializedEventFamily; /// Canonical event code in `.` format. -pub use crate::model::nomenclature::EventCode; +pub use self::nomenclature::MdEventCode; /// High-level event family. -pub use crate::model::nomenclature::EventFamily; +pub use self::nomenclature::MdEventFamily; /// Event name without surface prefix. -pub use crate::model::nomenclature::EventName; +pub use self::nomenclature::MdEventName; /// Stable internal program code. -pub use crate::model::nomenclature::ProgramCode; +pub use self::nomenclature::MdProgramCode; /// Protocol family code, for example `raydium` or `meteora`. -pub use crate::model::nomenclature::ProtocolCode; +pub use self::nomenclature::MdProtocolCode; /// Concrete protocol surface code, for example `raydium_amm_v4`. -pub use crate::model::nomenclature::SurfaceCode; +pub use self::nomenclature::MdSurfaceCode; /// Generic program observation derived from a Solana instruction. -pub use crate::model::observation::ProgramObservation; +pub use self::observation::MdProgramObservation; /// Stable top-level or inner instruction path. -pub use crate::model::solana::InstructionPath; +pub use self::solana::MdInstructionPath; /// Solana program id. -pub use crate::model::solana::ProgramId; +pub use self::solana::MdProgramId; /// Solana public key. -pub use crate::model::solana::Pubkey; +pub use self::solana::MdPubkey; /// Solana transaction signature. -pub use crate::model::solana::Signature; +pub use self::solana::MdSignature; /// Solana slot. -pub use crate::model::solana::Slot; +pub use self::solana::MdSlot; -/// Source-neutral replay contracts. -pub mod replay; /// Version of the normalized core replay contract. -pub use crate::model::replay::CORE_REPLAY_INPUT_CONTRACT_VERSION; +pub use self::replay::MD_CORE_REPLAY_INPUT_CONTRACT_VERSION; /// Decoder replay input containing one instruction plus extracted transaction context. -pub use crate::model::replay::CoreInstructionReplayInput; +pub use self::replay::MdCoreInstructionReplayInput; diff --git a/kb-lib/src/model/canonical_transaction.rs b/kb-lib/src/model/canonical_transaction.rs index 9fbe464..3f10d93 100644 --- a/kb-lib/src/model/canonical_transaction.rs +++ b/kb-lib/src/model/canonical_transaction.rs @@ -7,12 +7,12 @@ use base64::Engine; // rust-rules: trait-import use sha2::Digest; // rust-rules: trait-import /// Current canonical transaction document version. -pub const CANONICAL_TRANSACTION_FORMAT_VERSION: u32 = 1; +pub const MD_CANONICAL_TRANSACTION_FORMAT_VERSION: u32 = 1; /// Source-independent canonical Solana transaction. #[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalTransaction { +pub struct MdCanonicalTransaction { /// Canonical contract version included in the hashed document. pub format_version: u32, /// Primary transaction signature as base58 text. @@ -22,19 +22,19 @@ pub struct CanonicalTransaction { /// Optional block timestamp as Unix seconds. pub block_time: std::option::Option, /// Transaction message version. - pub version: CanonicalTransactionVersion, + pub version: MdCanonicalTransactionVersion, /// All transaction signatures in message order. pub signatures: std::vec::Vec, /// Canonical transaction message. - pub message: CanonicalTransactionMessage, + pub message: MdCanonicalTransactionMessage, /// Optional execution metadata. - pub metadata: std::option::Option, + pub metadata: std::option::Option, } -impl CanonicalTransaction { +impl MdCanonicalTransaction { /// Validates the canonical transaction invariants. pub fn validate(&self) -> kb_core::Result<()> { - if self.format_version != crate::CANONICAL_TRANSACTION_FORMAT_VERSION { + if self.format_version != crate::MD_CANONICAL_TRANSACTION_FORMAT_VERSION { return std::result::Result::Err(kb_core::Error::invalid_state(format!( "unsupported canonical transaction format version: {}", self.format_version @@ -73,7 +73,7 @@ impl CanonicalTransaction { if let std::result::Result::Err(error) = message_result { return std::result::Result::Err(error); } - if self.version == CanonicalTransactionVersion::Legacy + if self.version == MdCanonicalTransactionVersion::Legacy && (!self.message.address_table_lookups.is_empty() || !self.message.loaded_addresses.writable.is_empty() || !self.message.loaded_addresses.readonly.is_empty()) @@ -146,7 +146,7 @@ impl CanonicalTransaction { /// Canonical Solana transaction version. #[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(tag = "kind", content = "number", rename_all = "snake_case")] -pub enum CanonicalTransactionVersion { +pub enum MdCanonicalTransactionVersion { /// Legacy transaction message. Legacy, /// Numbered versioned transaction message. @@ -156,7 +156,7 @@ pub enum CanonicalTransactionVersion { /// Canonical Solana message header. #[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalMessageHeader { +pub struct MdCanonicalMessageHeader { /// Number of required transaction signatures. pub num_required_signatures: u8, /// Number of readonly signed accounts. @@ -168,22 +168,22 @@ pub struct CanonicalMessageHeader { /// Canonical Solana transaction message. #[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalTransactionMessage { +pub struct MdCanonicalTransactionMessage { /// Message header. - pub header: CanonicalMessageHeader, + pub header: MdCanonicalMessageHeader, /// Static account keys in message order. pub static_account_keys: std::vec::Vec, /// Recent blockhash as base58 text. pub recent_blockhash: std::string::String, /// Top-level compiled instructions. - pub instructions: std::vec::Vec, + pub instructions: std::vec::Vec, /// Address lookup table references for versioned messages. - pub address_table_lookups: std::vec::Vec, + pub address_table_lookups: std::vec::Vec, /// Loaded writable and readonly addresses resolved by the runtime. - pub loaded_addresses: CanonicalLoadedAddresses, + pub loaded_addresses: MdCanonicalLoadedAddresses, } -impl CanonicalTransactionMessage { +impl MdCanonicalTransactionMessage { /// Returns the resolved account count including loaded addresses. pub fn resolved_account_count(&self) -> usize { return self.static_account_keys.len() @@ -262,7 +262,7 @@ impl CanonicalTransactionMessage { /// Canonical compiled Solana instruction. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalCompiledInstruction { +pub struct MdCanonicalCompiledInstruction { /// Resolved account index of the invoked program. pub program_id_index: u16, /// Resolved account indexes consumed by the instruction. @@ -273,7 +273,7 @@ pub struct CanonicalCompiledInstruction { pub stack_height: std::option::Option, } -impl CanonicalCompiledInstruction { +impl MdCanonicalCompiledInstruction { fn validate(&self, resolved_account_count: usize) -> kb_core::Result<()> { if usize::from(self.program_id_index) >= resolved_account_count { return std::result::Result::Err(kb_core::Error::invalid_state( @@ -301,7 +301,7 @@ impl CanonicalCompiledInstruction { /// Canonical address lookup table reference. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalAddressTableLookup { +pub struct MdCanonicalAddressTableLookup { /// Lookup table account key as base58 text. pub account_key: std::string::String, /// Writable lookup indexes. @@ -313,7 +313,7 @@ pub struct CanonicalAddressTableLookup { /// Runtime-loaded addresses for a versioned transaction. #[derive(Clone, Debug, Default, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalLoadedAddresses { +pub struct MdCanonicalLoadedAddresses { /// Writable loaded addresses in runtime order. pub writable: std::vec::Vec, /// Readonly loaded addresses in runtime order. @@ -323,7 +323,7 @@ pub struct CanonicalLoadedAddresses { /// Canonical transaction execution status. #[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "snake_case")] -pub enum CanonicalTransactionStatus { +pub enum MdCanonicalTransactionStatus { /// Transaction execution succeeded. Success, /// Transaction execution failed. @@ -333,9 +333,9 @@ pub enum CanonicalTransactionStatus { /// Canonical transaction execution metadata. #[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalTransactionMetadata { +pub struct MdCanonicalTransactionMetadata { /// Canonical execution status. - pub status: CanonicalTransactionStatus, + pub status: MdCanonicalTransactionStatus, /// Optional source-independent transaction error document. pub error: std::option::Option, /// Transaction fee in lamports. @@ -345,24 +345,24 @@ pub struct CanonicalTransactionMetadata { /// Account balances after execution in lamports. pub post_balances: std::vec::Vec, /// Inner instruction groups indexed by parent top-level instruction. - pub inner_instructions: std::vec::Vec, + pub inner_instructions: std::vec::Vec, /// Runtime log messages in execution order. pub log_messages: std::vec::Vec, /// Token balances before execution. - pub pre_token_balances: std::vec::Vec, + pub pre_token_balances: std::vec::Vec, /// Token balances after execution. - pub post_token_balances: std::vec::Vec, + pub post_token_balances: std::vec::Vec, /// Transaction rewards. - pub rewards: std::vec::Vec, + pub rewards: std::vec::Vec, /// Optional transaction return data. - pub return_data: std::option::Option, + pub return_data: std::option::Option, /// Optional consumed compute units. pub compute_units_consumed: std::option::Option, /// Optional runtime cost units. pub cost_units: std::option::Option, } -impl CanonicalTransactionMetadata { +impl MdCanonicalTransactionMetadata { fn validate( &self, resolved_account_count: usize, @@ -379,14 +379,14 @@ impl CanonicalTransactionMetadata { )); } match self.status { - CanonicalTransactionStatus::Success => { + MdCanonicalTransactionStatus::Success => { if self.error.is_some() { return std::result::Result::Err(kb_core::Error::invalid_state( "successful canonical transaction must not contain an error", )); } }, - CanonicalTransactionStatus::Failed => { + MdCanonicalTransactionStatus::Failed => { if self.error.is_none() { return std::result::Result::Err(kb_core::Error::invalid_state( "failed canonical transaction must contain an error", @@ -453,17 +453,17 @@ impl CanonicalTransactionMetadata { /// Group of inner instructions attached to one top-level instruction. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalInnerInstructionGroup { +pub struct MdCanonicalInnerInstructionGroup { /// Parent top-level instruction index. pub parent_instruction_index: u16, /// Inner instructions in runtime order. - pub instructions: std::vec::Vec, + pub instructions: std::vec::Vec, } /// Exact SPL token balance representation. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalTokenBalance { +pub struct MdCanonicalTokenBalance { /// Resolved account index. pub account_index: u16, /// Token mint public key. @@ -480,7 +480,7 @@ pub struct CanonicalTokenBalance { pub decimal_amount: std::string::String, } -impl CanonicalTokenBalance { +impl MdCanonicalTokenBalance { /// Creates an exact canonical token balance without provider-specific UI formatting. pub fn new( account_index: u16, @@ -552,7 +552,7 @@ impl CanonicalTokenBalance { /// Canonical transaction reward. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalReward { +pub struct MdCanonicalReward { /// Reward account public key. pub pubkey: std::string::String, /// Signed lamport delta. @@ -568,7 +568,7 @@ pub struct CanonicalReward { /// Canonical transaction return data. #[derive(Clone, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)] #[serde(rename_all = "camelCase")] -pub struct CanonicalReturnData { +pub struct MdCanonicalReturnData { /// Program that returned the data. pub program_id: std::string::String, /// Return bytes encoded as standard base64. @@ -671,18 +671,18 @@ fn validate_base58_length( #[cfg(test)] mod tests { - fn sample_transaction() -> crate::CanonicalTransaction { - return crate::CanonicalTransaction { - format_version: crate::CANONICAL_TRANSACTION_FORMAT_VERSION, + fn sample_transaction() -> crate::MdCanonicalTransaction { + return crate::MdCanonicalTransaction { + format_version: crate::MD_CANONICAL_TRANSACTION_FORMAT_VERSION, primary_signature: "2Ana1pUpv2ZbMVkwF5FXapYeBEjdxDatLn7nvJkhgTSXbs59SyZSx866bXirPgj8QQVB57uxHJBG1YFvkRbFj4T".to_string(), slot: 42, block_time: std::option::Option::Some(1_700_000_000), - version: crate::CanonicalTransactionVersion::Legacy, + version: crate::MdCanonicalTransactionVersion::Legacy, signatures: std::vec![ "2Ana1pUpv2ZbMVkwF5FXapYeBEjdxDatLn7nvJkhgTSXbs59SyZSx866bXirPgj8QQVB57uxHJBG1YFvkRbFj4T".to_string(), ], - message: crate::CanonicalTransactionMessage { - header: crate::CanonicalMessageHeader { + message: crate::MdCanonicalTransactionMessage { + header: crate::MdCanonicalMessageHeader { num_required_signatures: 1, num_readonly_signed_accounts: 0, num_readonly_unsigned_accounts: 1, @@ -692,17 +692,17 @@ mod tests { "SysvarC1ock11111111111111111111111111111111".to_string(), ], recent_blockhash: "11111111111111111111111111111111".to_string(), - instructions: std::vec![crate::CanonicalCompiledInstruction { + instructions: std::vec![crate::MdCanonicalCompiledInstruction { program_id_index: 0, account_indexes: std::vec![1], data_base64: "AQ==".to_string(), stack_height: std::option::Option::Some(1), }], address_table_lookups: std::vec::Vec::new(), - loaded_addresses: crate::CanonicalLoadedAddresses::default(), + loaded_addresses: crate::MdCanonicalLoadedAddresses::default(), }, - metadata: std::option::Option::Some(crate::CanonicalTransactionMetadata { - status: crate::CanonicalTransactionStatus::Success, + metadata: std::option::Option::Some(crate::MdCanonicalTransactionMetadata { + status: crate::MdCanonicalTransactionStatus::Success, error: std::option::Option::None, fee: 5000, pre_balances: std::vec![10_000, 1], @@ -740,14 +740,14 @@ mod tests { let mut first = sample_transaction(); let mut second = sample_transaction(); if let std::option::Option::Some(metadata) = &mut first.metadata { - metadata.status = crate::CanonicalTransactionStatus::Failed; + metadata.status = crate::MdCanonicalTransactionStatus::Failed; metadata.error = std::option::Option::Some(serde_json::json!({ "z": 3, "nested": {"b": 2, "a": 1} })); } if let std::option::Option::Some(metadata) = &mut second.metadata { - metadata.status = crate::CanonicalTransactionStatus::Failed; + metadata.status = crate::MdCanonicalTransactionStatus::Failed; let parse_result = serde_json::from_str::(r#"{"nested":{"a":1,"b":2},"z":3}"#); metadata.error = match parse_result { @@ -777,7 +777,7 @@ mod tests { #[test] fn token_decimal_amount_is_derived_without_source_ui_formatting() { - let result = crate::CanonicalTokenBalance::new( + let result = crate::MdCanonicalTokenBalance::new( 0, "So11111111111111111111111111111111111111112", std::option::Option::None, @@ -811,7 +811,7 @@ mod tests { fn validation_rejects_inconsistent_status_and_error() { let mut transaction = sample_transaction(); if let std::option::Option::Some(metadata) = &mut transaction.metadata { - metadata.status = crate::CanonicalTransactionStatus::Failed; + metadata.status = crate::MdCanonicalTransactionStatus::Failed; } let result = transaction.validate(); assert!(result.is_err()); diff --git a/kb-lib/src/model/decoded.rs b/kb-lib/src/model/decoded.rs index 4b9443d..7fca08e 100644 --- a/kb-lib/src/model/decoded.rs +++ b/kb-lib/src/model/decoded.rs @@ -11,7 +11,7 @@ use ts_rs::TS; // rust-rules: derive-import export, export_to = "../frontend/ts/bindings/kb_model/decoded/EventSourceKind.ts" )] -pub enum EventSourceKind { +pub enum MdEventSourceKind { /// Top-level instruction. Instruction, /// Inner instruction. @@ -38,7 +38,7 @@ pub enum EventSourceKind { export, export_to = "../frontend/ts/bindings/kb_model/decoded/DecoderConfidence.ts" )] -pub enum DecoderConfidence { +pub enum MdDecoderConfidence { /// Exact manual decode. Exact, /// Exact IDL-based decode. @@ -61,27 +61,27 @@ pub enum DecoderConfidence { export, export_to = "../frontend/ts/bindings/kb_model/decoded/DecodedProtocolEvent.ts" )] -pub struct DecodedProtocolEvent { +pub struct MdDecodedProtocolEvent { /// Transaction signature. - pub signature: crate::Signature, + pub signature: crate::MdSignature, /// Transaction slot. - pub slot: crate::Slot, + pub slot: crate::MdSlot, /// Instruction path. - pub instruction_path: crate::InstructionPath, + pub instruction_path: crate::MdInstructionPath, /// Program id. - pub program_id: crate::ProgramId, + pub program_id: crate::MdProgramId, /// Protocol family. - pub protocol_code: crate::ProtocolCode, + pub protocol_code: crate::MdProtocolCode, /// Protocol surface. - pub surface_code: crate::SurfaceCode, + pub surface_code: crate::MdSurfaceCode, /// Canonical event code. - pub event_code: crate::EventCode, + pub event_code: crate::MdEventCode, /// Short event name. - pub event_name: crate::EventName, + pub event_name: crate::MdEventName, /// Event family. - pub event_family: crate::EventFamily, + pub event_family: crate::MdEventFamily, /// Event source kind. - pub source_kind: crate::EventSourceKind, + pub source_kind: crate::MdEventSourceKind, /// Decoder confidence. - pub confidence: crate::DecoderConfidence, + pub confidence: crate::MdDecoderConfidence, } diff --git a/kb-lib/src/model/materialized.rs b/kb-lib/src/model/materialized.rs index 7121220..b704d77 100644 --- a/kb-lib/src/model/materialized.rs +++ b/kb-lib/src/model/materialized.rs @@ -11,7 +11,7 @@ use ts_rs::TS; // rust-rules: derive-import export, export_to = "../frontend/ts/bindings/kb_model/materialized/MaterializedEventFamily.ts" )] -pub enum MaterializedEventFamily { +pub enum MdMaterializedEventFamily { /// Trade materialization. Trade, /// Liquidity materialization. @@ -68,13 +68,13 @@ pub enum MaterializedEventFamily { export, export_to = "../frontend/ts/bindings/kb_model/materialized/MaterializedEvent.ts" )] -pub struct MaterializedEvent { +pub struct MdMaterializedEvent { /// Source transaction signature. - pub signature: crate::Signature, + pub signature: crate::MdSignature, /// Source transaction slot. - pub slot: crate::Slot, + pub slot: crate::MdSlot, /// Source decoded family. - pub decoded_family: crate::EventFamily, + pub decoded_family: crate::MdEventFamily, /// Materialized family. - pub materialized_family: crate::MaterializedEventFamily, + pub materialized_family: crate::MdMaterializedEventFamily, } diff --git a/kb-lib/src/model/nomenclature.rs b/kb-lib/src/model/nomenclature.rs index 5ec0bd3..196b864 100644 --- a/kb-lib/src/model/nomenclature.rs +++ b/kb-lib/src/model/nomenclature.rs @@ -11,7 +11,7 @@ use ts_rs::TS; // rust-rules: derive-import export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/ProgramCode.ts" )] -pub struct ProgramCode(pub std::string::String); +pub struct MdProgramCode(pub std::string::String); /// Protocol family code, for example `raydium` or `meteora`. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] @@ -19,7 +19,7 @@ pub struct ProgramCode(pub std::string::String); export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/ProtocolCode.ts" )] -pub struct ProtocolCode(pub std::string::String); +pub struct MdProtocolCode(pub std::string::String); /// Concrete protocol surface code, for example `raydium_amm_v4`. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] @@ -27,17 +27,17 @@ pub struct ProtocolCode(pub std::string::String); export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/SurfaceCode.ts" )] -pub struct SurfaceCode(pub std::string::String); +pub struct MdSurfaceCode(pub std::string::String); /// Event name without surface prefix. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts(export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/EventName.ts")] -pub struct EventName(pub std::string::String); +pub struct MdEventName(pub std::string::String); /// Canonical event code in `.` format. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts(export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/EventCode.ts")] -pub struct EventCode(pub std::string::String); +pub struct MdEventCode(pub std::string::String); /// High-level event family. #[derive(Clone, Copy, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] @@ -45,7 +45,7 @@ pub struct EventCode(pub std::string::String); export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/EventFamily.ts" )] -pub enum EventFamily { +pub enum MdEventFamily { /// Swap or buy/sell event. Trade, /// Liquidity deposit/withdraw or equivalent. diff --git a/kb-lib/src/model/observation.rs b/kb-lib/src/model/observation.rs index 1bf5ed3..468bea0 100644 --- a/kb-lib/src/model/observation.rs +++ b/kb-lib/src/model/observation.rs @@ -11,15 +11,15 @@ use ts_rs::TS; // rust-rules: derive-import export, export_to = "../frontend/ts/bindings/kb_model/observation/ProgramObservation.ts" )] -pub struct ProgramObservation { +pub struct MdProgramObservation { /// Transaction signature. - pub signature: crate::Signature, + pub signature: crate::MdSignature, /// Transaction slot. - pub slot: crate::Slot, + pub slot: crate::MdSlot, /// Instruction path. - pub instruction_path: crate::InstructionPath, + pub instruction_path: crate::MdInstructionPath, /// Program id. - pub program_id: crate::ProgramId, + pub program_id: crate::MdProgramId, /// Optional 8-byte discriminator in hexadecimal. pub discriminator_8: std::option::Option, /// Raw instruction data length. diff --git a/kb-lib/src/model/replay.rs b/kb-lib/src/model/replay.rs index 7cd94ce..1e18fc8 100644 --- a/kb-lib/src/model/replay.rs +++ b/kb-lib/src/model/replay.rs @@ -4,11 +4,11 @@ //! Source-neutral instruction replay input shared by decoders and stores. /// Version of the normalized core replay contract. -pub const CORE_REPLAY_INPUT_CONTRACT_VERSION: u32 = 2; +pub const MD_CORE_REPLAY_INPUT_CONTRACT_VERSION: u32 = 2; /// Decoder replay input containing one instruction plus extracted transaction context. #[derive(Clone, Debug, PartialEq, serde::Deserialize, serde::Serialize)] -pub struct CoreInstructionReplayInput { +pub struct MdCoreInstructionReplayInput { /// Version of the normalized core replay contract. pub core_contract_version: u32, /// Stable deduplication key for this replay input. @@ -45,7 +45,7 @@ pub struct CoreInstructionReplayInput { pub balance_changes_json: serde_json::Value, } -impl CoreInstructionReplayInput { +impl MdCoreInstructionReplayInput { /// Builds a decoder replay input after validating its stable identity and array context. #[allow(clippy::too_many_arguments)] pub fn new( @@ -71,7 +71,7 @@ impl CoreInstructionReplayInput { )); } let value = Self { - core_contract_version: crate::CORE_REPLAY_INPUT_CONTRACT_VERSION, + core_contract_version: crate::MD_CORE_REPLAY_INPUT_CONTRACT_VERSION, replay_input_key: replay_input_key.into(), signature: signature.into(), slot, @@ -98,7 +98,7 @@ impl CoreInstructionReplayInput { /// Validates the stable replay identity and contract version. pub fn validate(&self) -> kb_core::Result<()> { - if self.core_contract_version != crate::CORE_REPLAY_INPUT_CONTRACT_VERSION { + if self.core_contract_version != crate::MD_CORE_REPLAY_INPUT_CONTRACT_VERSION { return std::result::Result::Err(kb_core::Error::invalid_state( "unsupported core replay input contract version", )); diff --git a/kb-lib/src/model/solana.rs b/kb-lib/src/model/solana.rs index 2e2a28b..95f3d30 100644 --- a/kb-lib/src/model/solana.rs +++ b/kb-lib/src/model/solana.rs @@ -8,7 +8,7 @@ use ts_rs::TS; // rust-rules: derive-import /// Solana transaction signature. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts(export, export_to = "../frontend/ts/bindings/kb_model/solana/Signature.ts")] -pub struct Signature(pub std::string::String); +pub struct MdSignature(pub std::string::String); /// Solana slot. #[derive( @@ -25,19 +25,19 @@ pub struct Signature(pub std::string::String); TS, )] #[ts(export, export_to = "../frontend/ts/bindings/kb_model/solana/Slot.ts")] -pub struct Slot(pub u64); +pub struct MdSlot(pub u64); /// Solana program id. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts(export, export_to = "../frontend/ts/bindings/kb_model/solana/ProgramId.ts")] -pub struct ProgramId(pub std::string::String); +pub struct MdProgramId(pub std::string::String); /// Solana public key. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts(export, export_to = "../frontend/ts/bindings/kb_model/solana/Pubkey.ts")] -pub struct Pubkey(pub std::string::String); +pub struct MdPubkey(pub std::string::String); /// Stable top-level or inner instruction path. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts(export, export_to = "../frontend/ts/bindings/kb_model/solana/InstructionPath.ts")] -pub struct InstructionPath(pub std::string::String); +pub struct MdInstructionPath(pub std::string::String); diff --git a/kb-lib/tests/external_decoder_api.rs b/kb-lib/tests/external_decoder_api.rs new file mode 100644 index 0000000..6da1411 --- /dev/null +++ b/kb-lib/tests/external_decoder_api.rs @@ -0,0 +1,42 @@ +// file: kb-lib/tests/external_decoder_api.rs +// version: 1 + +//! Downstream-style compilation contract for externally implemented decoders. + +struct ExternalDecoder; + +impl kb_lib::DcApiProtocolDecoder for ExternalDecoder { + fn decoder_name(&self) -> &'static str { + return "external_decoder"; + } + + fn decoder_version(&self) -> &'static str { + return "1"; + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[]; + } + + fn supports_observation( + &self, + _observation: &kb_lib::MdProgramObservation, + ) -> kb_lib::DcApiDecoderSupport { + return kb_lib::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &kb_lib::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} + +#[test] +fn external_decoder_uses_only_the_public_kb_lib_contract() { + let decoder: &dyn kb_lib::DcApiProtocolDecoder = &ExternalDecoder; + assert_eq!(decoder.decoder_name(), "external_decoder"); + assert_eq!(decoder.decoder_version(), "1"); + assert!(decoder.program_ids().is_empty()); +} diff --git a/kb-lib/tests/external_executor_api.rs b/kb-lib/tests/external_executor_api.rs new file mode 100644 index 0000000..ebf2cfd --- /dev/null +++ b/kb-lib/tests/external_executor_api.rs @@ -0,0 +1,46 @@ +// file: kb-lib/tests/external_executor_api.rs +// version: 1 + +//! Downstream-style compilation contract for externally implemented executors. + +struct ExternalExecutor; + +impl kb_lib::ExApiInstructionExecutor for ExternalExecutor { + fn executor_name(&self) -> &'static str { + return "external_executor"; + } + + fn executor_version(&self) -> &'static str { + return "1"; + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[]; + } + + fn supports_request( + &self, + _request: &kb_lib::ExApiExecutionRequest, + ) -> kb_lib::ExApiExecutionSupport { + return kb_lib::ExApiExecutionSupport::No; + } + + fn build_plan( + &self, + request: &kb_lib::ExApiExecutionRequest, + ) -> kb_core::Result { + return std::result::Result::Ok(kb_lib::ExApiExecutionPlan { + executor_name: self.executor_name().to_string(), + instruction_count: 0, + payload_json: request.payload_json.clone(), + }); + } +} + +#[test] +fn external_executor_uses_only_the_public_kb_lib_contract() { + let executor: &dyn kb_lib::ExApiInstructionExecutor = &ExternalExecutor; + assert_eq!(executor.executor_name(), "external_executor"); + assert_eq!(executor.executor_version(), "1"); + assert!(executor.program_ids().is_empty()); +} diff --git a/kb-lib/tests/external_materializer_api.rs b/kb-lib/tests/external_materializer_api.rs index cd9c823..60a8f5e 100644 --- a/kb-lib/tests/external_materializer_api.rs +++ b/kb-lib/tests/external_materializer_api.rs @@ -1,42 +1,62 @@ // file: kb-lib/tests/external_materializer_api.rs -// version: 1 +// version: 2 //! Downstream-style compilation contract for externally implemented materializers. -const ACCEPTED_FAMILIES: &[kb_lib::EventFamily] = &[kb_lib::EventFamily::Audit]; +const ACCEPTED_FAMILIES: &[kb_lib::MdEventFamily] = &[kb_lib::MdEventFamily::Audit]; struct ExternalAuditMaterializer; -impl kb_lib::EventMaterializer for ExternalAuditMaterializer { - fn identity(&self) -> kb_lib::MaterializerIdentity { - return kb_lib::MaterializerIdentity { +fn assert_event_materializer() {} + +fn assert_legacy_materializer() {} + +impl kb_lib::MtApiEventMaterializer for ExternalAuditMaterializer { + fn identity(&self) -> kb_lib::MtApiMaterializerIdentity { + return kb_lib::MtApiMaterializerIdentity { name: "external_audit_materializer".to_string(), version: "1".to_string(), }; } - fn accepted_families(&self) -> &'static [kb_lib::EventFamily] { + fn accepted_families(&self) -> &'static [kb_lib::MdEventFamily] { return ACCEPTED_FAMILIES; } fn transaction_policy( &self, - _family: kb_lib::EventFamily, - ) -> kb_lib::MaterializationTransactionPolicy { - return kb_lib::MaterializationTransactionPolicy::SuccessfulOrFailedAudit; + _family: kb_lib::MdEventFamily, + ) -> kb_lib::MtApiMaterializationTransactionPolicy { + return kb_lib::MtApiMaterializationTransactionPolicy::SuccessfulOrFailedAudit; } fn materialize( &self, - _observation: &kb_lib::DecodedObservation, - ) -> kb_lib::MaterializerExecutionResult { - return kb_lib::MaterializerExecutionResult::ignored(); + _observation: &kb_lib::DcApiDecodedObservation, + ) -> kb_lib::MtApiMaterializerExecutionResult { + return kb_lib::MtApiMaterializerExecutionResult::ignored(); } } #[test] fn external_materializer_uses_only_the_public_kb_lib_contract() { - let materializer: &dyn kb_lib::EventMaterializer = &ExternalAuditMaterializer; + let materializer: &dyn kb_lib::MtApiEventMaterializer = &ExternalAuditMaterializer; assert_eq!(materializer.identity().name, "external_audit_materializer"); assert_eq!(materializer.accepted_families(), ACCEPTED_FAMILIES); + assert_event_materializer::(); + assert_event_materializer::(); + assert_event_materializer::(); + assert_event_materializer::(); + assert_event_materializer::(); + assert_event_materializer::(); + assert_event_materializer::(); + assert_event_materializer::(); + assert_legacy_materializer::(); + let _ = kb_lib::materializer_admin_materialize_elgamal_registry_state_snapshot; + let _ = kb_lib::materialize_metaplex_account_snapshot; + let _ = kb_lib::materialize_metaplex_metadata_snapshot; + let _ = kb_lib::materialize_token2022_admin_state_snapshots; + let _ = kb_lib::materialize_token2022_fee_state_snapshots; + let _ = kb_lib::materialize_token2022_metadata_snapshot; + let _ = kb_lib::materialize_token2022_state_snapshot; } diff --git a/kb-logging/src/lib.rs b/kb-logging/src/lib.rs index 29dce3e..90207bc 100644 --- a/kb-logging/src/lib.rs +++ b/kb-logging/src/lib.rs @@ -10,7 +10,7 @@ mod constants; /// Canonical tracing target for this crate. -pub(crate) use crate::constants::TRACING_TARGET; +pub(crate) use self::constants::TRACING_TARGET; /// Returns the canonical tracing target. pub fn tracing_target() -> &'static str { diff --git a/kb-program-ids/src/constants.rs b/kb-program-ids/src/constants.rs index c4229a4..dc64733 100644 --- a/kb-program-ids/src/constants.rs +++ b/kb-program-ids/src/constants.rs @@ -45,9 +45,9 @@ pub const SPL_MEMO_V4_PROGRAM_ID: &str = "Memo4c2pN8afCj432Lb7RMVKi9PbQnnW7ewFFa /// Classic SPL Token program identifier. pub const SPL_TOKEN_PROGRAM_ID: &str = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; /// SPL Token-2022 program identifier. -pub const SPL_TOKEN_2022_PROGRAM_ID: &str = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"; +pub const SPL_TOKEN2022_PROGRAM_ID: &str = "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"; /// SPL Token-2022 ElGamal public-key registry program identifier. -pub const SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID: &str = +pub const SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID: &str = "regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg"; /// Historical Stake configuration account identifier. pub const STAKE_CONFIG_ACCOUNT_ID: &str = "StakeConfig11111111111111111111111111111111"; @@ -242,12 +242,12 @@ pub(crate) const PROGRAM_ID_ENTRIES: &[crate::ProgramIdEntry] = &[ address: crate::SPL_TOKEN_PROGRAM_ID, }, crate::ProgramIdEntry { - name: "spl_token_2022", - address: crate::SPL_TOKEN_2022_PROGRAM_ID, + name: "spl_token2022", + address: crate::SPL_TOKEN2022_PROGRAM_ID, }, crate::ProgramIdEntry { - name: "spl_token_2022_elgamal_registry", - address: crate::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID, + name: "spl_token2022_elgamal_registry", + address: crate::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID, }, crate::ProgramIdEntry { name: "stake_config", diff --git a/kb-program-ids/src/lib.rs b/kb-program-ids/src/lib.rs index 514743e..422fe48 100644 --- a/kb-program-ids/src/lib.rs +++ b/kb-program-ids/src/lib.rs @@ -55,12 +55,12 @@ pub use constants::SPL_MEMO_V1_PROGRAM_ID; pub use constants::SPL_MEMO_V3_PROGRAM_ID; /// Current SPL Memo v4 program identifier. pub use constants::SPL_MEMO_V4_PROGRAM_ID; -/// SPL Token-2022 ElGamal public-key registry program identifier. -pub use constants::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID; -/// SPL Token-2022 program identifier. -pub use constants::SPL_TOKEN_2022_PROGRAM_ID; /// Classic SPL Token program identifier. pub use constants::SPL_TOKEN_PROGRAM_ID; +/// SPL Token-2022 ElGamal public-key registry program identifier. +pub use constants::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID; +/// SPL Token-2022 program identifier. +pub use constants::SPL_TOKEN2022_PROGRAM_ID; /// Historical Stake configuration account identifier. pub use constants::STAKE_CONFIG_ACCOUNT_ID; /// Compatibility alias for the historical Stake configuration account identifier. diff --git a/kb-program-ids/src/programs.rs b/kb-program-ids/src/programs.rs index b3533ec..5baa606 100644 --- a/kb-program-ids/src/programs.rs +++ b/kb-program-ids/src/programs.rs @@ -128,8 +128,8 @@ mod tests { crate::SPL_MEMO_V3_PROGRAM_ID, crate::SPL_MEMO_V4_PROGRAM_ID, crate::SPL_TOKEN_PROGRAM_ID, - crate::SPL_TOKEN_2022_PROGRAM_ID, - crate::SPL_TOKEN_2022_ELGAMAL_REGISTRY_PROGRAM_ID, + crate::SPL_TOKEN2022_PROGRAM_ID, + crate::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID, crate::ASSOCIATED_TOKEN_PROGRAM_ID, crate::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, ]; diff --git a/kb-store/README.md b/kb-store/README.md index 42f6365..34b1fab 100644 --- a/kb-store/README.md +++ b/kb-store/README.md @@ -45,7 +45,7 @@ kb-core kb-lib ← kb-store ``` -`CoreInstructionReplayInput` et sa version de contrat appartiennent à `kb-lib`, car ils sont partagés avec les décodeurs. `kb-store` les consomme et les réexporte. `kb-lib` ne dépend jamais de `kb-store`. +`MdCoreInstructionReplayInput` et sa version de contrat appartiennent à `kb-lib`, car ils sont partagés avec les décodeurs. `kb-store` les consomme et les réexporte. `kb-lib` ne dépend jamais de `kb-store`. `kb-store` ne dépend pas de `kb-config`. L’application résout sa configuration, puis construit explicitement `PostgresStoreOptions`. Cette séparation évite de coupler la persistance à la forme évolutive des profils. diff --git a/kb-store/src/contracts/dto/core.rs b/kb-store/src/contracts/dto/core.rs index 980ed7e..ece51d1 100644 --- a/kb-store/src/contracts/dto/core.rs +++ b/kb-store/src/contracts/dto/core.rs @@ -764,7 +764,7 @@ mod tests { #[test] fn replay_input_rejects_empty_key() { - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( " ", "abc", 1, @@ -786,7 +786,7 @@ mod tests { #[test] fn replay_input_accepts_ordered_outer_instruction_array() { - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "abc:2", "abc", 1, @@ -831,7 +831,7 @@ mod tests { #[test] fn replay_input_rejects_non_array_outer_instruction_context() { - let result = crate::CoreInstructionReplayInput::new( + let result = crate::MdCoreInstructionReplayInput::new( "abc:0", "abc", 1, diff --git a/kb-store/src/contracts/dto/event.rs b/kb-store/src/contracts/dto/event.rs index 7e3f2a6..85b0f0c 100644 --- a/kb-store/src/contracts/dto/event.rs +++ b/kb-store/src/contracts/dto/event.rs @@ -54,7 +54,7 @@ pub struct DecodedEventInsert { impl DecodedEventInsert { /// Builds a decoded event insert contract from the shared decoded model. pub fn from_model( - event: &kb_lib::DecodedProtocolEvent, + event: &kb_lib::MdDecodedProtocolEvent, payload_json: serde_json::Value, ) -> kb_core::Result { if event.signature.0.trim().is_empty() { diff --git a/kb-store/src/contracts/dto/raw.rs b/kb-store/src/contracts/dto/raw.rs index deae8e4..4f98a89 100644 --- a/kb-store/src/contracts/dto/raw.rs +++ b/kb-store/src/contracts/dto/raw.rs @@ -107,7 +107,7 @@ impl RawTransactionInsert { } /// Builds a storage insert from the source-independent canonical transaction model. - pub fn from_canonical(transaction: &kb_lib::CanonicalTransaction) -> kb_core::Result { + pub fn from_canonical(transaction: &kb_lib::MdCanonicalTransaction) -> kb_core::Result { let canonical_json_result = transaction.to_canonical_json(); let canonical_json = match canonical_json_result { std::result::Result::Ok(value) => value, @@ -498,18 +498,18 @@ mod tests { assert!(result.is_err()); } - fn canonical_transaction_fixture() -> kb_lib::CanonicalTransaction { - return kb_lib::CanonicalTransaction { - format_version: kb_lib::CANONICAL_TRANSACTION_FORMAT_VERSION, + fn canonical_transaction_fixture() -> kb_lib::MdCanonicalTransaction { + return kb_lib::MdCanonicalTransaction { + format_version: kb_lib::MD_CANONICAL_TRANSACTION_FORMAT_VERSION, primary_signature: "2Ana1pUpv2ZbMVkwF5FXapYeBEjdxDatLn7nvJkhgTSXbs59SyZSx866bXirPgj8QQVB57uxHJBG1YFvkRbFj4T".to_string(), slot: 9, block_time: std::option::Option::None, - version: kb_lib::CanonicalTransactionVersion::Legacy, + version: kb_lib::MdCanonicalTransactionVersion::Legacy, signatures: std::vec![ "2Ana1pUpv2ZbMVkwF5FXapYeBEjdxDatLn7nvJkhgTSXbs59SyZSx866bXirPgj8QQVB57uxHJBG1YFvkRbFj4T".to_string(), ], - message: kb_lib::CanonicalTransactionMessage { - header: kb_lib::CanonicalMessageHeader { + message: kb_lib::MdCanonicalTransactionMessage { + header: kb_lib::MdCanonicalMessageHeader { num_required_signatures: 1, num_readonly_signed_accounts: 0, num_readonly_unsigned_accounts: 1, @@ -519,17 +519,17 @@ mod tests { "ComputeBudget111111111111111111111111111111".to_string(), ], recent_blockhash: "11111111111111111111111111111111".to_string(), - instructions: std::vec![kb_lib::CanonicalCompiledInstruction { + instructions: std::vec![kb_lib::MdCanonicalCompiledInstruction { program_id_index: 1, account_indexes: std::vec![0], data_base64: "AQ==".to_string(), stack_height: std::option::Option::Some(1), }], address_table_lookups: std::vec::Vec::new(), - loaded_addresses: kb_lib::CanonicalLoadedAddresses::default(), + loaded_addresses: kb_lib::MdCanonicalLoadedAddresses::default(), }, - metadata: std::option::Option::Some(kb_lib::CanonicalTransactionMetadata { - status: kb_lib::CanonicalTransactionStatus::Success, + metadata: std::option::Option::Some(kb_lib::MdCanonicalTransactionMetadata { + status: kb_lib::MdCanonicalTransactionStatus::Success, error: std::option::Option::None, fee: 5000, pre_balances: std::vec![10000, 1], @@ -556,7 +556,10 @@ mod tests { }; assert_eq!(insert.signature, transaction.primary_signature); assert_eq!(insert.slot, transaction.slot); - assert_eq!(insert.canonical_format_version, kb_lib::CANONICAL_TRANSACTION_FORMAT_VERSION); + assert_eq!( + insert.canonical_format_version, + kb_lib::MD_CANONICAL_TRANSACTION_FORMAT_VERSION + ); assert_eq!(insert.canonical_json_hash.as_deref().map(|value| return value.len()), Some(64)); } diff --git a/kb-store/src/contracts/repository.rs b/kb-store/src/contracts/repository.rs index 2c397a8..6fa7cd7 100644 --- a/kb-store/src/contracts/repository.rs +++ b/kb-store/src/contracts/repository.rs @@ -22,7 +22,7 @@ pub trait RawTransactionStore { /// Returns true when a canonical transaction signature is already stored. async fn has_raw_transaction_signature( &self, - signature: &kb_lib::Signature, + signature: &kb_lib::MdSignature, ) -> kb_core::Result; /// Returns true when a transaction observation key is already stored. @@ -99,7 +99,7 @@ pub trait CoreTransactionStore { &self, filter: &crate::CoreInstructionReplayFilter, page_request: &crate::PageRequest, - ) -> kb_core::Result>; + ) -> kb_core::Result>; /// Updates one normalized core instruction lifecycle state. async fn mark_core_instruction_lifecycle( @@ -144,7 +144,7 @@ pub trait DecodePipelineStore { async fn list_decode_inputs( &self, filter: &crate::DecodeSelectionFilter, - ) -> kb_core::Result>; + ) -> kb_core::Result>; /// Returns true when the same processor version already succeeded for the same input hash. async fn is_decode_current( @@ -199,7 +199,7 @@ pub trait ProgramObservationStore { /// Stores program observations. async fn store_observations( &self, - observations: &[kb_lib::ProgramObservation], + observations: &[kb_lib::MdProgramObservation], ) -> kb_core::Result; } diff --git a/kb-store/src/lib.rs b/kb-store/src/lib.rs index 80fb851..247c3a6 100644 --- a/kb-store/src/lib.rs +++ b/kb-store/src/lib.rs @@ -11,247 +11,247 @@ mod contracts; mod postgres; /// Canonical tracing target for storage operations. -pub(crate) use crate::constants::TRACING_TARGET; +pub(crate) use self::constants::TRACING_TARGET; /// Core account key insert contract. -pub use crate::contracts::CoreAccountKeyInsert; +pub use self::contracts::CoreAccountKeyInsert; /// Core account key SQL-like row contract. -pub use crate::contracts::CoreAccountKeyRow; +pub use self::contracts::CoreAccountKeyRow; /// Core account key source category. -pub use crate::contracts::CoreAccountKeySource; +pub use self::contracts::CoreAccountKeySource; /// Core balance change insert contract. -pub use crate::contracts::CoreBalanceChangeInsert; +pub use self::contracts::CoreBalanceChangeInsert; /// Core balance change kind. -pub use crate::contracts::CoreBalanceChangeKind; +pub use self::contracts::CoreBalanceChangeKind; /// Core balance change SQL-like row contract. -pub use crate::contracts::CoreBalanceChangeRow; +pub use self::contracts::CoreBalanceChangeRow; /// Complete normalized core extraction write bundle. -pub use crate::contracts::CoreExtractionBundle; +pub use self::contracts::CoreExtractionBundle; /// Failure details persisted for one canonical to core extraction attempt. -pub use crate::contracts::CoreExtractionFailure; +pub use self::contracts::CoreExtractionFailure; /// Bounded canonical transaction selection filter for core extraction. -pub use crate::contracts::CoreExtractionSelectionFilter; +pub use self::contracts::CoreExtractionSelectionFilter; /// Canonical transaction to core extraction storage behavior. -pub use crate::contracts::CoreExtractionStore; +pub use self::contracts::CoreExtractionStore; /// Core inner instruction insert contract. -pub use crate::contracts::CoreInnerInstructionInsert; +pub use self::contracts::CoreInnerInstructionInsert; /// Core inner instruction SQL-like row contract. -pub use crate::contracts::CoreInnerInstructionRow; +pub use self::contracts::CoreInnerInstructionRow; /// Core instruction insert contract. -pub use crate::contracts::CoreInstructionInsert; +pub use self::contracts::CoreInstructionInsert; /// Core instruction lifecycle mark request. -pub use crate::contracts::CoreInstructionLifecycleMark; +pub use self::contracts::CoreInstructionLifecycleMark; /// Core instruction processing state. -pub use crate::contracts::CoreInstructionProcessingState; +pub use self::contracts::CoreInstructionProcessingState; /// Core instruction replay filter contract. -pub use crate::contracts::CoreInstructionReplayFilter; +pub use self::contracts::CoreInstructionReplayFilter; /// Core instruction SQL-like row contract. -pub use crate::contracts::CoreInstructionRow; +pub use self::contracts::CoreInstructionRow; /// Core log insert contract. -pub use crate::contracts::CoreLogInsert; +pub use self::contracts::CoreLogInsert; /// Core log SQL-like row contract. -pub use crate::contracts::CoreLogRow; +pub use self::contracts::CoreLogRow; /// Core transaction insert contract. -pub use crate::contracts::CoreTransactionInsert; +pub use self::contracts::CoreTransactionInsert; /// Core transaction SQL-like row contract. -pub use crate::contracts::CoreTransactionRow; +pub use self::contracts::CoreTransactionRow; /// Core Solana storage behavior. -pub use crate::contracts::CoreTransactionStore; +pub use self::contracts::CoreTransactionStore; /// Default repository page size. -pub use crate::contracts::DEFAULT_PAGE_SIZE; +pub use self::contracts::DEFAULT_PAGE_SIZE; /// One machine-readable decoder coverage declaration row. -pub use crate::contracts::DecodeCoverageDeclarationInsert; +pub use self::contracts::DecodeCoverageDeclarationInsert; /// One observed coverage classification row owned by one decode attempt. -pub use crate::contracts::DecodeCoverageObservationInsert; +pub use self::contracts::DecodeCoverageObservationInsert; /// One row of aggregated decoder coverage diagnostics. -pub use crate::contracts::DecodeCoverageSummaryRow; +pub use self::contracts::DecodeCoverageSummaryRow; /// Failed decode attempt persisted in the common ledger. -pub use crate::contracts::DecodeFailure; +pub use self::contracts::DecodeFailure; /// One processor-owned decoded observation row. -pub use crate::contracts::DecodeObservationInsert; +pub use self::contracts::DecodeObservationInsert; /// Atomic persistence bundle for one decoder and one contextual input. -pub use crate::contracts::DecodePersistenceBundle; +pub use self::contracts::DecodePersistenceBundle; /// Contextual instruction decode and materialization storage behavior. -pub use crate::contracts::DecodePipelineStore; +pub use self::contracts::DecodePipelineStore; /// Bounded contextual instruction selection filter for decode campaigns. -pub use crate::contracts::DecodeSelectionFilter; +pub use self::contracts::DecodeSelectionFilter; /// Decoded event insert contract. -pub use crate::contracts::DecodedEventInsert; +pub use self::contracts::DecodedEventInsert; /// Decoded event SQL-like row contract. -pub use crate::contracts::DecodedEventRow; +pub use self::contracts::DecodedEventRow; /// Decoded event storage behavior. -pub use crate::contracts::DecodedEventStore; +pub use self::contracts::DecodedEventStore; /// Insert or upsert result contract returned by repositories. -pub use crate::contracts::InsertOutcome; +pub use self::contracts::InsertOutcome; /// Maximum number of materialized rows returned by one bounded query. -pub use crate::contracts::MAX_MATERIALIZED_EVENT_QUERY_ROWS; +pub use self::contracts::MAX_MATERIALIZED_EVENT_QUERY_ROWS; /// Maximum repository page size. -pub use crate::contracts::MAX_PAGE_SIZE; +pub use self::contracts::MAX_PAGE_SIZE; /// Atomic persistence bundle for one materializer and one decoded observation. -pub use crate::contracts::MaterializationPersistenceBundle; +pub use self::contracts::MaterializationPersistenceBundle; /// Bounded read-only materialized event selection. -pub use crate::contracts::MaterializedEventFilter; +pub use self::contracts::MaterializedEventFilter; /// Materialized event insert contract. -pub use crate::contracts::MaterializedEventInsert; +pub use self::contracts::MaterializedEventInsert; /// One materialized output returned by a bounded query. -pub use crate::contracts::MaterializedEventQueryRow; +pub use self::contracts::MaterializedEventQueryRow; /// Materialized event SQL-like row contract. -pub use crate::contracts::MaterializedEventRow; +pub use self::contracts::MaterializedEventRow; /// Materialized event storage behavior. -pub use crate::contracts::MaterializedEventStore; +pub use self::contracts::MaterializedEventStore; /// One processor-owned materialized output row. -pub use crate::contracts::MaterializedOutputInsert; +pub use self::contracts::MaterializedOutputInsert; /// Page request contract for repository list operations. -pub use crate::contracts::PageRequest; +pub use self::contracts::PageRequest; /// Stable processing ledger identity. -pub use crate::contracts::ProcessingLedgerIdentity; +pub use self::contracts::ProcessingLedgerIdentity; /// Processing ledger mark request contract. -pub use crate::contracts::ProcessingLedgerMark; +pub use self::contracts::ProcessingLedgerMark; /// Processing ledger SQL-like row contract. -pub use crate::contracts::ProcessingLedgerRow; +pub use self::contracts::ProcessingLedgerRow; /// Stable processing ledger status. -pub use crate::contracts::ProcessingLedgerStatus; +pub use self::contracts::ProcessingLedgerStatus; /// Processing ledger storage behavior. -pub use crate::contracts::ProcessingLedgerStore; +pub use self::contracts::ProcessingLedgerStore; /// Program observation storage behavior. -pub use crate::contracts::ProgramObservationStore; +pub use self::contracts::ProgramObservationStore; /// Raw payload lifecycle mark request. -pub use crate::contracts::RawPayloadLifecycleMark; +pub use self::contracts::RawPayloadLifecycleMark; /// Raw payload processing state. -pub use crate::contracts::RawPayloadProcessingState; +pub use self::contracts::RawPayloadProcessingState; /// Raw payload retention state. -pub use crate::contracts::RawPayloadRetentionState; +pub use self::contracts::RawPayloadRetentionState; /// Canonical raw Solana transaction insert contract. -pub use crate::contracts::RawTransactionInsert; +pub use self::contracts::RawTransactionInsert; /// Canonical raw Solana transaction SQL-like row contract. -pub use crate::contracts::RawTransactionRow; +pub use self::contracts::RawTransactionRow; /// Raw transaction storage behavior. -pub use crate::contracts::RawTransactionStore; +pub use self::contracts::RawTransactionStore; /// Sort direction for repository list operations. -pub use crate::contracts::SortDirection; +pub use self::contracts::SortDirection; /// Store backend diagnostic contract. -pub use crate::contracts::StoreBackendDescriptor; +pub use self::contracts::StoreBackendDescriptor; /// Store backend kind contract. -pub use crate::contracts::StoreBackendKind; +pub use self::contracts::StoreBackendKind; /// Store backend health snapshot. -pub use crate::contracts::StoreHealthSnapshot; +pub use self::contracts::StoreHealthSnapshot; /// Store backend health status. -pub use crate::contracts::StoreHealthStatus; +pub use self::contracts::StoreHealthStatus; /// Store health storage behavior. -pub use crate::contracts::StoreHealthStore; +pub use self::contracts::StoreHealthStore; /// Store migration diagnostic snapshot contract. -pub use crate::contracts::StoreMigrationSnapshot; +pub use self::contracts::StoreMigrationSnapshot; /// Store migration status contract. -pub use crate::contracts::StoreMigrationStatus; +pub use self::contracts::StoreMigrationStatus; /// Transaction acquisition observation insert contract. -pub use crate::contracts::TransactionObservationInsert; +pub use self::contracts::TransactionObservationInsert; /// Transaction acquisition observation origin. -pub use crate::contracts::TransactionObservationOrigin; +pub use self::contracts::TransactionObservationOrigin; /// Transaction acquisition observation SQL-like row contract. -pub use crate::contracts::TransactionObservationRow; +pub use self::contracts::TransactionObservationRow; /// Transaction acquisition observation status. -pub use crate::contracts::TransactionObservationStatus; +pub use self::contracts::TransactionObservationStatus; /// Storage error helper functions. -pub use crate::contracts::storage_contract_error; +pub use self::contracts::storage_contract_error; /// Allowed Solana table domains encoded in table names. -pub use crate::postgres::ALLOWED_SOLANA_TABLE_DOMAINS; +pub use self::postgres::ALLOWED_SOLANA_TABLE_DOMAINS; /// Core account key table name. -pub use crate::postgres::CORE_ACCOUNT_KEYS_TABLE_NAME; +pub use self::postgres::CORE_ACCOUNT_KEYS_TABLE_NAME; /// Core balance change table name. -pub use crate::postgres::CORE_BALANCE_CHANGES_TABLE_NAME; +pub use self::postgres::CORE_BALANCE_CHANGES_TABLE_NAME; /// Core inner instruction table name. -pub use crate::postgres::CORE_INNER_INSTRUCTIONS_TABLE_NAME; +pub use self::postgres::CORE_INNER_INSTRUCTIONS_TABLE_NAME; /// Core instruction table name. -pub use crate::postgres::CORE_INSTRUCTIONS_TABLE_NAME; +pub use self::postgres::CORE_INSTRUCTIONS_TABLE_NAME; /// Core log table name. -pub use crate::postgres::CORE_LOGS_TABLE_NAME; +pub use self::postgres::CORE_LOGS_TABLE_NAME; /// Core Solana table names. -pub use crate::postgres::CORE_STORE_TABLE_NAMES; +pub use self::postgres::CORE_STORE_TABLE_NAMES; /// Core transaction table name. -pub use crate::postgres::CORE_TRANSACTIONS_TABLE_NAME; +pub use self::postgres::CORE_TRANSACTIONS_TABLE_NAME; /// Machine-readable decoder coverage declaration table name. -pub use crate::postgres::DECODE_COVERAGE_DECLARATIONS_TABLE_NAME; +pub use self::postgres::DECODE_COVERAGE_DECLARATIONS_TABLE_NAME; /// Observed decoder coverage classification table name. -pub use crate::postgres::DECODE_COVERAGE_OBSERVATIONS_TABLE_NAME; +pub use self::postgres::DECODE_COVERAGE_OBSERVATIONS_TABLE_NAME; /// Versioned decoded event table name. -pub use crate::postgres::DECODE_EVENTS_TABLE_NAME; +pub use self::postgres::DECODE_EVENTS_TABLE_NAME; /// Decode and materialization table names. -pub use crate::postgres::DECODE_STORE_TABLE_NAMES; +pub use self::postgres::DECODE_STORE_TABLE_NAMES; /// Default PostgreSQL schema policy. -pub use crate::postgres::DEFAULT_SCHEMA_POLICY; +pub use self::postgres::DEFAULT_SCHEMA_POLICY; /// Versioned materialized output table name. -pub use crate::postgres::MATERIALIZED_EVENTS_TABLE_NAME; +pub use self::postgres::MATERIALIZED_EVENTS_TABLE_NAME; /// Maximum number of rows returned by one replay candidate query. -pub use crate::postgres::MAX_REPLAY_CANDIDATE_ROWS; +pub use self::postgres::MAX_REPLAY_CANDIDATE_ROWS; /// PostgreSQL migration strategy used by this crate. -pub use crate::postgres::MIGRATION_STRATEGY; +pub use self::postgres::MIGRATION_STRATEGY; /// Migration table name used by sqlx. -pub use crate::postgres::MIGRATION_TABLE_NAME; +pub use self::postgres::MIGRATION_TABLE_NAME; /// Processing ledger table name. -pub use crate::postgres::PROCESSING_LEDGER_TABLE_NAME; +pub use self::postgres::PROCESSING_LEDGER_TABLE_NAME; /// PostgreSQL diagnostic snapshot. -pub use crate::postgres::PostgresBackendDiagnostics; +pub use self::postgres::PostgresBackendDiagnostics; /// Bounded read-only filter for core entity summaries. -pub use crate::postgres::PostgresReplayEntityFilter; +pub use self::postgres::PostgresReplayEntityFilter; /// Core entity kind used while filtering replay candidates. -pub use crate::postgres::PostgresReplayEntityKind; +pub use self::postgres::PostgresReplayEntityKind; /// Aggregated mint, owner or account-key occurrences from core tables. -pub use crate::postgres::PostgresReplayEntitySummary; +pub use self::postgres::PostgresReplayEntitySummary; /// Bounded read-only filter for program summaries. -pub use crate::postgres::PostgresReplayProgramFilter; +pub use self::postgres::PostgresReplayProgramFilter; /// Program occurrence scope used while filtering replay candidates. -pub use crate::postgres::PostgresReplayProgramScope; +pub use self::postgres::PostgresReplayProgramScope; /// Aggregated program occurrences across outer, inner and linked logs. -pub use crate::postgres::PostgresReplayProgramSummary; +pub use self::postgres::PostgresReplayProgramSummary; /// One raw transaction candidate enriched with core and ledger diagnostics. -pub use crate::postgres::PostgresReplayTransactionCandidate; +pub use self::postgres::PostgresReplayTransactionCandidate; /// Bounded read-only filter for transaction replay candidates. -pub use crate::postgres::PostgresReplayTransactionFilter; +pub use self::postgres::PostgresReplayTransactionFilter; /// PostgreSQL store handle. -pub use crate::postgres::PostgresStore; +pub use self::postgres::PostgresStore; /// PostgreSQL store connection options. -pub use crate::postgres::PostgresStoreOptions; +pub use self::postgres::PostgresStoreOptions; /// PostgreSQL diagnostic table specification. -pub use crate::postgres::PostgresTableDiagnosticSpec; +pub use self::postgres::PostgresTableDiagnosticSpec; /// PostgreSQL table diagnostic snapshot. -pub use crate::postgres::PostgresTableDiagnostics; +pub use self::postgres::PostgresTableDiagnostics; /// PostgreSQL table statistics snapshot. -pub use crate::postgres::PostgresTableStatistics; +pub use self::postgres::PostgresTableStatistics; /// Canonical transaction acquisition table names. -pub use crate::postgres::RAW_STORE_TABLE_NAMES; +pub use self::postgres::RAW_STORE_TABLE_NAMES; /// Canonical raw transaction table name. -pub use crate::postgres::RAW_TRANSACTIONS_TABLE_NAME; +pub use self::postgres::RAW_TRANSACTIONS_TABLE_NAME; /// Solana application table prefix. -pub use crate::postgres::SOLANA_TABLE_PREFIX; +pub use self::postgres::SOLANA_TABLE_PREFIX; /// Advisory lock id used while initializing store tables. -pub use crate::postgres::STORE_SCHEMA_ADVISORY_LOCK_ID; +pub use self::postgres::STORE_SCHEMA_ADVISORY_LOCK_ID; /// Transaction acquisition observation table name. -pub use crate::postgres::TRANSACTION_OBSERVATIONS_TABLE_NAME; +pub use self::postgres::TRANSACTION_OBSERVATIONS_TABLE_NAME; /// Core store SQL statements applied by the idempotent initializer. -pub use crate::postgres::core_store_schema_statements; +pub use self::postgres::core_store_schema_statements; /// Core table diagnostic specs. -pub use crate::postgres::core_store_table_diagnostic_specs; +pub use self::postgres::core_store_table_diagnostic_specs; /// Decode and materialization SQL statements applied by the idempotent initializer. -pub use crate::postgres::decode_store_schema_statements; +pub use self::postgres::decode_store_schema_statements; /// Decode and materialization table diagnostic specs. -pub use crate::postgres::decode_store_table_diagnostic_specs; +pub use self::postgres::decode_store_table_diagnostic_specs; /// Returns true when a Solana table name follows canonical rules. -pub use crate::postgres::is_valid_solana_table_name; +pub use self::postgres::is_valid_solana_table_name; /// Returns a DSN masked for logs and UI diagnostics. -pub use crate::postgres::mask_postgres_dsn; +pub use self::postgres::mask_postgres_dsn; /// Canonical transaction acquisition SQL statements. -pub use crate::postgres::raw_store_schema_statements; +pub use self::postgres::raw_store_schema_statements; /// Canonical transaction acquisition diagnostic specs. -pub use crate::postgres::raw_store_table_diagnostic_specs; +pub use self::postgres::raw_store_table_diagnostic_specs; /// Validates core store table names. -pub use crate::postgres::validate_core_store_table_names; +pub use self::postgres::validate_core_store_table_names; /// Validates decode and materialization store table names. -pub use crate::postgres::validate_decode_store_table_names; +pub use self::postgres::validate_decode_store_table_names; /// Validates canonical transaction acquisition table names. -pub use crate::postgres::validate_raw_store_table_names; +pub use self::postgres::validate_raw_store_table_names; /// Validates a canonical Solana table name. -pub use crate::postgres::validate_solana_table_name; +pub use self::postgres::validate_solana_table_name; /// Current normalized core replay input contract version. -pub use kb_lib::CORE_REPLAY_INPUT_CONTRACT_VERSION; +pub use kb_lib::MD_CORE_REPLAY_INPUT_CONTRACT_VERSION; /// Decoder replay input containing one instruction plus extracted transaction context. -pub use kb_lib::CoreInstructionReplayInput; +pub use kb_lib::MdCoreInstructionReplayInput; diff --git a/kb-store/src/postgres/query/core_queries.rs b/kb-store/src/postgres/query/core_queries.rs index 136c3d8..f25c825 100644 --- a/kb-store/src/postgres/query/core_queries.rs +++ b/kb-store/src/postgres/query/core_queries.rs @@ -372,7 +372,7 @@ pub(in crate::postgres) async fn list_core_instruction_replay_inputs( pool: &sqlx::PgPool, filter: &crate::CoreInstructionReplayFilter, page_request: &crate::PageRequest, -) -> kb_core::Result> { +) -> kb_core::Result> { let instructions_result = crate::postgres::query::core_queries::list_core_instructions_for_replay( pool, @@ -402,7 +402,7 @@ pub(in crate::postgres) async fn list_core_instruction_replay_inputs( pub(in crate::postgres) async fn list_decode_replay_inputs( pool: &sqlx::PgPool, filter: &crate::DecodeSelectionFilter, -) -> kb_core::Result> { +) -> kb_core::Result> { let min_slot_result = crate::postgres::query::core_queries::optional_sql_slot_from_u64(filter.min_slot); let min_slot = match min_slot_result { @@ -758,7 +758,7 @@ where pub(in crate::postgres) async fn load_replay_input_for_instruction( pool: &sqlx::PgPool, instruction: &crate::CoreInstructionRow, -) -> kb_core::Result { +) -> kb_core::Result { let transaction_context_result = sqlx::query_as::)>( "SELECT failed, err_json FROM kb_sol_core_transactions WHERE signature = $1 LIMIT 1", @@ -830,7 +830,7 @@ pub(in crate::postgres) async fn load_replay_input_for_instruction( std::result::Result::Ok(value) => value, std::result::Result::Err(error) => return std::result::Result::Err(error), }; - return crate::CoreInstructionReplayInput::new( + return crate::MdCoreInstructionReplayInput::new( replay_input_key, instruction.signature.clone(), slot, diff --git a/kb-store/src/postgres/query/decode_pipeline_queries.rs b/kb-store/src/postgres/query/decode_pipeline_queries.rs index 2fd8851..469cea9 100644 --- a/kb-store/src/postgres/query/decode_pipeline_queries.rs +++ b/kb-store/src/postgres/query/decode_pipeline_queries.rs @@ -69,7 +69,7 @@ pub(in crate::postgres) async fn apply_decode_store_schema( pub(in crate::postgres) async fn list_decode_inputs( pool: &sqlx::PgPool, filter: &crate::DecodeSelectionFilter, -) -> kb_core::Result> { +) -> kb_core::Result> { tracing::debug!(target: crate::TRACING_TARGET, action = "list_decode_inputs", signature_count = filter.signatures.len(), signature_sample = ?filter.signatures.iter().take(5).map(std::string::String::as_str).collect::>(), processing_states = ?filter.processing_states, min_slot = ?filter.min_slot, max_slot = ?filter.max_slot, program_ids = ?filter.program_ids, instruction_paths = ?filter.instruction_paths, limit = filter.limit, "query PostgreSQL contextual decode inputs"); let result = crate::postgres::query::core_queries::list_decode_replay_inputs(pool, filter).await; diff --git a/kb-store/src/postgres/query/raw_queries.rs b/kb-store/src/postgres/query/raw_queries.rs index 80d7d2b..2ebc134 100644 --- a/kb-store/src/postgres/query/raw_queries.rs +++ b/kb-store/src/postgres/query/raw_queries.rs @@ -420,7 +420,7 @@ mod tests { assert_eq!(duplicate_outcome.skipped_count, 1); let has_result = crate::RawTransactionStore::has_raw_transaction_signature( &store, - &kb_lib::Signature(signature.clone()), + &kb_lib::MdSignature(signature.clone()), ) .await; let has_signature = match has_result { diff --git a/kb-store/src/postgres/repository/core_transaction_repository.rs b/kb-store/src/postgres/repository/core_transaction_repository.rs index 146f047..4e4ff84 100644 --- a/kb-store/src/postgres/repository/core_transaction_repository.rs +++ b/kb-store/src/postgres/repository/core_transaction_repository.rs @@ -96,7 +96,7 @@ impl crate::CoreTransactionStore for crate::PostgresStore { &self, filter: &crate::CoreInstructionReplayFilter, page_request: &crate::PageRequest, - ) -> kb_core::Result> { + ) -> kb_core::Result> { return crate::postgres::query::list_core_instruction_replay_inputs( self.pool(), filter, diff --git a/kb-store/src/postgres/repository/decode_pipeline_repository.rs b/kb-store/src/postgres/repository/decode_pipeline_repository.rs index 0a947b1..489d668 100644 --- a/kb-store/src/postgres/repository/decode_pipeline_repository.rs +++ b/kb-store/src/postgres/repository/decode_pipeline_repository.rs @@ -12,7 +12,7 @@ impl crate::DecodePipelineStore for crate::PostgresStore { async fn list_decode_inputs( &self, filter: &crate::DecodeSelectionFilter, - ) -> kb_core::Result> { + ) -> kb_core::Result> { return crate::postgres::query::list_decode_inputs(self.pool(), filter).await; } diff --git a/kb-store/src/postgres/repository/raw_transaction_repository.rs b/kb-store/src/postgres/repository/raw_transaction_repository.rs index e98abee..f7a0cde 100644 --- a/kb-store/src/postgres/repository/raw_transaction_repository.rs +++ b/kb-store/src/postgres/repository/raw_transaction_repository.rs @@ -11,7 +11,7 @@ impl crate::RawTransactionStore for crate::PostgresStore { )] async fn has_raw_transaction_signature( &self, - signature: &kb_lib::Signature, + signature: &kb_lib::MdSignature, ) -> kb_core::Result { return crate::postgres::query::has_raw_transaction_signature( self.pool(), diff --git a/khadhroony-bot3_v0.1.0-pre.010-full-modified.zip b/khadhroony-bot3_v0.1.0-pre.010-full-modified.zip new file mode 100644 index 0000000000000000000000000000000000000000..2f136a6b099098b21605e47217d87ce63aba12d3 GIT binary patch literal 5053920 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

kHT*BSnS(OR7V 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

(8J&e(;0k-D01p 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

~5G)n) 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∨;a-t06*8dkMVoH&0R1;N#Hg@672IiPw51ECta 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 Q3!XeBgOi;2$qiqf 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%0DLcBH0jIq;It_$ht?-FxkY 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๵>K($EVUGnG-cBxa)| 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

-M%d!k1wu*0Gj+<+ngjaVM4q-Z>M9KDx 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

0^n`JbV52LyEI?zWFM?-%3{o3C5 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ð59lhq@NOYGEkLO%^zj> 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� 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

M}#cV;+u3d_PG-U;;7@h|jS4g;; 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

Jh>D~7pnwHWbf&Y%X%1*Pj? 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≪#5hiL^yBYb3yWd-_8KA>4);1F zDBbU?>_0TR7GS!|p+yG#iC1D4^}qfwxA;W?rCnWJEeO)TfSNHY-HUOhk3qp9=bwjz zd>H^}ESV|wNQ z2{vU(tRts`#MAgj_RK3GW>l54K=~>Po=DPrk@az1$-u1A=&DNJ{%cni)`KRO{BNvY zO0$E7)OvYi$-Mn{qr9v)4BRy+)Cx2G)=au?50Wy~H6+J0a+Mz(ki#j`#rO)pC7g?d zxJ28k!dax-ca?*FB4Z|ngXmVSvNuv26KQcQ#2fgbLP&d{(}4ZvUL{iVc&$R6qH1MV z?G^nMf+b{q%nAojq|vvVkC4ZjFx+ZjOB&V@Jj1mFf~9MDHoL=x;>hcALiVg07`UY=>nV#n^&$I)_5LfK#oPTnpy}Dv zw19<;b~8;4X?dd=Y?<@zP>SXxm?n19)cwV*K_?tEDSx|!qN3td_LE`*j#V+bxfwRw z+IVK2*%u_R+u_aJc0V95b7OsmYoktNm*9(=Ow`!svH|2;)vSmy4deV{)oqmKs>G^! z#W;~`6ju7zsE%sIb|c8IR+nBUvn9GF5vr%J{y%2o?nai&9?#v&AjThtDZOJK@M}QD zT;-1&g@Zq>!tjr;n1*5^Wm!)*Jl0*^$5Z`#*`!hP);YrBWgQW2MB+c)`lQ=zd|KFX zYIc@*cHQH@zRqOL))yPI908AztYJI%zmV=U=Tq>r?`LJbZT1Ar1*VDmKZLzgm?%-OrCGMkQ$B@Lwr$(CZQHhO z+qP}nwrlEk-)Vi*cOLU0-!fyzjNURa$4b*GkcSv|;QGnmU@lJBeq2Q!e=>c*>c` z9OxekGffiBlQId+p2BStUvPmO`?kJ;j=TBKb&y|Pyp9}LRwdA%g}Yq$N_XIBv_lVc z90Ym723y0r_M)U$lj6WHeac@1rnj5fnyQb2;;en15viX6Gpfr6`G^Y2)baFV+OO04RIAWq2O)DMQI35ETTYEuhte6En^7Q^}Kj zTjnxF`$k2R2?JJQNE9CWwi|H(E%IR7e7=lQcOUj_Xf+h;+$?8x-UZA5wWf1_KGwk0_huVVfDCokWq_)Trrha#~i};&a6IUZ7+h#2s zhBiW3rnh+v;~)I7T|%B;x^J%T^wV8fTd_%I7_K7sk!Ou+0k+FEHtlzY;eg(vK@lyN z16*D{_v`u_q7?j1pw(O8%a>xF#>y;qGXWI*`Z)F4C#RB1DDiX})M4TAKAaBEmF$B( zKhUSeA=*HyH|t;L-5>{2TBu{BhZ``hM;5v z;s)}d0cfpJXpk@|S?Des&W0eoP;C3CHUq)+sfVL554h1Z52`E+AUjOaO~F_nxia@$ zF3d9}P$-?z>KPa21^4D8F~p4IL=i>A?1@MGA)2pFpH}I;2u+w+Tzw9FQ8}W<Kx# z%z$AP{@LbWv5%|a=(W|BfA=0kTm&OwoP&gPu#%Vn$4Fz0+{f=Zro zrZ5UD(#CeKsW7Uh5q;xPZu9VXaaz{d0DY zF$cC?$SkhZ?XMgt%ru@z^Ne}8`vre0N~9xGccuW=(IUgMA^Bn8SYwLm5uw28+)zvO z9I7E%DLis6vg5&li^S_OR92m(gQ&s}44>ZZhj&`2r;U+f!YqfbU7)GL=LyB5Go2pSHRw|turiQ*) zh&++*Hb)s?-v?76{pYIo-4o^jA_f z%1EN38Z|hSNkz%dNQwKfOK2d$)thvCo-?IEJN@Cz5zZ_-Q4A1Ds+66wYG&cfC1Sij zN)j{s3X7OC>k1}&`WSe|_!wYjm}P@!f_g`}VpOLZA|pxnpm_*&H!q?KN-_ot$gTLZ z48)S=@U@kFA8;is8T8_5Y%JlMHlx5VS+fGdJEF7+AAuNc-nXtK(kPDMhL{n@XR05m zN6Nmb-d5$ee619_Ae}vDeDEh8L?dp47^7AAs*Qd0*3^Yuw+rS5A?1fvAs|9(7!3ln z#KneoW0UuR=XxUAW>mty%n{lV4O;(Yq1Yvy zuD5f~qq$xkeI@7Y2qZEvFi+w#B5Vi(z*Knf_t*H_lvOP86ys zx405Md_z=EWy362D3;?iSMT}f-&cdiB(0GHq?POXV5ThB8|GrP(>kH^^k`&;7@5B; zvZCQ1BsN9drk-w%qZLM=gMI&ojX&v44jO%%ZRF;L6c4Qt%CMx)t=RF@OR2?_VC+~z znbzop!gmH12Dy5KV3Acpeq6&~i8<=Pl#E&iwX~_8yM!7e8e|rs1|FbTp{#RnaHDi} z*r9%(f+<;C^?~??tJ7O0@OYnr^^FeUR;n~O&bo-^UCfsgkib0oo+3qNZ3IJc`-<#& zIA4}oWOst9N5fWi%&IAV`^ng$*4fhmMXVKfwmwRcD( zRXcr08pbY^kVsw7^bkUJ0GGm;p%xPUk_0ar4Jwst3J2!dU?w?%{>!74r8+_vi7{%# zKv$N{+t3kKb-DN#bS2z$-+Qj@f{Dw%SX7^%qM3)trXBc1O=0`hgkwA4Ysx#+`Er%e zbZ8@@6zzeHF$A4@!mc;8IO*~AeeKR?ca3A|^v5|IHxH4>ng-WHN1H)P1+t2oXX)J1 znZPKb!wiu#9;M4rU>#N+yvzGT1n4Xf8qA4d>YMg?v$ z&{b{>Jv8a}aeq}dS(dvY=1mvsGO5M#>Im<^qqo>e(shrVh1^pby$X+6q)2?guGG2f zk5#75wpv#Wg(#1@CvpqIQEC%WzXmCXXHy~ z=-2Q2=eKHh`n9-~>73L{;GwddZwA4hGZaM+K?Y1n<2$>XdOHdA3DyGWto6a}72vGl zTNMa;$$q`>q{9GqR7ze{GsgBICib)3X!NdgdkNC^NBA4zh~Bg18RR~e;xpd!1u9Ka z=zzwC@T;%n{zHe`EPWno7PfuS7T7Xkz!yxv5JuyS`ZgIVMNymHRFT6_^2AmM51!bZ zTgl}f=IpoHy6xy+_3vRpK)8r4Q@6wKD&F@ERlj=_%N@B1LcGr|Xhnu_zD#I2(Wwfv z8EQ7TStkRJ4e4p1gXVd@*tV5NQ=~LhqpdpA3#h=`4!tW_;@Li3c2+!4NCed?#i}W| zEQ3S7rdpZ8&H%gLD?fzh(ECRP!J+qrmYOa5^GpBfj$j8zbVT$#F8-=%eg7VV0$*44 z!s!r?Ua9Fa@#HLb=<$lskfg#51M|{oDLbIIp^FG}nM1qPZ+SI(wAVzY&V24*=8A5! zc}eA7t{4lF$}2yz&-4rs@Xami?~%xxI8&rR-u5D6>mF#HiFvNB88O2M?s*^=j+_0P zH47Jp9_xA>1^x%Ie7GtDtObt!-SM*HfYl6_v^ry}=-|}>9!Dc9XJOC|XX8%H#`?oz zd*fn84KBwT(+=++R2Er$rX&KKe`Ho27Db7o-LKdeZF|k~p>5-G@W7ImW zy1&-PsUOsVU`p!22z2ELwwP57{1T#;Lu+ThQ+j&pv4A>uYEn&;PgCN1-no(($9 zMxu3vJ6tb2&aN&vIOd%lwj)M9JO)zMwz>_iN7tSlbzRU=tcSB{@ay32#F`;r3i)D1 z6sD@}M)LL^TdoWnTJ}7@)&fzXpQkRwlP&O_L`<7L;vN1rC$f+;o>yn$O`&b%$)kXo6(xO}ii3o5MLZZQIg;o0PwHvB90D1#HA=iO-lfqW+;Thnw$=w0{xH4*$ej4_r}WNKDfNAKWhm20UO7(+)zV1+ z>({Pn-33*z{Q%#|>edbnC5CUVcNQ+}C8H+1Jtqo2H9~D15Ji zDa7_h@(RC$5*~?EPR<|qhNQSMV3J}PtAykBcN0&=I03O2qA1_)gKWb4)@au-LsgPI zm3w@dl-Ua%RPUJ1U_#5qDoQb(=K zuP`|QYJr3;ho4RVcVNIyonRyTQ-RbY0jlu3#R|MMPFl436H{amp--|NF-c#vUNxNB zPa^`x;I(pL+0%(TT`^#!fO&+^W}}F{j86|2^iaKv1E1P6zP`V7jJVgNa+zkMysi>@ z_-YZSce$n!9rp550ez#h5x7#gX!RPpxub`pvX#p627>k8qE?hOU#(9)Xwy)Ct?FCR z3R3(vf8EVdN_b24MrMJxDhgKXMDSiuv*y;z?Yz1W4X#*bEckgy0vaW}cMQrU|oO@|Hbg)SxG}p5Vw}hy5J$+}M zwt{J7RwA>gXRL7WcBjpA<_w}-*RqyE-*tJI@(pd}h@y|Px)VQCXqE87KF~RxnW?-P zG^|>rnwZ|6@0L*S;ia`tsw5WQXRlxWQJTDo6ps9$z9?C8^8$m-uVBHcC3d?eJ zxZBW)zzN}oA_QjnP(m6(-1PFG5zV2(Yre@@@2Pr>=R_l(#zp6mvaOdCV7#v-Wk&;! zLC(2jFWY77Y{`7)-9;JtyUd7S;A~(wI5Sr{>ZP+^%q0oZf>}pFqOQ)t`1@aPEXq$2 zNzMS~^gYD*8~U`TZ&h=vwA^C+DLrvuWI(vgRuN!W9HG9hZ6VzoKJjn%8S z@=R!GgpbxHY{Qo4HrK^Z-gPKD;gO>8zMt4%o$+c4Uhs804^B-RiS`fHVoM5tauB|b z8aD}yzK9Vp+lgZ~#4%V^w_)C3V@>q#U2f&6G`Zc`4)l7S^XwN7?F3LTiy%+VBGK~Z zz;WTx4WX_BfcIcgy;1_+&r{JMynLGs$ zZ;9M+>A^lt(!ERb5M4Ttef3E`RytjqBU)@cL_^Y*@#ZgVdIwe`$u(xKUyLU-c2;lc zbT@0zdn#IY5fGQ(*D9ti=mu={pHLSaR;WaBh%+CIgBvA|QV|T32m+Kmy5H5JhetMy zScI9H3iGB{c%9d*SqzUNH6plAqlFZ~^*^oz^CUmv9;@uI0z2j9!&y}A4u2-pN7VlD zs3-!E$Wyys5^v=z>d1c+O73lI#jJFfKnc5r79HL;xXE5lh>Sb|C4IX`F$D*h8Y_fi9FvdLQ){<&|j){ zfnuvr8nMQru=+H21pP*22udBNavCH_hSYkp}f z){g(d$WxX050`28i^?P#WKn)2B~9KfD}V<8B%0hHXkKLktCj*OT(bh1=?{kiM_Iz( zqK^GKHp{HLNfvmIZZj9|kVreMev0m@##qN{LwXs(JQA_S^b+;Svvf4~ze^BFD~c3< z!x5rIUfn@x%n0Svfym`Y!;0e(r@eD~vHbjqC7@_{GJmnp`27|9a%Fs?rQ#j&ib|RS z2go~4B+!AOEUnZ*`VjqO>pQQB`2kF@+O~4DW|e zFgo%}gN;d4SYw9|rIq?H^2%Y=z#LVMg!WK8BEB(@uU1JTivFX#;WkjIN)CHx4(9@! zy!@;=Y8-)E6vAPpP`Lb0x8IIoR%|U_RS_dZA9U+z`(00!mO)BM26rvg7lE2KjG@P-?MJix$k#ZaEU3o1$b*6( zZ)saasijUD6I*&n90>t(p_*W!# zvn|ySCR2grWJC9vrzE=kQpw(T5l!EEa-VsOODqfWTJqS z_xsK+Hii~L6%Yweeeiy5X=|7wIfUc?WeHJ7^5PDX6z%*Wrm=guoW|U}SlfELOB1nJ z6C6I~-MuMP6^{p&pplE3Cl{gQiYyl*WHlr<@dQ3LT&J~Wq2He%EE6{-&eJLtcE>D4 z2Wc=6mA;mD_RGAajqF(?S+nJnckN>Jy3jK>dlcG3a6n(K8i)y0Sya&ZX@6`*mW~krKJ#!Di?4MG?u|o^l%V>-)BX0|vYFNly%*;1J7nBSf zl=iX_xj`1loKg22pg-|!zN%i!!c1m^|I1KJ=m8iI#$pv% zKpT~z_{DI&ynxK7O%5A0i=a?@J)+g0E&0bI`TAtdh>?F)? zmlAp4ysz+LZ7x%R`C={W+B>H;^Sas--a91oeT3d}!HCf2IOv0t>&{hxX2arykwaN~ zzU9m%d#5e+a&nVp<7VW?<<`CDpJg{D`V+)C?zdh3Myv z^G+2!MBMu}8(>Tp)LywZ(^j>>+8lc6qnHb87Z^E40_Scy6g#*EiYgmsaX+nRy8AxL zv@~Bu;0JvmVqtkVba@yn+kGrjkGAj7PQ!;RZrI+mCZw-kE9J*z{B`yFcoJvyH9f(e zPjlpQlWqBX@G;&Cx2`8!C5w<1H{KG{w49ONllqq&tR&)dkl^-VxuW(k!CCH;CQ`MN zMnRY~Dq0&Wq!Bg9y1HOoFmEc0?R=fF$_xcviHo!%$LKj#4T z-@F}!0hO5e2s*OOT*b89Zhq5Oz!t3;?$!U|v;U9X1b+GYpV{9{zKGv^Gvfcc1pem& z-)|hQvV_d$Zw)+AkxY>w42o)P@68JmC{oUy$L3eFp;v3mV2!xCC0qa5u6wxc)&(ui zXS-Z4aP!<@LFNzx3i`#Wdb*cNRng8-NYtxi4KWlXY%Yq0y}>N0p80m($ePJXfQbNF z@$?myGc2l)Vm5l~F5F`Fuhl?vHA|1dm4sKYk#$aU$sLWZV$SnbLsp#tn^ec?5KDgZoM?k)`L zr*!6L3RMB%xi*m@{te$LIplRErIVzOrx*eU_W(L%8KbLk$c)sIr`R&qe@tNzrX@?> zZToRm*(;yUsIR(oXdF(AteIYPG5@D#vXgK#eoIb*Xg`OMdSCz(W$miQ4FpbQ9G@Ya zNAkNAPL&Kir09XkEGS* zlxEE1=;*0s_Akih2`-o?#h1hOi*;Z_kK+pGtbBG-Zf|U4$K0{M)-pX*i_Ubx-zQV~ z$W_K;BtR))LKchJ$W;0h5SJC<0i8>+ylSXIR-m?EJ;2Ow5NtV zhpLj&Yr1^nJ~%bQN%pvHujE8xe`q0oqdZPX^%#vfn$=_nTvVn8fi>mPfR4jEmvKmg zuQ$iWbeEL25b z!bd8*4>SoIaR*uHv&b_3nd>#fv&}YY#oyh6T?;SxfxO=P*fsim%G~`({sjG>T!TTw zSIxuhYashyg+PmceTZy(@h;YuRvr$4N8y=E-|+t^72!CP?D`B*IHx0k5)T>d`e01sb4qR<=*%(w5~ zZ*T^yl8NN67MA0uP+GZ}Q49As@iDsdEb*)FPQG3KuAD_R<0Z{QnUrpkWygirwy7od6a#eLwN)n}L=`j6 zw11`uoGOx=5jb9&rpw0Jr#ecqlNzBW*clJvf75^Qj^{1~ei?@@Jm?_9RzWZ|TM04) zJtKv6rk>gM2_?A*mKy07toG14!b$>G{a%`fLP5t`SxwARtD@smagvtgUsUc(EbJV5 zp$nQ(3W1Z5gK&xxw;(QY{Kx~ST(b;p9TLlm8{@6ZR$<=fe|0W-Xm>!#jM${RIe_Ou zw_vb&HtJsTq`TY@`Jfr9x-hv?X$sFoW`K9aFc|RWco~o(3_fC@L8{tjbzTsPwJw^z z=NI=_zm6+xzg)&}UaVC(_0b==fzJlbzgFw0O}u|8pBAX7fImbEyM0(<;m-OxhJ?nC zB@214UYVy7+=l~~R`)5rRgMYetrdJkY)pSGx|iuh@abc2YLl(IuZBeAIkolvtq0N} z+G=-+$qH8`II0DLB>Q~5F7Vj!TR3@MeaRId2wObJ0p^i*`igaGR*N}4f9=9uZvsXO z(oM|HNP=)hm&3@}t--oz0FuwfSAVs>OMBm*JM(==C;935nMg8sD7w-C71uW1K8q>D zk%}3GRim6ucLP<($qPeUF#AK#RLwhFHf} z{kf=gNRS_grv!I&bKJNX(?EsuzLytk80ss8AkwRtfPt{jUit?hpLaR*T7auqF{NRI zPsH^p2gq9GVO9t-v>ezN1l(dfjn*ZW8JQmh43o5_IX`KBvW4mw0TS9$2MD*fcsze` zOEBVU!9pbp+x5#bir(DP`YVw=)s3)lO`L?p0YaGYXT35sjjncsfF!{X5&n#m)PCj2 z5XnYRF+e!FkwL{3+y-1T=G6H$t>0dHnHJy!Q+Mfl43jRL$M5xcDFwx}ct2D?_Yr?7 zE=%J)O|SVcl1Lbdu^5>}4Uw?G+C0bP`MA=Z)I>}Rd6TREc@pv#b2S&-RVT3CjB&%# zhPwN3!E?`Fzh9UjM;4EGCNcYwuaNmOe3whsiI^-OfGWN8=x=a`9#NI-S)H-s#DaXr zd6FM*Y55$au1!0*lPYuGkESjD9J6U{Es-tAy@RgCv1s@c+Pi$N#ugvXcPq`0HGuJM=3v>MQ_MaFWn=Dxi@ zg!Txiwm`h}y;)9pVWi#bfjtcm_3_vjG0#UNOX=M=iy>XIO}EANMvz<0i2GuiaIHB& z%#dZK5ye+cj5Hg6snd^AWB;M*hWg3Ko8qvDr+(BV+(SR#1sE2IZe5{ONTb4A`@K%< zYKBv$rH}=_(dz7LWHmW+*(Z3f$(wP*_NtDZ+8DEb-Z}+8c^PInev~oL9eZVCyPaTl z!=*9r!6t|mqm_AruRUr=0$@an!)~X*ahY511!tB%*sjS55IsXHD{?L?%M)6ogQJ4K zvBO8`#-rG$@04L(?rSjunlGl~`fdfYYe=p~b3;ZCx}__t>(=la>h$LLqO0?3_DH`J zo?R|?s(=x2%{(OFBLN9n4>&VE`Oizk(xMRLCxlY?hQJ*AQB-+77Fzb(JD z5-TUuFUMk?%$(G~GWHhCY&$#c_;Iekxzk5a=vbfa*?16O#p&pgNV0CK7h|I%fcE#h z>CDaQ^VB{!Ok3U_6U&>P1MCvk-Y-<*Hr`t3bO_Y1yLoY%q?6^;3A6dT=ckEU;jgB) zO@l!$O%RE0E?tOQ&4urH*CgP+?Fn0kVG;v{$kG3tfjLqj_m4!QC#hw{gEZnEl=+`; zBZnx9dYI^vcO5Tp z1l@WSIKtW$Ra4hDqjLe!H&#bRYDvz3YOkECPMh>$9IY0l?JU-;!PO;xbOb7wI+3fJ zH{j~hTTqwEY{j>ZuzHs$0Th9PTcEo*$YyF964!=6cws$iVaS;zxCBEY1trlfJDH2W zvf%JG%mt)!UO#zr3oVcVgA3&`FQ-jp=UW5n{Jf$o38~P1&{!8}gNamhb>ZsDGQrfYI z0t`>ZF{8eiIbLe%KGYpO<17%$brzBMx{tDnBfd(l4Sz|V(Ci^|^9oCj-=~hREAtA9 zWMS6CCK|Xx9}fR^R~{O5Tw%Z@xzO97#eYBO)+2Lt-mYPLljnE7=3*N?}r3dp>$JktmyyE9DZt zGjAs=N)IcjWzQ$S{rYUzJZA6Vt0aG*^o~7d7#|vV1$1_O&2ZOK&ULz06CWcPmi9Wi zN#s-k-(>WIUEI4TPo!FpxUSaBz2qP~_i^CwVuh(w%;tB}(SCU7&=Xj38wNlDlNYqwFo>zG3+9n1wy6nDh-jgHX;Rofjp?u1Zi}|;)0?%=5 z%-Rdn1qj`(6Sn6?xygh4!G&nJ-hblrxTSlDbve;$^vj@c%luwi zrB|IZTg_GpIgtSF2`ECml8nsq%4|H-%5+TmBh6J(vaG4_TEp!a3|G~w5rizM0|pg8 zfjYpw#}6OkL3y-Jn2&Y|%J|vh(+(Fqoxi1XMe)Ii)|B*a0#54@wVl<6XMHTrsiGe8 z5Fw+140DkFt!5G6I&u%cO%nP$&ma!F_%h?^bTL>IcF8M_!tiGo7HFX3 zi^tFQq;?OFc6AP+#HW;}{pbEsL<#B0%znel2#s`%%yf3QCnAsA+xy#{+UN1zg~IFE zu;)$HZRn+!Gv(>t=g8ZTNl#>U4_l9?{mqz+<2QrH9_7|bA?~WThFOS!UgouZg0@9o7?5jN%C`Cn# z%aCXSpCjhzdQP^Hu8OA^JFFZ>j>o8LG%f?=bjtpa(kZYBPzh`P@m=koz?AKF9w*{+ zhUd0(V_w4=@&fXI{*URW9BaU0z$v9B%qJG^SGKEjImKYNs`I ztz`R$?PLK6Ofk{;bJXK$rD>J2P#n=77>@~!ZZrV%LqwkJOLnqa^pG~0qV5K?UvB)L zMtE>=gD4;80Q`(7cAz5I>mvpLzLaw5$a@hgSba^W z0+Ra9UL~E`nZ5E8qs+3DMr(23jXl~YMzeSG*j@!JoNwDPR?FYavUaf+8g!HnJ%Bnr zqA(*yyEt4vL;Xkqc?E=p_WMt6;hafBY=DW~)IiOyo8oN=R1rgt#eZ~Vk~83O8M~#F zyr%<8ie%0*nn}$1sLkS>onIbKG2-gyWY1-Ccy&)=LI3WKxew1%xAu#I9g^yn>DM>E zR)A$xNZBvPQ7VmGyX5G<>5j12xgru+Ch=ABzxcpSKv!MSpw>nmI+8cC)NGpH-R`9i_e&M-a+ zZdQ1jHE}e>ERkGRgg18NewBb*(s4IGClnY4p)?H^lrH*kVbQ3R3*CJvxAfJvneogl zQh!-z;JHzAXQreB758E4qMUt7M_DIwmU57=z^7;5#BPr=Y|2aAxeYB*V$$gXeKQa! z_E=FF_t{_%&$OY=sIYs6dz{X?-ELvs9zH@7bxt=<<&;!_gkuhi}st0oEdh^>LuiKVBdvc#JwjSMk7wr|tzst0;MQ}ED4MDkC{o(SL zLE6T*ax-cq+FK=>4%hEkvvWGI`JV%u|2D$>DMPmSRdINKaUuUdD$aki%KnaQx>O|o z1KayM!7M%6pDcvb96A69^7Ffgvem(qFuMN?ENy zZcbmoP%g1_@f^AzJ(>ZkMGv7mEH=0@s1q&wp};m}?6f%JI-CZT0RnX{I8FFxCQ%1u z!@-8V_$&WLi3O(~Z~=NuTVL{@aT`Y-W;2ndux{oaQJaYw_cT#WN zz1>j?n~)p3feB4y;YaHzA?@FIJq}ak*cy>$tywUl{QDnAg>-NSvIr6Cf$v0JXCf)O5ZKs| zjz#hj)r7mRDjb^UFsV83q{tG@64@o=gvhKiSCmv?NW4({KcF*YUge5Nn@#9tWK-yX zt*+885q)W-N(E6FXVCc5k7tG=wwrff#*ZA=oob}aYIMGQPlC_`?rSNyGdz@0qImw? zVcIQ-n>eejTVoZV6;I;nKTQ4y=di&(k0DdLC485%J|!M4t~ly77=)AO?T4{0iFY_j z5B>q~N3r)k_%Uh8dL7qIWiObp9_$!PRZIUy$-Y3=sGd6&Dv2wyh8BiefU4Gz@`sXb z9})flvEuY=fdH%I84B%U`^Vb}XeM0@6uda+-hEOTx<-Tc=EP1G99Q9Cb^$Jw3~RcM z0mpsBfa{0nYvphp5K2Q|epRae{Wa}xR~cUW+_k`My;<7mYa}Eg{z>NG zwpt-Aak<&Qxh|kUSV8RYCIS@gS#Te6Vg)>_A^XrTfD*j`M8r#tj2gV zeuM?&aun*}wVm{?NY$)qy_~2zlR6MzY0`1^Lag-j(UMXT)QX7fR+IAWz|RH#o*tki zsvQ7l0An6`E*YQz_8B!}4es`ms!1tXH}I)Ni%xF1*>OS#d+932=w~3xE@3cL1wNyScR?da;LKK7ew$9| z+XF`938Oick1P)sg=2Z3W@qe1?n+?K)MoVs;-?bqA6SP!e7CT*!I1cbzDXkw@lm$4my7XP5_lpXKw(RUN7eJ+%MKB$iR z*%bkYn;6RgnO4A{bPSUmVJMOgBcb#c{nQpQO3fJ-^L2$7&y?9daz%G{jCBHhXTvcM zFFzM5^NuNBA~_p0rE5S9B}lGO0@3kdS*DH_8+EU{78xnNa8FZ8mj>)4YLImu)|RoJ z2T3%EX8Q}i;Lgy`81SjSfcfHrohqGw82g}GPh7rVq!QbpDaAm8EsjmG4(Rh}L^qMHrDD z{YeVCX~9UDOolq~vZ9H46d)|RPcfI0m+@FC(?>4oH&s&59+xoiZfu=Ah1XsS7uBc& z+z715M7eLpZgpD$=~JDg_rbOLu?Ea&h)Uh^RGYH?LmF{5_4T-MXwCG-==Rh4ers3% z+O9syLo)*_OHV6wraGT#qegnV^C2?0PUuusXlgI8&&NGjMT!$HR)JWM5N;qXx7>>I zNk#aG|A(s&kMdRA*52q3i_n!j!O8cNr&%y%6ocEH-bfFs0vCH?LS(7=b+Ne-)PT zpE;2KUt2@J78f%|xBo*S2F^XY1^nfF3*i6&{Gz`9ZzQ(=eD^Fe}~81dE?3utD^InwunSa>*a_N2YFracEfBZffoI ztiUhcLAOuJpXQ8UJy#@0TTD7JD9Cy17?;LYM?LB3| zY9Te*@of*V4(3RI_Tk{J!tnNXyU)${!HEq~Ez3LgunI}*Z+lXo^?;cYo=YYxXJ1An z%oSHxMn}=lS=NbeBy4MSjzjPhOBg(rz^0+@pM_~CZoUgz3r}J?tO7Do0!4`UCWG`7 zHksj=+M8s=bmF8w9d*SE#D$ME7jTy_0>d3#ez$3gR@IBP>pG1avv|njW)ih6g+Wo8 zJ)>>k6d3s3U92{esp;$FDJLZ9*Bj>DZw4+HCX7uXiRC6;yut!ZlPTK!$L?aaetgUv zop9=tazCZ8p%uZnEURW~=ht{+aUN33t!^NP&-)Ky2RdkDxAAL%;{9KS<7Fw+{{-};vyizCYv*4w)7kDa|71& zA30F5mg@cL%aCl}7)3P3kLOPf;TRhlI2ysmMU#E6XF(2r1$-UZaUViZB`Zm`t$=jP z&te72y^w}38QShh<-@*Y_XRm`GiVK$Sg=tSh&(Ilw<=^W7Q3MpZ3AHPJ@K5`+1h2X zA`Jh7`3b+pyrzjMWua}bz1j((&W*!*fQ!^L&_8Xs`VOoR4W;S*bfSQ|bBGg#hs~D| zrXCvcvDP$njPgOkzD=SiTI zb_a4c;5sy@=$~hjCNNGl$R*z&r$+?bs0*iJ^YS&_`l7PNzo36S|Muh-$kh?Kwpjn< z`D=}AQEh;i+6it|jFFZOW8Dfey{SIZE>RkV?^MahNZ#qBdJCnJ=}md)b;1-?KxLTH zf=ALaCU!zut2`%P*1ERvH{_lrA#zS0%eK+GX`Cq*2vD$tDGF7YhwP8HOC~M$!W8F0 z7IZLP=Bmn~#p^>l{&_u7A~oLnz~$Y}W1~y#LP9?K!EsBoA8G=y-)r~XsbXv~f8Ox> z>^a7{m0#QLu|my%t<^J!o*j0O_qbln*RZ<9)Ddmk7EVpDdEcMiUJhaG*b=;T82$bkYW2mPA)`DCFWH4*IpUWnBjc3C)&pI%~)G@?(qZ{YFDwa+35_2(nH5K@AC{w5Ud29~~GC5q-tJ=i|uew{&Ly>I4CMRKwSPC>bg@q_|V?;7R2u3i7K7Kd;Vom{RzN*d!X@9~|#nKt~UEqonyT=CTqYNwW9}#-+ z7woW;K_zX(TOMgM8wX&$F79uh8ZWz`6sJfoDY)?#-+Z< z{@;=|{&yDYf1beq!=_c0AZ7FW`2^p*p$4@2CJyfl;7~3~OaPYo^N&O3nbv2oR#du7 zUAB_pe{&q%kU>fXjgmZfFwA_IJ7*Ht)Nu z)@s`|gIj5=eqh@qj1YRc{=gx$6E<^~de4pjML9I%B%bUTD|H2vX=1N2^q6(=R2?o{U7=ms4b-YZJx^V{sq)Mv#<2N~#1FqqOFYp?C_JsuPc41p z5dZ~H{SzT^`;`=p+c`R>x1yNaJZdObm!oGaE35O6k zC&FlTY3dLo|B%>qp=LIN8DW96KktssWOt*eO9>|ym#X+=;(v6t;pjUr2n734FI> zw?Iu^usM9hnMqxDaMNJGp-njm21_~A@f5^6JwWK%Bs(3S65bC)NpOXxZB6q|YjCA- z3z(%9F2SIkjp$P3gqFm(KZt2ov>U*DtEP-JZ%(lEfd)L>qyc_gLjTR}_I&E!=YmfN z!r!`zsTm1Fe;PRFIonaS%FxBi@u40tqQL61!V2wR2fu8^hAvY?nt1&E(WYw&J8{Id zi`N;1M{t#O=`!7u#&o3)a$iMwr)jNYcz6=|V)pm7=HLxTap}R5b9w$|kYiOVa(^1= zyr}m=&{f`DdTy0fM}k70Z!c-0Aj7oF1h@_itBpbW zoO)dMN#|_t#xU)xN*ePrjjB&Ql{Bkh!k3E%V1ate6o8t$ zq|d19$kRbiNYunB3X^MIX0Tf%is$YmGrlq^hUI`cwen;{rWRy!HB6%XRrs>7h)C>| z?zxHqgfa^pmC&h|4Zxh68t~*x^M9W|>+F5juBugKj~~A_#wW#C=0{Ni=bFe@P#*aln?icUK^9{X>Np%9 zTNa5WIcM+zN`6u&M43oLmNgT^1FoQ$ZH*(FKfl*?GAGm4F2doevapS(91$;FIRZey zQ&YP3+Zx`}fBgbEK*sM)7GJU5c?%Q<1|(@Wcq*|;^uTf!EZjgc@_A7aIp|Z93Fc|w z*$nti-$rwkEu*ZQa#k;0GGI^zbdR6kb1zD9J~fj<{GKz$`r3U5aa1tFPCt~pQE>zF77Yy0}(d?oXpt1R3LJ&L`?f`eS!CFY?23!DeGa^DpOK5E- z$1l>A4iGND!<26iRJq%saJ-2r^4wH%Ik^#ylwsgif0fr-YC7PEXWPu&s$pl~jg_#+i~^a9ka^ zqMH=U_eCfcmrG$=;en4^TcL&OxmbsdY`{J}OBlaJcf6a(q0L%DEy+z(MfCH9z3NWQ zVyKpLnw{wBDn?XuS9h&(1nj~k)qSGI-d9aj)*--?s6pqMJ`L9xEK;Z}v@EwH`YzVL zGck07zw@MjDuWCJ0D$*DRL0)k#{QqeC~TPj6vpdWwUj&(cs{Vp*b)xwJzOC&fvl>` zz@&bGLFC)ZnFfZ^GJu{NeS$+&RFrKdFAfrlEg9Wz7m>TI>I-34d3Z)6_4LbPFcgp55VL(Hyu6i?AH-M`ma`Q)IU>4#k%Vor} z+qhnsj~i`;e3Ukk1;8U=qB>5-%&jF)*rd|9K9(HJ3a05On&Y5&m52WHS5P-ARz@ol zWebANiEhF22Hcb=T_tZYs>Z;wQ9n3{y2IqjrJjy#HIF|_5 z1Rg1k6d;Ke$H5%Ho!_&46Tqf!@>|T{Knm)s5>HfmAa}l2o#QauRsh#MZyJzGPV>x6`BQM?}8CBBGY6 zYY7uP>P;Qsh2z1LgD4OpDOq}9Dm9EQH44=I=4%;Znrd6mvqgdF!w?k5(B~l9NHF#| zT^+9)Ma*K}DEuEy{(8_tgS%ASsO)T1@7b5frSLnFzi7k@$@2va%LU;5IS{Uq1_2)C zD2zaIrxi^5@a)uEO+s=q^A${8JYWEgVDQR4v{m+iWW!Z!2TZDO* z8dGv{i#+j*)dybo&ijJks%pK@1jFA=g#$P$OPl?A6Y2Q^3Mc;Df}gB!!2IQ7YpbR$bYx z>ffYqIkl31Z>!fBkoqO+C^_kNa{f(YcQ~%};1+WY=h+Ozu`2A(R*|QT?5yjg0_f=AN#crY{=qHhZz zi2nEJ(pIuaHK?U$m{&ux-4iK)$L>yAhP)b#l*Zdw_FbFW zq-Vbo%qX&7w`k2=j_&0X*_a1^S8cFhROqB^FD!3JoMbn3Xa;7wgnU9pEeC|w>nJqP z02CiS>Ns&D!eMR$H28w3ABkFTOOdH=gtCp;zv%F-t8ZEmKAM<0jZ>r%ISfUl77A$y zD6wru7oVCg0I`xOop2wSVZR^6fL3ZqYKUn7Md+A6#{};}GTFDGfSG-ChKf4^B5MEx zeXo3`rXQ*_3^JnznMWm5c}3)^WxlK=0Sw;xpu$#-YQujLYV86qF8r2RP(1Nu9d2fC zh@ligS}lwYn|HJSWUmn$Uw2c1C}UQBB1B#@Ee%%Y$qUQfUsJ=qp|1R!vb60dQZ{xC zc8VG4R!sl8X~ni`SF z6dY>&u-B7^z8a($o+_R^xJF`%NcuOf_P!p*$wv0>*zW1;EnP1?1N zNcQoWw!rWhV_(FDF@b)ysv7cIcYQ&*O;%`4T+T^g<^~-DM=b`JnD9J*FD?I92?=zH zRECGh{QAV4ji8SaiIjzs@rpw$&C0KMERCk+p7F6c2sN@3bfw}KFMC?dR~YE8YzM}d z+}YBAaav8~#=>TLZRRGWEZa{hb;*0RjA9l)KdUMAd+O;YMwp_{eS3Oii}`nX~ef zSkNLVbBu6oD*ZZ;`F`&Nrr3KL;cgKNvVks84^zdc&vH`bkb1f#}QO_yU=ogzxCh zP4xPerso`Nrjw7OZa-iGxS&FGz?3qsHa%%|a%nAmY=4j<(sQu_9r_Ame?fql%uqxi zPSdN@&+{i;Nmik&sIaxvzDT>o_2ue|rdxMRo{`1V^5F$y!UIb*$Q8`5mb6l$!*&+YZ zBFM=xXKB(`r=8A&bpb@XE2gD&Q?_}2KGzB)8&6`Dq({X%_#{4`9^M)p1rtK|eS4<8 zsfa|_&}@Kn%UxGg^ZUTHv+WiAfbqn zcQP{GL<~&yeo)nBP$>J3VaY0V^Z_Fo$XetqGgX(;uYC!0^Grw{ux4X@+h6P{DmXJ; z7Z*_{7?@HZ7{XA}W1PgLh3^t^5py-dTRL$PXiB#?v2h$DVn=+sY((#k9$E8vr_a`3 ziS)|iniEkNzu+h5*DbOA_`!29(Q(~oRBQj1dGYXoN+F{x%`pY%>9HUTOq{-g@r%uN z2=X5U0OWn|@DVHV1Ow5^PJT3vf2-9qQj{9IUr}85n6a51RdR?vpNBeLb7bp;i(h@=9G+NYnJGJc? z<>|0MKr%TX&*73sQ=9ze@p*EXWz_ZTrGD~tJ0CdL!`_^_84WS0=6ISx(HQWBCji$d?12FMUsh(r>?wsglbVEH(68biu#l^%}kBfgx(hP2fKF|oObgHLHjT- zpr!Ja!TIEEh9V6Dz5Lt2g;|5}1ls?SxNz9Dm&fH=@ri4aT-0`INwg{`ztM_8WSV<1 z5Z_B;@#>ci`(QYf(iy)-_WQ&;W$aEM1%*a<`Y%Nc;9gXwnxf}gQ3hGu#FAPpR-9unZs%UC(4`-my7NF0y=jHg0)*gimr ztcTp}qSmp6ts02 zW2TP2zb74poM{)uZBI_ISwEUxOg0<%lge#_{G9T_b7C)$^NhQi9sD_vbYH7SrBslT z*(y&Uu0l`zf%E=q*W7bOizlbi3Qgce3z&~~BiMv;6 z>Y2g;fyN4>ggXg~FCt=9dHF9Cb@I>1W)wRWW&95s0QDoO`F{nh{b$P9Ki8bJe^Jz! z6{|iUE?Z}q%@?Zl(Be{A8Ipi2@riGh+(6di$6bmsu_9aee4}(wL9ufZvPKR>Zd%JU z#X(Ltj?dVWN9MQ9(I)Zqsb2G$kqkw4a`cU$9l}i6@FSN1VtU3TEXODFad6I?l8qXR znyUbr0Qx8_`g*(BD~$Ogi*z>w!3U>h;ZYJNVOjgxH#i-nCril%++VBnQ!@+lGYOhZ zk7_=q&vKCl+?F54B0~FPTPVI&oXbMyN{A8%7^fuGXFnbm z$4y&G|06=n2a;LzxE0CglpEv-hr9w|vb81D;ss4~x`;zVT590F&mtDlGZgSOUl=GI z4l6Dkcavm?iyc|JhXy=Y&D`Sao?wp+FW1c9bpdj(9~{cI4~qqoXo_byoe~mnkm(Ci})Z}8?&aGA7$8W1So?t>u>Ga zVe6p2de*xYko*@elj7W1YMYn5wbr*~+jFlnr0@td=O!0i;e`V9D)=Z1Gw!+nN=)I> z3rbi&o>W!EdK8J&QP5PKf($_!dJ?dpD0aP8OLlQ8y*%H%CH^^2z&+@eT0YCrKb1Py zURj*~b_sD&Ok5XiAmr7FXo-BHw z#M}C!b0Hrqm+##g(>QhXtQNiNn+wGCl3)1x)Ve0uU4;T6K@YIN9QN*PEXue8IpZcow6>i&Fzq`CY9t$RC@0 zWX^)ZrmG-syyEBM=|gxa7#&_g(|sv2{g5siZt-~O!B7@%*DyHW?O@UAx$t>o6e(it zUm(pO=8uN<##7iH!Z+g5E?V=yo1z28#`mQzLb*s1KrR zIe(KajuMsl7c*<}U-Q)@VR%$KfZdj6pwBb|`}phnPNP)Z(E>SoXh|Kk6B^*FR62HP zUe=*DE^C^RNN8QFr?ucA-;ZUFM?3I@1LwWo1e+O;cqfQK+74bi2_7gH=@TP`>8mcg zW~!ymBG=L74753TU&i|nL}!GdwF*GXAJdK#27|>If0L3bEcP2z~s!~g>sin z{sN(yaIEKb2GwVC;0c(K*U#(co5+lg@i>XbSr7b11Fy`r&&3f#IlI{?wR81w&u-<~ zERnOdWEWq-rlI5Kba0uw=18;jTe*_2LRj84eXU1rNOSgm`buFYV{YYrvpBcL;~aLb zdDA`)@EYx0)2pX#Lu#`t)9!__Y7L{A65o=E9v0#XhDo_@WlO#})}`&PtU0+!xqzP0 zf{SrKGxbRIi0l#(sljLtX%-7*{E*lGLoFJUWU)pW@;8Adi2&p$^6p8Bg4(gpBp771 zLjbqEd6~zJwYJDbs@x#GZ(&=wzHda%|1(@RC}e-51a3RgQB~nLPr=;x8=sHe!FR@? z_UR44*-Py&pQAqx~*2vOK|DPjVL$e{_C+6{4b@wHo zQ3uy^fzp&{w-@h*4lQs_wQmB<_La^x;9gTI!UVYmM$`!3XciWXy}&k$ z^*3K5__7oeXY>Nxgs+lQ7^M`}BEa+mSPZUrk7y=O^^bwpb-n-5{urEFNAKfpYY}#V zXG}Bk^tp4zxBb9NGV(2}pS5jr1K_|X7z!m(l_|W{poN!NBV9_93Q#rQGg=?Cyoflg z#zcrOmnrA4|8@R06 z_g`9l8rcKR{rN7DcqD|y64gNM!o>NAW-+I*9+-PksM+M|Rv~()ngURGozJ%)_~|uz z+Aq;oMHj4Wxsj@+L_PFurG|q&iFA5QttW-QP&71t28zWUR^)wtxDygF2P4R`?%ol=ipLIB)|z~sX5@`{%#+6CYl zaSDSK-Fae_%Rg-D&vaQ%JuO=s2?Y+UGB?IH4_;1F3 z3?kKfK+0Oe{VEWxx=dq`4^czNTHsgQ1U79sa1FuCwO5syjb@mO)sixn+9(&$QsMs# z&%CPgJuNR`I(tcPtAbLAg}bHa9XE-csDBJ~fLnJe%-rJ*uNOKoOtQSo~U7 zO_${Rgee5&L>;%6XekdtS-CO6+1$Lkg=uJP$8k0_OWq9mHyTMDh@b{&jUfRuB~Txn zvET;^x2A>v2y2WFJk`>Bq^SVBb;Ep>iO`&k0 zUcI`B#Rq_S6x6%u_pWW+HwV-kWz%^Eu%6jnWD1yVb@ul}~K`IdU_gYYHX?7b{<#q>FEeYG+ zX>_ANseWR}A8~vXg^i_^4eW+5a;@4t_HeI^fFyAP-ER>GFokB4X$`JhE1Ug4oL~D9 zFxL#$@JkPk{Xh)LfIyI(Jf|R&Y&?6{Y~}4`6JTqhBP#6yS-Bo!gCX&G{XIRvdriq# zP06tJvZ`kETfy})6bs13_T0F+WAej){(|9R&pOTQZzwfL7Uqy8&Q0CM9-DxPT5;*z@dZMzy52)_S6ue5|_0-H65L)!nGE= zBAPgTt_|5>>$6ymz~POR`(YvpEZ-wN{usFro4$Y|b7GKr3I0?Zmb9vb`Q5o!pZ-A~ zHGiGTDmr5kRiHnO0d_-eu_oEf)RQO}8DcV`nI`a~!dI{N(8{c@z&)>pM4$kaasuKj zeFYLmaZa7=pvH$xnRsD*WHjr9R@G~U*r6)0#MKRnQ0BNz9@&Q-nBFHE?_Z<(0@t2@ zKeaHARo!!9dU-SCxX*xZ%o1L^)NXAL$G-KmdvW|2GDji4wP_dUnP!P_Wft3moAobxs1IYQ|Q(Xc5zQ$TaQ76mhbPa#unYcg3Vd zJ3z!GTO+uf2FXz{?xP>QQz(CL=KGr9ODiCTRe!CtCA!jB{P1o;bgv;zpheBW4BD0U))P$+`(YNVDGB329I zfSozJnni58cN=j;?p$n zM+%yi&585x*1bxF2$hWE2}>PosalJwcPpQabdfF#C5MS>AUb=MgKtYM z!2}7@k!J znBD2vh?y-KQq9RTeKZQ~?olW{*WNAZa~At#SX4&jWR}hwkwv_4EK22bj3KQ?45$N+ zTD!{Au=&=D40tO2q^!~arybeT)GZ~ighImw=pj_Xj8&Kv^HU^_zdNOrFW{&j^BKG+ zS{zegVoNdA_!67YxljW*+p-8VfsM#1k2gh(InVor3|(@);vj;Ilw#GqG>|73P%2e6 z&u3tl%F3y3?dY!(6YAIQ7$||WVv9CEaR_{|ncA&V%DDc*jFMQclPaA9v5i`($&9zV zh%h+p3qo?-7VPM~B$&5OG`@bb>&tZhS(+#uoo`35O*0%_Fe%Tr%%pXbrWZEdT6ep; z%W#u)>6ntJ5AwFkE=vnPV@0cY8iCnVw?Z7<#+bxW5Zl;d>emJpD&-19|GaP*tw$M= z)v=pnYkiTV6{>?Z>kJAi-G zOMAG(PB^5@PCuab25Rul^g^6ixaFA4;jGd3>TvU8bWZlRNBiaTw%`LDusxtGj@#id088PUKP{X7TdW-9~O_RTcgbMs| z)6yGg!lt}^E209f3FA=4>r$93cTQ?Fgk@btsiOyZQYBu92? zWpFZZA~bBpP3$ifJ6BATY}s)4JLuHn#wPztweT@yZ#LRy^q%0|9dS0O$dY(dcdUSg7$=f;n*yB++chAEIn|y-}VWw zKGg$ML_HXTnBu_XKL+1OCLabXWC(K9W@0qjZ~<1J`Cz`P!v2`x1!W8mp1kUUoI4;f z9L8HZHje|g=iVnD`o_bi?R<*HsKavZR*RLqf!%k4!c)NM9h3X`RnzvTkrxc0Z%3B} zhIs~T=v{OT0GJGOSa6*caMmZw5omtVUn|eX(^HjG97#}dU@Kk#q zdygV$(H9@5&?OqgazV?Y7AfV<{mrd!|p z?e^Sfi)gyT`LJYYP6lDjgtUa{6p#Gt0k*jwEkcL6l&$87WQ$l95W&`GBl>%G0rO|f zwU^aW;BSUMuXDdE9OU!HeCcdx+5aTATTinIzT8QMY7<=3ugpyIaCv;Yvu4h&4h5z9 zBKPRAdzbvesP@GEJ2S)FR}!F>2C28_lE?XA7zTwi?3O;c%p*6<5p)nJUIIlbw9V( zU{O@EWR5y#mqelWNPWyP3H#*qh?6j|6qSF-lRDu^d+e z1q!&;_vaDGHUShEtzg31M{O2N7C(#gEEfs8{8sl?>;=wF=@7IL*X{ZU7g+jZK{J+j zEIhIEIiGA)w)qOzJ%VlQepYk>|JhhBDzdgWFK<^5<;9H-2~=4~(bmZ315^gxQ=$Tm ze+<@ff5`wW^3=HN6#rxfw*7t{+j8`^;gfSN=@=ACVhuTAuamSF{8L(KP=GzM?v#5> zFjwfN?FBd20WyqjapaJ5<2=BSAhK7j!BUer(k=lx&X{;&)Vo2)ojxWukuO~+6QEn6 z@J$r1QFkh#!ETsKge_<0{z`2m%L<|cqc^!}{dB8lc39m4;2YcPmJ^5@=H3aDaGf^j z`j08im#ldbq@6%zM^M&k^JC~QcLnrohP+E&oQiyl{uF+Y)0iO&sVBio#Gu@a^h;6j zoIxt*%OK=hBf1_}PIjfiubyr5^MkKaC z#4^(jc~@M-NIIySLrNwfR}Te$qQU6cHFt|?-+tOH_E1-n@C6h^73og{nr@P-oe}CE zycBNAsU|3HHfo!x5TC_TxRiP~##yB%{mP|RI8;h3XX^C2VLwdm*fba?)B=7|MK19A zJm{==_Hu^v(@KBX*`aWhS(!~!hdLfz6kqzdT66$^P@U*5AjgL%^Eh|L*4_gcuk4xk z?)2jZC#V#Mye#eslamu#pzn{5k=}0sYzI$b7hAH2_W3bZDEpHW&mxltPTPV%d#^Eu zXTGdJI_Tz2oF0nz38r0<4FhAl;4oGhcv2LRCVhgo;212NIKzG|rC{)NiBX)i>g8)8 zyKi}!8m*z+bYWeIzN{E?-Oa@cICXy zGAfA;ikPYnF@>j4z{);FfbwBjvIM-2iuf(TEOM=;*pyle4E2Ei;2W%<0q|#R`Nluo z4>&CQUoo-(B$BTW*@v(^HKgp5@7e+sEV>3lJQ1Xv_>YF_9rwP0yD?(BRShE z0KWB5`GB0QyHN7Y-IrHmrFQ%r+<6!0f}$6u4aY?=%#+J*``Cc@xVeJ;xKoy0^OX7Y zqKtGAwmLxnlgVD9#}^4`49DtiU5?-Qz!idt+iJ0_>=Cy2CYX<*+; zU?F2FwkC0DRXOwZUs70m?`w8dR~+c9ZK7A|d}>kI%F`GFLo!zY4|XFBKcUZ)oE}gg zU5|&U1XhaF&FZ$Q&JnUZdzlR|fV^G@kvQQj9)aCLmxm}FbLL0}yIs%{iQ%H*3i})N zt+ROQh&jz=rJKEcF(u^p%XDeG*rr}7)R)y=bGsoE1na%N9W_!p>n(o{YNQh4>3brnEwIpZERg1ImB*XCehH8+}1Ng(!kK@7db)!D{6{SFtVb2RZ94 zwN?WiDd*%PX;TCLN~`OSVhZg~n}(j5VZEmdh-4jZZFgwWO9NM#K@E8cC2i!KUjPL< zB3>lYH^BG?A?ud0rH6=0*bGt+{d;S;ua<-1|BUt6Em$=Vd_(zI+4ZZgFERRhyCQ3P z&b(Qn?MbkSjrzp7b%@#Vktw%(b^UWM=z+1EB7{y=F{o%YviyE8fWAEak;Rg7u}sUa zBe%+Ljv)MAn>?g+A}lqDMe=urwXr)o02km7Sw?CP0FW69?VEOX0_IUh1hYMr;Nl0S z&*|UPUFJzzcLZS|^?K`P?4U>_#PhHjy}oJ9=7E{OwZt4-#42-ddta=Mi-KwSN-<%j zV!$nasF1Gs!!^F*_5fPJj+kZKEFMDRr{YmP-K28x%C^vipyA77Qv3}OmOWaNc)T)X`p|GK zpEg2d=^Vs$i0!OrNCufV4^rfEW;<$f<(pI8u)IMn7un;w#q%;1HC3#vsf>i*DEX8$ zVYt%Kk@is*8;Hso3|e|JZOU=|p`}dN{MEDGRJ2=69np6KWp4`vmON+!3g_025^AZF%lmpv;m-ZsKT4G2hO8Sr zho)Oc6CrYd1NWOmn5oLNqC4FNNpoZ`=fbyxjRSwEqUi`~^li?(icrfqrQ7b57y5nY zd$;yO{qKdcTHajk=J!Lin?g9U-Tm?`J@jEYkYZ%0Uned!S?++Jn{8sq1c0Gtb@Z=s z7E2}w7?XUEP_%_UqR744)V~}mMRtDz$m~ck6P0|*2Po9{B<8W#sP0x=PssZr5Qb!+ zWVRZjU;v32=lzvpKbqE73wPsA*Cl5=m+|x~GQuy))}$wxr6$SSIfM*f*=T>y4ur%M zCN?vzr8sy79UtQxVbtMgS0Q$q;NAlZ$W>>MdLt$+qR1{aIHVg9CopLR+N~+J@1Z>t z8)?<$^P{(u4@l9_!4Zm?ha2Yb^Xymryp!*Nq=?VYm7XY>&1xQAbFYwbgYeTtbAA(g zw1YLqEtZ@*mH1*2PD`cU^hMaEZ5jO+h*>&W=^dD)?}jG$%wk-4-p&$w)8x%xcD{)0 zm|>akq1btqcNMIttdrfsVD1t}r6^&*9WXH%?9&&dkl!WJAyX&qFocy^Jk=N`X>OP! z&Ksf|ZaQMa5n!Gyz;iHPLJ*MweHx;JFupe7>TpWtJxK&En zFAWNWyTVkt{eT4&p_uFwzzPxTrZkwT%5A4!R;+qPl}?BR{iyDw%)k-xWwLP3T5N$8 zv&e(5458uU8ouF22vWH2!tbjj8UEfx(rkB&;JS5GVwpekrkE-gTq5ilb*0mn28KZ~ z1Pd18BJpyzeS<8aPGqF=H_KFf*w=V}w-@zy5a#8QZYk(9w#7^p3U;L+yPs=9UaD+3 zb|V|^BSrQKRpfEST?O=UGbq-wLt$cHCxpJ(MRcU~nb4udvLA@b5`9oVw2Z$5GtsNs zR)ons<%KD#la{5+cCRDR`_`TY#+`JROkZK(H1F&ml4%q?G$TFKeKBw-Y|4V4vx-%m zf`61{%hneQNE!DO4@xb~!pU}N4C;`ieVe z$HOX4wt}M=+a>;WHERNraCFDOaTMpip_OR5+HT>` zxaXZp4Xi%jxg)0$Oh@$1{vppWVQysS^>i1UHG@8jEv@E`p*LnV8Nq4UJhZUrYS8cR zYbR1zXSk2ayvC4(FMCiqvbzU-m$ldc&o%m~EiN;w^Q@ecKA`01kh6!GKeo=^GA7w~ zEak9y3qI4q6!Uk(EK2NFQ1PW6cHNt>-=T6J;o!rfu^^SstS9i+ok^o2>`_)WP|?Az zTF;)dH_}VLfZEaZ-oHV&m8V_ewIfAU9iK!;a<^p|oj5hGo~UK=)4Gg*8(C1QgI$Xf z9s??g7WggTlv`lVbo>#WFAu7y2RK!SoPQz)f182jn z%>h^CT@L;YL%UfhK#rvu{SB!>3tr)i=J1?!WCaxys^9^ufqv zylH%tqe41?8X`emwDDGSi-DI?=%)7yt@}uD+GDWeODrCh) zV^pbnmoUmtvLV{WOalua$VGpt#G?<3wnZE5R z-C+8pC?En+B!zt6;>AUm8&tw;XBF8)8aW8Rt4s+$ff!^NA%Od$(;xvmf)V@UZQwB) z$aC~t0?%M*bXm`_WUJR`@(nhfmmN9Z16P=qm3Bia=G7@==UDc)Yyks#R!y&ttz3Th@(|Z z<3he~tYwYAuNP&)Y&0mVb#Crcsv5SFXvzs-35vDp{wlGUTA_ay<5r?bZh%jFNe~w^ ztb=ZYp!G%@E*?WmQ+YMU`!d9!un`fzCO}h0#E&-KTZCb1ZtkTDwVyebS-ui7H$WszPH0>cB`g)m3wIg%@F;-M+b|+3!u{RlgD`zgaw2>_{jDoyXh&$% zCNa-75aHrxk2YA{GB_!_5n@`E9nn?&5EJ)FR^ z#hX#cKsLddv7yx1K2}t&b>LP!DU)D74ssMJ=&fQQnhXL^;fcHXCZ!I6hGedQXW*7* zTcL3-q3`<8OFb|w4}@wwYD*A|GS`V-NRL1w=mz=u_{9<$7eaDaik<%+HRfFGhA2Gd zB_ekS7D2F<76SK}Xk7mY(Bz0i4^6M5cijD$Z+mPUn0uSFiu&yqy$xvkGgc>#IEG%Q zg0Hljk}UTQ{X*xwNVjoam;SB*UvyQQ zhCnxAJAa0D`qqJpO1$9&WQZT{JWbO|M1_y!pUXG-9@NL0E~&Jp6q$Wo;mJuu#&Xzf z{Df2T0aD^A318rgc*fXmj0hrcn1iV<+k(5ZdoJC4#FcFQ*6?U+U?lk}8YHfY{Amb# zd;TYai`841KN9XMvak;AEU-IaAA%6|Z)G#Er}s+!RE zwyL2S%dEM>X2D3EQY%;Nj5D(boNk%tWPN_UCL>-{=$`ioa>Fe^f2h^=){L3UUvFxV z!&sndK-ALxEqH?N-xUF}$p#|_lQjU>kmiSg>tOXwM6{mcg}E3^1ZUL0lmd)Godh%u z$fxZ#1YUjOJpD8tO3LuvG=PcSu})m;fnk9i9^!m&GfJ>cHl|)W#InZDzv6&`w@zAo z-c3n))%)3qwg|_M9ZMEs#PiSz)9}e1a$X6(1sy6C+VBnFm1Qn)O}>7I1O%xiW0qH7 zjE)bX)j3&Swtx4UFo$yMB`Kh4ji|K`_w&uMBJ5(%>M;+lWv>k(34M-(Zdt`ijL!8i z%FmwT%JJrQUm*YTwVY$lN0kn0yof0Ei`3kSn#@2lkt}`zWzlACpXMuBP~>T-zrctu z*sxi>Y15L4Pq;Drf_>i=-4Fp-u`>loST$Bp+*yzyTwqByXRr*`vzqu2K&0Ml6@ z1mgrcO>g)PsD^IOt>BQ@0T_`Vz%Dr!2&hkP;lS87#6}SE2wlK}7UX0?sY-a$h@{Yg zFz7uM6@qxZ61!^_tE`3_iWORwx1kyJi4Y0`AFz%q4-#|Zbp~3#m?R2lssy8fdgYQE z;e@j3Rg&c{4wGYtSzfcuH?4y${N}G`z(G;?D`gEe&~d3cKfO(sO6}h`tRE2_*|d}_ zaQMiBqVV3Ux`H`PaSmnoo!J%QvtssDk#^=TwvRZ0^$4%Ton%hZ z$tEr*#4dG<0_42gd~5nIQbtHMWL43*ODQxc42h8z%-E}>{ImY=wBoP~rBy^t;|tJf ziC4i?oA(&Mv*yjcNn2ee+XE1|KP7IgcJ0vy&W{wD@80l}lRGU84@la=cj@VB{%I!|v1=L!dfVl|~^Vf?n{&*VPS3vYh6Jm$&F; z>Xq_!hIVz^s^ODcbK435(G%OZbLTh&G|PZd`cbtf^&j@iTFJD2F)6ez&*9h?Bxb4D~f@W||;H1o*&z1!-<$iBUdTa+YGQ(LwH*#2v5>Tw>ewk(Y;dj+$y00U zEzoA;bepPls|APtF-Lh=E8AyO4C%=Mwdyg1>@Aa8Ioo^y`jR4^Qqm_@GGZSbPxt}1 z2(K=ZB4V8OP>$HM_nsowY0@sD{pS!53zw#@HC+o?FH2>I!s7O4h>&xV3K&0r%b#&l zUse>i1#4{?iC0X-DWsHlLzk&E+lfi!k7)cNI|dAmBs$et)F-Sz)r#~9LO~k$Az2p1 zxU+b#PAfHMZc+K&u;(59Lg|hb6-?aSI1L%Ld%8}_JZA_Sdz}rGqv8R=x8x|fa4&Cw zlY)r<6cTgcKeWl=7yf!aFtb#nGFl3N|9m^qbS_Xv;!wt;3{s|Wn6<@eL zxG#F8#H|H2{{Ct&lIjsARsa2fNhB@%RqIAK}+7HoVpPnf}yTbrRm? z*XG&8N7KH!UCL=o!d*g)N&OCw!@3^*CtCn#h(UbluXvWRLI2|8tnn_ow#N=xRezNT zJ$s&Tl`h?PaT*iCDbRP;gX1>9xS4cD5@hqZT&r5V{CtHeQo-h?$Ib#3TC zPdI3CMq&A|w~jY_u>^Cwcnim?M8QKzZHKDCin8bmiAM7_bp@fUCJCh>{yOMUVEX{n z62J>%UK6E{V64P~t!If;G|mpYDsy*+S3y-(BxLWtZNe)o7Jr&JEtru+ciU>Eo;j!n z%p7!dew_++XxUA3G)12I4bYy5j!KmBG$(}HRq9Tsr-6)JZuM0W1pcez3UR!X%tdPP z!2~MZs>Aa7x}vzfe05Ybep-HGo9%BUc+mcvca#Q?KEpj; zDi57{%a~z!P$#`%0Wy)4mjf3oo1*F>RMnBlu>9Sp3zroj%xlU=qs_<8&l$0cxAaPV zsUbGXfVGI3C_Ls+70-l=TR@#0xs87ej{29>( zpSHz`vC)t^4%22EQ;3hjqEKPb++*7jVy$!-rW$YjP<#*62?^v@*nGK`5W@I*Jw5yKSk$( zWiHP6x2-I%ySsqiWJvJH2L~s~OxPemz(tZ4nJK}z1THtEoQ%-lohD+9-6xk1SN>@f z#`XX*?;EIei;7$dVbvI{$2k0U(~&w zlac+un$-P6`g4BD=RctU0CbfB0I>XjR{mpAr)%W;A436VHrBfTywA+&A05Dzwuj<| z2>g!@Ag?_QzbP8(Y{QB%0koy4h_CO=fCDEg7PjEGWHnL9Ec8y72kn-mtR}iZ0>q!3 zzkjd2J6bxP7e(>ZPxJzZmygyGsALr$<&)p=sN<<}ipbtibBHBsc<%|egliraA0Ft! zv@7--Z&h$*xRK4G3?r*qNr|#Z&tusp{L90Ng z8$k|(ZD&W%YHIc)S~qr(e0WX^8zr5t^-ZQHPKA4LY4lB&!W~ zx&kx7TiKLf44H(mm(+BKe$4A0uAV$pkVmmK=Dx0p7c1U?*q`?s{mpF1K{b8VJMrhM|a9Q#6lVjwAn4ccNm@F@DFowUmbh@NA zH1A)PgmP7s8oV?ya5%CY*pC!A+diCj zZ%d?zW^zg;3Q&TKW0pqtLC}p~G46m`cfaULF3xWNpG+FB_s>{;zY3q27;YrI(w3mK z-U3QE3HM)*&*Mh$SqIIEA3Jb(>H8~?qy167x;GUJniqch)#OkuLHKJ?!CI;hVo`zf zto-24<-SWuvnVs3|HzY{^+DF}uRv~|HaqHC?V?LjtWnOV+1U3Z-17Qi2{UVFm+Zpu=j7}6)9C~7RVu<8A2;klKf{vs z+dtcP-%}uof2I{mSFT$+tro>;=utFxJKhI}EaAyYC@zB-37-JNf zT6Yqpx8cylV9hq;_b``7>C$OIKCCT;-R;`RZ$;;JNIzMQe9kUAn)_vVv?Zq11+eECoqL>%DYcUO>^N6+7psX!e&` z4Z*+4LYrJz9gPWGlIyhCG+Dzi_KaSY&8w#5TpPy^Ux`T6%qVcGmt#1C^o+x?u|@A1 zI4I8)R$Q)?=r6M}&LB>=Wn5yD`H`iD=}|F77VEimjd@yf>3sCs&pkK~O_we6*f*P1us(e$R@-qX4^tyyEElMbCb zDq1(=hKkSJ@I3>;Gmr2gb1bGfBNSHx9(3+gl=q1iC5Y0*4)x-t=BiHDV^;if3IPJz z$9^ml&JvJLA%Wp<(L3@N%*OFZh($xca*DMKDHIAh>EW3<>buhhCnBs-@FXlOF@k=U zNaNp>Cx(6FbDkYVkURDas}_B79l@}IDS}J`=M4+jbPfoNXQ^R=7LVP zQL?91Qyb?8-<-R~!rz`vs!0hYxy)oN+4HLu6K@@#$}Jng5LgpwZInIq>qm+o;HDF< zEbpuWb~$Kb6;k)!4G~kUxV40mA>sy`s|YeP7i&~cSMnD*K)E^d|m#qB0VJ`C>VO}&<_Q#Tub-*?GUGdFiF8dLK zIm9V$l@A5lHM1WB+fCja=xV?z5eWsWA&!}m;lXZXwO?Tpv2h>ZWY!!YWuTcWRDkzU zAy9J&_XW$CSGc7v)zbX^n0R*uYsO11l`fi<=A}Oj%lrfoCgXu*a^(rg1bi4NbdE zmmaUUeE887UTE~Y)U*<{cl1;mO4*LeOrMnpxC)&EBZ>u#(7hU0sBcKteabbrBV8Yd zmPge9r!0hdfu$w~^*fILn*HU&UfnfS3W*^q&qBk2Pk$h_DoTZbPmfx>1J^fvUSK>Ik@A^Cn4?nb`NafHi z5RJ^UEB9*M9HPFw{GIwF@m*0oe^|aknCaU7gz5YJq2tf3w_{=1i|Hcs6r0sFI#niw z#>})xm37%eW&9^qWMTtmh_~Se_)njE7!*-Ey;TpN=sM9a@TY>l?J5%G9Gqs8u7reI^jcB#a+x-sMEiR*m%5)2b~&3g$`yYtb4=`RzgZffIrr z)QyLQorYvC4m%z^n`=}3yt2Iwk+>IS*|A)+9d0IA))0|4-$61N$2U0fYQ*Tm{N6(#%o(`vN8stqaLt zHIbtBw`_zsuSMihoZA&230OqeACf^HY9hHm`fXN;&j&y{@eea%w>&QmA4Lo|IhSEM zmz(T5$_4D~IwbCx`UvIS!)KX;Ar_aW>w{f!D2(&Hk*LP+!+Ma>y*+|XKyR%#qxDPO z+*mNM$+|>pQm+}xG@R=5O{z~h>CtX-K zU=r|49-X&V8mRdFh&W}nfy4wY@$mdSZ+f2My4znBo4TDme-UN&u%6+voDtoyKj?sG zswC!;2B;9+=U@PC=(Fa6Hd}A&h0UM%Q&EoR<%Y}UXCLhGEEfKy>`JeB<~Qq-lS;-< zb|fEv-}!-d<-2n`Io@aS|F$)AGfLX+bo9e_2$q4_{VAwq?34g>I4OFZi#*3vM`Dba z|B`RCPMy_FC)F^bHg-Lg5;}z)_iMAJoVv5q?NRZz$nGz%7KmP!dDZV5=Rh>sP0~$t z?Fp>_$u|SSts)1fn&i9hn2G`Yyu98u$Z&o++a6Ymg4gj5RS3*8u3@;FPj2PjL5+KO-9f3a+R?hpaJPz$rp6(k4D0hz>Z6i<}h?6AbaTykCxDs9Up+h%_xV= z<2YvKZPz!NQqAO9Y=`e^a=2mJEElZjADAL%Z;4asE>8XT?J9adj_Ns)VVv2tU-pEn zH$FZOlX!x<&*zReX6Q1=7r7l?%`j_*l`PrrL~c+^em_h`q|!L(J|Pdf?}X?Z|EIZ~k64cu`*1^A!e0!?sor6Nd!5(QBj zft~k|rw0ljJuQdCaY-3mu@sWoi#t+?`&RE#s60yY%HBa|zC#N#Sl{)H*a(zxU5kM$ zfh%u7Z0@MF{$Ag5LpX}o_zo?eDOGV3Dqh4K%3A6s8)7722kL}m{BPkAe-q>;d=u!Z zV=^mYam57gCVg*Y1kfSHra3ZTJT(PqMVqoC1YcK9n4}LWaY83GQPMv^7$x>XNm}%t zZ@VvuK47(O+yw~Rw}Qxt#uZ1SpJ77#pyGLK2ERe~C+^M<2m{Ur8N-yGXw~!l%gUs! zs|KpEU00fwfr(KzRtgI)N2m6qY+4ZOaq%vC0tP`(r%Tt=hbiJ7+-9x1Q5>H?d7J%45E6@$p<*1(R!f+z*6mjUV)8>G zw{Ob31KMcCDIqpE_2*=A&XX4}UlH(|a1Q8~hD|XXF9FWvd`YjOea6M_ti;4D8od-s z5}L%2Vz4{8mKWvDGswsAvQ!kbckkfV>Ai$+QOin6)OMDbsL0w%@6s&BO2*t%?Ic*l z<&Ti0Khc6y?s^_nJH{x59%%>JzyDqSe~Vvx8r$+C(lTCBaLCTlvu8q-SgO2A82D*a z{eNd$SeB#w5}sGL(txs~3$Q=j-Ol&(&fozr@zklcI3#Cxc_RWY6^Ku&@?(cIo$5dW zQR+$b5B!v={uB}{t z!)#=gyK>^lgf`)A=_cZm|`cu z!4>A0r4?vLX~m&p_uiPg1ol}fAzU1lYxu|)R4U`zDQdk#KM_h+)NbMhkhBfw961yX zif?mToezI5rN0yAJm}gFMwBmHe<3K6GE)O!rkz4F>MY1Br~)H`Rp+H&fjy# z@ltwaG-1Jn-sar9pn*pGx2mH_R*C~zxwK17`a@p@T)P99xW1ENSsz-IkTt|o^Kd1K zm2H%|Azt>`rY+hk*)pvf(dHLsCk3X^ikaQ9<`-J4y@0tLw!!Fxnr^2hbXkn0W->J@ zY^06N7xc-p(AiwN(lWH35)33JXGJH!0g{<+{1xo1`0-Wgx7h2yzr=IUn5hrOnX{`$ z-f+D3Ix{eKX9Z@*W}IbRfI4WNkrZ0bNp3$R2^95VOvTz@qplc8ATAg`lk^892xKYe zI!$d3dCGCvB+kw>u2MR=7los)SUI>E6HWo(vn--4IAT?B^}6{$iJjQ|M2cauiCE1| z!}X*UK!@nv1J`K8?Zln?8Ywgk!p+ZF{@f*=S;xcLDlatMt0o?X*N?*I72`cN5NnR- z=!|z*phz7il)HUU0k6!Nndunad$?>+kYD z;M8gI%7l&`Es%R&SPLX_+#A^oqjjm{B0s-x9#z@UAHHm7$~qNDnIkMU1qP9fUl{be zJb5D?d23@U7l{-~DIFGh{$~u`0K`DIG_Ppb^H;^sNlWWpp_^xxLk1OQN|9+A#UYub zo@Ij1#~N=R7w)fbQ|EJe%5s&Lqlp1}#_EoDx46j(O5jo3v(i9n01WvBDappjZvbK+ zyr$9g{A@E9R0H290P;4T3b_ZMF`8s6^zC9{0cqfZV>V80Hj8}nmxBkh<92`Ee-46h zTuxkxQJ73TM*is!p?Dzy=^wp)tklufP8ZKomZ(U{G zVL5naKlo_b{zQ)Ks^_;|{R+nAsDd5+&><`upcYEnsxV@U33j{vd6q&vZO_hS5ln6y z)g?+%!MaE2gQqL6azz`NDSNMjx`;}xmdD+H%d&Za@muN_WpEi4Sao=A`vCS@h^ z3EjPPQ})0nsC%h1h;?QeEFx>vgO`Rnaq8WJ!uXYnJ7N#Ekk3x?;v`G2o!g z+C1^JCZsHkN{t#yg#Pp@3S3-54~KhrLU9*#5)agGa80U6v>1n4SRdnQmIegZKiBec z@%oFU{^Yvfsp!^-0Oo5{3YGUGaP;?j&@$}ppn-SDE^&4yq+SH-Pmwe zT(%G(-F85WzZ0WRBZ@fB-KIYb9u-sMP@*9RoRLHM^KKPqJK}4a_P>lpAKAJ*0O$$l z3+o58MV4pxA$sP@VJkLmQ9;YSKDNGc#73o&t#%Y#zOPb|X5JhV@j+4i>yGnVc%4|J z2zK$|&0OpX5uU5iFk)lxm3(OXD-Rioo<|lgDqWP$L@E>hu!DYL1!|0-yMB4hR>dA*1LlyQ3t7WLmB%oyqh z4K-e1-fq5r1FjjldVe?W9jlWGZK%~)t4*mgs*IekT*my~(5{5|si>=vyDso3yU!GK zK0>9g+^?ze$>lI!4X-K6Q>)x)*SQc671^-v(i}vSQ3}BZj-IdJDyTrPUw&WiHCLSE ztgdc-7u~s;V#gFl3|UecFXtOvI5VN@wW+1bY$;qyL(OiCxJsSWmKmuR+1yA?n6J0( z?Gi(pNR=@VtD+#=14jmeSCxaIQ41C~xJ8cf%3kzzdc1eE_TP;eb1Bbc83>-bun4oL ziNs%U-21Uy{Bra&{cz-%8}mLKEv429;z=%Bbo+wo_a;$M&#pCIu@mN)NSonGk=dj= zb)zs}Lvnd&0ofneuERL*TGp1y;X0IiK3L=_YmfNl1-abHUb5YqM|k}^-3*z<#Ig!C z>Y;dRk}7>ZvZ{r>R0+h+h)Z*yj~TC-rRFlMqeX(V#YpRQH^tnztnwHCfuydhrOK?} zsIMl$G-oNY_Q}g<=Jt6^8AK$u=Sr?ssoA@;ZyWaPI zDAAz)MbIx@fgmurKtS;;KtQzrpCI`^(qnv^Ut9mg%YGw91!?{5RskSk=4D`@VF2pL zDHCq7;&n`o;j|dCO2}n8Si$nrJ!WfjrHef4A)_)HWozx!g*1G$I|Cn;b`E5n$BRKvfA`wU_juAP85AYzw@YJ0*#QyP8)&?99sWpy9rI+Ne6UB1K?{$h6wI;F zcjMZJ*X{PM;kppbqsr?(5JZ7zmh7SEn~b$fK6Q{J{Yqp`(ER!u6BomG9%#!X7G;R|5G`z@)}RN})mT z4dIg#hTJ}rK?&CD+YadC>n<+tQ(wi`$HP^8ugBe<_tk2;j?TkKB<6@^N*LGmQwYf$ z)ilFCGIy*JXTAcXW}=q7f4u&_)~OxwYbNCcn&>!S|Ll;u+pX2-ae*O0`XL~1*Oqyv z@BUNoG3z*UAMXoXnjL{!jruE&02<|$vKk{ZoKgjEcn{7Z?}vN@C0AKgi~srw3x+D{ z=c@d7_!2Oeo)cCA=P3ns8g@=43EVx6H#0Y9-Y3tbq<)us>4D4*!`X_S&+9g64+AF20l z2_=gZ9ztAJrMWUc%&=#a?=cI-bz>3fjsJx0$UVG4uhA(hW|nLyb5<$%1p0tEA8hZn zj!I@RdKWzfD}ipu8}T!(Z+MF@a=&3L^~%G;V;M2-rT0d_6OZ@%_+;R2Z^2>Udv7Ox zU>BDh(JxdY8qfPBf=WP4URbj2{x{Mj^do^%T8@-DQ6woctHd8F7ACgr!3a7;@gJx73R3n2QdT#&Kbr$e^YFFk0jj7WJS(=Ni=GeET=79Um?t!3>gZ}vUdrP2_7Au?~&5aAO*@_ zQ4va7#JF}4ct75GCq^rNu*Q;q~gKm_H{ zw@nxje4p0t^EgAy&57qH!1;=R{}etKhcK=Juy2_B&{@=C2Hq^$V3K*uZK|ct7xu5koyq}%7F)n z+0&A|k!rJ|rtO~Ngc0GzCW+-hTD+1}nLx9=KI%4r$7_8P-hta3Gp;s+?}BjYdEhCg z%p;jqV=K^`|-pxA|gi-0V10yf8>D?CJ#?!kn@v#{E~-M@;{rfFL z=#Bp7{L_>|L|wq#Iz%Fq=P^scv?qEtETVm9H*5ba7o7f;vHY?VD- ze7FTO;!r$U3$>ZdxJC*BF0w*@i2gdPK6GviOxY+CD{&5#Qo#V-Jz4-6(L=<46AfyXn>VMpQzO6$VfuZbkC{X-wzS$&>!Via}2%hV&@ zr2jE1ap4J@(L4Oe?)|KD)lnF@{dV&c_>)JG+`{|p$I|g@v29B#__WSm7%Tx(A*_Ea zmO_~9Ea-#m2tz(V*C_`~_BS%N)K2P{FdWlZo%5T^m5_o{KPXvG<^+_MW3Hh%1nkP5 zEO`YIXn7mVPy{Ttdc>%^TPIm%b8t4`v8C)AAZO~ zy~dMUo~%v@aN7iql{m8TGDp4(nc&hJWlblGxD%-eO$3ZC@s`Z3VXG%Mh`#=S2X0XG z5ukx@QYh@mPG1!bge59(`T#3g;mHr{LW{N(piC;FbcC(J!^1R#aH=pszqGmlyKwld z;d(@Sfi6+~s#by_ii6;qDc=(l%LjV?bIcj4aJ?cefi~8LRx!jBidqCx;H|~b#230u znx;ALSwQy=8}HSVe|K6Hw3zguS0jQv5{PjFD^-Joxq%O)ep5>Y+-`?K^O#5R=hc_2 z>2^h}DJp$eCsbNpXmG|t&Dkq!ujM@fNk*zw(Z@XcRQYg|9pQB{nl7Sn!`!MNeyBv{ zHmzsJc6QU|pxrmoZxJlf;2(@+WBZh2U=f~5S=t;!#B&PIXmSz2zn|a{hBT=?J@(o0 z&+W8c_V2}r3N^orh0nY7H(c(W;dlS2QDY>*uDh*=7A{B!DUrbO);pW#=DR!ar3vt} z6!E$S&~qd&djR=hAP~MG&)XDlc@|X+$UTW_7|uI7)rX%G>qQH z#iDRU+{InKnplNmtrQz5t*zzf#84G)*i6+)0N0%8lsS$UAN^($? zGkuVn-D78=RxVQh4^)~Iw6y*NAQ}HYdZo}+T@;If{?6-CgAaVC-;qj<1wNuL`X zm6(?19D)y?5pcWK{7h1%A&)4SJPKqgJCarD;PNZ%}CusfdS;RMLB%U!{OvF3mmrA3kVob=_z<=3C;g3u@k2>y3IYua53+mP-8+P+2c&I*)&^3IbJ)a@n%q(-EPtJyr+CEqagJTILO z!ev>69PPC3BBVmisVx{b)ey2nAPl;==2Hlq+b+wea>l@7+OE9qlBjWr14Qc3{g{iV z6s2u+5INRy@#6R3rzvhj`P#Uvh!REmOrlJu^E4#x!Tib}q0Hi}C{R}gIf#a^@Ki+e z)`afqBk~W3vg#3F*dt~rw>TNDlT`Ak>h+bsXx2!}Zqq2XgW*Qx3$kXnacIcV!Dy6D zi8YpZMqpuQtU!1)BqO)yDQHy<`UG`6eOU*?2y269mgA~gtMQj+%@bHt)7$0jdSI^4 z?1pFh4UzLlCOqLn>lO=H!gM)Nw(h6QN0;@lG(W^2==hyddY%#<+ILOf8}gXT3z8802{u;-h@9^X2+-#l}Qbxl(%rRDZwYR;tAv-BPj85c_IpD z89EQ-sgpYJfhowFASA1F{@(Gxrc5ax702!(hf=<%*+N67&ZH^{Xx6UYV^OR}e7w;B zYSh{7#M?~)wRZp~mvrii3Q7Y(F21y(nZJJy%@~`^c4##{s-IWCAkrz7?5vWbnSxbc ztQ2zHG0u~$UVOz7_h^y#aJ|u?9W=YkT_zx7W_WN8&6Fjzzs5G*KPUFMEWmCLavVIM zDYq6@AN*qJ0Y<`tk!Q3-R>m#aNuw3Zm@~=PIWo)N0^JX5O+x3}`~j zWC&H01v7N~2g6#^;|j%dS2~bRLo^=enW$GQ_VH{v72AcM%XM%Mnc!~$YgO4o27LP4 zjS1JM-D@>+RF3V4v3XoV3?v1-$t z8{8499XiKzd0OdpO$-h|J5!yu++FoF+Bjkpn&qUt3X+gaF?fvT;2xZI;o4E63vf}2UPuN@6`+@e90o!t@}_v_JbunLEsE>AsOK|i z%445G4r^sQ$^klc>m*8SY7gQ@gVwVyNrho0n@Y*NZkL5>EdSg)n14N%1~qor>s#Re zn(Eu2H3`6U&g+3rWK7&vok-pr5vPIiu(!saK?jpNZ;Sk3w`|vx+K5p@UAM1wT~cS^ zp!R{kt4ZM1Y2D@|<=oMkfNb>XQA#!>=|g8X>QL`PcBmhAGw}t90Rdp&eiMS>@{|61<`7k?6Q?D_nPDJx;lRZ&eO!#@I2hK!U)McP*lAM zQM}1<67O`#gG^X<$RWbgvlCsu3VWL~eA zP!IEw%URV5p$1$0Zi`=Ks0Vm{(IG0Jio?Z3+U=GG&a5{-Y)g_2Tvg5-e9@s?vSP6k zjFO=vKu52<*dB$CDYuXMjydZ4o7_5lO1?;uq z?YlvvxGMj9BcR_Xxl5*+O>mZ~U$fg*Za(pbYEm(V(uKKAx8)K~rEkFk?T(I(8^M-A zFTn)5oumN8qF*B(Ze1ADb9>(Tus`Tm=wlqDJn>Pq68Jvi7u zai+E;2hKqCH{wZ4^A*wePjR&ag_Aoqis6eZZEkf=H8apjzI$N(6bWOOAQ`#yJwsz3 zUk5$C5{KLs{&FO?<){<;RqXf|2wIn`s&@zRzG!qDbu+&;&YcsFcAUEZlYXo z{7^!0Z3Mit)2i`>gwKV26$3FOViWLf;UXX)#(}m&h31gp_qS%KnF?l>Zzjl*0hbj+ zOSO;sXrw3c%G|)AqAAX4MpI6cFx>PhV4&DJFU8A6wAFSPz9?7mpa%}SO_1+hjR&~` zIrVX1wXLXRmwZiZu0qS(U8`-r-^ndTXdbC|Pk z&atc?uA|6;T6U;>#^NLKZdYiHjZHV&c?5Rygm!Paqaq|~n}GtuYTF2@Tc0m%<)ui# z9Jc?H6$!^Fd{4DSBUO2J3ET)wiKxl$MD1nzCZHUR>dIQDi1cFSfR|?fW|!^WXNTmT z#51(HAJ*>XJR2nQo_xvHk8 zLr;@}q3pHE;9SnIlf+CC zk4<^BeR6mO?#mxr)7zcHZ2Bjlm$*<`l1-1_V{=qZnRn@)0u5DUc{~*ui8lN2YA!JL3aZp3~7? z%6Na*47ji^*k}CUpN3dbXAJV5yy{>m*+V6$ARG)aGp@JXpxM|5Ko%>G<7c|sZzrfI zup~r`Gu4f7P-7rV<G1p4E5*NCm|B@W1#^@xewv9$36Qn|=GG)qz~uN*->%t6xo# z%Mjeh)<@9|C?LsFkM4ZN)S7adGMU@Rg3C_meIAFr|; zMqC|(mwG@r#2N4CQZ5TtPQ{&4Sc|LJ+-) z9A?~UbfW?hL@(4!-CG$`QqQy8i3R4h7=$TC3uUIhcxVNB2 z7pLJ(@KU9BbfJe$$t6nj>Jh@CE!72m+)}i(_>0mPcHCGWoDhBn77TDfxV8D{EH|zH zBFsAOt&LAC(0_b_nn?G4d3ECZRv%ev z!Ft&-cX3J61pc%pp&8-_YNW_P&kHMF7%$hv_H9J7`i&F|Z)QA6JG1niK*GXcw88{Z zX$)+LnrA+9!*35uq?i{;jyi@>6dnF-6P?}sScmL|bKGFRy}%F1enet^R2r?krPvdy z7*y7QAu+9UG?(t3M%SA{^;?i5fV|rMO1Rv7$`S8tn33D=$ioxT5vFq)X!MHV(*^>a z7=d|z6h}NfB*dtYaqXhawp=u_f{#V4@NKuB8yIIo-+3(oZV{>gIcoz18sd!@h6r6k3D=q z$=$CX;i%KsQFzYD)xgfz=}I`8ta@keBxdmjT24#zc5YMEG}Ai&cz}GrXx+Qw+88`p z>)R8V1EL_%C_$r*1MA|WDY4bF6!tDjZ{Fi|W)w!~w|HK->d^OjD{-;d7ppzozM26~gH6V;h&^7Pw=Xz) z+ziQ$Z$9Wt8@W>JDQEq}d970=D(Jmb33f1~HrbRfTlpk5$bQkjdfv^p40%XnNo>Ps zMu@~zC$X{KY4m=W2SqiXt_i@q~2NckMS8C2}MvDhhg=s-iRe(6>chpW#KTA{6;s?+N%F$2A1+2!5eq$$&w9}^mCz} zMILP=-m8^{7Tf7Bx^&4oJs8at3l#O)BerXiHyx&wHJfCJBOkzH#eVJr#FwY<%I*8y zX9onsj@CcA^hN?}U$h01u|Yx$DQyvLiUp3m+(SZj!r5AeXGIu z`MJaM=~Uz>&<;m=*Ix1caO=hkD>2|eT_uqcL-O78;LE8mif5T2Y6P)7SRJrv%ufU1 z)zHFbpzCpmb_#4-PAUcz7V0r##C!~izg_q1E zO9FE*U@V6vf&B*RoJm5vcmX3~kH;J+%O^zHTTZDX4Efpmn=#Yzl1_k)Q{Qt-i%ph#kqVw*ZJ#&q%*3#KjW6`6wCI;w2&AW0QG!} zvxMjROXK`<^doqZ1#p>A?_eiNWfGcFR9Ry%X_SrvFQSz;Km;Jyao0R~YD-Yfw;mGH--fGO|sf%*E9F(OGW^jR!nQCKe zSAmMTfNCe1ukVQQ>{@qtDUlMaR)CY|2I8ySz^#u9CN8e;=4o!$A4YyQ&kz4G4n5~| z&a!=+R~(}4{RMKY&|K8@|>o@ZWPQh@W}2a1xu z7y8DZKVTCVK+ixXv=zFGG6yrhaSK zq+oWFWkPJSL7$(r3FehE4lTSy4#}o5T*+xlHwk%(vtE)KA(bej9u=;0=O!|BR)dPP zPN$SjD>0q>jTT*5cs#f;ELSmUj#_T5Bcu!4hztzznJ%1@+13zD`g$CA{MTWHj=Da!D?(V1p&Amk64v=_ z)K}EQ{y7A5V=Qp>6uUT>vw?{L4O@Oa^PoA;q2S1|runZ}E-^g|Rt=%6%#r)#RY!vSe>}6n+ygaAXnon<+WBAK@jRp)zd7YKETBeXtAmz)oIeA z$&S7;s#FUK;|y;ngnV}ik~@T7SU$f1r+F`N@?HY&@xj+G+e<>X+f58~VY737rw)U+ zP1cNu2K7cD@;uJS0}ju;QDvs_9pB%63)WSpG;Kt4rg#!XnkU?3P%4V;!rvpOR+wJk zhz+UEO4bocS5T@cmO4%sE%Y~fTSq0VD2X&MhS`#!Ll`PE4sJqm@7lsTPZ_Qii$zEo ztKt^e$Fx?54-ZWa6(EupCfr~n#U8+OSqf1o3Kl1lludq5J~ONr86fK9GcS2bbJfVZSnF z8g&pgr|hVukSb;0;JE`E^j@-=m_^lE3iz^x9O`$#Z}GDbLuAo5JZboqYybMUd^oCn zX)dN0JuwM}sJpyWHd(~(sCi+v8MqxsKW@^p8UYB_b;O(hJ_6_#I(~&vX*Y(2{(=eD z=O;m92OYS@-kXjk3t3gR!}D$w29Op5Em^kmC=88dDin-MfWnB1C^(%O$`2$4W*lFm zN+_wgXy)*9k@1t_U5gOo@zbJg#DG@!i-si~Eh@nD{CWFro{TaXHhImYFDjOd0q>M+4 z7DB~F$9786qynm2CLM6W)U!&&v~k2J+=hwGnuoF=+v@=2tT=KnAHK&ai?_;g0kSoD z{k?vH_@3vnxdb=2!3&ROfmfGWFGPNjf5{xZ(8~Y9yuEvs44PHyj2t7B8RFx8&mdUAA>&pE_gFMn@UzitnaQCH4jy38d{tW>w95=K0HK~@+IK8_2a*k%OV6_Y6J1h0 znyzicL*%t!nz!9}b=8uZU>KSWS<|ZhxJa@Ek74zRiGOe=$4lAFUaN^GrCh}iqw-tr z*bs(SzW8LvK6~C^s>(bTP;+YF=0B6&JdaZ&cMPjWZ+d0+W?R@rk~gSJH}2U8N&~bwy0^Vl#ABbBTy&?KOvW z<$r`4OjA;EC7>7W^_=5_85zAYFw&nqQwlH=gzQ@zoUhYyH!k1h`~U@V+B(ymx2AZj9W=>NO!H_xC|WK zXD}-$V6rol(+-9R6B=@qWHyzC_~TW#FclKu~6Vna(K+Ha20^*pf>A9j^g?hQigQHNCc@o-8}n zhT98$V##62W9=o7f(ti&<%jO%y~7VB93)Z~3R-y77M)=6OIzwx{Q0lgZGwtwIO=@0 z4l$m86-iT4wskDqrH;L~m|LuId2@r}vF8bxl2!AcRdPzC*c34q+Z1c%;b(Pe!P6iw z`=IV-(F?7jG!RwQZ_4!(DFATlUJpXGu;_9UMP=cXZD7bxxgxRNm62~r4BE77THHnM zbJqzd6gqZ}T2^`YeS3ZxrBc3+zsr5~*1zb@s}a#3^7aMcvj^7yX5jC~?MvVvw|M|# znI(J5Vi|9|9K5Qn554W73OyjS6w5~i{vR`3C3;z@ZK+`nK zSv{Y(;qoeB1}nN;I}hTdL()#bhBDo8Jfkq4hs~#4Tlu~#_msk4@;NGj(|vYrTkdu6 zppME0lR|T3rOcJQx=`{5sjfuyV>@sZn(1LBK}3?1?_=P>NlDTD0fP6P30#nFTN;RUt<5$4xlp-tLO(hCG9 z;z)PT9j=){CsjbbSgv)h7Xwy*{Ih8DVJ=linu_~q+j-&U8_#Pe^wbQk&+^PfcvE;R z{ZEQN+kOE|Ta_pqEo4m;%4e#uK2}fT_zG-9Grq*J*0sakaq%3Mpw6s{h-X3T5D10M zaA!6C&be)#b4s==tplRC`Br&4Iu)zTs5>!Oye14xaZl8)OzHG!4H~q0G5XjedOxY6 z&S(+|lLFB1zJR<>k@!DIL>ZyLcvD6Z>Vd+l$24W0I?41g_f-6hvtk9e2t?K8<5Bwh zPY+DbUboLJ$8I?tW<;|@hZ%FFWljACGwQ9RU5I!*;qQtysA+m?>B~ZH;kN0xX;m3Q zUYOg3Y-I8)%;10$4X_oa2*t({YaOlDgrFh~gQ!gkF*)Z?gitw*j-+-WWKO~dxxuxo zj`r68i)#E^)%ovyNIuWD7}Zw$%K(d5Jz;P6`Mi*BuQi~GRRV&#=J?00GG-i`OK)~u zVLeN^M|yD~^$!H}99;m!crqjK2}E?%(Gav^rmB9gvt9&@63Q5pQt$VqH-o z*)KIb@6=c93>Y+}oKl;|!7nOW zxnMZU01tKd5ZG?WnT~{~XC#9qDLa$bRbFJGZ>(2!n+F zwH8yI29|w)yXy+RIJ6CfYGeSpTML@X*_e{59G>~4?&s?0#9bY3KNlVATEG2Ygq>4& zW&yXQgNkk2wo$QdR&3k0ZQHi<#Shd!AV;i6GcA-m(k96$^~u#t|S{6Jgq_8q@sm`Q)~cnpGz&w}R8y&&59 z8QTFc^km85%i9Pk2!h2?KI^YHvRS*zGKahc!nuT3?j-P9x=}J4q0$(;ZKtDdjIo79 z`#KbEjKLEJfTN-{ke2LF-L-;=w;DvHwfSzkB_7W`m~#h`LQUVbe_(CEPs_68l8?U| z6G~m?K6bG$U!ONLFwJQM<^A22mVRj{StGYDW1qvZx&ZXBJ^^J_vPHG1;h-68=o{^J zq>c0rVq3LAZ)6hu3Zn;!9%q#GL(ka1Wx}Su?>qDrInIV5($@WDe7{ehot9YUcHXM8 z5pfI?QE^O%kwe~wV^P(DA26qqJ@YkE#~{HfN0Lc=-Dwa(faUCPt+gzN=B(epkY3o( zrfRF$bDb*wYi=WY93+Nm8kT)3Ak*JFOr3r2Vu6%;HCgh}-O$(`#j%7Dib2;rR-$+uywGvNc4eFPr7W}tA*p_LqF zXU$1ziA>JXXw|NeA|j%gFKQSf;xm(E1W*xX30J_K3RbR+45&Z_DN{y)WT_M*fimv47b|Wr8e0=(ru&I_XRM?;szxpMU2p0l zZf(yl*Z(;E`w5b^$xo$csWTeHZ{i22LjfTsEuU!sRTsSBv4si~gjrHdLbx+qmn} z^uUiuPpb1gJ;cZvCyn|=>h@?~YiGqIDAQJ9Q%>064<0qj4$`>pnCH9Ta$z4-%HhR~ zdBWqzsPrs~Vq0z}iIv;ys4q$|AR+F3bOP829m(zfk%}iZO7U z$RM9OUJw)nLig}ywE;@_F4K85S8)nkX3lvjCG)E&O5CM#gq3g)zdiV+VssCtwzgny zSNI9QQf&6@Rg!L`UE~L8dL&%7S){FSg@tmLeuo_$r9*246;Nx*rfQe7ODv-(v&~{T ztf0*xvo|l}kU?_dBm*1HCJPSqMY5(SD#7O2!L14j)-C~{EAP!yiWI~DVvfI2*l@;@ z>%~16M;cLUeiu(nx(|rs$V=#P6mD8SZ#G=~6{_n%u^Dn`)0K{Pop~SVaCtwuoJ8N@K0Qq5=?`!3SE))SCcd3z&2o0|jQ&Ef5Crg8&gFTEgS9I*9S;f2NF z{{FhXT)awAHY+DLw%%d24w#7qdF+L|`V;qh6!p+#wwpNXYgzf$+uc$octT%ytJcv? zC)Z^6p&*C#Et*66jTGv=!-M5K8!?KNBcP`vd+uCeXw*0~O8u1QbJ&2N?9uP93y0-o zBcn3caRzx%3ZRR?HJ+NZVVU9BoPYz}R56XOP)cMyCwcj=R`5%en4be6%x@s6dU%2Xe_mwKt(EC z=Ppe|7XpdQrBV|NCnjBr3CK8q=t#ocPR-J8xHrL3H@TJtnKB#%sEKr zEXuMg!cz{=5RSJ%8I=%LU_&dotF&?9o%dF)gwY#eYH9-W!6k|2=MPNfxy}uuX8Dzc z3o5!8y_}LEbX5EzYX`J5C$>{G!My&=r~S#&w9vNGAf--xy;@mmr+gfG9P|RNU*EC$ zd@`-`L07po3)HQ=s&sqDJM(i_$Qf3G%y}KqcNWC-r{uyt=z_G^E^;m>iH3(VAiZS+ zI$z<&<&{wnIYP7!b&iPR8U4IPq6TMMah{}HM2QuN+0%?hS-%689d#;EFtq00gu0-s z#N`uHAh(Mt^*VCF>m1c)*Pzz2p&nQNeRNY$yEu}&Y+#>o9HewH!#=dcVO29$Z{VTB zk`h5Fk<2hXkw@fw-;0AT19KMJ$-1&NapEG#2cwG3d{-7MgF%@fEN=Y_Y`xR;-;}wp z+BFK!FhhP=PmpF@YgB!N>SYvM>!sw<~5uqNo?cD z^nI&W(Ieclqunp{VH=~IORdgIWRqQs-VCdKb@;Ao0?UdAg%F3^l|ZVacIfm?JnHyu zK}%cPwh95Te-@yp&#iEkq^o^vJ7|qY3_6ONDFpBW8q(;IfHX%X*wA~$Uugt^LBMfx ztVRlHsDYrph%^7-|8USk+hP^db&x>{MMhOcHddQj4OE%t=XW|PvTtv-f-QKQ6%{BG zSl_otVIn%Y4pB+aE>VvJCD(!R?P@@%g=<;r^Oc7(0JBRZrP4!m=Y#+xnCrZA!vCrH z63CO00Fe{4y{Bw?w?Bc0ioQf$d))2Q@|42Jo1bSqGt~qFeN#a6O7q#>illFV@NA!F zv0nb89I3;yCmxoFt&NHK&hX(Dn9MN?BYVgdsrf!Bu_ri-0h2yTQS z$ieZ7H|hVgpkTbvtWS1#xArPA0m{5ENS$A^spZjd9Qdio*BM#l>_JE9Sba>Fe z>wcw}cG>=wMz>KR626Gthy2~4dh4YQ2-5X$VIJHNq9eLD618K(BN5X~3M9Ml47RPShnuB(nB_mo zuA-;i9W=d!G+Ga38I|z1FDstasypeCP1{H#iJd(xQ%aqr3Iu<<8OTGp`h+Bb$@O;4 z#&Yb7hze@7QD1vdzF^z^-iT>es5I*?QtdIMk!dsFTYq<*gGDNbZpy3iu9eokOf4M` z!_3a^0Tmr{{Y=|YBkqlItxgkY=9E2X8F>utN?{OedlAe_vK${yZdxBY6Z+o1F=+4ccwueT>lkp`>b{t}yYCw* zr$6=D$eWM~^h{pAN_d^{{r6@EEqFiO=g7B(LTaKYAcnPh7IO+E<-WR}Scq zQ*Irt`8g|8VeR^jTx{h+oj2(+TGp5yVur^~`bqj)^4H8DMQ$fX794PR;wh)zEJxv5 zOGbQ?EWrU$G1&>2)XcvDvRVcXHVv#^2d~)m)xtENmJ#bFS8UL20p%|Nr04L%-)L8d z_O9zbe|LsoKScX|V`#QLkYeS~RL`9c5_^CdwQa2Cf$io# zLFi?>eE{+|34YDa$ZPr1HJEYO%-214b>D}I_@f7ZxDb~$StNUnQyfA{WiQ;yK?E9< z%`-makGHdgfs~;DTPr`KZus^FpICg8ddFfDEbYCr=Sy0MF+fR&tbN<9zSe>g;+${=V49y0(UqI1w&CmH>V`z@z%6+?S|eQsPq;e3`aB7&W6z26CjY->{La9fnS*s2w0sZ@2q5E;bw9 zzuz7sn}3Fybw`@{QYQ>-V-{ zLaN8&dg$8QRl?{y_ml3>7AIH8Jb6|d4 zX%XoJv}+*^kk-~)Vk>dNnc?RO2&4vl-UO5~_Px`ZMrx(VWv%4J2S$$j%QW4YVs{Mn z?G)dfbP`SfJV0O3amM-fv18{tQ(AF@+qwSWx)?y>NYyNXd0N+qyoMQkf~f!Udrvkc zSKq2zC1bNNf7{$>xMGI|y!?YksYxbwQKaDvQKl+TF+@pjJ@8jh$*+%Fs1`|ZZ8_L= z`&?*mePERB1bYIqTx?*$pN&2>h&#Uakf#z=6M%`HfpFd*otc945#WBULMrDFWc*|I zJ9nk3F4~0Raq1CTK>M~UX6xDjny~t+rP+r99y)ztxs@0$-Fjrsol)&YH?JAX zMr~%L>y_*@&c0cMyo@VkubZ#>TS>A|so<7Z5^#%TH3~>W0)$|4Zn#7{sSZa;TVUpt z`}o3W;h{sAHZgn)1eE2J*lJvqdgRy@%VR`Yj~hoVYNVfcN%!b5Jl(5Kf>gZ!ZHw6D z;^gLhwBUkz6&e*LAcp<-%<44}2>k)5-^fw(`k#W#H3|>|P2LDsb8yrw zW1y9olBsW3vxn_Ah9-{a9XhC2^9$LRFy0&`>5yAXL2a|?j(iSP|@v zCXr$zDLBMA^J4UvGoHigOFZbs-P&rQeLR>sBEyFwVdW-Jc5~a~&|&3;AxU};DoR|! z2dBZ(p*mSuP0Rq%VIlK@};xZ#VSE^``RifE!;>>{=k}B|0$U!Vdh}fi{O1 zKU5?-SCXvfq&AL!PdIj>o39Byl5|H0&4MnYkrRoCVm^XuCN`+^lS_PsE=PW*IGm_f zWp-o{4T@4n$-t`f7k8Pf{SpxJ1Ke6sAdKXeRph2FjLqBoidXgSXP=GN?F8tqIsIN+ zB7!oex>Q7`Xq(PG;QsL{5v9M1KYLtA1Ikrcvw;ooHT0g#KJuD=M2N!m}jSnEQ$w=T4(qb2^W^ej%Z!S5j9)T7o=29)EcOw?k%j+Svbk zc?@uz#}hSs#yP4@uUrSc)B`EA7b5kdvKbVPA3~2klJH8ztkZIW{d?rn9|%0x3nROY z8UZ!(xS*|6RMAeWbT%1dQfY;(3qi$(k!Ulce4|S%=8nw zO!yo4Ke?Qv&=(yx5`QvF5Fj7|SRf#}|KZf#+{D1z+5Er7ah6jR&r zsB6}CU>^xWbKJ^K!TfnRmW`EhxK13awjc(KEB+F(>dm`x`gvIB~{q-2>VF%K)^| z+};sBLW*Uio3|xNQo3EBDzY+!I+O|~){lAU#s@IUYYk|CqH)889HSoV^3FO9?+10L z$7S!z*={ES6lbaAP2}h$31kcYT1cTRR1KO#FE$|88QL_I6UH2g<$Tf0nPA-A z8a@wF0AuF7tbvWdvijzd7eXabl;fYRj9;ZEGod{#GT@yVALkGE`C`;+K?4j|zA&Q0 zCnANNRxU_iK0#JJ^<;}M;Ivo%6tI~H25*#(kmW(?`9*YHnOF2Jqs5fS$a4~?JXj7| z6=Y%ck-C5m1X`{b+F`c=jc-odARStz$<;xvPH~er0H~I{?#rSq>{0R1U*_LuY&cF?IM?c~Zh?lTs>sLC4B^YwD!# zMx4S(&Mz~0B#SXcbhvd;WW#3KWKNc_S=w;d&(h3pZ70*~3QNtzW1!rjYlP!;5q7ov z(7{5Fu_G{x?|r_jGf13qduX*F-;b(P$Rw9k0oM*_R{dh%tF(@3)ypX7w8D{wU`~$|KK#$(+ z&<*exT$!gGT(9P>n5F%9H>EL@X`&PIJiuIW10*p#-k6`~VFgMonw_EKPz^X<81A;3 zo)NtlNF#6`N&Qf^xo6&nxmd4y=-*$#=1$)w!4btd^+bkO)n33nrB6lL1y=u{f}`Sa z6ur!IfPnhK(9odounyS%op!Kw=_?c%zzRvi2smVfG$b26H_HfVq8;x9TGoN8-^+u= zh@$-i8qDBMVV`EL7GD;9CVMA}slA=+b{I0OejNN}Xo4J_>lNZx@tD!BO2XFN=${J) zKJbUo(|k-zoi^=&+*xCt5~k{p5rJed+dAmxTlh=&vynQ=`##_ z{MN3VrQ3TfFd@*@JMWA+FS-s7)&Dj9a8r)uDGv9~)L)$4KZCsPl`?|t8u}>fpMu98 zg+mCrLM8ihQY%RVlJT{Ka3sYUqYn%x#FJteAvF;Cfe=nP>EpM=AFl@JAOfJAkVAN} zlmjA`h3L#&an|Y_d*DuEhTUvP$y#h=L^caPjrkE^#$`hk`CMl&Y>P^9Z)4F?h#C?? zvD-5~Dn!M0ZT7$!da^r7T~=oXqt-xg+jnplaE>`0+r}()j!;MH91^*Gx5RM8p|Dgi zB8fo8?Dx=LTlG0B&nS0_nkMW+B)G6~HUH#uQq7@~@XAM-gaNPh$d~GrZ}D&8n%@hY z_MRC2pcau#+KeM_@&4(_jU+V;Yloe6&EH0cQ_BF>pKmq#;8Gs zY}0h>7UxGjCaNDGkIl0}fJ4F?) zlKALjQyVAHER1wXB6Bq9^HHIoL61k?CYi-58%s-(mDO*(>z2yU=anevaugr^viQbf zKC$E&8zB*Nj^E3+U2lpvRu>hD;-CnU{QmeVw|VaV_Xo%KS!df)9{ljjTxbq+MNBLe zmbv17BhvVLEJ?$zYp;~yO6zVj_>GgiUX$9Qh*jGA=VIO);MsXrR2$ z;jFo*W03CAWSr-DX*WGWO5)shtfMSuO1_&V zv|B!2!XGc=6zh%12q7j49Q*b65klK?xm~AX-3-m#t>LYMSYWbk7H{U@8w^F)^YgRU#?Gvm1bFgtp+OBiT<_1# zH}J7D?=Re}OUA&LMTr>UhJlpiL{%9_QLM6!AQ0xABEw`Wxta5`7(7ZTm2!w2Faz!F z&Ish9smON>s8L6 zzm&*w_}7j5?Qgy6k1T!bAlY@Bjn@ShY&3WNWs^`L1hg8bsV=S0z|<}RPfoZ>cbW&V zLq~>~4VW?!=aJZ*&q=8u)yZVurhO`O(nt%!u0j@0<@#$wY!0uO=FDO~$_2Ks6iM8E zwsuACcloB?6t8`r%&`H2walOI(B}!zUu0c5SLjpEKCG zBH<Ahhb zy8aXi6f7HXL-NPN4ADgN`{dr_?rZ~ zs$?)@^9(UL7&R^gzILDi^e%cqX~t7~o%3eQU8cGCS?xV@a9GYxZS0HMEde zz^z%8wrZZ=A4P~&HFY~l)M&40F4&OF3lq)u@kE>=TY5cvMw-;CZ3<0c8guBWrXA&DDot^qq#2_xbf?CpG}YMvpkTP(h`CGD1Z6(=;yxzEw+<*2fi% zenUse!iOB6k#EHmB6fBpz9cIx8u zw#JJeSH73vX&<)wcW!%~co`m4`M)N)OTPH3-?yZv0qTlS@k@HN-L#CNL++z70IGq8uDDis`R#(|LxHsrq`gTw-u8ho{ z2Ds?fpzPmY{m*ru6D>0M8O^u*+*BKvZHdTiZAQ-|+_bVOP?C=p$dayuA5>FHD#pi3 ze7}hq@GMI52A9c!pcsA9w;aZ9dY@VcbJNZ_%Y_xLww8s<2X!fP|E_o3C+H;TF9`iJ zHAt0aD(6&*3eNhe{Fjg~FWfkj97n0B9x3D%Me{E1={hAE22p%pX_$wlRfD`_BILC9 zv9AQPzR9Epi(-ZL(ZBCH>C@3j3utfph-n@&*4D%ndA_e=l)W5wIG3E=9{X%z7@9=D z7_%feno#5n*`voyYl_B`Es+04!6Dx;bfuCw+x9We?_1vz3;tMv*3B%BPE*AS^+*tu zJLfd|`pwr^fYa@yiCO`QbS6ILZdQTcS^#efvT#)D%vzO$Hav?azwO$b#l`3E4E6qA z1EWLv>ijoMg5rE>k~V_K&t3ObK-sZ~SZ9`|z{7HPhD`xr;*^F7UaY1(rsbI<sfp;g z=9I16aUeB9FUguNn5n8=DOi2e0NWc;jN=Y_3whq374us!{6ln9c5MR9rBpf0O|jLC zC1v=1VhM=f`a}0j7lW4hIL?&a{Bp9Ww^(F*o86+DL)mz(hVZ?Cpgd&jOKKv!703v5 z1pfyPil&{~IhK8=CN+awG{O8Hiu}tE)S?e3etr1{YAjg7S#L6@R4S9n&Vl7ZODqHs9`vcv|!`DDCa1ndj^I(e}EOf_H&@<$sH>7 zb3;kA4@zBt%W@tqnZ%j0|jz zEsPDE|NB|f6|R-jhS)7n-@!$3!%~4Ssl`TRgV|PaF)O?)@C#E$v=}D?C)D}xhb25zjx*|(bxiefnf<4ujpPI{&9Ns^lspK5MQs6cr@HSdhnWo z1EGRrsC?{Yqu_szz%lwQtLEJw4S?b?w!*(~{Tiz|3>eSB(@sXkP{UX_Om!o+5b%CG zZehOmN{s_yer)OAMs_FM3^gG>Mjiy109T&I(N+fk=GAZkx}-Rbzi=16;CgVVfI~ItQw!FRynRatG}I{o znGOk$d!VP(%RNE~@vIkmPjJ0Lkx<0G8Dj^1vgl!6t}D0TPZ{pryje>7i-823JbL&2 z0qI$4p{FbGg2CnNC9ZVpu+H=HEx3ks*^f5!Rz>+qiNJQ;+%Gq0&&a{en%Po< z%t<+=j%S}uxUJ8b88Jj&k$PAJ>Jvx7wyYy+p?eiZyYO<$87UWwt%i$KyVV zf&BEUe|QooRY1A}-Q1hA$Etek+OIbH9$!yFE2Ymoza+t7J-FK<@+7ma{|TyCEqwox zOsytpWLK=8ISp{on`Jv=4@SZkohgk>euUZU_|}4dbCDGJXGIetE0H+snh8wkjdF(nl$BFQC@Y5#0ijH{AtVg;gs>beaDF~V0#z`;53FY92di# zqk-de22}zX`D0({?i}LbE@;lDeR3*fO40H1pOLR%ZXNb7pANBohML9lqFMw3`G?X;HfvLI@{sP z!BpUTee2Qf13~8+L+#6Fmv71cWCy}>{i?f)9u4JOO%y#{xHEiAV{DIJ;8dS+;#h|& zKdfR_pGH_nCDhjpQU=|CKzxUBvAwK|S#nvt7K$SL%bHwEThsJgdc2l{c}a$4{DgVr zY@9ht)PW;sTwpQIb+YsEfF(So;&1>RdthwOpf>^e*M7)x#%UFtfE8t+_M)b<=@LC6 z>!NWpz%+>h zG&1F0_9zFBiWm7W>VpOck2QnhR*c~E+lYZ4UliH=fQNlQDwb_5jx@SPxy5}}xaKjl zVho?7AWo`^lH_*Xx38Zz@%*!4%(PbGuG+3*IsD*R!4t`j$;XkyR=h(`@VH zl8w7nB?o(H6GKZ{;?c=xl|oZMv~D)>g#VVo^WP*;Jpyh}x#=vF^^ZX@wa@IO;)dxow^5~KV0+pd^_(X&ULf|XD`3LVYZfGwuZ84m7v}MsjcfyxZQ4ATHh!h<2djcxJ$E6r4Vu)fsoez#uPjyz6rAy(SDTa|sL@lUTUh@H~ z-F|%#MXAx~oJK^V8A=m06=UoGKSNqxXByTF_fm8Rc)>`F9O@bkxts=)vUjuC-vf(3 zug7?BGGhyM<@6qM6+3aaxBKOSG(An^O*?bvm6NY(aWJ@}uqvyRqC-mflto54OWzf? z(&)g!Y3(FE8ej3rglXhx7j{_Cj1}d0?n0sr$BvNVb8|c8VjGEYp>Is7(Xpz4H-OinQ{s4}Tx?)G7bX=N+in6x4WN9$CkZAv+ho&>Xy7JX1i8d_P zI&!?^6l5B4Do$qQO`O6=_$Va?JCMtbc2$tBA({|(j2I=DDscvf8EW|XIbDgv!@n>J znud!-I81KsNsv2sbv$U8tCKTQ>hv;PhWz5!2qKgP4G#e`SXg2PcQ0wBeP@Vx4Yx&+=v|ND}~?2i-F%tN1qBUou%E8gNg7Z)4#;8X4CP?MlO0FrrK zlaL>jB6BI5_s@Ij`V7ntU8lOfDE5;eDCNo|h$HM^9~c%40sbMYY-zBf%Cx(tof)At z0snF$&LWKnGv|qm;Vz#AoyE=8wSVZSAw!@OF&>j{DUZq>21F;%@|Q6) z9VMT0LZchLJLe*~~I3;8*lt6u=qI#2J`@2z2P^E_83KU&(6##)A5#+if*I3v$^O zT^xF7OIkEg%WPEDFqY<+VE%kbNF_rsm|9Y@C;Pn;g5n>Y8WIMfI^{o@kVV1wBokp) z%L_!b2{ww1i?pt&9XJcB*G1~dkno#{kiLF7#UkGO;7acw`^@CiY`e>2Y`eg%+5DH4 zN2jcY3=kv{{h<{3Q#hg7+=o(Geh5IB_)$8S5Vv^q&Iy@!&x(U_s6h z_kKKxYa2ZZTM|Zy<+qRcO0l=@=jBKcy}4PU!(whK)bVB ztqSVps8L$GJLr6fJNZJ*+YAu!8` z2{qVl8b-yI$dRjSN-KS$txF*dI%Esl#yCf5j>WrhAoxrKJFq?J0XSgq2v_BeXm#-! zDqv0qSJ-wm%OB*vDJfLQUkCo59>{K-%!c^GC!-^zn2dMqJuc5@!noO90VWZ{agJ0y zX0b%cfAAZl=;0*Qn>+jr(i7>q83nk?t9& zUHg_VHz~FU;Ygc5{|#E+G+_7*0N?eScY>6Enx6#Q%Ov5bE;zgX3bh|;w~kT`F-mve zM~0%g6vJGF!T9oIdad11+1r1R7H%_1x?*4F;NjtsWp^Gy;&6&6L)X)Httu6rl*8L~ zBC0m!|7Ja=ANtgxhY~3Y&HRn5M%k8NA}Dtk(3_wjKP?MY01+ww-N}aBaj7j#`Z30L zhyo!?tQsI#gc0=Z;pdglI3RmWK-Kx0Qa0p1xBM6)(?iovm`H?*B<_u8L$F2$Y|c zjS8JqX|aI@MHY^N*DlPpJGj&4WYT;}jcXxtq)b1$BuGMoNbxNlLfME8Sd7OD&6wYK zZmhyn!_s=Y!EN9E{*OfZFDNIa)OWn(FCd^vd>|ms|3M--8yH%f=owoWnAzGnIa?Sx z{Ws@sJ44ZK@xQ$0pItyOVFEWb;sH^RWI>adsHC`(z^!3N1WsXzYeP=!;?m8`@bm@y zHne#&!nkx&lTYu*KL$m|E9W`R$&9dC@iHlxac-%RoC*c*6d4y^G?^V|R=neAQY=|6 zSmOrb5SJD?bI)8;m>5qaXmDXv@ADUV9ecYtjG}0YShy~BZd2|r$zNu28ICsbGr)%#4U(lW zN4o{BUA@n|R((p+_WNJEYO9v7!LB4pRx=I$LT9@3?^ghsEi&MTR~LsB;ir__C_LB=4WWxG+OwDVcsEQ2 zpCzaygO(wM#8SeXo0v^Tl>{N?5zrL`BXg^c3yY%^4;3Xk0GY*9i=Z2U)_c821OHE2 zX0P)mOxBaE&V0mhgj813BS+aIS^XY+3*7f+X%GLw>on>2kiqQDi|<~P*!CAnC4%=& zQjl{jEwKohu#S0gq{X^dcbm(j{^*!%==0(3E-?tqT3%KN(-1kr9M^`8g>5S{9;e%7 zj_9V04qcidd=>t>JgeFF5_|KG4aDC&w1z(Fuihy0%Y*7ay_0m#L*BDm@A{qv0R|I< z_igK0t2QF}X5G0S2Rlulv3)J9vY=TP!E$9-^51Q!Nzo`NQ4lGNnh_RnQ=rx-Z7QeU zWb!Q=l}3D84%EVj%@z0D*{sfYm=a^j_KAppPyPiR5eVq#3-$k_4gau#d(;7mn}o1Er!-sIUT3DB zPhUa^SC62WU^MV3(G|bCE`5Cf`vLtFt%L-PKql^jb${)8zlGoQaiR(IK5B z>MFWN2!Ge@Wt0f>xt4d|na5Q1g9gHdIpF}TOa$xTl)-elLiOY^=39Roi&6bw}f7m_7{fuNxDg4)Vk9s77HjEg zxB+oj{xo(ptU=MdWjo;hI`k+5zqx8gbV~Po0)~jsXOB&YT+DyM)Kw7A*2wgNK+hH{ zLD=&|E#sIWsxXE^J+<-kA2@8kT8na;d6A(9tJ$B7Q7DPTIyFL!$WPV06q!#%jNn(_ znl!Ked5N2cH$^H-74&woQrr8#mzZ=!Rgni!cdA|6Y9tHKeuq`ktq&Drg>pz;Ko#l&rL|2ZS+-ku3UQre!62<3ta8&Bu^5s z;3MG&T1BZcT;zdFPze7fd1;^I>BT)mq5uwIMj+k%ci4}1V6_7Sm5iQagI}5*`{H_f z5maRh1}26flP;w!eMZv48^Z^<^&8^HUG97o8;+`5thA^7>1!q*yr+ft5sJc9b~l83(i&}p4P+1PY>2oD5$x+vuqWe_y;ACQ!|~) z2*Uer!lqvg1CUMWBN|8@48{m2-o!#mGa$|d5OoxDFoB0o*<>)rX88mxtR7%%kU(b{ zC0>u8NPFY7iW0XSTM*a+4@_S&i?pJ&(&8e7{Om#g<;(zyXfc=}tP1AWbfkv0o9RZR zNX{f^zTP)(Z-UA z#bhW!4Uzch*XVp1klD9n@;7A4ES2=2zZAP8jL#8|b`*p=h}$Pk!-(5NMb^wBZolE@ zS!hv*$G78x+{7e6V5ZoJ^e_YE!bt{Stq=f4Y=wnX2Uv{asA}Ym5{eoJh&yZ0unxcr zWTzV zsQZ!0EM~yi+SGACZfn}lo~$`!+o(?iui+w=&@0LU*@Ra{NO1sn9iVI}E44|XEQ2Y; z)Pm3SM>5F~Q0HrKZWnBF8f;*={qn&>Uc?epF6{N_w^K*~K_F_eFpfEV)2JSU>2}33 z03&$KFfbT5uEHHQZVi4=p^H|(#-GcKZ%^sVwYCnza7NK(5Ikk{Z?&*qt5^Od>z-7O(IEu1Fh6s0*akgX5$lo1-xg1g)X%;A9R*=Hvu?+j@E>9mU(29Iw zR>#C)5riNy1##nF<$RH~zGlOOwES1D$wkbAb18sRkVP6wlG^|?SyCWILu8R) z<(9-?C}SXb9O!jeupcglu)et#Ctbxe?H3^7?R%ttBEFGwoRn6Yr)gY|d4Hk_)V!SN zNv5$XO*{NxR<#hjlS?t+lzT-?M5^bZ1@zs%TwM4!cIJGZl1yPut%C8uoEcfR5h-ad zqCvZvqq#b^mB$WCEvt6HPvO<1$(?Z2Hw#DrBB2o3CQuwM`hvSMxGb7TN-r=3C9+l< z;C)IBZKu3}y^~WPvY&0i%e95bwx<%eOP+IFA|x-swwhk=2E-plSF_S zMT5}q%^RB+>pqA5bw}-irYb&&+2_r1KHolf4HuX-CS_0Dxc;(VkS_z-{k4~td*JU{ zjFFWNzkiB&Mf!ikb-cj>{nrE>CVZT9S%>n7M62Er`2MKtZ1p;H)&@S0hq0^WD`KgEVBLzkQbJO14 zl|GZ1;XutgY9{Zx>urO;cGrDxi|GhIr;Wknnrv54H*sXrpMQv!!ohdPnP8#_j{Fns z7~_9(m5&b>fWx?fo6p^GET9RZB_;14{gMgD&LXr293ZUd|M(jBT_;(d2P zDZdYtl)B%6rYIFZwhjO=@bR0q++Guo^-CgdlaXo)*w|PN0>zY(H(d){MGiG=lSWYG zG1DT&@OYqwNh87m88?U-5bFf>MYszMH};#7nt%B~qFJ!_i`(&UEZAbgfR>Y;znYcz z+8qD3J#qDTdYpA+k(6zG+3TegN@*a9rl*>P)DoPD+%G4mhx^BM8 z(+VfC!-UsnJ}K2AFA(vAu5kiToVcC0E;vysLfJW%)b}#Y_J4hp3!8yD%(oONs%p~E zm`T&$M`5-t$=5^jN_B_unw~LspPL$gmMU1?WuFIyy6~@pIShL>5Ou%<16>- zbot-lTR}wpN?Q=abX&F38PmJ`YCWL1@#BJcs{L186Zhw-|3u-^sX;`phH+GbgL&uh3EQ5aY)L#}n_Nk{!wcVM98K;M!efN}G+OCGIT7LuFvV)> zf^S1^?LApa^1m2+2O!&;E?cy0+qSDt*|u%lwr$(C?K)-alx^FtbL;DPegD7jef?hV zh!wG8?_3#?Imeo7&KwhxX3n?SOL6WrVtsrU=KbDVB}_eEyrR`6&=dhBa>d_nk!O}z$`z7>nxf5QAWl(5+on%*o!pCkIVWWmsJ@d|+-ud=+l z640rw_)wQ0+E$Lzqfn}lzjTXuV;E!;h=KeTvk^k+($6n18mos?BfeTt%WbSk)##5k ziBBjif;TjdqtKDS?a9jut_x}Vi4y@}2yCz?(KJa26aL)U9uQQ5vI;2wJ;iWaM@g7ODw$YDM?%IJ>;G zES8TIHImeO4JyQva*uJA_lNf6Q0wb?<~%$_651;o0`v_)*+hJeybv>Um&_;A@pyLf ze)B+!cO44IkHq5FOT7_qmpj90q$i-f+laST^Rr#r)XQ0)Vjwg)xQRa!W<`(Gs3H=e ztofDo1nR9Selw@n!e}%Qto^++n6Hqa8rv)bs$YiEmzFt~6Iqjh<~q=`({sPxsZ;Gm zJ66vnA%5H|IZ|h)8M56&<)?(46}`bsA+#2y(b@;xf7+-30RIGC|2Rkg`$PEi&B~D0 z$=S})gx<-~i2kQ1pR<{xi4*;gjcVs)@$IXq|uq0Py}# zZa4awThGMZ+0nqr*}~3N?_V?jIATjmGFI4(2t7A->0}6o=G~8#rM%6|2oTIJlJtZ$ zjjorGV}D#lu}70XUuJw)yBxYoc^~z4RM*LQdf4QWN*UVVP`PL5*uj1bk7AMCc7nrX z`BK&IIwfNL(Ak9M2-er?ppl`7TW-Pz0H|%!MsMIY*zv6u>^Vl78o(l-+hud`f&C7` zK#ctT&{%BGO$kTOI*%(Evho^}eJ&6uvy^T5iobYDRw%e4c-o%N4O?@kn zxXVdZo?1@UAn3>*h)<}JG6_=X^c=^MJOv8pT$z)p)|F~IoCXW^nbMW(twk-{*IV6G zCBCWRiibhnE=7%Obb|ILMKdNR%^z&*Gb5g)CBAxfdWlBk+xNDFOiD-vKQ*s6wB@l^ zbT->iV3@S}+WWN^b=tU|NqCah@emI1GQP@N*F{G&LS$MwhbWhefr@)J< zcN4*yx-EDAqObB!f6cK9x^Z5TzQO(rV~{@(ebWvU*Z#qn^N%yn_dmwi55jDn{@*}$ zrJ`W z5)4BXs)tmprX<84eUkt{GvQQ&72}uyeHvg;-Kl70b)6UP?Zv-~kQGFN z8VqzA_%21SLxIxRK7vOfMTf;+R6&un#xG-Uq@LOeN}NDi;%*9qg4<;S4n6)-d^PWj z(~B09CHaq9fMBDo5;ZHUvn{D*Jxv4+D`xPkUs;iFjPK}I`q>wP9ma4aTi0PCLS(dJ z+n|SH6odI?9}dN|?Sn{O0J*y@zeHM`xjdQ7}xkV7Kv2E z!@+1SemP*OoWiRp0#9gwiANK+)&^|vE-1LS56fMcCT|0mJyPFB!KyqB9>L+=%=Pfu zY^VWQR87~aW{KaNo%=tR;He^gL;AgqXwPz9z;!>H-OQYm=(d{Kc%e;A`Q>DwP~Ij= zt+sREwK>>@O1-j}e)Zl6B+N3@%lK^UO5U%t?J>SX{#W2adpa-7{{Ytp{(q<(|IZT1 z|3x`&sm;r7FrfI%s<{&oQVCSq*x_9a>WhmLK&3nf${%vJ<%AfSt;iN+y}qnPNFfO# z)cj~XdKt$X9-b4tjRtUFCR8Mfjw~FkDnu}_H-d$c8H6c-{w=5%Uq*5N3y^(jV}g*t zcBrR$VK_55^I+9v@950~a3(5&5w(+GE0ewcW9dYsP==KFWDWlQ;@9bFY7&+qiuE1? z(*k$v1V|~1t36gE3o=MCHQ6(X05+)V5nZ4ROYKl#NF}gu;US$aw%d5Xwhu%|^faPL zv}8~H{t%aa>)7*MO27cj(Oc@Z3PeJ{x!qnsz%GEqh z#;=@xKF_vqauR9Ogn?CdXYF#Dwo;-lGk#fW%Nbs1@p0WELZkTKK5BAN_8Hs6VM1ok zQ!JfBRtz1@Vk2b9GXYBPz^@7b9pbS%GZ{>14?xFQOyg)~xfAxM9~iX+zmjQ3VN3cP z`B&!9o!y_mq^&x3xF8O_d|YRPzZCO%MY9YO8Kf+@#XwBBc#tBZpt{Pnu?mj$qve~N z#BnN`;_o6AkZX>hYU~=UTzw@hguL=Ns@GTdJ+BE&ck@UG4SCLTnVv|@#$}9-alp%y zsK%#(`Mo|O*#HZqyQgSZD64mupezSeUYJ1E*DHTeX-j=MQh1T`E$f&f?%qohD+wcy z(~An(!lF$4Qtlg5G$hyj_t+&~@#WVopZOdW?xr=mQmC8MmJ%5WNeD*En^c-SB>NZ*| zqhZDT;#KbRsh5mDllw2`v+6j#%1Ce!c9n@lsHusc4`nK?wO4ho?I_MQH!GX1t}mrt z1T9>shB~y6d!5g;*yc;c!6cy^<*2gE=q>9vz0NhiWU!B^!dgT{wWhLSS>opP{`Ii@ zV~A*)q6B>a0su%t{tq9Pe^S8yTP44h{J(P;ZGWDY7-O#|)@||t{fljcNbM7>YEIXB z+)nfTt{cN7vZzcIacrd564&eN8^0SjiPU~gD&u;M91c4g)0xO>)|oUk9n*x?#N3~H zQX89EwYccISUK2=h*qdtk6op7}!|j``(`z z?y3Pb$J*VR#SG;Ap`{pddH=TLADVd60 zSmq*JO9K}f|dCWTpdY{5V2!qbMc&Aegb5MwIU zz5=XX-F>v8sBKvc0W5YYdm^=mSR&LYGk1`re%(wf4UdI&-NnIw#Y!unp{CsNoFGNX z)$x-44WF^=C#CZ4*>sRmpNs9e13V2D0M{bY-Ve5+;j;cVlFh(8L znI8s*01&r|$}vaEkfnim1C(m<@650)pRx)n?gc6DPS4A=?j=cpw#t|RBR;1c4cW{@ zG2;w6nvP*YYvhcY#8@e5=z&ylOEaY}&VSd7%KOlu#{zz*E3=kSo ztEgV)R7`Eqh&~!`1HlRdx?=#R)Gy~hm7$q8JM7i>fH0$vR*DuhurCp|8gF4f*ttZv z9#Pm~1qYElxJ{u0#EAk9B)t_oAN-A`X@>f4^f_oT)G>Tl+k2$v{C``o`7aZFs#FXH zKe$#p+hA|4Us@B%VYQq7ja&YQyy@f2XpQ_471)p1etHZ1|GFeUj)PBJ7c3AXg0PcX z1IllWVlikC0;u|EyIq>kh1%gVFBlLs!T75gFXZTD=SM)|9C)dUjDnCHI*s!P!pwQu zo%@g9g_+)fQL`4sDV8^Zt#(d*8}e@Bqeut|l{GS{0u|}xju{5_Rn}X-SbOTPyXQ&x zf+6YT7>3b7@@|LMbpJl<0Z+qVpML`4|4XU;Lz98l&!fP;L?r;WVj)5o1acO4aC39mel0;Y2iRz?^`!Svx%Ii6`?Mc>zei@&Q+)QQm%jRcV78i}P6Gx=KCT(Y53<`9F@ zj30-@qnFtWRmn#r5gM&%py`3)p5UqK4beb5!hk8CRaZjLb1?PPE4Cn-XhhAbgI zj-k+{wQs~f#Z!E>@j8eTqOt6?v9PSG5|ou4&Id(q;USQSRn*PX zs!$bXe@+%-R0P~m{tZIfP6t0_q}Y~YQ#xvqCFBF)>TY1P#C{qP(!+k}=3B&>MpOQC zzDn{yeV&9|$;1|&yTib2x zR%WqfX$vsc`J8-KrogNtg5GPFSF0erfM4ld!|oYaisYQAIpA$rr+Nt1%O37=1=jH& ziT&=QQKl|Kg5^YU2k?l>GhX0PLz(&#Mwmq@o3;4h1dffL|(n7h_}8fylXiF zGcn2|irJtL2|&<;7m%r)KwXqf3)40sW%oUSVnp^p9^Z6=~`4Is`5K`6Iz z>aO5YoFwP?)L^(J7qFoL^3yTND(bArSSj<7)fNqnLK(W91O$~9&*%~r=4o~RHRc)ASFwguazw_d2%;C=Xd;230xO{~#oMEAWbh0ma}Z~^f- zqv%bq$%d@v^l#D-d{A7tV9i&nrXuX^G05B1Jn$8>f6;4@&P)-vUWFE8C~ zrUUJ#PshYslg1Xc&iiTIijKb6szbP=$5yN$_{Vcj=!Dp8}gRrxusm_LTrKB@uKgkF2ST?N-cW76Bh8uBqc>lTo zd8c&GJ3dKaNMm|u>{?&;B`5wlqV{1FphyRWXvy6zkAn)XeS468_QkfE?Nmm`bGIA* z3VsT4=(91?{@$v+mpY}FGBE2 zjwm~8og}$#Osf_A@NcwHfxB*K79G)(TVmWdo1vNZ0a@rX>ZW2`rl5EP-jaBD(TUd!P*)3wIlzxRrOj2gFKFJ8N*@ zf@RM}j6<*mmKWj=73VWy>mt~EccOwijMS^YJv@K(Rg9C@TJ$Lgru{;2__WgF$|!D)>+rNf4lYmu;eh$fRrUM2i}|yq!)1PEhY!QQ zi=mF8y?_lW@*o(zROA9a?c)d2N39xAxxd$Ar+aj4GNu4!5Z;q5h=Pvc?fD9j@ zKfycvv&z~pt0T9tusdn2le3w#KIudCox(q-Dkd;`4Ypj-fxJ@gjO6>WfHWk#v2HoB zcB>;Az_aTNoX*p0LF@-2iq>#opEzrq;M0X>$a09geT6Xva}I|^uFEVefhXk zbYB3<4IkDCD%tx4#l2=Q;rKB+dU-L5*z1r?T%pH9H|-t5_M$Hyk%4<|W_j~FFRBKA zQAdT!mgRg9=fP#axsWwpyM&UuT)>!n8lhq6J2lxQ-Dc9s^kavdbWW)$6=U&UxrG}p zh>O$K45DmoOUtJmz64T<8epqgU`NtT__Fr`PflW$jqJ~q^e8~W`!P@o z<-D2sS$2Um_UUFZL#7w)0&sk{%5&u&Q#HA%GPvvJ7YuI42%>>&wtuNz%;x}exw$&B zyYa4;;E&bJr+CL~(%R2aX;`MLr+*CbJ{QeeF;Atc^bxw^L0z^(Siu~$e~fsHZIy$! z=K00AN~vf5nzMbJk3B)~v9Kmscn!Yc!JMW8RjJU$YW)i zSli4>_X2^kjD^rY4SgnYFl`#p|Y?}*I1lSy| zz+{)J4|C9}O{ZH7_OeP%tn9}3+xDY$I^m>_M~RMNxo(0p#9=OhruLbX0tYh(eG@Ia z&a{}(_9P3Ab14RFB8GWQv(e<pV)28Ov^m{l(+) zWG0u&Jbt=DVqi+zHOa)E32gj^#U(CQ(Q8C%-S*`X*2VrJC$9)MuPi(x=>?+2<7q~# zNwdKhg{~h4qzcax1_89(SLK$)&s_H$-?SO2nl`-~wBt!R*EMa^n(GR{f-h& zZ-HalK6Rm)pTTGASu(RlM88n8kFb#OK~~3hJdc-EWf$!u8^Uy$p7QMspBGbG z9~F#>l&usS{pcBL*@JAH0I?1=tH2Bq!Xb24XHXp9`z>%vpIOfPIpXoqy~B|{TijR6 zFBODTEH0L6EpKrxKgW0O*#+sLOJ%0d)<`#N*z!G$vhE*dRFS@@OIk2bui@m`SkyA`mGtQ_!NE|eyyMLa+3en>3249a@KP) zakMb7{_&SX;-_r~7!ZPQJR+}XIpWLJ9*78w6T^jTcoQ@GaKwnTUEjprMb_&`q8! zGkm5YkS7&p*B~95pweb{!T9=9sv9$g+uQ{)8G7r3LY_1ZGJ*)ODTy$!&nO!@^;=r$ zY2ADTbe(u{n-a!AKYQQ6E#?t5xaU#5|M-z!a?9G#M!-XYVyI*k#Q1~HnpV5Gv8pvH z4jDsw7s}A3S>1)?VR?T4w;8xm{BB8)|6NV*>O!4!m@=oHWfdiFUOzF*_JE6%53JwC z#S{D96LNWU(^!s+B>swAB9?8lGdELF@jV3#Y*F3mzt!WaH-6P_6;R=g2L%AAKnDQ8 z`0qsWBZeMzowOtd1fLx}#5j7-*xEd~E;;M|meJN~`IWkZer9Ql8Non_@@2gn1oQr3 z&GnkzW`6zaoUDv-61m)X4!OPP%_%%9VpQ(=NS^T$)(9Y<%16lF29S~t6tlxO$n9-n zwI%ykSK$debD&@|4=79sA=q9C(?$eFm8ylLBq=pgMy;6T&UV+q|U@qz$`5R{pjAJDT=?w_cG2f>yl)AjG$V|Hgthx;1OyNeBMh9*uK z4`>zpK0?bTcl(qWVw0UdPDsu^1;E1Q+m^W6fc&EB_zuEjMGRVX;qan1yrA#rX! zWiGYu2jy1fKcEWApTZGI*9J1}_K8;%fhXSe1l}1Qd#LOA-SJ4&jn5JAU`F>X9i%C^ zdE^h%eC#w6D?Hc-(X;Cb9dl6$W$Qi!l1ebuU%uVKmf>okZIvw_V3LHTwe~tY(pS^} zbpLp^;sap~OOJlsEIw_gl1ocaM3P2nR<%t~m+e+$fdZ%NWklY2FE-dex*^Gmw;w|z zt&5X?vYO%9KZgm+=W&guvN2=LOS+zHnuIE-%#;bbf>y=$c-t7MiSmmdE3GBWDA!rh zD5$Wngm3Hx6yi@hkuo5lLN88Iv$BaEm`+-XaXt$=q(IS69gLJ7sLufO(7|yN=KD=4 z`cr@Ds{P*kD!RgNUVAkwh?ys6Hzu@d3@3b^1E0%<+MwH2dtnpZ z$n+hlmLiJdwh(bP@`enK!n=XkSy32FDuXKIz1LBeM^(t%4s~G#_})V-PPb%Ooi5$h z8NwD;p8+P_q~>M8ZmQ?&O_d%cBdj%@f4p=+073$2(!j#7R6NT_ggz2PBB;I!!OD9A zcYc~u2-Lld*1Hyt$QoZ=YD#~X0J!>WlJ(1)fB5 z3Tnx$cET)ns3+FBp$Vf>K9-ERGz;4uh-7Ucc@SxI+4-Ba#2yf-xT~$inv`vW(jHSmkf>`u72%>CzVh;aex?jncxq=B}Mp3M+OERM2n*G*Z8Qnr&?7MiMW=`hx3XiNL6h^9TW_b@+*Z85L zXhj5V{7}x>(Xd2)v=4SGM<%wnkc+LyUq)$rj~u*jt#CdxT^Nagqh%+Ssp&_qS(EBm z?`z?<+l-0twyx=2$$x&yzhPC9-=Qo1fX=T~fE^D#Vaq>cOT6tlN$D=SfF|1`NgHng z^#wR^zr23AZm0-R&YaXid+oLUR8_}$Y_r!M#IQwshz7I4=I}94fMH;>=SnUSfh{X8 z%0i}vX~?=~{ksqQ8S)vdwi&S|PqYE;guD;nKaZdR00jJA{!4(*Pb~UBr|E76*48G@ z{}#z}81$lztEMg;_w)bj&xP_|#t9iXn%U7g+u2y##4^GKF~Eqp|kLd`B**HJe_gU=lh;_7zp4y zb;*pAkYqXO7_gIt*hpU5UxEMc7y5JL{%;HYCzR^~WM`T2;k>xYuJw z*uv?~VW48Ck)n(VTd<^MBdDDIS0!*|38dme$hd0zKC7gHxfd9cHOy#plZ~7|t9213 zEso)v{~l~7=G5Q4j}s44rncYH0WsZ729?2#%Q)=Pe>b;y{tW_}KL0laY%I(i4gQI~ z`nO&AVI8zbQ?QAIer&MSp9}eCXZ|%#QA9vkMug7BSVw_N@rMJu@`=om=gKH36Ypop zAp9L)Jkt1>7_OeEAwekb0L!WA1iKTQR4?lvDEsmF$XoR*a|5=@IEXxmbwj+XhDi&q zzc1NE{6xf|Mm%geu+mSB)Ce|or5u7$;hEsN%Vh^w;GXDw*Ags4dN#nVK?TdG(;7=2 z+Ev{65QRNJ!fxp&p8LiWB_$5HpP^i!7=y_Qg5*FgeB#M^bD)Lc1+3I7GMpDsi@Ud zMBMH`4EEj>{;S+8l5W_Ncx&2J4AJVJ;#{~oy|&NKATcr1BkVSYy56_@54-H1kACdY zjddK{o>zdlEA8-JEA-<>Oy9TPLdQ!nHY>Gf%kbQ{m4o}12RaONWXQI@k#v`~zD%yK zmVL~bIX2!t4@ps@$2#aT!xwF}GV{$kUHGwN`taQ>?&X1_<~9wTpRYk_dR{k2@Pw)s zoq)4>-CnM;a-;Fbgb%NG2cvT7dVO!pj|Cr_q)iVkUb_Kpnt9x=v8*0Aitx=geh*Si zDs5Yw3vRiwj-Tsb8m`v5E|eWTr(~QkFg1T2{kxfX+P{xScc(^17eTQYUCkJm)s+MQ z4;&DMU~gKl&I=lN+i7kop|i_|jOlrTd*03hzxK&S2xIvo_~yMoT%b8nRR|GsLlu)+ccr6Y&c58xsGbXHb_ zX@slP0f+7}$Uk3C(SsKd-h`967sCiczuT3!sb3nrrdD^zr(C1e?r*)aWD9mL{Pp@$ zBg4iA+JN3S9z}%avc!L1shC}1jeEI{O0v=_M`P%mU;_qU@3ZqNX{xtM=-%^=wwcy?dzd!waGaud<;8~&@Y%xL^@(*l)WC7&nYd>(~VS=dNs$~t2QMo^GOM<+zDTP^I|VE{6V!E(mNN-r zEY|baQp;Ay1os_EoPaMjaes=`2aC$V$G2xMl(|LLvA8m_6moz`W$(dP=Mrm5sSifi zpHc+0TQ&;btHx$r>+aTy!4Oe13Yb;`@EkECOoWfsXLgs3P#&iKpZpmeIVB?N=I!F+ z%my{$qsD|eGaRDf`Ya)*a4Ge0W$dvRi9akrsC2qrzPIz)^IJuebkp+OPp(O|UQ=!s z@Q-2HTy^SGcEh^t;8={~{180MqPkdGqCfo5$jqxa6A9+&Hm^icfx z52q>8RG9gOp+wnq_g#jT30Ko{b5{B-v2!QunMsn&cDmZ$V}kfTpLtcxN2jP;!RhTdT{MBUra_mx~GF~514iCsXZ@m(2fg1G*kZXti3AP;p1 zZgB8>f$1j_bVkD#fSf;B2_ia9y>qKq+q!I4+B9jG}x z9ULU7{8pX&kccEt>#Zp$cNdH;P6da$t2&{t^?KQ7+`p~s|BWct4bo~`X?}aSfXqBc zveZcT$TLtJ0z{H^CL-Cf;z)n47;gnf%$_e|4%Aed-XJCuk&0t0NP=bO)15*XsUhA$ zVv26w!v}KlqcvvQ#D^{zrgNaTA;cT1w_2$UtOl6Jn4-8KOT70<5IZuoy$;JMj%I*! zIzUZ)#0qqJH(yR5p=dBaZIsemV26CgW4}0{(x_LqKVjs$$QOiu!LBVc3Jj;e(||;p z-UwuWkZPEYiMdijc1ZwYonsFXRuP0@5idd%a~*E^ z47|uo>~7g>l!^cjVRK%^dP^~gq(x3N^$PDoh|Rn*JftUKR3aCmjuNIKY&_t4k-D=t z1?(7*>LRFt!JDcwZWyh-P7VXz-j5ZL8t+ph8^BAuVhbRa+n9jQD6YK`WD}&atP-o^ zcPHrwy7YbUT0`jliZSI@M?+jklHPC%*#!ybT&0+%(v~k^p##=t1bA6|N_i z;XJwa@^*DViQwF(vte}s(4%#K)ycR|c8^c8?}^a{3Vu>AqoZ0poEy4=Gh403ST^w4EZwE6jmeP+UEh2_pSn_RJQreqiI-O@Qx^c+ZVHeF(h(h`*_=_)g2 zo}G@c86e(hjU|vcT6&T`eqS;ZUE{QGBC=YH8^csDt(>I8Ui&uP#HF2Q{`JR^a> z;Caz|uDL;?f}DPNw2DFz3VtEW$VpeBt6Kip8#}qy)2nUZ8k-^pqFD|Eg36pR;4o3J z)+PVVu5$!lVIH%tmng{?_EFjM&lf4VWzW=H3UWbYWlHv($KG%ck~=^{P%$4dvFLXD zt~maB!~3rx9)KKsNi?wc@q6)HmvTK&4MBf2hhH8ODlLYhK(8f>1aq&?Het~PzYKe` zidAt+mbPH}hcp2;>fV6vv%6r)3Oo=MLT+}^*7+m>B@unwL&;GqHH+6^O-ecQxZ!G+ z4z^q5FF8I3Y{hK7{Hp|GH~Rx4EdsIYPwN76LemUaocu5&Wb?kd#FcRZi7=$tMd2#_ z0%gnAN5>AmHPiXSqsi-f9QjC&a^d&^T8s41z*!HuZ?r1o;;%T8;EBuTC7+62siCV3 z#Dy9#Fg=QNu&;BJO$w-tYSEl-%t8GQmkBO5OK4!Dvf2@p4h;!_rnPzX+)(c5>GJHZ zmV3&{iX)i#8Bi`!6P#xJUn5$fppS~GYbX$=uAFp zUr*E)8oIo4Sy@X9QGL~70>w${6u~&DP=tri?eabl@d(0 z(yLGsM}_rEu7W|epp4xLwDtdc@}8kcx~p;nmSet#O5Src<|=?*?Qr9UMb$#W-v2Bx%Oh$!}%LOV5_fx32tv|k9T8lW*y%P z_)+;oT)Hf!Hp|L_?6F{!=tX5SzHSSHeBt=3qPd-^bj!)u{x;aE^uR#>hTRfJb0q9H zy`3mF&U{m_ttgJidx=P`)dg{vZPyq}<%qLge?Uw9Hv2{~?D_C{l;OT*2o;=f zYQm4vsN>BbG%z6UFK#wzRhrHT6<0u8nb>dr6W#F*}ARP__0RIdAK>}B{13~%x zFs{K-%~O+mw(s;8J0qtj`aCyQUa21OhGk!C*4t-419banS0BBMROZ3Wo?-Nw4~Ufp zc6@Z~n<{NOId%YXIS|`$ZWx9#nVcUs`9hqJf&hN{x4bMuMvI#=9>8tKoFB|OCQXUJ z*@jBJkz{tcw{;+n|40~oo%R%+lU|Zhelf=8@&ft>S9o#h5wy8768GVKHNsztgS2V2 zsNt{+_&a4ZjM?q#=_xKAw&jx<1^GQ{;$g*@L%(m|?^hMC;R~vnxwYgIvzy!=PlH_j z!(A=vewU0L*-#wZ+LQ^}bzH5DQJFLb3rTv-RIQu(eP1$ACuC@3sy3@cqEzf(f60nm z?`B2=2E8}W(!eFy6_&7^aPj}TmcJNvokeIBhv7Hbps0{#FH+Y=+WFs9EW_tMI|MTg{qImrM=Q&N7Lo{o{uZx z(nRrr>--gnyVl$D`Q;8`vgZo8nVinvhm7o)zH5g>wG!p0Uv^!YoD91$*jdty55S(h zuJ23BgaHp0Mtav-lbWrNt`n{t6|xg~K@%h-EIVOnvu@J2{9FE|7ya&9wBIH>$)EV@ z5S}KG!uFMFaO=ukxjAYW1Did96M0fX_vqb`b&rb93`Tt7NZX7(CjSFE21hmgNcyH& z0RII)ae5-qta)SwZk}e^4udR-DSyj=Y-El|S-MZO-90_hq>`=74fE<4Wv(Ql*85cz6zT@N)nF~wGn zn_{!j`&#v`HQjL8k|#9N^sv6m19S&>bvoZ-d%X)Ks4LT6y|zBHu2oDU7A8ALz2xsF zd(&O4stgSk)_qv7;bsI=8$R!L$6d$2MqVxnwD!3WC60*w904ejLDJM+^r3jrOpIWF+P~^{nGfu(W0JA}t6}#V^?Xf)mFhRkyVC7M+CGIxtBRHc=?YEj|5N`7Uno zcsgIxdywe}9Uzyzc)TU3+SiCL^}*<^y?Rgm87Pq>uHoG{!O=RTJvAhU#n@F~5W}l$ z+w0LoA*ugu^I~y_NZwh#M?VVm8BzXSC?R5}qzg9}FN%&NA0+U-}AutbE!o;Vw zxQj+1m<0_{Z%#Hmz7;Nlw<|l{<067J&%8^KX;;)Rz2e)5yqi1s{u9wH5%)2ve*1Mre@=7~>Jhoj z?JIbpN&%ZRv(Bocdh*25h?{(k4UQC3C!p&6w}t|VFJO+sdK};_z=X7MSvxwLlK0cp zx*F1}NGSQP-Ww-`=&F_aMTtHe%`sT1Ia8n}UAdftem_l$-6$^$IiG*$CHMaMyx@nj zZrCQBu{-YrG`k_9o$A&X(O|g37AYk1nysj{(0Gojm+CF6X5=2hrX!oUakWIT^#NSQ zeCJj0SIij-LJknfvO>C?gp9);p1y#oIa-0Sy6;Lk6g*P-8SWTeRJh3|;Wp`-;ymdP@4Lfe2Vl2ym`pIw0uP^Ss&9gpyi99YrD^AM; zI47uQk=-_N&=YYg3=6;&JtI62C+0JJPM%zU>$SwvqA8$Ulo=q6&*K>7LFx!yTV&A2p1p2J_5SmZ6uRK*#oz zF_LQ%6rHB&u9Q5O$O3AkOyipy;>qbB$Dy-D;=8%YzszH@CJ0Q_|mJ+s6#z;x|abRu>U|Ql409+MMWX! zHK{QfuYi=L25pr4qn&hBgPf5`g^3Y(4Z!ZEMpm9*VX+PbkipFRAe|2_-cSFDVOj?H zAX0vfGT>mQ^jY4P?&Sz58(^6if@*!g^|(nQ4S89O(jROt@YhFewk z_*kTGD|YstBuEJw?jtKLle5*Ik;~&v@(K_~hH`;7%|LZOF|Di8J^H5QV4G|}oO4l? zI@qBzG8B*)DuPm=QNTG(>Gl-&$w4@b>&(gTXQ!o%e0N@^`W`53>Xui>!%^q@k+h9?5+2& z9T!gF-z^T%P|V9A_1D9(X7UbFM)oCqS!aKN!$+EQO&|91MF5X_BlSgI-~io@BOd#e zCY!^NqqB5o2yRe=9e3mlPs}zC z41lOVqwz${e?BzxGXS@ZvDM3a(nx(Cu6*B zSpU+UlwMaeO=wXg_@k!7(mJY3Hx*aZ_@zeoPI;Ced~{b8hbbX(^_I2K@_g4+kIoCb zuA#1BIYZWLRr97=2DGf)?~ZrhWNs&Hg3kT^^!w8y3gz)|ZNY4oX#^UdfAJWgD$F#| z5P9336rs42)O0toaD_P}5}9@8+1ZR{!9a`%JC`_B&V12Vr=6R4wiQv#WKX17>KP7v z%>i6YmwVP9jSV872pagran(_m*^4#$vK6+OvYwCH1|9XS9}*&cjoP9@@zIupA8xyg z+)l3t_OedjIRu?1Ofy*3F!FMI>w7!DsrRyV#)IOAN^>x0hx` zx2HTVRwtYpu*J*iswzVx8xK3BhWm(c`tI!f;8?qT-Vv% z6}z8DdJZOL-*Rft(7&mDz#9synHPe7MVa#$L(Mnhk=c2VCc&;L+kVlynKmQLBDBy; z3TnM-go%&FJp_3uyaU)BuDcmq66Z=UKgw>*H{GISQ)D020R{6?^owM6T#)#zv9YFS z(y*zjt|)L(k^KtX)A;Cw34ef5qep6ITM|8(=eFV^#7^?|2d`sPVQ(wW&C6y&ZG*-r zGqTXxFyKxoxNE3pfsJXynLezmSqF*6#5w{Ejf2C zn1=(>fArfS6o?EEDpg|2MBq`sVx(4A4`jf3?FmkfzJ33}m5g z^OY(>n~ZC~C@r0$*Fd&4J@_kPDg{af#LS|~Df;!$mz5K0aYqCKyn|^?s}*!BZgkfB zmFzeh&A26|Vkyriq=#f7OR5AzKqSPRfHg=sYo0a0;YU66z+Ayu#;CcBDsY%G8tslf z&anNU0LLww5w||9PhKyU8K?oA37$hUWJ(RmQb~q=6Ofc=Uw8)<{n#*{V`O1j4D_ z9~3vP)EO&74xUpt!)vdb9i;t;6#Ez{4M$2T=NQIm(}|KkD}V72JN{mx z7=Q~YTWBNY@=y9PY4vmu*H(!s7E0hL^HWjVK+?N>5@dRXm@HixK^R&~kP2gTeE@IF z;bg4$?MzSY`>sTdyr?ucUX9&1>XZM)*f|Af7PMP9wkGDpwr$(V7dsQ%wr$(CZ5tEY zwv#h|ojU*Zx$En$uHCiX-OsaJFv|H1SNqVi2Pn}>QEe?TSSCKZ*`{DeaR#=a_E@+=RNXXcPvK&-}(ptTU7KUK^TqXk$dJ&FL@u z*!Xd0i&Rxtxd=z8tzXC6A!l!xh<*_#J$=g8hr5p~`32rsw-Jdjv$rqdeUn%LZPD-J zof&Puid7WUlsHDbx;q`ub_%TX2kvGnM83tTbo@$-` zvb5h{WS7>1bpY^w;cB1;Vst4)mTyGJ;=gJ_9__a_CoUa!tq-AGpKyWLobd8EA^qsC zzc4?GHLTS@mIh*PL<=P!-h6i$f5E{LT8Ol57fa{PYdJLktM?U%_ysTPB19Y13_*)AxXI{gjae!7%h8+4o4gro2=&mMx-r z!2~d^$~!wcxu_qGCgrcLueWmnST-zzmiyE`1Dq(BI)U~*kTV=zC?Ls|@rZAFekfsC z!9hzf^CEZ*loz-xqwbdvPKr+VUc%7p2tw0#*eJ|toVNre4u+ovb93zrqH0K$&v}4S z@W#g3q-0-yrJciq&`C7Nz8!P_I+7M z;*=saI-qs`7AjeH;PQ7xbM+FB_sz$`)}Fk4P1Y#$ic1*w%wAg6z zf~{-j57nkj5rnShDtxnHQ60%utTfOsKGQ2DvNebL+MvoMdGx{Ko76!HKs(Gd%wQWNn;fqkL*ss)Iil{%i*Kx{gk0#r$^%Y5Gt zp8*>3R7$4kU<0_~JL+j{*quUuk`ILvht53IrhH|a3*dk_uXyf+S_;d8F*WNsQ3@Ba!z~H4%Zy24>T! z5=CjQ)MzRP(8UJkR9h(g_ddQjqW9Z}_Vb*UF#r-WTJ*3Ewui$c4=jyVYaz9B6tcsZ zKQ}(lYvj4%;?GLEc~e(BUgjZ&Kfd9oS>tK+k$lg3J$u{p{l5Mv*V2YG!mi~NU9?*y zUj={`+Er_6f8c#tUKAym`9wgWmvW5-8&iQoctvx`?%3nE|M7}LT{12)mH>J!bPv_i zk~5b4pLj`PeuMbQ@0>%V-TXAIM2dyUFw;qDzGWo4Xm=aN%Ca5YUMleTKXpde(?qC2adM41s{-DcpT$pgQ1AAQVnsCC^SvTbNZonn@}i} z_S~!Y)_@_zsd=fhq_+gpbiATQlghJEb!NtJ1UwjUiDPjd2~E0+9Hu=*#u;7sM!Y>J;q^2^G)PcMQ< z&s$m3oLc8b$wb9&HE1-q)3!f+TQGWE=dH^n*3w-LIGEU@b@K|A4t_79ZKY1y_8sD4 za=K~~Z%I}DzU}}Q!~}Qo3`h>vBB?WFg8FB(k`MPQ?h^WR#m|5ezEv6(z-Z)wS5?gGxe8f44k}m zjLgHe{@>iwTlOp*hvd$SU$&P`dCE8AQfFG=4O5L_Qnb8529@s-pgFtin&p7@!$Am6 zwKz8vwKM7$JT*OFEriQAs#Q)eWLW2=1;18kl9xh*h5-d!^7c)1XiSN>pI{ix>3n?& zuTWb_Mry(+SJhg7jxGxWr&~c8j0*tSkmG}ER;w54t~a8DgaE-U)-=ohE7uUTUMIIU zH|4RIR9ev%*%ONuOTt%mgx&>FaYaYEEk?QpR^p(;GHbg+UECs?RF)zwZcQ5dt3ykb z6?|T>)%>LN#&v}X@oL}mDb0zjPodE^mse2D7&n2GglwwI!K~1>9h}Y z3d4_WZF*J<4Gi0>f@|wT!Xz-l1}-+bKicr32;3c**Z}`b7(rV_P^;SH@m=ogeXW>m zptEu9@S!U;`+Q#r)kbG4YilU8C=rd@l9n{bI}b&@vZL1 z3xAn|w<6;Tw#yp6Tv|84zF+qerQLvseQLnjEQgBLx_kGwU&^BVkx1Qfd?X&x@+^;R zaB=1IOQF1gLRx+QWHgh=^!$N5 z{BmzFDM>+kXt~te>q)Jv@Dd~GP+aR5plOxq(5-}pV&Z(O;F*$`{^$Va z0`&r8DQ#vg*;K46Fh#!25m~Ir1+sA4kPncSKz=$^{`aoUgLCA1QrWJ%i-YpE zqenPiLOR!HoN9c`x9PDMRk61RYlIj>!8-J3@vH~GaZ5o4(S1qH+G_~(I-m3F@74R& zUqpMcP~#bh@}8Sn4UwofPVnX(+_Ljwvskxj-@&vbntr0kgf(Y<*i$+soVf2Vi9qT- zj+FkzY0`PUPq{D92%VL@52yjk55MipG442|NOUIzSQaBt#U1rI&oLNp#@-T@`5=7x zSP5Q^z1gv)e*1-W%oqJxz>UfYRb^S&uVcbJ_5ydGE4%yke1tH)MK>xPjxp4`@9#S> z{&-yO3HlA%$;o|^<*QJ{-!ivGC%dUmGdSMDUF>}8{8^{I>6JkT_+-|A^)uZd(7_`K zQxAsh-OxdTuv2bD($hfZIAi~yvM*>KHwvG0_TWFn1=l_nT_Lc6*%PyIN7f2PlfG5Djva9ZbYHMM=wn8feP!@~XdI(-$RprkHIy z{}_i#Ae@oKSGV4pHZ}qXkyOm|Q02!AXH2NSbm9F5M=*Sl->TksU zJ@C9QuN}Wrb>Coag49~>e)lE}bp1Rx75DxlMjN8|Qm1h=^s$N4*It_pDCzb6HtDJ_ zEc7`i#-W{Hze!nXC$q)vbgnto*^MXZZ|{v9BWPyf8K{wO_o~QWsCd!f?uENJ`HFq> zcxA+SP^b3@%qi)mn+DdS)-{&o{6(hz?BKm`ga|NPoV-3Cw(W@!Q}6B7LTF3GRbDx9 zo2t}e+b3W)At3HXS2i&a=ibRD4mhJ>#(%ei66)}67H+v>+o_m5!h!nK(ouiyV)d&T!I}&@sJ6rzAl#U!djspsN{sIK7`MW}#ZtzKOUw zlUhuRu2~z$eREEoHM-@SK$_)^j!u9Z{F8ZS(jJTA+OIIg7->Jvf*R8T25M7JrPN$> z9?k|D1J@fM38cxc6leu8xK+S-q*)p1a{qcbewKQZL)d+DcsIV*sn`4Qj3F<_@9y<{ zH=Z~v*L!RepYLq{kYWjhw=n^vFyJgR6F)v*ar&^8pJMsd!_64Mts93uMP* zS)bCjf3W<{Y%q%*y()lu9C^}G`k=MH5DNaqp(g>Rv~T6m>|biXt8U!#(A2#_}jyR}JQ>-%7m!9LCwFm$jb~p0t%+;zAi|{Td`2#`<}$*|w7Yj-4T~ zker>_Nt$fga)Yw?T$~x05>kgM?jxZbMrDsDMcFPrtB%8}g@#jZo&;5zhwBK^wQ+t?yW~#Z6v*tnP3XMhEvZcI;-~^?P%CIn0B#f z4sn$bf0EnMP!9%HPG8Yy*~g~o&8n)H)||Zhk7hykRk}$wi_=99S<&;YyIROnQq}>i zhbl9z)4$0uzU!=cZ`(W^;73T%?^gOdo-Y_0pWJfW&h}qyI;J1vJE`Doa$X0qjr+P@ zbQ*a^0qAy^njtW6U`~K3KP%+!Oc}r{f9$(ok}b@_={9r?ZLmpHYy2syyqQ0`k;$(w zHXI`|9vK~S5j&!iTni(aOcfk$+4~#p_AAK6Ct^J9SJ=x&e0_V+1VniEB=$q&Jj;4# zpn{pGxbx}>fzrjZ<8HUIOdg4vGG_N~?PO!lFp7<`i+?K799~Qo^Mf!&BSBeN4-At? zvCHz?w+)KB9-UTq#$}~U{P+}yV3k0sp|EY3Z9e2$QAh|iQhN}liJBCd`2V4ieL zCGaWl_Qpm)&t9Gl@NQjjOtt-5sCUEBZXJoqb17*&5xcOAt^(sANmQ4Jw_67Aydae3 zUABTzN?t};YR5xO4IXC3JBpEwlVav@6;weG{e^Sy9=$mpT8QCGHi~3m9{W(A-o%0O zXMh??RY#+YFQvIIuZR%{qIN#`5yG6#-DU76#OZv(?gZ)!r&+cowKG zrqDc7%Y@{#Z~^%IsT{{@PuzxQlIPtdsM49@c4RkfwK(@8k~gem(_TFBB8{LKj;Qkc|>*ZhGVNozxIlowb za}Wp^e=^+0z;zv1%Rk2j6N%uf29~2mX>{>uAnv=oudkN#LY`Ku$6e~t25e`{NiGnW zPJ+@tvIfaHhvhKisu~MPl?2j+R%t))t)*Pxt;`s{W-LtSf(O%L9j)t5D7ew9Y=5xm z(XkbI+gWzBR;+DNsjD2Wz1xhm&SJomJ(z64+_t%;7L(C9viX}A!5b=OT*IcIdT2lm znUpkD9$IYoHLHB4UuyhLl6w8;yBaOVkmP$&*Agd1y*B`|{C31W96Pb&@{7WKA+Tcf z^F+Am;|1eM!sku{bIcS#80n^;=I_%#bY}|nS^YN-~ zsybNNxw;-xx4K7QORlJ=Yk?15V`T)w_W}0tlIvxm3uZrijEA{JI%p-#oBf9vA)77d z400#5l;S1>&1?+cfNdQi^ttHjO}S;r&|?Gc8lql4c@Pb* z=etE>&@X4OkP5&!i?!Z#Po}vpP?^w7N9f;z4G*y(aq9LgZvGQyTV&hK1DB8qR=G07 ze%^Q)z>|P9YlWICcZV15qproAxR@&vLETGki-gUa<77e0t>*W9RfYr zG~mtXukynGu+R(HZ3ru0VjaEVd)uAgDC$?LfhpylG|@Qmlw0^6jULxh2x)@8%TrQ{`m+l<=y%&tVt8JSDIBFg#yysr1{Fmqb zV@rV&R+PJ;YCxhvc74iFoHi^8X_u`wKJ1%CY-@dMZnPK&s%DGhAA3wkCa4x*yuZ=E zRgi3aRa|;P)r`P=hCR^Bh{!h#f>r^32AoO!JoOmI>=5J zXp~zfs%nZvlH~tM+37ptAu$KnU4Gp$>?4uFPD?#MUD*aMOdPm3NW{z#>2R$_7&$y5 zU$j)@%S{jNk6MR{{j*mLj1TP{jzil-D=v41Nd8fVkVA<;w9^1#Y}8E7>xC$wrP5Bs zss8zKe^|wD3#yKu%zAlpi253gi8r2P6ARL$>V5Y#YXMPSnJS(2;JoggeHV z#E%Dh3uAej+9+IeDvg3gS3+U!^qz_;?-o)P>A4g+OWZ^kHRyJ&S^Ks}gb{ze|AI6@ zksb>H<*RYLs>Ko$7oP$*ssU&z3Jmp*sRz*3$XKuiR~k}c9V*!>+IEwxJV;Bj4-#e` zrPzFyy(*Qlh{WllM!KnO6DM0x9$91$5U;mpaErI(U_O9Eabu4V7$rCf!&rLM;bFz< zf?)OXeBy0keE)vgz0qOWeeBNxOnUC``9|A{gZJ=CoZf@Q?G>bWzl39^pURJMPY~Sn z2yTOBKe=<=RP_M`1cV#jIA?nftX-YV%01q^@OSg-b^RPQntJrSTwSrB0Jin;cs|Yp zy94ds4(&fq2NMr&Qe&%}doA6Li$dZ-GOiaHx!Hp6TE}n;{T`PY1 z5(-6ZOa>VzszOItCejde(*Kf#0RN#Gz#cPJhvSucu@KYQMK0fi{roqOR=w^s8gQ3j zR63iW$EeP9=C+uzl$8B*L1`{?alJnV;HUb@K>iQChmXvfpJ;Uj(XR|C?k|D$uVGX|S!<;EA)1^~LnszBekZ@!v zJkpj-r(I0YIBOh$X;P~<+mM&2rm&gT?_M8{9qlCenGhWE)y4lLZuhc^f1%c2W5O1X z5LL;Gc1X^{Cv^pZiWCw1eV~Lp$-|*!-#j}xLF!_*(r7n+k7c|j-6o}Ph4-dnBPy&? zR=4pmsFW%zM7 z9nu%jnC~QI)~*+$9S6fx<8)0XtrK`-^o%OWIsCiTnJk}vdPmI(Q|}Ns8iFTJ+@q6^ zc-+ArHvbOw)!Vt=^fA!V(**{z5^Ri|Xs?L&ue8(9R!`S{K8>r~xlExw)q7iNO2kMv z2;|r=(A0~t^rsm4cM@IJoDq~QauckRFxoW0&iFpC(yDd_Pf=<58bka!LMYxn10!D> zNvOl<0;JMaG?&viC07?n!4-d~M40dO%MAVV^Xu?%+-F!;ew(l-)pIi9c}@J;IR%o7LaF*oAE zpHKO_*Fv;y5{3k|*ngO|fY$jLntV^MSJR^oU%z+$J*$#jpB?3-?7d;;erf*)9v${q zisvV+36L>r#U~*Sey;fhGrSmBw-ZB*vqXBldwU|p-uMzqNTj61$vN?m;r{_!NEFvQ z_qXV8cHULy_+*dxlZj&v_Xm{IwdkH4!_dyNE~`1nU`SQ8r;GY89z{w@{4a7;&6AZZ zuo3I={WOMZ2XVwTJm0xx&g!%qpFQOZH3h6M;A{UGU~)PGd;MSbt^bRXIc={={FXY3-ZW>wY~{gp^}RAiv4l3 zh%e?UpGEi9DdokuG^75HF9m;R$(W~i9uOCv_N;~%Bh~R%c!*dVPK02+9wroz++R0Y z>ATGhvpvo_3yo`C5(fJ46l9>yklrT5>5y5-?EhI@Og*PUnAZ1Q&ln@_O&6CF4^oMw z8*8zl*5IgupH>gBpS80`R(Y}htnh9sw{GD6u?4mbewR9yu$EJ%?&IX4``k~D_6h+f zqXWgADZQ|rRcNVX<)0$u<63f(yup=qb*EhxCYa`)7j%94F*fKoH4jNbxzg4aRKrNK zE8I>de_HaGDt)#ypQLdolMbuEv-bQI-t6Ro3H@9($7-q>hee}cN~<0qr+y#UhB9K+1~8mm0vT)3Kc|IDj# zcyjoqe#M813F4V*;I<`r5lJ7>t50=7T&SZl9F^f);}Y?ZuE;1yb&94t1%cMbW9%IR zFu0Kc)3OJKtPIuKtOc=Ux@6#TxeFhZ0!;OYRJoXgjnmyYd3?v z0Sg%!os2fNu-utBBqRrv)5zWGM)`r$KJ4q>fHueM2M}%R;ML}Zn9-Z)OU6D4VgrZg ziLUEzTGT7X)}pxUwHKGvW~o31|4w+;5Z&^%iR;Vw7I%zJZ=UqUVz$kjYpo}BBR&QF zo}BnZ*2;J1hpu_J*UNYFnX$g-B7$Oxgj_n|)}v-R*+FUMZ(1LgRy@Yj%$4}6Bd@cz zRqrX}x0m!H#}l^PjTr_(^>+)|sjC4D zGVF$9?xdP^3*UnHhjMLX=^PuWRC8-(Ut5Gt_)FvLX0Vtf(r-RX7{Tm())r@TPwv8p zl-)KR)LPd_bDg?7k7wv zOf2TKjkDmJ_9gyI)%;+SJ3eGJUmS@)Z<77Pt{iPrGZ zP*QY}%9`3?SqZ;l8`vV0=#l3@n)mT^u^g(9M+4`ha?qm;9pr-7z>{N86(E41Xr^^< zK;Zey?Vrskl{r%Tv3!BkP&|MH$JeVpG8W#*lU-0X@P6l4%6@CSVJ5>jcrUN~9OsSY zHO;U!$1qEius&jEvmyltI$vW1{H{8QUR^&7|dCJ_Jpyq}nOXWCvs z%2HS>mL+_#o0Q8Bi%Vu(RQ@ikkjS^--F+tdxVWsgC;KP618n&F;^lEX_)hFHApfo9 zZ`y*|e~7uvUEfCiIU;cX|>c@&mCHJCNn8mT@KkFKFXzQBCxYU(w>p2U`}XvZ(q-@q7m#S=10?}ZKKuYx2g3uvstii&czdFsy7v_ zqqWkJ8j@-t&NNSTe+{ewVM9FWmUvPHQKDUbDmQP+s|INaCfYW3B3xVwGV_Wl6D)Zx z2^#2dEIV<#W{s)h5`*!Vo^i>0rZVN`jo2=1{S`KgeJ=VCR<1P05&pmrzui&Tx34?y_ColOOUqeO=a-M<$0+OCO2^39G#!bBKRj>g@V|5)nY)x#CY13Y zrXIT~akrSdXl=xohU0xiefLJ}>8IYj`a0QIcgqbjyn6Q*tb0P@{Nvf6pb7oKkdaf_ zG0iVr49t=DofMFM@W`*m5F`gh0~%}U`MGPj-^jTg{ z+Psb2EEDJBNG1cPH4p1RRDYl26zR5$k?iSouLP_v{)&!lgqr8{V{o}XUkJsVp?+I1 ztM))X-C$y4*`%9q25MtL*X$$_Ejx@H>gHSco~jG8&q5&#Y)-$8+c|18&zZs;%-G5 z>ePwwXqrQOVl3FPaf$bV$Mnf~tVqh|dp!2>Ty&h-cFgh#;_zL3Jbs@_Msj{}m4vgL z$)=@JS@2EBIiTAOE3K)y z=4^Qfdb$%rLsY`Y{My)Bl8V~UVy{)2S*LsTJjXG`EG&{@*okrLXGx^i-24I$EXDm? zb*R%O0oaIsBed`}5~YgMKcP^C8%N|62kl5p+%!{o|Drr0LUz=(Zkc>wkzu23+>XLM z@)mUcbG&PhYj11J-rs*h?>AoM5R!JH3voy}Z=?ay|K6r>KIRKvuKzFKB%N*jd5KoO zlwCGIq2rs5-%3QSNx#F)g=8pOaCIA^9dlrh?mYu>fW&6**sYO=vmh)VVFfPCU60GS@_aYt7BV zWCY}}oz7fkq;wy7zboV7X+F>tCvlC>9eL{W*apJ^Ac2HrFvt955TJH~Y>(ce-oK40x|iBL61{_C=SF zBQl$MCVwm9EWcd$IN6apZ8hTj(eEFwwlF&UJTU6JGcQ+7Jc?`-k7W8h*1vu^F{RrX zFA{bi`D87BsAX_?h#+!?Xonk9Y8<)J5#_K~#yNPLtGqOBF&{BsesxXF!p|y+sRK6W zL{Ua<(Ki(zRJUA^6sU7ur~^L8Te{mRMdh78no5T@_GP?s*nQ`6__LJPNY1wN#dr+b=4@sN0eH)0S-Q4JJB77i6$XLrug5Mk<$X-LFzL(sK%XH|DKaE>kw+m_=EGVxvAT^B2LWv*L|t;kEmw%hwIYBg z`A`{_%y^_-CCJLo;aHWSF&M*@#(;qN* zRa2NbilkCBP<9K0b-!LRRJLJTTs*{|IY`YQ*01l+&_CQ7({GsY5(j@lCnZrZNjkFu|S1 z2Wwe9uutMUOT|)n07FL1I67@Vy3@apKE7oj;NSsl6V+Uq5OO!_+AAZy+aGXBLf&f!8NqAv!-(YPdoCzd5(>hJ-Ya;y9%3b5#;S-Nio>w*~ zJ?v!Vd=|M*Tfz-Rru}RjSg@YJ$5Hmjpt?<;Co^-d$V%5193X6Q21{7GY#j;-vCjARLyZZSC#jD~TCDdT?)_jUDpx zIArc`>UJ)Co!u+=dU|@YDr%>^(9g-+n2npqykq{R1O1WB#gmzU*xuYb;cn{>ZKFb0 ze^L@g)tLHM!5m#1{Lbh0QFq?w(YKAYW443ChjdI?Q=GNkoBFBGy1DrIwMfs!-hz=; zaF*4x#Ywe?j2C%9@h9Q6mJZNYx<1WJLDe_dvA!yXaCrs8u;6cZ#+Pt%_iLq;?-=9+ zwYMvrdsf@*j^5om_Nk2zJassyX4Pv;n|qT~9|SfHbz2N0N~dq&E}u(IL4XQ+$;i#E zcWD3Gh0&#*F8$20mY)7~ZP(~Lu(5VB5y^g&Cy2cKGsd4N!#Pg)T>t7Ujm|jYSId{az%j9xN0y0_A)f$} zwNKy{TdyIj8Y`_k-=OhF1DY;@R=!Zact66x0!%pCmKaAcx-gqsD__y}%4@vUg|p8@ zk12}rfTVEI&~)Ppns@*?5?nRjXNDK3!##L*;8`EyKtkIey9FU}!%19NxLbld*tpC; ziJoCmut5zgYL(~XpJJ|CvPNq8N*>ku^)udnyjF%L2=O4gD&+OLAn_T-YWh%qn9a;X zG{oC~V8p-@TdltzO(CTY!aXmFC5Kp5RiB_@CBqjqJ84gN+~fzGxo>X)+KI%LfQ>XR z2J-`MWA;laehYW_gQoeWL3xPvrdEFsHd$7`;JN%_9U#QP9faj! zwrd5A7Sz@L$*2v1*bY|ZPlD~C(nDCE`#_hN@x&+&1hB2e^fsd%BM{5#YDXu z-e4Wj^^)P~Ya!?&|FrsI%r6+uS=3dcVA-PE=AIV3F0Ao@?oxz#l`Nua5o}t`we6a- z%9w7O^pE~<^b=zI@fkD$M{cc;jTw@Xi%TpXnsuH))D)2E%#ZHBO?B3yQgn87*2jVR z>QCdB^CuR`I<|;;Y*curM9Jr*r`nZiyil4P*6_hNceI<+0Wiw`>Ox>VtBrwUz$;qv zW=bT)##z;qe3D;8fXj0omY}0)H%e@X)SVTm# zrppHv1ZS6D4pR`Bhy-V=hJq{E%^*^+l3B-sZisIz9jH7^1?{!6JzEF9W*kVBklGzs z!@#J32)?qC+TjKQK!c3gCee)@aAwv?xu^~d1Y^(Mv@-u>glQYTKpeRQU^jW@o&Rif z!rpun>-z9Lx1mA#EJd7l@2i-35E39 zDI2tJA22z<0M0$_xi$!Oc^Tm1nRM`BpJ6xIkBXX=v!u49(Q{yg>W*Ug4F;XG4R%L< zIqzL(i{!|V{B0B7qY7Z`l;@K4Y|xW#MXcj^l`{JK6W?uQIR+BUA9*2yuW(nR#8Ad)NPDkb@T@HRg zigzDI;zHRW|8(I1p0GX1jdz+j2<9LNWT6KUAg8ls3_mjxXparRH4cg;)VtUnGFQ?6tnji22V_W)d7g__-H;t63Qpzfh0;?Mi#czUAKJV_h+mp|0oq z^-8OdRo?k;bufN+%laE7iMezU*~hz#YNgW5`IG-gRa@!yHF#8zp_t|D;2m^`NleA9 zrM`U8yIW=3L39LdN*GamFx{JuHBET+kx~$?eGgQx^ooUTEfp?XC+!_wvMNCKCDR;m zzw2elDYC&8x0Q)opVC}8&5((N4{WR7&bbgn)O_-i)4`P}mU053>3T1Unig z&8zErf$1^H%kp)z-TYG=5+QNTc?|p!J3OZC}XLZ#Uq9kcime5Kq>Vo=M}mxHIPo+)u!5j3KId zMw2Oz+aYB%%x|#S_bU}z%MHwQ$*hSaQx=E~ETR4x%LAcR`!!0V>@P=Vo*7{e4AORF zslsnAJFR$;hO0Z?ji__i81+0oK2lthZKkGuojA^EH!lKarfbI6qqAX7UxQ@3rYO~N zHfe=Gtc88IZQW17WAKePFP?6xVe;aP6wh#mU-xJ2E=`5N2%?j}gAw0QomW{g?5`@v`X`*j-FX{f;B z5s1+bpn*J1?YH@+)=NI6|FdA{QN1QL-v&E0s50~_fCk+_=@Ls7y~YxMNIXkZkJf|i z+^VJ=+rSSi8uWV#4DBVACG*5VN;89gp_0vlYh5dzSYtY`W)1KYAsWFG9p2dRUir$! z=5zC%V1OIrkWPYb{m3>ygJ7Q$oR&ESciKapVZ1blF+X zYvgQ{JlEIBON96gD>w`gEIa#H?SclQOK zzysCLK|>wQwUxd^^Mx6>wUy(@5 zLNyH&VMl=kM%vI1p{ZK_qTuvFE^1wmVpHs8$V`~WPGDC0?<-(^ zhUE!teKQ3nbJQ`&db3uWtcEsmJw9j;288W14q1kh`}}RZJLpgb zRxdP_rc!$sLV}G8y0EyrZn0Q`|31!%e`fVma#9Uwev$5ZjPq)qbqLQ;zZfOzmb4QI zR`rZ5xE_FGCW0D_RtNwFggsWbG6UdAMncXcx5K-B6u#c9L#QX~`%?avn@8RSh0Bts%7e?@Tb)i#6E&mmu>41ZVpM!U!y8W=bSK)ksyF`4H zVUyM?LV7HiA)*a$OaEPITN5tv>?h(ALO*jV&a9LKmWFTHEpr;ml(#Z`~J56 zDpkzF%9_u-UlK0cgM1v%I7h#*Xwt8gY~Vry(^m(N34|8$`q&gOxyHcREIndl1VcL5 zN|@AlYgs;|R@whl^|Wl=n@Rlz0Hd8_j^5|tpgtJf5sT_!I*?1d=q-S|`) zFf!$E#Pi>kGNU>b`ZGh4ER%RS#?Mv22EdHi)P>j2H~Y5A$Zx{&FW`33Xxk<#_th-E z@#|94AhhFD$*v2kt{f3gM^s_>zEuH7Fu2G_QhL!O?-g*Ny{VuCh7win|4IW%T3g5h zJZQ@c4;28XREo~UfH~ZIr(#AH!i|PxK)X&>;aby{eMQROgqsx^N8K*HYX(2l;Tnz6 z4Ldt*ukv_>*t3>e(L}lWhlWt&3bISPaMBukMnK(uo5mRT;`PhNJHNb!pYw9O6p4lp z_Jr~!)4$*6f%~!OGj(FkcQx+MxCoOKac_5?dxFK!3V^j(c#6C^@E+*UNTh|$h|CaZ zlw>@nKo4GVwVdQweGC*JjHVC`p_?X)j3a%~cQQ{K5d32U#6uWP+h;CPOgN*0z7nq2 z?KpjBSlVq>CIj5PO$DuQ~fL$LeJ5N!k=ADXxI62F1}ve1&`FP}`GVkE%gxx8-m z@0W`JiJ<-Ldakiy@`}(F%uptcyQPAxF`0U)M<*Chy+l~(h6abmLqZ7j=HI~b4?+RL zGO>}}I!d?d>^7$&=jv)xk!^&6QJ%o2Y-}X3>cRy@1{{&qq3u+ki0(kb2~!-Ddr_uM z@wCA)TE1&cE2I|>%y7U5J9b?(164dj;GSZ1v^3I^;|>p$MQ4H;6>Kv!J0%b2RHRjbK4^1PZ;{G3CzLm$pVD!Mbz zg2M$HP^d92?{QrgW!SiK!odzLIST-UVln)>LEt1Ca1+Va&4v5o+O<5P&U$eVJu?g| z{aHU)mxlcaqEuf`NI3=7cMgAbu#9WTvfI?M^054|CN-ccwtt@jz|EMXGGK;!(!f1@ z@I9}W?_PZjt$e%=q<{JALh-f|l>dr-f(sFi^hH+wK^}4(I(EEDbuKZspTo~W#3MI| z5G!fA^A|&VXfzY#Gzyk#i3Rf(_f+FL)T)BKiOu_=FnpsSPAIa})?pjp4GHf4fto4^lvHtmdErt(dg-3AZCUB6!4i&?mwK%Lf zBr=HhCCU90?3Gbm!^+G6l(00_J3`XQ*;1jh^zt3pJEjY}8owI>E8~Nu4YuZ^o8crl z-cU@a7m70cN$9lMvk$e6@Cv9qYt{ZA0DnM$zoe_xCSM{(1_QD#8)_kB0dW^tiw)U;&1Ty};2Wa3`DTmJ@ zu$IM9!gy-`!=sk0A?lwp0|Zv)S9r1-B&7h~MMl+F>N{?y+O50+irgGnKo>r4TVMhg zH~$CDdC+dsp6Rwt@sdrA;D`0}Bv?z%9J4Vb$Zp}+EEL#*kIbN~+tY=uY!|2CJk%sH zG2L2*65^@1*QIL>FZAQll~LRqUO2-bgAIU`NKHrg9B-l>+L=G>qXo29GoXb8pb^nD zROObd9CK!Ro+r(Nv*c3E-xE*+*CM_E%0kl&0}mQ86K+?u_{*7w=?an9!VG$<`jweV z(WKj<9TSH4Kno;O9gFrwLTOYe^8wH(3xka_6~lY#anrGAsVxht%qPlUiYKt*8~KRoP<3M>mP+ zQjr-rcfH)7v`;X1d^jZ6jLGa?U^E5`(6=ejVfzhAI{?vczkd$=@TK6!f0h`Ogg3=8 zQ&w`T;%Zp>Ros>BHc|!A_x_4VJn+)73CzYKq>uoL2#ZJ=ak5N_UxT?B4CIdY1FdD~8FL$Xrb?Q{LPYsI?!Y+bh>VbF}X(Z7QtTPOj^(@yV zNJXY*e2D!#{*+6nuJjO=oTfov5p6^Qe&(=_T}bm#@? z3(OOPH7K+Am{Ot$5N^(9Mt*Iu<@Utf2ptJGEVf+Wf=hodC%dhJ5B1(5x!$h^78 ziN-$3%}|G?VP#v9i7@|?`JR+uAqBuK(TiyZtNInG>RrLF8O@4t3)@exRyH56YhwvP zm>ceBPS{MH)UQ}%a`6_zfUL*KwPYl#dq-6lnIlOF_G7t%p0lxa)LP&_1^2MrFzvE6 zt4){p$4M^jH!P=HwRIV#UuhQw2xJDwq>v)%9Qxe5Y;}NeMnJbn{Po8;$uN z^4{bzILqPA+sdqo6xfZ#nl8d#z`!U378{0)Abt!4k6J<;l;AImzjM_|UD+!8vD|3J zRY<#ghGKE#vX$@ADEXpPn82NZ*M=c-`@zt&UMv@H5eG0+80!_0uk&YDoKOljjC_;;ws-Dw(F-*r6^Y7uW8lqu;jI=IaW&*{lIFx zp8RFA*0j;4RB2?~qDLL)dV7nI>8tHRw~syfYNI5LdLEnmW=79WZp@{o=Bp?`#Fm$1 z>W!(G1h$QdZx(@j9^UyV!{t}38xXUkK2pD`re8)+|Hst$6!4cY`>#TI!e8t7b4oU* zm7vI$S0EEKZ>sH-Hx>$Qu0dJJz~rFC2IU7Cu$VON*hcKIY-7Tj$nDx}y(nXrtzfHM z3WAEwI~T{$+Zp*9ET>P$A5?4JgSVRXJHko9p@B9t)lRtdaKa`m*=0?OH?c@ra~nGO z5|VUJhHjhAjL9ukc6kUti0&sA)FaB1`S@{yq*Rr7VpX-Q1dp*&lnaPad|A233w)uR z8AizVIe8A=eqTUDAs9K1N9W@c3Gs7LF52-%DfA{?PA0#`YsFx zxVUc8m@vKn;V!*i$<52XpYY0l-rnh3le(H{6nMV$8y((zj8uB(OWQ`bj7x7UN7XjW z6^^G-yb5DMLRVfP=ikr@>Hwg4`ABoE^^DdVt6_OYmb*Fq21yTWl&9TW z*;@v?{S``m&$4_0 zifr%XSWfY%pJ2iGMGB-L_g0GMN;_`{VYpH%${+1bZ5rp9>3A6M5zwm zc=I2mVz{B%qu}8~G??;IGSV-lx@Bu#&J}U{J_Mid8Rk`?NT_WFPCj^l!U6RVIFYBs zbz2ipvB%7AG0=U<$KZw6nY)1A5;BLa^lO`mNtklOz~Ca~gfvUzUtz|D&ONIwEc4Qp z2vHU)EOUZ3YSyiiS3Cw^oj8PnKe!SHvHGmETE$0`4iQdH(#}kq>j%>iHZrWV09DGr zJefB-Wz*$G=4R1V6Pdb2-g=dE%peI<0Zmi9_Qmm`v51~pv9EJRdZ}4zQwmB3+G_G0 zOQSduu{{w0em|*Ig)S-Dq_&zDi-1#9yf?*LILf}*m^Tsjr#jx;jLmH6qIEsAj;oeP zu6j`2j%glqsm1A23X6wws*L|yEj^B!2>_5%r?-}y$_Z1vlO$3)^nSCsDdM~^(PhMx zdj0^|Je4h=Q8lE}cgT60C0dH>ri?|RIhFci+4vl5@a7s znVg%WY!4Nkk@jO!&dQi~rLw}Dbl1w{HceEN^F$?&Z=7nFnyLW^d~9N4=xxN75Xy+) ziqzcdW?yV6Hg6I~wUuRp1ei4&4Y4vx8zf#rQ%tCcjoa28S4-Q#IdNmP%>*RbV`iDC zH=ed80|Td@z$Xc(RG>7DZN-gdLx$=f?)F#$<17O1TVb^XL-olJ%Mff3^#$!q)pff! zwD>VUn#5_6VZc6bBApV|i#_v(^)NYk&f@vcUoJE*W4zqEmpCDJgYM16n!0EHli#Va z2VYo7Jz=m2<7fzsePmz1O!kt=2rlfuar?yjB!Iws(v@|?{#>%lj8P0JEcn{9fihX(a) z2N@04w_(8wSnw{<4fQs_0My%{sJPw}g}1|Wm>21HV0;H#)s_Vj+HO_N13__oK@=CO z-_x8=XIA~dLNP=zUjIZt2f1JT7&~^@G&c8R%?QEcK@@Iz(ekb&u-*CTG*OkI`FA=iBYXz!6oZGJ`f>=0Mm7g_XWP0l(|=N zm^&e;0aUaJSs)1niIovJ!W5Dc8~_beA({!w5%H~{e%IsKgBRKLy_nMh(sS= zJm)Wn?4R=&Xn1;x{5bt1Pt6pu^eLhz@;VsW&1jSpt>^r}yG}Ui^;o$37rDzJEy1TB zo*#a3`r+5i9q6Cd&NU|y>a@sVGs(!L{;d?3(h_9H0Y+Ug)3E8otn~ucRAy%*0}Ya* z>#{w;+3_bH19@rbG}%|0T>32{!?Mt|$(YS$cYxVBTdir{?7ydmc2x zw|*2*6_~@q4*F>V`9rtm2rG54kC75XdV_7j9!+YId?(csjOHwm-uvH&` zZ`bt*F0Zszl?Jr5x#_TX4WF}D&PYo=XKU6l*qc-*_sY7d2E_Dx>tVq*Mmi`5f(a?Y z+_uaNvNJKGV+g3}D)O8odeu`!Z*WR=QyQfXqKG^x@Y7_Jx>GL@&9SkDA1(FydXiP? zv>%gI^HLFkZg%}&bg%j!Y^lByY;2#)%4K6$X=88Syk=)LFq3A(5lH}bdT-yhs8jVi zMaw;2Kf7tYm=qglV@z(d_Lh9_O_y2#`2NLvi{^QGe_}9D?x3it^l!=aUu1tgVb^$U zuW1)B0di4*T;Kz|H_TV)>K(ARgrlMe8R68(-fZZ5QMx`q5{P5YP2wN#sbJ^E(!tpU8|@@n4>GLj3Lq+_z=lg~xL zv5h$4VX-suzM6)Fn=EpnWN`*%vTs2jo_o@Xa^zX3V^` z`MP52KsQTDq5e~fn|z?j|vzxo6g&@PG^XZa~HtqSw}4Eml*Z+@)}w;OZdpAPcwpt z#QAEak6QvoPXtib>9INkOO{(pIZMHw;G|OUL&tf&fsRBU81^k*v;bzsAsbk@cRNQ`(2!~|2M5kDHJ-@wBzGBaZ(7OX*qNB@00Wkr zx&uVT=efgmJQPc(oN$Nm``nbd+i9Igog4&#S`&3fqdi-4nID-_~=tP((U8%QIX*6S)&c^4y0FH&~w`^ zvv|^)_bX1*1m(!^^ONIKwiRmC|CtDO*10J8#>LrJ=(c!tdU$qr^3lnWb6J@}^^(g# z&KS#ATU)$`F0UT4(6aU}pZ$fMtvh&mj34C|D{CDy(^!xA7+9ryCf2{3%kDfu!fuh~ zlLc?>+6Cd*iA-PPkmFVhG@B9rLTFF>uX{F?#gujaeY60L=Y*O2vi0maiFg#9ql9>L z-Cd8PVh-1M-T!J}yEPW8{Uzy@0gtxaVkL(xfTvDL};ZbHN=W?AEI#G%d~ zGL;2ICstnpi1@ti#rFDX{iK6&q|Z;vc^Ot=70_bSu;|{P8tM)xfZ=V`=u9RB5|8fz(K1!-?KAV-yd5nGVoX(aSxbnI4Ri8*k;i&iTE%*dXZH* zYn z3nk6)p;%o@LA66hvg9Qiu^sVzFWZXab9s3tYy3KKio@q>VG_H6AWgtLwdBn|j3=s* z{^hl^;Smqa>r&9hb8v+WEgI*Hz6Z#jBf)|@9}iyGhEG&UJ{>IYYdhK7%)1_FW>L9E zNP(N&LDUJ$X*|=AsF%@XB)WAOvG@nO1_~WCdTUZai{$ZSIcU}7Z*OjSEn;tUGA(jtW@U0^ZewLHQcpodO+ipDZDh1t$#V2G5We#i0uC%SNgzN0 zVX0y#6w41`IZ#xru{ARSk8LD5B%HW%=faKR!gA&f@+Le9UoVcvV+X=kRFSbQwOYM= zy-5G__a7XXm9O22`QW{mUVZ1KdxzV~92~rOAAh-UA^NsCF^@le%x~{|(0tI^YHPdu z?t8^yX1Vb$n6hn>cTF<2i>BPzX6?3kjAqrRK1Ac_i|IBt+BN=$>t8PVLvvc2#+l%@ zU2RLewh^Ordfl$g$>>qWUjNkkWWMYjFQxq9hpl~e{fmo-VDUlovAj2r9X@t=X@39a zI}?*#`r1dE=zZ0j2pY9Z$=!F~f%)|EGxNdqFVO{1luZPi=uaEm!hmwwRt`H^n5|9M zzXWfYmb`M8_}(X{JGEU``;r%mhf4fo;?D(T+SPD843po1QDM;a4+bpEE2tp5e4O?vKaY!H@@r~J7*pD?Zq2gyb#?n^*l2=d-q_Ra zBg@)%-PP_`{I+#{knq{1cr){L>jN1nOWA|N3uaNJp8e*=rLKS3ce=;b>EN|%4~4rl zRuT<=kjFhn<5>4PwzzL#!#Ct(q{4?@x_4^29vUF`*+Mg0Tay|_6K9kcO&}{EMG-HN zxQK1-7B|4P>9^K5`T4E0_ueIThi4Z8x%G|1WTOH-_OgFZ^bO#N5^em2v;8G|nCJ!b z_$jsl2s`zE$f1EY+A9Lqm)<=)W$Vf*$m znT}ehA!%H8LE#9WC~_q{-;pvbwRWYFRonRY>ig40`$78AHj(wS9}()dv^Ash*rz+Q zW7`H1_(`RXFo})CKc|yDeoW~WpZ~yhZD6oqrz}hbcK4u5LX-v+!P@M{kEuddP zEQP&EY#TU0Jm1<;ESsp&$?D6{C-&ZghRMX4!8d#vyNr}^EnssU0VPbtw7v07*=_(Z z^exARvW5;g3o7w(YsGj2lrB=X7q%&h!ltFIW4_;B{|r~-FBB61@x>e(MZ?M5rmexC zXtyRpl@D+|wof)L9{SM-Z{IL=)^{CNA!*&?ExA`jOs=uZ+EwHO1xfe9op&;zFytxq z@85hcsm<8IRWjMcp)H~g+qH+js^huv)P}19qTn1BCTK$6B=BKQn8njq-v&}(9cCOa zEc|2zK6q~x5?SP?UB?@n$U_|>I0>FSzJq~6xXzIIl%AX*L$X2(kM0{6bE3GX`ajE$ zZUmjRA z2C>*rLM!-2E75Skvr}NZ7hD?6g=o9plUdIrLB~!x4)Y61E+w*&hkK4{IeHH??L0(& zOgdX(B#%H*l|!bI$eE84z#v&IyR1bZOgvMK)NbKMzLmAK3Yal%3X+GLw5xMv^(Kpgah9v4JM0vFKlcAk_j;?wwa|+aASG z9?_3;^~DgUl2Lk-T5OhL4rn`Mh4DMhN^vw%ok$D6K6#CGiOBG&QXT07 z;M@SNY@I7N)ylrjFD3@dRc?&{;VTVKAzK(im0!io)hCLOPOqXEtzgi4MLX=>_ z6jR&QOB+mMX`QMcalp$0=>34DOEAg_C?XHi4A-dpG;NbvLCo3-xC3Ur3VldiyJxTJ z)>Z`tdC6*+-G}^E$ClT>C8X;gUUlxQ48BV{yqC3=SeDg00AXo6F3Xa4r2dud>%?I} z%1zqEVK#_`VT38!jIzF^e#Ijeu-M^%L?84qjpczTmFJX}M2*V4Zolji-*#Xl1i#i5 zsQOPmdjkjWoqh?hDo}yBx3h*una?d8H)3THOWQ+r$xV$1>`_<&n5Of=69}cX^u|VE z3|yk;GEVCrPWeU^N0DH94DXS249>=-;MnsHhxND;Qbg1GLXB|%W~{R8*ZBX4zyz-f z#Emnoe3L*B*6nndR$OD*nird*5j{kjPFS>`2-R%8KIN!Cq&`X%3ffb|0;u368)C&r z4^Nwcw>g(~As`(El(q*RaLOrAM!{P)z(^fnrtDj`)65peIU0Lj`{l_AxPSN&RdW}l zwWa&S3S{9}97`-7>%neav0!^{J9s-$XTK0xlc#x(B|O9?ssx;lP!T--)MJks>_Dm`RpKOxmcXic zZ|x?!7P)Ie%+d$(i{kGz47AudF~@gLz%z~iAdmmAdKZ~a21g=v{0|F@X)Q57Z6bbi zP?}v-;tw1^HK^tsokImx)j7SLFItZOe$ny-7cJNf)$z!fKfHJJ$(cE8Yui{uXj<7& zEfC#)<1&(hbX&*!a{f`nFv4xl3h?6WfaU@gut?*gKzUwF+rMzll2iQ3c9QqxO#4&oH8N;hG$}qL9!f$L2Opc1G+3%fx=?J`e{ zjI6CslqWOkTD6{oRg7&(bjpndWb4|np1y(La%YaBgOq9n?MOtNw7mzUKmP(bdMsvI z_<6i)e*AWB?*o;4P#|9Jnb+8`QQ=Df){RZ=%XCzyl6F&^rU!F%wE*d}w?X?Iq2%j!+a6W`%`mjk|>H9%12|haACqXPVD`bxSF1r4-JzvVd%jsU-PX6tt8MX*Qk-!r%65w$aMZnVe{k#@SxW1(M z59YIrVRrT&<$BuEVw^&7=R!Zuh8!68oX-gcpkGgXOKg?qi%WyyWYiM>0i6MTGi%$v zPW~Y8ezKIb_+!5$k6XH3t?(CT^jnukt}}K($IV2xQL)yz55jH^S8BiYlIUpdAzct+ zylGP|x^|Xz%|&}fIHgk1{=$AI3Bk73iYm$uGM;cMxU?5gL6*nMZD{5?Lueaqu!A;` z18cVw14e*%r{mXlwW@tHN~eVBA><4x=ECGiUJbo8{9TyX*e-6`gr6w*o9ZB-`fUdD zBUDGm1#O7&u>wzDjdRRVGQ>Aee>p6kjt&5SdYj(V@7SQguUCH8~+B$%N77P-#3Vl|~;RS2VIqiDTN(lKT|x7r@YE zFCLoku8+<G5OLGxi9=2e-!8aJ4YIP?pmm*;Z|@ zkR}5ouqO7vw6vRi_o`W3mn-;Z|D($L_?iEu@*ed>1gbVEby6Vz?PC1TsVflvN3=QF z+bytcogCm z%n64%TE$80Y_apA+dC1~hdeC%2Vr;gyX7BU3K7FwHwbQP4%(JxZu81ed9YuR1_w>H%SeAJSGEobUcvh5_E9ekKv!_6=e?S7gF(isE*Eh=^4GROgQT zdiOg7P1Gwl{iMP_=cpaY!}7u%FHD{WU^}l}wRT~~xvZvc60>6pzD(FT7LvnJR(fjX z2Sgi&my}#YpIUh_5I!Yc(Uqa`O*Y9K1tBvPbFx3mcAPf3rU3)UqIMa92P-SH+sKG$ ziq~k;)o>gboE&uN2{ieJTp5?bW!*SJ-@l^yYHEwUoGZKbLhip1i#Kw)`YVd3l+`7s zdt{1_y5T9iH;^)TmdvatBebk*DPbE*G1t5ia$aAtZw6-*OiDbp@2Z`rShw;Q`?s_N zJq(sA)5+{9s`D2)h?nO%W>hGiqluovQQul`wsiq7e4v_$E(2VOqvl6)yBk&(hPYc8 zWyko6EIYv|sXOXfY>?nA8yWFcS@|kjM)x7f2YgHVJq~Cy{Yz^)h*z}C{Yq^Rdb@5w z)|ZIU3S1A3U@Ll!rI^q>%9oRC8Qv)nf6W=NmpJkGRFJH=N`3VCVKiSsm0(}{U!D|q082%cPGUdq=Gceu;`)yHLsm?O-%a-uOmh z(frz3b2L~i+m=WRA+9gn6?TJI%xYa)E!Byf3^uuq_0Xjdb;qA1$Cl#XDU46m*Bx7zhtVC zUO6brhA#~K%Q2n5S}gF^2yo?g7Wz*X@+_>D7vgpQ)HX!gJE2&dBLlN|E*v9w zh7-FD)7edJ^h9Gf5{&;cStBT+1A~WCwmk#UyMwD$LOOV!J6}=&8%8$MTPy zPXmHlc)f8hqj%v0AKqesV=&aNX&rUty|F?LRZFTxMDEsxo{9Kd8ov7D1isLx4#nto z0z!t~B>QD6m=OtE6jX0TDHy7~n)vqWttki+5zi&r5^6@bXR~nU*uV*kgZ+3RaO_~= zaUL5PzO{`9Gt(>;-@eS>et&-P^$)Ml^NZK#7de#T6i?7(E9Q6YKUj}7_Aj5c;6F{1 zulS@P_k;vVy*D{z*u=pv+({?P>g z*d%cBO$(|Ts6;RAibH%e+_z;;4gm%EJoL#)eZw-4_ecb2i=-ubJO%E6DRATi(5eVB z=oDobVa(%OBzp`3lK?yK8WFe&C2V*5VDE=q{q4kHGg)CQ>9YeVE<5;v_-$9iP5jGp z@H~o4VFQ&8A(Gd&)z2iuXMDGx-lsHeM_@$4TnbbLqxnu@sBnpa#USb(x@&{D5s~d< z-~zcVP`!Y@b%=VXIq}y4r+v#nn2ChcF)}t#qf1GnD6e>?Wc+yU&lC3$SVrQ_G(HpZ z36MaR@tjLy7U8B4uZc}#$gS78L6ATuc{m>_-gKw_Y;ljV)=_gEV>Siyb#lE*&XsvE zT5G1oFEFkX6_GOal7vyDE>>e*;YZ{`OG=6avcQ%czpOd``<;24irK?BvjokwDnzpn32i80lw3e6}`YI@c$Vf;-0 zfT!(al5Z{5;k&XN+e_`$)C&IL53tkNTic{Kw(exkp)~lL!4+26sFM{^=ddUF(qGk> zr7s?*uTgm}aZ+&L8RflAai4Q-wKOvc@1tYGD@m19`7xYi7Mz{gmVWy5e6Y|C;V{Mn`M-BN2J9nMA;eB0#!ni+fTW zBQEO?q)XqqV!Wp7D}pG|k0DgXFO;8G_;UX+3E(}&5{Y7@;_-%j$}Yt5Qp#kwi;zx? zjK2Mz&teM}TP+@FNcd^tq80ihq_y`Rs%+yr@K4fHuJ8K+HMjJ+vi*`U+Y%dOtzB)n zlC`YT(;A zrCyV=%NVFjv!AKu=X8X5u|e8jOoJtUYy3aDEgiJ&AO&iw+$1fMIZP(=T~p~}MG{@( zzK4f3uy5oUNVkm2I;(s}grhgW#mr+!8``7C8`@(uv_4Kmx*#qi2*E&CybPk4*R=s9R%)&^bu9T+-@wWx4m(aIi(o#v~*y7um+meF_=(0;F}; z3Yv*1x~A_nDNW%CH*P^~z3X)C?zS)pv% zJLO_+E2)c2jA{4ID;U?{IbA*@tOH@qV`^)%&7frrEJeasOZP*NM-(KKgX6GXJ8D)$ z^uO>HEiPGGq84rIg=*>y{uS2`Rs#PETOX#I|4DHNSnm$+<>-cU27vsy+EIGBxLXLl zpDs%68mSC-T3=}!Nv|y)VreScHLmcmtao5Ou~6s9!RO)Le=G1he4YZ>g!!K5&W5@= zODID-CNvg0%uiz4#+K>$i7eDZW}za>l}}I%N&q#5$?zqd%dtSSFxBIW7qp%B3gOu{ zRvZA`kEr(C-aCBoPa~%%~0L0UGq_LcXD@7nSnDU4N^=A?3SUXVchd!qSfk56Mb5y8 zy&Cku+S3W)DKIhqDN31?)AfRlSEqw|*k?-E(bviN5zG=eTBn;r!7v!XdJZS%B@w<7 zj>|g(Rz|C0$U@*g<)$mr%0x=BTiPXPkU5_PK0t2;F5BDN+s}C-OB0Zh{0PjBbmqZk zXeQhAsNik1Pm)_W}yIS$II$^X9b%HcA;an-PD6J`>ILTUCDpLv~G(-v=UjdYFgK{ zWwairjPMO#zRd6-Z@^4M>xa|tGP>lwS#k3gu8=j;+84bvZH1<%r^V`eQ}^@=o7<pVj?q2x&Z=+flyuMpu)?3V69D+(|L^E+sn2ODiGPJtqh5MH_ z4|bfj0LksIo-yGUSSj;Y`8yLNKQrM z;p_M`IS>bddJ?y1%O!4&9%4H}y_=ZCysr2m@L2e{!j_1rXv`Ga_5gh`WEmN7%S6k- z#a)B{nRTUard_4+IyxrJ#qp3(<5>G(+1@Z>ivc=qG~g)6A)F}Es^v8^t?6T-STb&- z9MA-NAFD~UDM#JjBLzWD`yCb3gzQOruSh!a?!2=#dn9!Yu5nWw zhfDA{?;Z$MROr#6YoJjXM{j9oSZiL0ZLdQps0=8%!r{E<^%oR>2L%~!) z;rX@{%p8A``2ZceFg~kW&im+ySCGOiipJXMMi~399MA7i`37CBkeUxyzcc0i@^&wC z&G-?3h7H3719iDU!auDl^tu;kUH8+pT3p~RA<{BjQ!NZ1#ZTCI2&v7KU{2AU#d2oO zWM%;1+KkkW1YhHT{|=-4t$gV7@6VR!Z_m)qy*GUYhnV$+1Q~<#LoO^Cb3t*d8hbgQ zH(U9&>FFA-9r%@8BDmF{GYXhw_a8~LlXuF3bt7p@H6%?H;ILO~Ar`4ObP zdk@O2<&F}p-jzEm)x)lDg^k`;b%oMVc`M@ZxEqJ5ED=Gl82Mv11oqz9MYeeL_6^hn zQX>UB@*g_~dj|&!?+-4B6*EQF{{&`$y9|f>U%W=Hs?yd<7_Xwx3dU1)^~fVD zTz7xY=Pi)v3?i=_KFWA$Glip1{-)L2|BqWemZCKaD&kQkGC?TtuzywY(nlEZZD?!i z=bD0qq`|9*ADspw7oMOFsLm*zNky~h&*2|<-ZL5QM_Jhzgie~y$CF+Une-YWrRd$0 za>l6^)O3hVsjd_2u=BOy`>N~3kQ7{+15PEwc9-@_YU0rkZ3a{~|2x+*R>;tjaoz3l}f zyr$*mmkE8vC>yM(FexM*Ii1CKLO^~Bdv!ewi4N<_t{bt6X0Th zx%FoVCyY$E^dRti*Y!48iKmTc{1)Hdo0%jxvNw^1(Lx_~@}VdR4C| zgF%HX8*%BHS!36w5LeW)mDL%q%u+Psv%3RZP5Dzo@UUG?{GCcT3A2o5sJQUV_C zA@w0L)zE=D&sbLnpSgC&{)Zx;F|rm43*H42!`dH$goifL;&}ff|KW&2Nrp+To}`3U zg@Yn2D~iO~rDGi={2C;1?6d_NST_}y=!uOs7b|V#mQh!mj}C(33e`wBKX}yFtP(Pa zHRyVoWS4jI0+^Bdc525?Nh@${#JN${5MqAGo?|<7*Z+oYFW<2!15p6fPb)2NCS9k-^{a7ba}!4g_}*B#`)cK>rgGGPf!Zcok10+0=~h7 z5P1R~ku5FL<|MBswe28EAM5!bDSuLTZM%&WLG)Mr#6?UP91>W95DH6xh$SEvkl+E2 zvu+kcVh7JSuzU_L2=NKL!H;pO>hx6i^w{Apfds_2>05POPTgMQ=IM(g0H>?%6>E_n zz4BuI__lPj%@f7mM29Sb8+-?r#v}$02-x9u^H{3TMJvF=p!S&t9;CZd?_&&uM-|3N zr{|w`lwEIGZ6HIhyn_nGPXSxmV{vpE4(`jNtI3<`bPAsTNsx<}RS$Pz7G6{$4+$#O z&V{?3GDM03U_V}{SIfp(u;a`C`YI5UVN#kjGsN8KG1nbThk$$F%hDvGXZnu1SzJLL zq(@+tsH!I`nh;{~TIj4_n)Ij`^oNb@i!_8DMB+4fy4hwYqKv2PLorjtlRt)=g1irv zK-$d?UwCY`B;IZZ`5@HZDZ$H~QcZ+`v=y8FK8nK@))~b|j8rPs^HCeXE{|X3KWGYI z6gLJ0dfXi*Y}1{&fZ-5`NBu@U3Myhf*7qbmiB#jl-=J>+dJ)qbG|niy$|Ke{eYYtp z!hJGP463L|2$r#vjK`Z?>)ow!JvcsxAB;X6+?6jKNJF*@%nP=T=#@Z@o+i z<5FF;*4opi2ZfFr@#Ox)PplQ#(B#ERlf0#~;0QaIYeq zK_vOr1_0|tHP)H{lZ!s zurYt0?7d;=ZSiQl_GkOH395|kotp=m1*J5E3J)z$2EqdjbD_WGPG)ntYYkpD+r=2? zuji`w6*MRkCWM8m-1m+gb8@>q--EjgXC#@zz_8Upu{ISX&^>1E8>`d_mQY3Q(*)J} z>PoPl7(&7x464^E7z$*adiD}qm-ojs)zSn!{-rUr8@#OwJIUm*wWwl53ydY|TZShx zbPsi?Yaolott`rv$gQ+_$q2nZ?y+U;H70}bLmQ|chtfAH&f|62Gf~7yT)nAlB=k@< z%rd(+x@GtZXo0nrw`Tl#(gGFxA|OqZ1Lb8+UQomcdFz%zfUQ4ZBlcF=JHuv|)$iuE zq)YUragNv9&L>DsO4=epRdYw_TiccxgExin=FHUiJy70k`Bx1b2eaA=JNpu6qZM@E zI`y0jtMCxjy*_*k1fCaAPS0++VBdP8gQ_{YdQs&pzF_a6bIs09mZv4@EJ~%cSs1kJ z0sMag(jyPM%k+V_?y*bPZGcEDEsywi%bQ9rhG{kpalMlAnHED(%~rJn2bGvFHgh!%d3T&2suSLd?1m9c^$XKiX16cQj%F{g`1EF$KU%21 zY%{@NR1bg!iF$a{=?CYk_VS6qx0bzI8Y>OD(C_&H6)mP9Q+5$=*s`ZaDSb6OX5Kye zGKCpP>Ujxc<^op*4p2oTqRw)JGq}Sot#S%v$+X^bo4a+}&Fz753V4e+!+H~2ao4IN zhi2h_F+^4A7L2;mj# zek?U|}@NJcXCW&j43?_8@ zY71i7Dl|l~#z`>8SHl_c1uDqA11&9Mt7sIX@6_|_>?3WVR4Q$G?NePKew|XepF$hk z6{gHC_CNBLjAw~oNcqu;MZR`H6f;Kg%-0wvFo~r?u0%pTcDkgKUlJh)4A-M!AJ}Dy5I77 zCUd-{xcdcieZKbxgcb1*T4nUEgC^WSc@(HJs5b(0A}i+XMwzjb5O%0!i~IaB-ehro z2`fj1f3DHcYX>A@&1?obJo8q6SVdYBtkqC+h;&A^u!mC;mn^0I&^ZROhkm6;!cyX_ zyv3JLq;uK9TJ|SIzw~$9^hf(W=Vkq`=FddM9Uc93&pP0V<9|hsPf#6g$vug^=Equ1 zHP1X+r1P3Q_0(i_b1mrw_UmVhfC@(ydjKkx+yyEw8C9_6<^2@xsa%7gTh>^Dels_? zqTuwv_>r&{$G!*V+8nMlD@E7)T_>+i=uI`Xj4vk7O`@ZfUkc#!@~zU%?tVsk>Le)Q zFcA&(0v;zWzdCUbzWCzH1BYNm)Ns4H7QHSk!0N^!$RZnnMwg&+_oDcrYB3k4rf4;F z9n3P#; z6zBZIX2#(QW@b!hrh?2Y2sa|*?cHXEx36*^TC@&BW^VA&k33Y1jgR$nO*&Pk#!S?N zFu|Js(Qsx@6c*ly*)EV;^lFI>6M`g9Ko*D~ z5B0nirJ^$H;|o$~b6=a@F#Y&ck^nvs#b+f-2v4LjDmkz*4?O7rC<(6B9W!Oh$Lvy> zMmFQ-L+hsfv1EX}8E}7PqB8Q8oPs)D%r@ca4}q9#8E>WZ+Ru{X9oTr;Y+n#2@G2R_ zbSjvLr2xPgC?=Fi6Tts$LeJDW+KOQBo!AGU$?w<>9EyMYC1^$+gkce<_lPJoOQ*_J zyknCXuQ0pPB%GO&oiJ%@NmM~FhwwfAuNA%)ax$u=&O1hDz&$oREk5$V9(kaT%ywfc zXIIuNER|hv8=|8zq=4=Kw+SqpgOXX{?o2jVKRU=2H&_inxV9e@N(~+-9G>_YE0&Ot zX;|e^7L#E?1AH44;0Aqb@6x9C30ITvv8**Er*Q}N0}qQk4(t{i&C%P`AgVg zDo@x4DU|jc8oi0xwy+AUF97?(PHQEo%vNbD_VgAd$M&dg?fq|;-Ioh>eamod-F89+ z)~%|oh;y=wg?!$vzZL)ZCx`VL547Y0WfFw1nVS+~&CDPLEG-=s_#)x=7Qa=eRYW8g ze0~>-z!a~>KWRR}^v-d!KRImfVrHTiP(1T;zDN}XT)@Qumgj}JYU~&K*2-TCC||OK zTHA2c*8!Su9rvmByHbM_;x1Ia>l5DGT9{>Jh5CTR@_|@TcGVVQEZ`PEynyxKe#^x1 z)cLi#>n#sB#Mv}iH6QP1?COc=J1YBCFEX`gddEK${X77ZMCm}-{Y+De8gU0{q(v$s z8d$T8UmD0*8jpS+1Rr@Fsmk$E3N24wdSP1Yf6M#Fi^h0*%?0tBW}WJyE~|0}Y7Nxh zSF-!f5w-4!USyrnDr~<{gkPkJLwXprpgDFr=LRaP^H_+K$2E2m?;+e|a!&NRR{WKbGPAsKq;n?m6=-$9`}*u)3e)Cf?h(Y-e$@ zX`~|{gbtAphN}XKW3P6HDpUrL1cdsPr3@2!R4k4O9AQ}HX3LgxAD!Bd2^Kh97o}QT zNi1o$0rp@9k>uM!JgQM9Jrjte$@fTqOTL_ni@tR?HFBazF_Fy0%zhH1B2>0!$ZS1Z zGIIl{{6>mnjV4Fo^S!d9kHeRaYyEG@8dN_1DgID;QZmVL*a(+m$wX6jMbVxU*ka%_ zUHv)Yid7nFl6Vgx9Ob7H_F$!8?+esYMP!|TgsvY4U}>_Le~=DvT6*rPiDg~;WN4aK zb>iUZyLv|a-}=+Hy+0G)zP9xMa~&tI#>0Y`WQ9%B-d}x{OcO%h zDZNg!;yO=hrc)Tx;4d8Bd{s*lV43S>>P+LAIHpqdIblYXbwZM!!;IgR8grdFoVGw` zBol!|(e#lQUS>PVQbP9o>BZ^n{Nkgt58pbye>Qvb?1Qt5H_tBapPxMx(?9htk^ha# z6A-f-n@Q_vnUHo7kLM;xZS=D&*A__O>_Ze>vvaiBFJ?;#NDMsWA$gNkAFpRf+9e;< z`zNUK>@OgXIYw-wIiwEld7fV5%gZC^(qQl_oK|*Wvv5$RsCd~MF}oG^Q?`)BnM>va zo-K|hitK~zffymfcS?QZ`>$u=>hT~w zGS4-I#|W=sReKK><6aGJ1DM_7@c0-#`&TJZz9K*#8ViiFKX`5QNP_Fe@MfvJWH1Lc!j&Z@Xqr1lgC%6 zO=Si%Yud0X3PE~NEA+~+3x@F3RrKiR!7^3~Q|UaO{L4+BhL@&MGrI{8P#-CvKE~*8 z!_gcUI265w% z3T4O_1f`(OVinH4^EVlalhv+W@p|c5F5*`jTDRoB_?BQszVHknr>`n&m77Cb!3Cpl zQB)y{Bc#N2GR9!gG0TOeZksaBOCTlhZIkZ;F_2nqLV6jNoh8e%Eil*0Ho^2j!Ti7; z)o`|n1ym9ABf#a*6kl(GCOAYuvePR=)WHM9|}(ZC9$&A2cqNplM*CLA2*6-r9jrJ z9z_tJ&l)zeSp;FO88578ij#MKl38Y{+T&oTddG9scDYg?KHeuo?30V|7S*!!O8LiF z`2G+_p6+Pa9Spe4%%Ls$NHM$uFetT9C&KwcaUWqdDfW=Ffs;(Jbd|E2M4i&QPm7?e z(wH&L@w-t1XPG?^fULg872IMIL4p-4@3l2GTHkC}cav>p7s>TD?yo4BrlrcKZ)k-; z-sw92OfML|vasWKczQfF1VYe#Ze!c&B|dBZrHI=2?WPc|bBJyg|y;G&Q1#-W@t4$6T##$6N^BwBWmuOPNtg70FgdV zR5d6N(Iyr^FhrjCQ-!~eQ(Sbr(r8oSOx$RE;TPO+e8_E*O!sACv`?q@E5;6&*p!kK zubVEn2#`uQ?HEU≧̸y5tD&@<-w&>Vg)iKP2Dlv4XX&}g{PYMec&Wi&T_wWF{fem zATHCj3Xw>uaY5g6MF^P5f1%6liF@GLx}Ff-|SigW;6M!vb|f zyl2;owb;s~Pb>GIRH=ula z-F-*)QQu2VhUdiY&SJjTw}-+z_}L_ZX{w03KtEs@ zIzutXahcHVWKatqe8)+?#5z#(e#%Z2&cOE?A9VPz1b0O>P9+tburT(&pI2`_=b2(xF zaIw1mM<&0#mxsx4FWn1Cc6|7943MFn96G$mMQQf$LRYs-^b($(9#8Y(+;X;Yrf}|vxQg>~SeNuDajY!6GM ztTHPu5F%0fW3BtV^dwNhnAXl1c~5Tez|n%ssESSds!g*=!1b)AOWU$C76rII6sn5d z@=DF?^^zq~JXTY_<;h(b$IbXbxIKOt%juAf#yt>hvCp1a#L(1a7c-e%+O%Gr&6Ccq z=0drGTPiNk*9KgQW3PYXgn*^A+rz)eny=B(heD; zE(>}gn5 z)1mA@X^!WbI~5iJR-@^HE(<)iK)-sqeT=g}PVTy?M*}c|mLyRAZ@Mz81QOF3gi{o^ zWGc6W*_2m%AyT;*bFvQ<6Lv4nn_Se;9JYgp|;9f z$)yD?Dh?UPnS`=GS)Te**2TdN?+41OJ7DrIb@1odCj-_Bgj$|329j3-RQR*A)423d zC%UG952>L%&N1fO0|ez_BNky7ze#g7feOk|-*846@h^&(wd#+_V{MgZ!wf4=h2#K7 zva)#S9%g7|)hs#(dA zQB-+lWrpxwz#Hp4e=1M#3V5(Q`2%ZLZ5K(b2Kk6M7xy2WGjWTRh&ZM_VWmieRqhcUzDOJ<51^{bQEb+& zDVSx^CcL5>)-Gj>_j-1{wItE7!R31{3{x${b2_=6m@Q>hVR-Q83UkW0|& zgfPRAdm(7$H5*+|%x4^F9^WqwOF>T;D^kmVM#e$9iz4IxloF1Gb6_j4WxcN^&Bu-x zJOecv+wp8OS#jm<_L5~Uu^zqHnO%peGX?w7N=v6QwX!HEUDcMJ5=|5*tAf>&6{QKo zX|A_y={4vZX2Ysip1(AF-_9|KPBRO& z%?yZqP~asdjl&c}h$yuUP!XM=xNt?m)X-UctO}InHS>A1Ec$@W)I4-&2(g~vT5L+3 zt+8s}TPcAiZ%3b9XnAYhKQcMV6j6e*nhzKa>p9|UHHXJ(x6&nGSqzM+k{J(*xx{H# zQ617R2r#IuSRAVXG;)>hqsrP}N&bAT zKpm-^0y%Utl$13a9_yh_kPRl&ylVDTa5^!QgF%ndI<8QTL6+up$E{BN-7G@5vx^V) zfc*t3yeJzKF+W>*!>S-165Fl@AGY%^0*q=vjQo5LVZ^2kRbFzs2U@FKR7_sJm%h(T zBCj|RIxdY${J^o{F31yCRY6Ydxni7$tg+@nkU{C*=((fIz5HKCTq*kPG(p01vWY~X zq8|Lctv$F~g4cg|9AXk4Sh3SoF=M}VMmGA_m+PwqZD5;pLmACABw|HK@6(O2nVYku5_NC`mB5;?{Pv^Q-IqnVG86+_A1bvo z`Y~3Kz4ByU?1?bLu|-q;2%EfjIoF5P%1UBZ<^&nc-|=Z`jDLaaB2%Uk2eB+aZqY0g z!@8laRz&ms<7Hl>{m3s( z);NTh#tVFguCxKl3$_31P!2!bDyTjb(=LqNnLZ!wymuAS?st^VRsr?xunHi?ci7++ z?>tbz`3=1d{_a~Lz%Torg?Sh}O}-uSN~y8c8IV^~+Ef5kec7o;(QI!cUvJqiGVkT< z(Jx)nh>`^<&b~XnS)N6%_plcrABGk&DNU8tK{BLN1jB1Cvim`c{!U|EXB1XN2)kquA%E7u6EoZY)7Y?b?e8on~ z{+{UjavjW1Ch~$IPnGA)*k>-pQ>BEx`+%P0$wI80;(S_kLjAK38`tLn2_jrDwuKuu zE2ltJ+2Rc`!wS0M>G{RQ*+;Xt&o0g$oHarEidPy9mDG zI*n@>zb7y6yYGj0+;`XboPYc&7Ep>!Z0RUx@YD1axyn4B80bn>2zUg5&0*EU(3wj%*CPwOkD$G6RKRpCnde(X8koL;CqngW^11Gl zi@rJIm*P)}s(U-J4xC}CQN3Y4TABUEYWtinHw!${(!f@WOkc{&&;!Trq?o)e7@ruc zc_%C%f7$KUt<2qcC11)dXfJcT$eB|bHyyeRTA?+eIHoc}7+_3=s$x8o9PV;MlYOgg zs4=Nx!}eNw-d~f@FJT^K!?(gqYRHVsO=6=d`gxTa_;&AXdubd}cy$|<_`=T?2`B1&9wI$FnTbB>GB6J$t$ue(MX}O z43>fG?yUhOk|yBj-n8Rl(1HzX>&Ogbo-R)ulu7V#fV@?u65!b9IEXmb=V2*oPu>Nr zN}H9iRRU9C^5D!N(fFQ3oA6|av^d!~CH-S^d>>8SO&3k^Ldq3>eb&4QY}^cSmq#AsXd`0>|L_}9ZrZDsr7ZzBp`)o4UalKRhCE5OFwqW^CNP7heyat!Pteu zZO|6S=or~Di7ogkqFVc;f-m0h^2<8_*5m0oz{>@am>0on$n5 zP*iayh~f=OZ{`GJoUMJLR*H8*p}R9iD=Vwq#?qw-m0RE3=yJyJnCW49q<%!mm3d;( z2;N}Vqt}?2%~pv)OYu=R&!}P%JV>5DNvi=aZbgK6RX{HQ$V7~Umoj}XE9jD^18o%S zIOstVH|g#^;ln#l_?17#tp2{;HhnR>Vsq@LMzyH=@6j-!i*^sAIyYJgt82{OaEaisq?b@-ux6=7cj`0JgBP^D^JyxPD)&yrp)qq%fz2F?$$6YO5PH8+ zjc>*NvNeC7BW%w2MoqABhxvC3pWsts1%DP5`K8C4{an4v8-i0WtyL-B6QJR_JJ> za*!?2B{2x)sRV;psC?RddwUyhZ~H%Jux$U!x4YlbuGZVvSH*$J ze}gB66Fj)E{3*)*9d5XE^x-y;sv-_UpfVOj+?9g&&E}fUtusIq$2eyOGU&xYCx8hQGkd5Y+y@Xv&0u=k125r$a7*Z>HBaz zM;~Q5B%UrT6JeNCpJZ3wceyE)sB~j0KKUOG=Ck>d57uAu?*BHI9C@8+eq(skX?uC$$IZ#Em^N7=ryEVE!t#!Kb`ax_5TwGbi{cMg-oW> z2Pp26p!i+ZLT;7*Q4gD|DVmYAb*E`F)pnd?B;tFttdaatm7l6S&S<5;{6rwEZXx0t zgg1jicwvK|2T(2?TTKVCy;2e_syRr#%ut}Sx&J{LQ}yFp$n4y z4>rAoY&M6O0H38f7o8S!SGQo3Pw;6DfiLf$FsUipNV|ZurA%tlXP2Le<$d|qOz*-Q z57R&mEtS2rFk(?AwG6BHNKk@F2?`tc1up^ zrV_&P$s}x-D!AlB*dTjo3JEr!}u9qLTK5k8<=8<#fTRJbH{am*;*%F2k1`$5W=+JTX6%xv_P7 zSWg{^Cp)Pe=)@Xv1@)cc2)&t>%}d-FDY$s*}|SrifhnB09O z&WD&2ZI}*}Zkv60BZ3(Cf%SEo9I92_%Q*u|G2@KPsJyI&p|-0rYgmY`qwh`Sze5yv zxD?BT#L5!;guoiXE@G=JaarB-L5nqPaYLkJ^K$=C!Tv$?RM;h@K?xpc7_w{sF z;cs-)l&$)e?>sJ=-ra08dot_Ije5wo0Y6Z#1ZGhmKu8K=y+E1?b~W26Td^&C=W}_A z=HKhCxR|C+fEPjvbOhFF9w&X^PGgE4j!fu>n8(}>T!?BxKOxz13u~WdwuUB8mge9g zZ1f9?9><{U84-~WCae+P&~6uNX!$_(VjMSH_N6x@RJiquzpsl)1jZ#Y@IeILP%s51 zg0CQ_%*{iEiZm1=Qbu9`xGz-zftalP05%N@HOp?LVXpTXyU_x4-9H`e|CHSxuHNkt z3T{3z=s&l~&PXQ5D6`5aB}#zZ_hcEOWvkh(PqJrwO;TEH<=kMrwXpoUYs;#Ei{X^X z*m4cv_I&>|%E3vnULkP%M@nvXN{`k@clHne?fHZd%lX7~n3hn}e&+4u#`AiU*#qa) zW;CJQFfM&uYBqCqwTaAWtelS!4P;DQ#UxhQFm3P6*Yj}Q_2>cqFIZkxd_f4T zyFeVx`U^Z_^mN7abwTdl|2JN5C!5!YWT#=jd20Zj0ZNM3GpSJXYnBh}Tpifa1L1AxgNz`V`=TFu{FraGd3asgv zL^hEUi^$+MLDA!iWSIf@<=`%@7Ao3nPf}PH<-i*IF*LEYHc0~0{Pqfbx=J!FKh{c~3tFfux*80=3J&LEJb8tC|OJFDHJ?pdWH5lc#L8sinN zfp6L#3?zn(_6ZWM7DaEq*a$T75EqioPYzzy(tg=z;#XH+l;sFEr6SWFAIlFd zt1n|MU=v{4-Ti|1hnV>aUgZ!Sk}!LVWIeIP0MS6~t*}MU+ejTg+<(EukkUk8l|&8t z$#?Sq0q7Sz>h={TJc@3&0uAMH#uYxT*dCkC6)ocG}0mez{NIsh=y&^S05kZ>yzbnt_(?w>Fx@ zmBJ5cR(h^V>uW+9IAAOCYS9b}FN{2^MQq#6aRaDKrq zGFH#z>!_u}^dn$=o?z^RT-D4;`)0FfEiCCjn$IO92vA^aN~7JX0C9R6ZXuK=d*7rI zaSB<~9fB($0CCLcP@7AjKVia}^#W9qz|Nw#CYwwdN~$8@3Big;iejFX#5tdJF~O14IFpcz2~{ea zKBP!bdo@+M4h#l85AQ6@Ub&r#bo;#)R?e<1Z!FtPC0h)+uBj@qFPiF#?p^@99R@$o zut)%xJJc}$upL8XWGFKT=_e2axdr(hp_wI$6v1wJT1-jh5X6HM`L)_cTtqNsfGtTG6hqbp;YN_9c>9k4#S& zL3UP63I+Oi-46#WOFzO}0(dJ>G>UF8^)IV|(!YfZIONlT?-BX8T&67{PNich2(ZPg_V3&n#5fsgO}J<3Ic5Vc^}%Wwr8NR*(z!&E1WJ%HYsLr%k^ueD5IgCt!t zlEK08qQfC<$x5*)h0CR%DWbTV>KvRkbIi(Y{yB$0@@hfdHf{KhpK0o z149o6&vb+kEtB`a0lZnj8!c}r)eQ%BT!9z7^agW_xRie?Fk{Q3xT1+XLs};}+B~{+ zVe;@0Xi}SQ{c51h(BptO2SS>_rx#)ZXf)#=iNYo9EqO(&t!&p--1@wL(ImB4G(XGm z6PLB(Jh-$dhokpiEt&uU!vX<46-`{~e1;*JHvMcO5#ez!u0BZr5r;iG*(aht-HedZ zc=el6l$^)yuo(toA5iKu#T`T4ZZy9rH#t&D2v{eOIUEZsDsrex;x9J<-ax_ahukT9 z(CPaDT7DwF+jWiInab}1wHRphNQvR~b@g+so&6XM)EuI8_HoqRc5$UxKXcLnZzx$| z3V3(glntH(q(vC`Vs?wUE%MtcCt%q4?pQJ_Vu`8{M+mOUv)wcy2|>&XpGNIoEkBQ7?cEsjlT?pkLm5r!3Q9zX;+;rAH6I(vh@ z70dri2=6BvInjxf;<-VJxS57Yg4g3(5-*<;R4>+s9C)*Q3#VfF@DLfMQo+P*43bOC#Ah{Usq~_=7vdL`T=PWBP&GV{di#; z@Z+hvQ>cJS-qde2A8|M-1>6o74YefCeBRj%qcp)JLv=Pdr54D?Zl3|OIQ5HGX=QH1 zn|CWOdrW^zikwoARvtMrO@c_S#K0i0jPLjD%7HFa&*rMTd<88}lHoCzaOicbCP~kW zoOm({Q3wb+!!^PRRjoic%ckue$KTXMq(7!i{wkCN)Dvb zElbC8-5TKCpZnYkkrV)h=i7L0Z8_~F_X)}{!yG9Xzc_kbU!0pAdq8C$VUpx5jx4JOd39eg=r2vK7O3fEy=*eG zyO<>ELSNU8@Y$k$L>M!Y?Toc9T8}3gC%I0WK7yZNQ%5az`qVoKhWu4xi z@Axh_y@uaowWt0r4j!}p8voOCjdbkvy)!ex7?m#~oERf+RgJT5rM~QHO0qh5Wz5mw zIIwZmuRQdAoz$QmH<$p4iC(4#so;z70;)yt)nG^&izdQ>x_IYA5ADfT#U;3m@+l1P zyG~tI#1(I7b$M-3bRQI3my(LTeE;Bb?{c^KeKin>I}ouB=slNhqCuO;xLGpGLxqQ7 zn8;yWK0SZ>{POAP#mmRvgSjl9RA*PX0J2>ksFdl$ko?C{COXm@1bZKB^+Bk8x`5r` zAH%I;gvg3U^xUEdGf)S|;mC`WBp!U{;%i$+2KerN?t5zyHbQ0NR;dsohz!LUC`fOc z5n{owQpNSWAb<*ylr=sIfMJxtG60*$%TK@oSntCOHUSzb6)80X>vSgWVzebyGh13U z(+pS*W8f!IPC3O>SRtOOs!|nDGnlhzDiaK9AL%V>0}E_svnvB4DcHGkt_ymj6r@5oV>XhJ_WSOyeo-x z#iYJ%Dz_unhZN!7=Ygb2CFafqg9>17M>a{GY5`AM&0cZr4g7CY>`B(i^OujN(ZMMu zmEmSlxFAVMo1T4m?wxIcxNRD*i!pf|nH~fj#%z8ryXfH~m)MvJd3@~CCUMV(4lB&8 z6Gs&!0(lm$(nMdih_!egZ)oP3p!IfsRoeAiebc;Ng)e2smZc9+W#bsCB9#9A%U>TE zIs2GwOcbC5|9|N?kgn(; zCok;{4IIcX4vP@amhumESRh%%=2*?;&0y+QNyd=+6W(w>1>E3Ug}{X~^Xyw+9So(a z?t(I;h75uv)(!^YE4M3Pt{g)QySywko(G;l?fenmce^Jmx@tsq6wzv5gB!s~W_}^* z08zt833_=n+vx1v%PKp@DnZDP!_nIwni>!N-FZ*x6+eI3dejg$*;_4Po3uv=4=?zQ z)8-4qTyab~m3M{7_2CPlXEh@iL-pkq&$Gf$goRFOwc049oZh^|LcjLQ3- z-oiZWMh3D6`X%NU82NC=HR)M-3;}N(zl1m2D)t1kjpxB20;5|m`1Qhr4dm?iqRC8?n4lKI#Y!qY58vIlB4dBTpB3s5EIuB)3ol*R2 zSQip}qQXW!#jY^Lwjh4fJcW#@Gc$k+CsR@iq9757-^((0b_-V<4~y=S4-2iP>AotC zYKrY^XdhfJQlM~t7xpi5^J6bBC0#L9Wv64hL9RuS#n8NA4BGD@9JKd<8{$F_)9N0Y zGt+M#De~k=!s+CdaWy-H3YdQchmUiATBlgTyY1x*lWwvS4EvfQvG z*+ldWgzf(N2XO_il~A*CLg)5_eVZOt)$4|>uuhqozN-J&wL1v(mdZtIOLaVW5IDU+ zYJ#bX-3Jd!`Ik&5@pu%=t(1RQ>BAt6WevN#9yK>db8q)yDgXSldpkSb4{skfAKuf| zl=9C$tbgFcSlKURw=a`zmu#=ovBl@&%x%2S2gmS}_TC+nWQJ7%K)J zjk_cW2it%}eO|)>s>EJS65)<8XdlW(^@oK!G~^~*5@lvh^1$66K2;X@`cgOomJF6n zHWi2UoqX4%;Ls+kQK^1{xWK4Xa{b-fAQ~rT5gbJ3E3F=(!t@VyBdq`chV8m@K;YHCJ(g+=1LI7$qLhdb; z6qa0cd7GurPI~Wzl^tHn3}T7#>a1N^$U(ITTBfe`S(OcNSIQwOQYHi-*E*~v!)DBW zu?h#TX|SepqyV;eK2<8L`pqDC*eady#>O7)7URHGrE|124H`kCDn@AD?bhtVcmk6u zZZ5UVW(HLbP1L9R5f=ey0bz}K&1>otGJRjfnuLPhj9F=P8ghFap&0dqgk%Vwo=2pCJnV5gLuo!q#72qx{Agi6*bMc}rh`ODMKy~2FYg?U6QMb19`0Dkmy`MCq&xOJ#P zC-Zty$eS+T@dzP;wS14%CNpG=d{Z^{A8p^v#mOkbUn+OK^Fi_0jC`hr7_EO{G5Y0o zn9)U;L+ZB`2njNy;iqpHSyl7+Jq&+y5>qvUG_M+za=sxRQeZO>crDT!_PgxEkR$i2 zibfzUz!hx27ui188wcA(E`|0tNukKaYF`>8LPvkvx&+&flev*ZFD36ACA<4G zO{5H#=qKdA{wmFOCBI?C_#^`rn7Ss*LmYgn;e4fI6lsbT%UB`oVB>N`$=LzYv~x1^ zcaEA@(3mGG3M4@iforxvHA<+uTGyhX5?X(NP!Oz+Hti)$PIrd0xTjW$&>rL&v?4v19$ZTHL&3fj$qhsUHFTf zo>z0%=}oE$em-v8Ujz%*;6aTX|5Uc2M_ z0WS@M3&goD&BwqDWmwHKgPBM?)93by{5+U`U~0ZSgNiusA^KbN z#U!F1f=^L|SxkU6)2Rsr&S^~Tqyp+XGpJ3}qgPYoY-6xBYmfAiNs+-g)X+0^P%ME- z9XmcpL&`9-@{DSM2;yJ=yr^A=whY&RHn7HdMA`ym5i}F$v1FJPOI%J6(O7Cv${Zql=V%~p zg+N^p*WBZ5vfwRSa0@4T_x=L`iZ=3CS#A@P?jH5ea4| z(60TNHAglV4KvVTH?gKy9$lFKq1hx}mzg;7fg^r;(m)2%? z!cXYMCvTLg>aawWbydbvW3`V+m37fqp4nS#iTKJrE0gy6;FXoqFeu{WQHnc`DMh`f ze0u~89wC^BW1^92YgEwxkn8%Xi+lsEDZ<2hZ@g~eMerVN)%j$NymFLH+0`N?9#Gs0 z`?D3BEMmmiU>`gXjG(B2b`0Lx9eJvp0nvnQW>3$+NArp`WZZJPVoo8ChEd*8*3?ZP z3PqBeFl1Q26&rb6&kH9&UfG#ZNO1~XA)62mmMzsbiUn4FfiJ(2t11S7^Im+Wvn_z+ zts``Sq2Ve@G2e?;$R4v*?n$QGtEVYZSn0qb2^7}J0~!Khja@`NopLTBT{Z{%E>byA zjhX|}e>w^5ts`%>U}|ab8ydnJ5)ssjnyRU)?7#kLT3NJIc@IM}bm;iB3&7l8fpM>G znw$U{&Z?detC?4!J0U?A0cC=-lK8Fp%`^2h+ zKNhit>V}9&y66qcx|KGOvdRh&Febm$2C4Lx6I$9h)ul~F^bvy?8WadqH=5{I4m*sS z3VYxdoT8TVnMfFd!Dr?#;9X#VEfqnf$L+>hHOglp!GZM2W)(J-NT8cuPG z)Txj$yf_uKqLAIQs~cW+j4Z-f;eEuRk-9*?%{?2|wm>y~njFpv3DgAbW*y~Y{Zb7* zURKk$BfzOarRzHu0s$WaG&jL!DV2!~mfZcNLiHA236Ovm+hsVjcJP<)CX&R8iBbs4QUY`9fcvU~U-+OhJ=b|L}s%f!1tyCz{hMuhbMVcEy}4PZ39 zMc;;J>+PPX+h8$Auaezck+?_RF(0KuOSdXGxyI-qqYpKoDu7eQ=F)SUdS=h z>kjgjDs3rsYxT6MmS?ms+0Jn@rf=((!mX)s3k>)WSYCes-OC{4D4Nr5<#fzGd4lfl zAziAJ^+g1q#nQ&Fj7ayR4zK!k>D-t%B z9k}QU^91FF4LPAeW~M-vX|@c`^6JdmX2+A+?-dMLH1Re~yA}Mrhuh=@yp4obPa5S@ z3j;D)!fabF>Ugz?>Ev$S7}|sDP`1KU%mhGbo+}Gw`_U+;a?&=kY>siax|#-(Lro(a zoCh`H_2Af6ROe}HgHi~<*%nW0}_ z%Y#Xu`F2CVQRlRb#vjueEI;57jIcyBIgt^DNISGK9#g3cJ8m|ZWzT7unR+0DuwnqM zQCxDnmA=?K$2!9z0@aG>{pX-KQuNsE<)T|s(XHuUth7-&Y3>MpARAW^7Dsg_XgD;! zhkA=-4o_VEy8&7EAUHMXMYmqx=DKet>O@}YFCCFvMdf);!=YSZ9Ivp4o&njKaZ`(i zLS!G^w`T0w#@29Z5#U>{YaP`W+0>(k!04aQ(ZgN-YxGbpvPcaB7bkJT+!Tez4Bdx1 znBo4n54XQn&2HX)_KmMDt4H;thdXD7Pj-I~wUAXD!gxW?PXefz@&$RjVG3Q$?b6>{nZk_?BxUjw?**)qh< zMWH?*HI5P$u;aunP2v9bh`x?z4cCmYV7gQZo`aO=8p6_?+w7p=t7O$*3NZY*nHQ@o z-x(GrRNJp(GrJlQ)z4haNZmaIKRmS%T-AEzr3E;eM}JlHQhL|e2(O=MEDpamq$onX z)P;CvlP6J8MNuJ-gnTga3T!0r!Iphrkr@lrhtX+gr(tH$n>6e%v7t0=O;cen{H=LK zhQ)SI&70dQO;011IY_ogH_@vb1xwc+=XecMkNu9O+93Djahf=anTA^kwz9qQcFr2x zG`CX=m(9c1+E?WNB*dZ6hsuAqntnH&%|bPs7pB9VfumrZpiXe<0YeA8JF|79Yc9OG zoCCAzp)|4&vNqM$xv>cOh=Jnu;7EEp4)*n*ceDcOP1#gdihlj2est|Irzz26;FEyY zuN?N%++E-lSsZ>`+0vGJa^va)smYWC1U%|+)lq4j>o6B3NLss)v02PkArs;eSN`#P z^wQgcQ=wB<>UM-DZmo&St#=Hs2VAEJlN)U)AA#n16QI!Eb{>jUs6j~6KD)7()+jy0 zEt(Fqd>JKm)2g|UQlrIUVyz`h_3(gI?|b}Dh^cDPC!|%uhWv(^_B3bjOv>)3T!TjQrB2T6GA)p+W5}(wHjMqnKY2+8Ge|L>NKLx z^(SkQ@@!X@>RMB@8MBR9=_WK>R}06{>$zi0_X8G$7GuAJ&Gph&VR zE{^Dg(1wk75@{WEnmBGiN9$wlYHF*a-^HMQ93C49+Vt4pZ%vi zdfq`^>efr=1<`;hf|p|s73;o$R$6(IvTy3}`(-LCu=XU7N?&xl@QyMiHajw=y+W3+ zU?=k;CxEdhcCCt@A=0R*f#FikTkTrc_0nAa-b7)i5+6Yy?@(a(u@#IYHUO>`#c*L1I)&zGvI3mOASLwd? z)+y&DN(h))X?>pm1x8^TYAPlPS47zkSH;yHATAaw$fTS9K_@)Mumkh|Fb}e9H*4B6 zyh#bdpgLI&M#uzXMfGjF;<-Y8vq6L!)J{+6BojHrfCM21W;0DS!TWMl%PAy{8AKy! z1)96sG(WdjG7}frKGQ{GMiD%+xtY3112>ucS%vZpNdTRtn~Y{guZlQA)&h8erg9h) z&Vi{PF+bQH1~G}|2huoE#J@LE3sM=YcL4#s`i28s6*g5=mep1pYc?-Zt{^aimQ=tp zGBw9&cbKZiQsC*#LD=oQvKW1d0KH!VtB~CviI2yjbqv*`+#le8Io-{hbO5bwSougR zrP;SM*-j#fqdfN9&q2nt2Z3p` z4+9@+hed$~;Dwq+hu&3+I5{XzzaX1?6rBtu8`sZff&tHE;QhT&F}B@DU^splbadZ= zQBe(!%AK@4{;1hSyut1D;Ernm?>82Xu{Cs77xog;K~U5l6v!kq(AEAUw{8@QiZ`O#9$((@jQU}qCzK4 zx$o98L{wp^`a^X2deH|lT;&M6gOfJBgdZo2qJjydvJb62OQAQM&}Y?q5%ixWd|p5a zOF+cD9?3k zud5FqCbz$MbUGOR5RN}sgX4?bW&II~A8GI^x2X3g4^lR4KWPkP8t!yR>RX* zub!VhKD{`9ge>;y+1c~&JiCbPht&ebKB>Oz9tSx!hgHJPFB{xN*~k6COONF1#sKX$ z#Hs3tP&{yT{c^5sRK-EFHWl@NQ}Wp@kbAOWJUveGmIW)B$ivZhiOz!ibJQx+4X~?w zH<~8x@Y(EU_U^C0pLQzXiKtc!rnPxWj0Ef6cv_*e5Y|<~w~;Tvg|NPdKzF@r2l$skpe=(yp*GsbA6^l zV=NcspwZWJD^vzYReVlMOqmhbhqdVZR5Tq1MVpms<)xyVbSqhbnxJIQw2G%*UR_Bb zx79%D0p~fRHb4SAl z;O+ZtWDG6n<7LJ<$3__2if2_s+t2MmR%eROSRTpWt#0{b9j>$sBRK9(KR9jxQ_0n7 z4$QAhW-Y!shCykDh8uZiDpmi)zJ#G9-Y+eSrqSf^=cQQIHoj_n$q4=Aqf_$KNcd7e zK6j$F@2fw_C9JC_pTJfa3yBMT#Yc{W6;m$|pASPTEAws#T~MiQG(x{HpvdePm4m%Fj(|Aj@pdYrUB1Hi3D1=9*KF@G`w z0LZzR`ty+xY{0$?Yee!;->Dered$c+g8LR^vvT{e@Kyr-6ed6Kmb(QdFd41OL%XH? z>oVFZp3+z&vP8jkB62AqyfB6=AJ>HexpQmn?0>*K9%9;30u z?2pYTGN1_Eu0^q!4(WMozJ4 zj%mI==%LBTYj{bAyb!@#x2czwgyJYXGm(B9Z^0gfWHA&fHO!t2Q7^iQE;Y1Ui4As0 z=t1aDh>q`C0$J-Kv5HsbXoW^$Ldvl?QI}oX#v_nbpzy#>T5 z_@I2a!U%{0YkRwte=C*#$=yeMAsG!R;j6uDx{@-qlnllMqkRfNz}vq>(p!1-7Qa#C-NNRO)~1?(XdlPWp;?2CZJnkZ?i*J#|v`75Z^&x|%TX8)ZkL zVIKgkrWl|L44pbW2F`(JlDxE|N|~_%gYUz~HyEG%{O81?WU){XbX5+FmFp?YhIVrl zjo~DvHqjL=)kJ)I_e&@}`-lDE-*RfUug|`%3nGWAIB=^`dAtaPZYU|z{o0%DYGDeb z(kvXP#dif?iu^?Cr|2zI6BS$=8L}zES`5>Ck6$8Hv`JAo^q(mP;a}3A*^I z{RMZ~-RD^mMrjd9z!O7In~0cq6V_o4^?tb@ol_3fN75ofGM3x>fSp#mGhjSPfM00H z9`&!7um&R+i&b`ZO2W$dA_80lQRd3+olL`M9haiUl=AOR>ZT7jyHx1xm4(sJ_mLm@7 z2LYEk6M@tT)~t)avojgtpGgHjU%UoY1nfbsg6`{vL8_*Fg@dyutuJsQ&ze9383UFg zee+7$M>Yg0n-2%9L!FRUucG={+wLc`+uInfX@0#6eL-K16Qw}Vf!X2B9 zB8C9$YEEfCpL~5JKidW$)444mAAhL>3Bsr1P_l>FRhY`q5u~Wf)e!+#pE*chOSRl@ zJ&($}p2gU9%`s()1rW-p(ks@2fAQqC{+;(pLq~-PXA#CVX$pAPaZg-YsItn|Ih*=Q zfLacFMPG+*UppNgiv&+%DeMxki7Gmy4~z0CeULxPDT=SZs9aP@^eC^JNTUGiLGD!wE6U{ z?kaqA+wi}?E?&T`O1488QL7qnF*5w2;kHO#!|T%P*AG0rPmTT}WH;EDr|Zu08T`=s zldqpXm2s~x&%Z9SUtfMdd=v&AX}hp+6oEQGjs>YL3=T;&lnGs209)7F+%XnMaa5xW z0OgV(VlsCK*u#uyj;iz{yq;>zd8P}nhtX0uO+5B~7hQ3_9tOr;?7cO_9@IT_^Si?H za`abKd;WEek78&N+Gq-7dCf^k&7_XSc&!7Ng-g&>p+OY=f1<;{0F&Rd`$t%y4Rd&d z{cETSncjDL63%cuJ=2sXp-P^FOW#yahaxs>2r+9;Lo|XHrmT|PW@Smpth=s9W)=XY z^C0tOVi;wR_X~PE$YaVubS9TmTW##Agy$^E@vNl=coXLyW1*`@j{8CS}na zFsw(n9No$+%^<#3yG4j6Sf?kUJ%7}}o|$i+@YC&KjJQw<^B`)hMtHu&fo52Ep~JJc zTb+TwG^Vlb&(%$6s{qF<<*4;r0;+AxJ`jS579L}tG^2r89|o~X9ioEjg!CKseEcsr zNqBz*-}su9M1y1PaZ()Jt{aK16CmzQc!-&Qxv_nfr;^=jn5w5-SEdBpag&ZO{PMO; zcAI`i7dkuN)lW&?@4U@!H@$%t(l8_3KCS~QdNoiUFO{Wnqop{9og6okCs;@d<=aqp z`31D|*c!|$r&HPpW+ zK7ROGLNE==*}+j<2G*K3^KGp*0Yq%AknAGa+$Pe$Jku_l+1-}Ocqy`T>A!O+rInZR z;OP}IdV70=A>Mkw*Ll}w{WNbUA$N&l>R|!5(Tx7CY=YNI5j8kLkp$Bu&FJMlrjS#( zBGO2}Mj3`i3=H~`1J^l#h_F?cjK&SSh(P121JHWh!lvnVftjFEm1`aCGr1NsFnK-V zs;X5fZCT3yI^4)bga6nih7ibW22HkXZKD97vwQfKHXn>)H=v%v$W*ev6N!RjO^pvN zs3{k-WQ)3i=wsU{AP^ZMp$UxSQBt#+;~>k!R~;)XEEBTFT11V(Om*utAuhJbJwkDV z)*(pg;wAY6Mjw<`#Yyn zn9@NWM8C)As*Aoy6E%^qNyFM9M`J=Li7Hwkg={(F99*qr0u-%Be)YC^< zfPKa;wb>)?i)kPuE_mWz4CNs;Sk2cS3`oU?xGW%t##>8USVfJ)!RIafaya}#dpRJw zr}&aqlvPD6%N&_Pvc>d+bQW=q(JM*O$D?6(3hG8xwUKU`5B}BV8##q{%NzL~3PR-& zlM{D_Z@`FqHk;j^cb*zr zc^)@5(dj9j#V<$_eSqDu6ZwfF67{hY57ZElUp9cl23sl zg#8k)%2#-0xR7;Fl3`1)LR^h}Yo{~R$NucihY#PW=Hs9399{in`{kR{@BZ}r-@e)X z_~sWsd2=v2db8NyKKih2cxf&eJfl9ZnmT{<`2ZerX*9v$w25IkfH%uUXUy;5v>ATQ zkUTYj*|{&j^W^-Ms+A&6`iF_kswM{rZNT?SxI*?VL_Axp97+@st9t(A^x5g<<7XG= zFTZwrb}k51FV3GmI)8Td*jM1{hk1dW1N0XFRJb)o_PK`LAu(-_;|hbpjg#_2qBshn zLi#moBE5R_t-;Hs-CGkhYzX7W`xXV{T^I82iH7vH_cWUVm&P~&p?tf!7?mQDU&2W+ z)Wc=T zR(cc`ukjm4Tcx}Mk5f<4Ca1^-KEtp9by+?eSuMUD6Yd56J5D^#)5i9obdi`whg>?{ zXKtm)Jtj2U)2aAW=pVgG((}obi({iT}3F;w`BM__@1jyZ=tLl<-{qX}$B`;Eg+=LtlSCVme)Ga_K z^#ogoue6I~q@ZcT5`VzsHVIVmXXRJ#e;A_U+(BTgIY6rrqhuXDX6iqXj1WZNHwkpD z7B_O8CIsDf*=n^{w9RM=7e+9>L{8pZBOzE922}(u;-t`ID#|HN6cV_;o6(g`SlRdu z1Y^LXZ1S|uRmhjJmEnVd$rEDzK3cO7?!GlYFq`X8MTr1vMwRPQ8T3Xh8w9p_UZs>i zX>ivnrv{%#`ZnP>6gF%CdF2BwX5h~q^ z$mbfPxdotYxKWSwb#8F&#j!~yyPRUcYY8c6+$iDI+7cz9sZ`;@SgK5R7%$V6)lw`z zZeNl{)0&%lrSJ0iAIp2Zvfj6OcdMW9g=~5ITplR7$@MaOPYBbDt`Lsr@0_MvV`#qb zO^}n{EGo+QGj#As?GKJt%OlM zdL40WcwFB0gZ0Z}Cazzpx7S_Ag{z_G-`vLfll|=b7!F=)h{C z%o1W(K_#?SF5j`27x7Em7c)IeU%^!WOkA9&~PIepu z*R!x>h|-3WMB4lmSU%y*veVcNr=c85t)!YV1t4Vd*H|R~un8RIpTzP|$$$k>f0Rk5 z@%HG}G9bwmTDI1`xYkDi6?bw+w!0nW<>1sx&I}G@Ay_ZzP&8|Q4UuCDvY_*4Gm9-y z8s(=JtOKUw^-7<}{A;&JbP{&TzUOK68s`<(Mo=^y9~K&S#S{EQt3BVq0r0cYJKqEW zG*4u-;ZG!!O4i&6(jUzk>GTmQUts5K@5pmFE#>f__r8sL~#%eQwFE30Jk z&V!9>Qkt?A?P5j#64%o`x}h87h*+B;VA&@Ho=&U%XO_CXaj7rnSnK{i*6OcuvE|V8 zeOHx@rFlauq{8|TFMMgLgzNL=WvkoSv^tnqw!8vba_UpATaa(NwIKuYAj;|T+FJ5eDBG-Mr6k4oW^FQTJ?F22YdRZKLU;cqD z|EUBk6GI)@`hgYpp)2TuB)l03MgwHNkj%dPQ_+7U|5O@^Neyj-puc6XnXaUUa}BkB zl>M6Q;{KQR4~N-~I&zhOkGsJ0B+7Vh8~Q?GDUn-Zjk8<~^HT4YhOJ9|fs9J9`b z%40Y#GmO-w*kY;V)(!wyITv-*tBF0AdaDmudloHdal}?j`Ef_X4K=?STe-Ov`VbRU zd|5xej+M!&J;lJr-1zdfh_vZz%$6P0Dak(BbZEi^dg>8716yAN%bK2TfI)-slz@L1#3~$dx@F3K|TWKL?wv%%th9W0|MYsx%dJyEbkA3~*Z_qtrg-T7>c>Jqv%_LN4GE6msY(QEVjOg+V-Su}b^z zU@D(!RAx6->ciscD)zT+9Hh1cZ7ie*XgxSe6EE^PMXK_&+UmM2RlCSvX-Ih-!Jm$B zMMD%cb*CMwt8s8qurt<|D#a%k+14<<(dJc9h!(~ZG%eAa!Y*^Pqbwtp35+RWUw|<1 zt_vwXGfnRf?1M)B5`KvZ`QG$seaBbJa>uiO zdOGFCy-~x%l_pd4dqQm^us7kva)Ch2wKIJmd%IYzO8*;`n=xnObKpIm~aSTo}P9p3DNzoFMv;x*D^ymn59$^ z)3qT&M0AQ4k}SWox6t_nX+&pt3O*Z?)SF0x6NdDAn74Z>Z&weB3~tvZ;bCagC^(|| zTdgQz$VPlTb!((NPaDPm5Nvu|B)Em$W2k>Un0lTL%bv}~<%mMfgd8k#2&6gS9+)4b zWTk+~M@zT@Oq0Yl-%}-O72S~w7LtQgrnMC{Q9j8dtEMpagES_|!H8Dlwift25Fj(d zK%)Ot(#&MYu}d2B63{0HbX${|Sk{N~ia2u6y1>W--DWMj2ZS|5?1I6Y6`BI7BxI1r z3U@&Ck8^Qq)Z2L%9KU@R!j-^90loAXaG2Gq2M?gf)EC37r0G1da@kX@XN%Wh zCJ<47F&=BjcE`4{o)DU` zrG%K1#Ea)$+CB9|Z#7Jxmy!=IE!`eE-+D)a`L5=-;UQ+y%Afr%VkiwMvbwz$>uq9# z=~%ml+wW%#5eg{ONwgvxy)j44bPHCJjf6tQ&b`g#i)CN3s5lpRNM@C$;JZXH3yAe? z974KcQ~J=jfT0BqMa?J2ap#^+U3c5&@*R!@06_@u$U{n@4B$N~hr!_TMFh%so^2wi zGb4%JgYD^Q#EVR2DFB)^q5;ef_)xcPHzi#{$Gyg^R9Cz`5P_rfieNR$*XyCy3fLbC zRwjm)@6M*?i1$P=6#;7|#N}*4moXayK^#GSk6-0Yt_i2Z6cHa{ff0>KLSdnRUh*Vz zZXdO8m<#NaubMdNCNH<8Kb(-7H@lNzs}5~BF2yM+6rir6b<-f2NS7EKmX9qy-n$VCDgEZZOQHEwsd)0)%V z`|zg8&gQyO7vI#wmkcL*2qkMtDf?rEP`eQxxROM<{?TEPxK{UYCTaou#Ne z)mz>*3_*()Dcnxfr*}_(f4NqnncB$bWAxdD2=AsO0lYb>Ka{iL$FHG)bFw^v7BQ?D)ds)+wM|@Q(~M0Z7P04CRK<6iWvg)JlQH(Fi`xZeYw-{EI!% z%dV;BH$P=wWor(|l`cf34|V~nKNV=7wjrTpNr@CnZydI-VF#HR9p40T#gD+RCUbsM3bf%e-#Gh3lD14tQ+ z5MTzo?&Ua1b+!dC(v>E$ym*icC3?68lg^iV)p{7KF%mOQMB8l9C-J&5t?Yo$vNp#+ zKjZ^o@-;fk7PB54CrV%=&rZC19NdSB@Y_q@Jr)g?J?EeiAZ3}75T&YmSw<;(G2A#k-cKQ zw*Is$thh>DvYl{NItPuxeiZ{wYr0L6Oeln5eP$>d&EMIpNw^=>3{ld};myp&Z?j^uH z5WNp?0SXoO0~2~=c)@YMkRAf}j2^y!m=05PaQk=bsDBw;!*$#bpawDMzjqZ^#L5sG zGqjxDFc~i9deE3AVq$DLFE!E$_8RueZlDX}VG-Iw=I*Y7IPoRYYx5p8=tL=bYa^^VSTJo)MePJn8FdQkhN*0=C6a0}NE>-#!MbLU^^*XG;%ty;b5NFA-bwQPyUA`GZXABoB0b?xf0hso$ zZUVaiYKoc* z-SV9Ny1wdCvb0HzX)4#+OUHo#F_n_XmIwBPsq+3xL+4}cSJ-02TsoY{9zUQERQPZ# z)t5v2IDdlv79#}Np)GTOLo`)Ab$I5wRkR_5B_th_0zF#uwt!ued)PcVu*z_n(NR%9 zM80Ryh0SDWE5~3IEj|f<5~`GaV3$Yu5bu8-_)ReYzF{8Jv(0$P*1~3=eahi6F?Hy! z7!&BU&M5zMi&Pq4ir_N}vK9}yY?Zc%CdJM*K6D&C;IdUblU8y6pf@ht;V-3BuHest zMxi%%i5Qv*>h=Z;JF+D|%Ozh4xfTg3H5_$9tO+O$DMfptA;y$x#rcShDCbxY>mtZ(2;LU<+DMp@#L|`;|F;@YhWea(p3jxEM|I0qA4n7+lw72H5N74#j zt(gg;cihd0cIuOWeFmdJ!+4S8b)k|$N4E9;fxF* zwP1nJ{R4C>I)2e_g3u-U4Fd|M>m(1@u*8sWK7cgT^vowb^A(FBc|3y}DT`2@=jPq~}L!(u4% zn$LW8=WE?fJ3MkR(1a(TJErarja)R-T0=(U%)RrW!RHu!AVf*d{5c2jens?U3=m5& zIv$=;GUwABk4eKxM#jD)=U?2t_fjqM<{Wy3cj++hNIAF39%5X;xO=Rm9N@vKiGXrt zW)3aIY_$fUR5Mcv!j7kOQ=Gi@A3$}A>KIv#4dFa;$d87Zma$}ei^QE+`1p(C2h(aF z9D>KobAr~R=#0FZKWX^Yuku_2RX>OyJb2YLJR8>ltoYR+@!TkZo$G10Hhli%bgTU< z-U@sA|(z1SS1N9LJYd8nDlUq9EiJm~9zN|2pNK%Z9<{x&)wp-t_jS z*pHytpD6G{e`BchEB$n@_3U|%g87qe)T8i;yO#-@jSF!mIBL&G%^wz{1l#@+ff=;B zsoF2-VL?18l2J+4sEZARp8y9nWO47}cxfdEAKiSj8_Pg4-E*)iJ~+O0`jCrUxUw&H z5c){0=n1ruAO$`E+<*b9)H@z3D3?RWwqnX3Q3x`{X`hoJ7LyB86Ho4^x3FuTus6{^ z_n)xgM(LIGqo;F8#Aj`gKz7&t=lr?wq-Ub1yEDn2+QZivf=cgXQ0(9ivh?sXaSF_Z zN;L|=pIT_&GwT&D+&6K)fW;vH4>t=`5}EY$v(Mn(!(t_W2UMYLv&O6&45hd!=Fz?W&A4XF>1EGC+u5@49XBzdiV)TXkCh&?GlEY@N`%O z1&luAnP>e|2#z9b#vschQ|+%K=8u`yIE?6bT#TL>J^$46y}j4RJwJL@KF1yx7|uJH zDvnKD)H%T2p)s1HE~^?sKh_#i$9m^iVvhszX5N1p0iSnz@wF7>`R%(6ql0;00FAez=wlS*1(ltx z=!E2C?3Yq>ci=ZPHn~m|nDot$;Zs>vLWuL=g*R7A6o3IiT3^`O!nDDw)=O|@!}St$ zh|9iz9Nj2cN^YrV`A4GGBZb0Dh;0Xh1DBl%vuX`V=Z8jvA(v z$I>86TB|C;eDMr?2r_JXC-hK~=WaXmYdi8W(6^gxE$N+f#Qzilal~TtV&vJSa*Z@o z(Z|ssi*G@v(i8h_Fo5!DD>-xBmV26{;Xqm}+N~jEWS*^_KT0b9MEK9@wLS>D4)}&1Up)kI9$TLvse^Si zFs8zNxlXL8wNY5-ccpr+TvvK7M-+hLK)7!iNW0>fo8a0nreYURuoKG!>Qp1(?0AT< zM%e7mII3HL&^*g(fi?zE*{?DmC5zz@AgJyH zkzTG1ZI0c$7BJemFkpb$oq4!~1JRx)OQXl*jl7i|JIqSr`5{^9>Y|kY2rwXh(bDV93!Ketta&~iiX-B!XHG4}T&345H#n{YqKB!l=yPeba*aXV z3&q=H%7!`{xVlWuY{Z|%v@d6}fwej%;xEJ|0VNWRpzlC$fNL8ZeS4Df9GMvT|BkrB>5TbN48zREj{VZxy?>%y{d56M@4IuZC_$!(J;*coQR?leerbTvbZk$44# zFGP0`*ZM#Zak^U6$%Nr>4i^!+rh4yC%i_aMxTlru>TgDDi``gZS-FK3J6=7UYO&LAmsd2 z2}VjpYi(_1h!*jti&@{+Q_G?%2cVZi<1N)V@{qv-o*^Qh*eIN28(PS!x-Sbg6~-v` zEV>ns?}C-#tap7Qls9k3tKn4HxbOu5RWyG46~<+l1)V4K5|0q?)KP3Y-#qUvF)*=& z47_9fTw||jv)FFhgU6i37Eo5h1IBaGZOS>UJ^VDve@dfiRBig_iy=+%QXyv3}1o1WwlqhNc~$ z!F%iR3IFTU(P->iyb+HIGnX*iOSpE~s1G0J#?jz4t)N$_3bkE_A~R_|dUNjckEUV` zxz=w?NXiTQ@ef#nDd&x2)RjIM!;@B`-B$<|IZUq686<3B5(@ETfsaQoIIC@D0Nm+I zjnGjdFKKM0WJ1Kj^6RtN0*#*=R1=@D ztn217S=NG4VGw$oCU>=L5<<)&7R5tDo7(P~Wh_YJn5V!=-r_h>r4n>oq)KDgOKf+L zvFP?H?N}k#;h*P~e{4|$v*Ze!B&WYklw;dxj!=^oiN=hBdX`IXVyhKiGXIi4OIGv9 z9SeJdZKLd_m94=Lqa0v2pRiM;@g0WVSmQIk51?_4spn9T$}D_!>iDylm6z^0EN1 zV0~=$*QeFmGN-|cn+}XF#Iz$X-OS=S&1%(4t+I!g$!amlbrOKtA`OylHx55U<*yub4Yi_kJl4DO)u_9M z&u4I~NY;HLD-E$vq#o^o2lzKEy*PUl^-O5$=oyZwTsT7;7b|L$#fe{IDhUBK_^>-? zXPUu>VYoEi{Azsw%vi3e*Z3%l3J=fW9DjJ{=H&8&R}RiUx%K(Y`e5?L>F2Mn-?)40 z^XK=@-Z;2<>)!gCcfYPaditHSn`1Hb`|VM9dRcAH`P9?lk(`g`)?_~LSm`%zsau7C zgtRKz5TFyrP7f_@4^o_&E*FQ8Y!JR00;?7z6E;onja#?9A@GP{jUZ044HX5xUMKibKXBnCB4&XJ@?qp_>W z+0aO1w}${Du+oN;3O2+XL64ZNit9&+P}a3I*_T3i?y3lH1GT$;I; zD~i$E6Op{?va-8v;JP%TUgc|u#58}Nv!40z_BV?+o_u+~dh&Ar;`n@h`tHk@XNUET zyU%=d>+JU3)yE&)US7WX`Tni-8~4LnbEiSzE<@z6ngqMHKA0jbfSz%qUcv?+B$Z_YDgm%tH5;B#$M;`kdS?uYS#onDLN67X`Jb0_cP9%x@+w!}k z#((!GZTD?=gcYx!H8MuCFu~B8fuIZBb znU>72FXd_MMNQ+_)UUUCGxuY@yeGGVJYbLM_S+fM0t>QJ9@COXvxS2vtKL(K(QB0^ zPE3qwGJReE*(bR@!3tDUagHyRwPiTpq}m+4@3?9NKw&>7KdBvrZX!)mF}G+>0~hUy zlE_g?I}fE9Jjh#Xq=bHBAuS3!hE?jy%7S6VqUD4A5fY@rz z{Q3){`7eXPTqWq6@LCCAw%ldC0$TfVs0aw?n0!9=vJ}MVE~UH|z4G3XJe<%LsG^m7)`A z=AbGuo_9?aEkrs_T^tLY6e=Xo(qR3qrhpOf(WR_uDo6We@#=(r?_DB*)P7*%RtPz( zL%Ao=UWtz_vu4ZTYd#(qgeNjd&}w-_0WKCpWQf7o(*O5$J;5D~f!&2OO6vH5i$-X% zt$h`@j2%rFHgg6-^1x#KgIlVgknW8-Yc6{4qsvR}mqu?am$&4|bGA5|f#hUiS}-0E zPiuv99Xsq{YW@Qc_t7?Jb>*P)^U~pv&T%^f8v4a{<6X53(kgyg9Hz)U|v-L%8uYv|x8cv<$JalPE z_)^Z&#C0XMm?=)L(immG`77rCdq#IFwd_eJ0&w*CR$6|(w=)SgKD4$Lct1Xyg z0qiD=dXL75FZ7VVF!n2|x|VzS1B792M6`|ULTdGd6`TTNS2c*xgm$C@C~)=!!pq9l zvJ|rDqn*5)t>96EmX)|%5#jT-VsP}zxwmvNU~@Az{4BA_WGU1#S#9`M1XA$Z=>%Pz+vGt3!}Oj?)s3Q`P0)C_5wVjBA6b$#kxN#Y9Aw0}co$lh*)R zav)~zcK45QC}9wEiQz9$%*Ux^95TUT9+28mPD)#rCPpg~a3^YwSMRQB<>`z`unpa$ zxU@6h++A^+F0lGr%?!=_&JA0CxD+$&HDae1vo^O?i{=v4C6NbQjUB;x3ylT?Y)r2x@-?s(H|-TM6)q0H;~3*cno&HjcINR zdNM<3#xBgjXNDmlXsFCC%$2q<>&u)B?sF=*C7l>T#-t{&jn$X1e#uG$N^|!C0IYfmbfkgX$=s?X1!Lk=mM`VFOqXlFaKA#;qvtZ;D>DK_QzUZLZj{ z97)g0`g9|m&g<>~EQ)IPf*XVJ_|U3Qtr`HIILC?-CbmGYUXPP1K=A?3+aJN-F8zuk!aaLB%ysQRKn2o#4LdwjSZMy(UNq42cUJy%rp2yDMnpL zFHfc(QEdTuD7Fb`Mr;(%ni+ymsv#IZ)w=^wHvo?$e51(qNWn0Txa#D6&(@0>(JbrU zaIRY1Qe^+LcJ&Is4p_r!Ux1&094$=S7#^HYw-=NheTAjEJ$=ETl|I;$@gR1!YM;uru!2mCNd))sgLY>| z2RGh%rx+dRQg832KlTe&IA%EHH?}57;t#iFOk#C# z?60>e(8$oH?6|*hN6G4#kzFf4|K-CyFRID49CRPKazji zP2dUXdo7E=Q-Tr@wbbp2{=tL}Pez}UN0MzyMGHo4l zJQc_x0&6QNa$!5%R+e&`vM(bF>eOQ%m3`PFxh^Ln3`IEAZQ8{HT5QC=n{e&QNxtKg z`#(`n2NK!~_d*V)z~}@}yZP0`WpYMKHzL7~qSb~Z7J}zOGop-yV)`E{-amKRY=#EK z91X!ix{*QXY9q!x9TZZnD#$a9EVoQb%GEw~ao^-Ctq;+`rMn zmv&Qy%Z_3%9ExRm7sl@Y}BHjzdSExKBxOsb+x z+M|W6pg?l6hIdb~NP5B~Nqc{vZ`fln(U}&Lx8bvBnfTYl@hP`Fh->2J?)N(4;0!-z_S=E5x z*wNjaXbg!Bls6tW6v(z-%N;F-oZA>p?Jt)TxQ%EQKd-tv;-fdaJsUb(^Hio(DY%C< zs$Fnhb&9>EO1+*IUFnxWjoKojF2!*zp;9wlid+#&#XZ>FSDsgyciva9&qBc>wx8?R z%^`;y_ScQcal0eWZq}%{|Ms|o`6N#j65H3X!YdYBIJEvCuH>r~A9_W-%AkC#*SJ!= zVVj!{_a{mwn3=HZ|K6a(v(V(AEQohM4jrN?LkYR&A9C+%f0?8C<<{xnGz|-&gQSIwaicN1wbRX3G)Cf47Y) zyy0$|%rlx;<5cBkJd(sAYK)|LDv+ilOY+<}#U3#qy}nxXN0G-tN~o%XZ0Vwi#UI1j+s|<*=;*2C)9H}K!8INJwrmog``J-;^829QuOIAMJbNA zo;Y5%HEgoOg#E{YBsg&RM2wj675xg5Dfjmi$+lW2xaQyT_jzDCN4@p>%bvU6gH>l{ zc>p12$&cq?c)VAiXy#**-p=&cC+D+zu9Ah;N3=aY5m|67xyxHE$)DS3d*BgU3=cl9 z;GM%QVw5UMg6mr%_iubaRfkF=%2(PLh7ak`Xs@L?-}!%~ESB_q#=27SQP37|61IWa&Wis%bl}b zG0o>8`QBPzDxYgh3Os9@#L12sem;8X>`a!S{aMBQFK<7Sz#_F1Oadc<)Hq*W!lRsR z+*v{8HV`NwgJdKoRtl4cks$f*If7XWHP==XUwZS{f2rN zauoHm+k55h{atG@NXoGwc-!Telj5I)h*!N_(_0%?_I_1gN;RiceC}G(WqW0M$T$zk zC?Kdlt9o@t)oo!a>*lH*X1jGj4BC)-f?&=}X+aE99;MmlV#gKx8wJAjR2JD29{rblS!SPWFx6`|$XRh+7JNK9mTUE| zqeiclwc*LTuG>#N+0G`yOpgh?yO(JQ!Nxp1JiEY=VIQn!t&(1Le%{Jg9`I)A(66r~ z?5gK+UD-^2@1y?er=jR{m(GDgC|mJRl8KW-a(YoKG1?6u5SUDH2H7^JLP#NXQZ0so z8QmVZJZIL8^)U_z?d!F@C!pA37d&}=TU!@BreQ{Dv^mkU8;d0E8nl^;`y9Va2DrYF zoFi)qTv!_yA)R!1nVxA3^`+@lHU8*^&`?T6J~X5wT7hVeez{U5o>8<{OSLs<3koS#c9B}*#to=UW1;QREy zZ7ZTzK$A30^>T9JIah2q&ZpTHv$;vx7cf~ZD9RogEe{+n7^drO;hWWCxZim-*KyBI zY`mAT9IuK`#cr_NChG@kkWYDqrT1{gEI5{BcLg)POik32-n#h`J?&7pFfJDbkQM|QQoXe*TQ?T%AdXF!G zynw3kflE_`7DFOc)^tsc6z^Co!@C6cjX}WkWusehT36LK=!t^rAkfGj^i}2mWqY&} zISVuIBOW;^?)oQW8t2S-EbhLhYmvSc5^@gDAgl+!3+}7$AQ$uY? zJ9&3+06h5iZl7FA<3xY=JG0ffY{#8aiI6Q^8N=sr)(br_FVG{zxsEH~`ekRg=Iol^ zevz$YRp^Sr%!Gec*%-`bu{P{+O=@YahXmnJD2rv?p=_%^1$*CVd^N}~!5C8jH_8`o z&wP}fLzE~%m}bkiZQHhO+qP}nwr$rd+qP|6uln`O={YmA>dsZ1T*N9f^xya{@J4sB zEghE?9jmW*6+dHR|68o^$79(2PNESDVk9ng)88Yjrpw=8T_)HLaM%c>VFUCm`%6h} zXRa3Tyc{qW-iM~(k%a6uC_6_v(6|JE;3v7{XPx^5i{6>g41p{rSL$mvtKX-XK zAJ8K47}Ztu@}rvRrwANkKaHggXII@iEiYPts(4p!))j|0TLNt;L|2o=d+=3QTa8rv zLc1ShoWUy@c0{KjTR}a1m8}K?G3^m;Z?d|ywVQR9YPj;swCSqRmAR{gSU{F!`!-K| z2}2cu!*U9@I*zI zuGJnDDp8S)p_0+SS{MGck|TFU-Szm_?I_M{<2I@>$5&(~#^^!jTY+E}hWkx49*tq&nT`sBha(7bo$u0zvY;_bks$lapQ*b=6V+J_ z&`W^rniNuXXCeoFqDkhvMp`My0$s9s-dwbb+VG3 zWT(rbDRg6@=QVe$5oPJF3Ty?QCOATvDB=jX?1&t-RdG0#x}hiyLG%8r;ecmIQ-2LA zN$9q>%={p@22~j;-c)A3&F_hZ+jN^Cgm^H{%*`vIcoaQEwRn7UT;FfBPJ< zFECF$8n5Tc#d3J@CXDk#oQlAGHE}H1Se?Z^V;4a#0*l{srTCuuCg&HD+0gKhboSLW|UAg1s ztb6qJTG5@4n0EoOSN7~u>sv6jbutCa~@nOe6`8G~3C%s5*FPb<{cPe!u8$+ki z7T%tZ#ewX*UO$)n(*tSxJ&zXy9xCx8Y%(i6dyJvgUbGpWe0 zc!J9{5$c1wxFEk!Q7lwi5VjLwf|<2K1m>(6gBeHYP0XBGhkwSkp^hqa&A*ykBHadP zqflRJ4DH7VB%L|yEAT5s_;98z6!$ZsW&JT~9rQ3_w}K0*TD6|L!7s`gjK)Hh+--pC z>0UxEp!)$ot#;-+Y?Ui~_;*|^46Zqmt3_p`XNRb->!2B8u{&=?pQB zq3J>~%qPlcO@el^+aEPZI$o^KP@ZnkV_;0#6m$AWyR7K(c?a$UI|aMzkE zsa(m%qY_nbIco;%&?}9^ILf!Ywr2h&k(sletqfjqh>?zX9ZbXOJ^?*jBofG4Ra_RQ zJ6oa(xOe~^q73dzyEb@dEXFiN(3H&*f9l8oHlzZE)hM<6lmFQ#y3xz+YtaUNv-_(L zp;?42y2ypii_}&*H+Ha&*7Ei9T7Ejy;F`hll1S8CiV>VC9M? zuo+3|a^a5pKmR$`ZJx>GB=84NkOl@p0RRAi0BF;F*KsN-NkV0&9z4gh_cVi%n6lcN%@KNlK77kbQwN(y z^h*MzO}39sc7fNnaBP4iS)-w@A?Jbk;d(G4Gw^*KvE98demAK|_-^feM8#nxp33UZ zcI1+QTg%~i$HjMhqbzWmVQyslAyL_x#;%u)+i40%^M81I_e&n%zxRkd8Fu0+_POXr{qX%`CT4Z8zr9Un;ty z%7y*b+iB;eY8zY6*m}Py9R7oc_NhPFN*eh4(sg}sUETNT^zsGa2Ta@V2{0%F%$G|T zPCo2MqwBq$=N6o(m$BB`4q32J{J8hF_>PIuO^OMdY~gvU_Nwh<+pbRbIgZ8CmwTPs z4V1NDA<2ErDkg6Q)I5f^!*r8~=U-IazU%QO_S|P3dC2gK4)?Pkif!y}!j-OmDucZ? zsws>Ih8kZ^o}PY>8k(>R0?Y)6z$|d`yjTLPrzZRWsMyy;P&k?rIdKqj9jGz0M~H~` zO&3-XB&4H&*Bo`hELWG}02@+O2mm>Op0)ei7Ey4jfl{YV9!X*jfbJp^X=D>c{-+bn z+&CXvSN_U6x;=_KpV{t&c)NN{>pj8a$O*c5`p z@W9A$BHBmIQ1Vt8d+RJGeT&zR>4n zED-r~gFYHQz(+{B>4PNx2kE)+X3<~QJ3`C2v@{;H+rddx0#N1ro<0R= zgh^hEM>rXMeO%*u(rXV}-w!QBocQ)VY=K)0Yo_C)O*RQQ2VK3#juUZn{hGSj-A;`j ze^1|s+mYfX0u4auRM-Iyq3?u0>z|%BMwBY-r?>HP`$Mf|1IgX|gx;;ECi5ou_Z+Va zhl^Dq5aJW?jd0QzwC%q6B`GkC`u?_>jr)PkSZg<*|9ml;mfGx1l{s$-{c5=gU8kk; zB6xsIbu}G$!TXMek}MQuM%_@(iG30bpBEx@FXLs)XA2v%yz)x>Erqks=Sd#58*X*l-}I zOcvn#A-WZ9BHF}gwO=jPCKK4`qr1p`&|3Z2P^Wo01;`M@fQW)i^KRiCb^*~@BO!U2 zI9a<7MVPd>({7qM+G6L7a*rhN^x0j?2+s)q0qta+V{l{=r_2cu!Z={}1FO|ef^sAR zW(PF)^SK#RX>QhS%Lug7G;TQgT?SNs@ty3xA+XX#QKpu4SUto6r-r(FjkMev5Tt!I z6`bRg$5d(y9F2aC`5aLE9@vy+-`%V%@LDC4veh8m>i%>@Y+-{KK%9V9aM3*Uw>jA-y83CEF4`tcl_MXrL2rW{6bwK?7u5dK}r{=HojLev_>-8*vbEuK8C_0DbK_-PvI@?3f|*?A>})jA#ckOsRng zk_<`;VY4s?Vo~U9Nefh4v66u!B1xp0A8`O+QYfbiy;-LQ-L25TY6j4ru{Sf0-$y4K z3gn#P1?PdXEDWrGFhvGK%L@ZquT0Z>Q{gPFPijqE{b<}S>Y{gJsx$H6MJm9oI0bipBYjmIs9f_8 z9PDS;P+*5w1zoy(0_3BKiL=uH-7Cu;TE5Oob2h%XLmACLAa~huJ(2-{Bh)eX0ud9v zjg&~GBf#o1Hl~7aw2aHKF12Z(L_Y0>LHc?2l<|qJnh?z3S2YH><;=gZwxF(MQGOhg zkNbWSs!Hqetvd0Phj=h~;ELEvFs=W5S)2$kp%2c7lO=7VYp)(l;;%(8r}v8=M3|ee z1zBMuF-PEz8bg7Pd@H#8Qx-K(r;YTgQ6V$TDB|(HVLf}!6dYF0;u$Evm|TBPI6Ypd7V}FLmN(hEH=mGK zr^Z9=upG33nRr=Z#kRxK4GBOR%OR*?5|=gid^2e_jVOZFhcN34-Z~*$0c?`gKheG# z52xIUoz`0!%f!y+6gtvtR15cR0zRAc&eZ#MQh-|5NP@JYEuwC*qH+j|w%IQTG6I+isHB$RKHQwP~G0v5+ltqW&4WI}Oeoj4uIET8ey(k6M#E z`=7@SFvK3zTUQW8K{8H3m0ymJYPQ1$pnqm}kgWiWKr{2c>M;4i&Rbr$S-^A}>i04* zSnvaQ_kNUi*83NPz5bomK)f)-&+)!>T2=t~-gbi8(Q(m<2W{(a-i@8*1>-pUK;C0B zN`Qea{o5{IZsZnkaS9cWSGq^gs#4QtAtbgs|J~g<=|;!*`=+}P&;H{8NhaZ%h&f*h zmWMz;otJ{Jq054n)CKcx*3pTMYg|y6QKm*IxEn-cgzgf;m{UHKx`;z}NGT%OEf4kX z`R{jdul%d;aWG=)H*5e^X;f?T5mhaZ+%ab;)~M=MYHfw1s5>3xde@mFfm<00bS;$R zykz;)cELSL3u~vkF9thGep`dSZr0cuA%aIQDhT_X4Q9udw!q?^&LFah4iTWIH9Mbr z1O^GQ39FluK-2T=alkcrF_yMzPa3YQ zoRw4C2=64`@J>=Wao>+mMYAUp!sUjIM=6xZy4V6BvgNd7$E0l_e~io2a`13dO*x6Y z@OpY9nUrvda@k6|m+4yc@_afsb^Sz>BX5R=m~5T`mM*N4nVWz6?n4E901O{rWs(yK z3q@D~kfYXK#Z+YRoZj2Y+M%ez?I(aA$_v_pPQ1HIWjtEFUmTu$?CU=V+G?$8#7IrO5D_52*n)dlKZcJ+WB+T|D|4n!dP1g z=ry_m-n~lm#F96V^I1rvWycb95S_to(0oYb+#FqX=MNlX=EHk$RjLCd0KHwM#0@Lb zzHSuBrYqUvfjT6Zh`}E65u9w-vyd((Rtl~w zJ*&JATnYOFXAELt(qMnozvxe&1N_BCM!W!5eu7o90R761gbk)68eso~`EcrK#UZZ2 zzs8V74k=j3ShDqyYbvt*UZD6mcm~iZG#ojxx9hiBlRAJDt;tYNibVs}jN5#*(kNA! z5$;G0TDk0eY~U^5sKp9asb~(N{G_?eaj2|Pp2$h0qkKKSOooRRat4>#uy#9U)6Uo$ z-a^;UiD+8pe1+P|WOX`JOrC@njx>MRs8pgrC9so^xTn&Lt5zS_^x}NAO$Op@WpWea z!QqqaPO!dKFvkM8p zv^NF;8d2^D!Y@npHC|9S)7{_$pbDSVn4^tezA=(7-^o!&))vi8`$tsk%u0u#ZbqB) zoNMuNW?6%7-N&l2Kw61X-{d9k!;WzLhTr;F@u2)3}zY_C8IjI_0hw z@}}iTQcWSHIfmdlAyhKEs8-k>Vp4f-$WA4WaV4=3ClT*f16Ce{y}L;ZYv4WIdE9pC zDn;p-H+jBM&DwH1Y>l(qlwcQKbM%P-^rcn4+huQu)ZTlOnG>loaSp?&T6nwX2Wv3Y z+tc<#PcI_z^oxv(gSy3`8I%|FpJSoV`%4`Ah~VnojUN+*S+S+Vji1YY#D z_}SULJ|A~i-`De<=qn{xOdnULb0Dw`0YoBh66UAZkIUldtLFB(x;Zs`UH_I%a>z() zW$liGPw27T6puXRw62t0KDwK4ms~y)y|<&sP9+}FVOS?nHmDaYUYW&-ZzE%F#<{WX z9oDKPtWOnxpU~woRLsg?8=@hIW;bJRjZ3)?1D_5Jh)BqPy#&nFJ3Q!$S~g zA;U1lX;VN#jqDd2tQ>B~ZQ)bs1Mc_6%O@&TQ+W&#<(VXH-8;H#%H>?xWwrAun}@LV zq?$=~R@S09g_eV6Qd#5HyKxrk#M}B4?k`bN^TpOd(c>r&;?-Q^s-i0%?p0&$-?`d! zK1N{b{1EHNeSypa9Y-ZyI;Do^tUo!4oTigA!FEsx3Mm)oee%6zt;Ve2u^az%XxUk* zoimLdBK85x%)b5XCd8Bk%FWsA5&9ZWIV3a8g(^lSQA-oVr#k2vt*gerf1eUUAlB~R zZN2Fhk1trUXV$RveRsoj1S)iksx9v=FJhn*WS;O}$^u22yU5Fd6KN%0on-w>IwU{~ zO7-2nR6(y-YN1KWp3CHdN*z=^LT0wW8zHB@Sz;W7jXo0AyfFzKA$CO*RD}J4_Yrj}DwGz; z1izKU2~j;nzKwruB{@d_Stp@hVpO)bTpppbv2-N61eQ`7B2z<2-R}g+l~KgrG19@5 z3!xh03ZS1m1c`>be2@Tox^v0!xE9HxNcFtB*m(@+3Y%&zqf_8%s3%{<5}c*V`NESWri*H z5n!Xu%fRm#fwvZqzG4n^fIk{rdS@KD>T0o&#@V<0+v{~Mf8^a(W2&wlCydi$#;#0L z&xdc*hdns?6jGmRA=rM0u)(Mvu}B!%n!tU}%F1Y`jGMvvF``Y}Dc}oajpFoo>$nK3 z7p0R!oIl+8$K}0g{gowWFDt_`pKv`~Ce!~=L94tf;r4MaY%X&Fa#$!c#P91kB)1bw3Q?K6-z+O{c+&d$Hxbta@?3GoQN8K>8;@! z+;%P2_R+L(2Aww+oK$8b%hBzAxW6V=I-|@T8+{6;PE1DNU5CS-O~@wBE|dcrIOak4 zTLPU;YClCueFbEtfXI`)*FGMC1pN2Sx++X4e82cYOL9ufOs~Ypu5NKd*Ds={>lGNc z^Gy6(!^Zm&tkK6#B*?vcKIAyoIKG|8cbDobVrZg~FDli83jlXyOg^(#ME(Mdcm-DI zg67plJdp8X&&`|MpE`qe)?v`}MR4)#=2h#r@^k{~bA9`hAQoz!YA&LHY(_^oC7IU6 zTz81<`}{dx_z*huA;Z6_Bq4kp&y)gk0vKGF$jG#WBO!S{`8f1O&-H-@dASxcutQqsk$5U0Zs32lftKGEWB$IaX98yiN zhBI755~e&P0ya{JzxU@$-V2*CDb_+z{V~VF`Zs86KM}9)&|=W-QBg_kX)UGcp$l(u z;hy!@Z)2~|b2RGnn_SkapcNcaC^Mn{VKJ-8WU!x=N3P;AqxrSqJ>l4IO@%^&o<}OLTX}HnCRE9}Wqv5kha` z0hWmOXdDh*oKh}&jKFbNO^VkuUsC{KE~&1z7dsB=XH8N_#t&dfjg@ZvtRIUH#E+?5 z_7Jr>%XG9HRRo%mT9_x+6hqdlJe8k78_A7EVuB`n!!D+D;e@r|Evr9RB`mkd&_xV? zi1)@rF}e&13ZnxUZD_}(9H!Ji?xWfJPJ5fr#Sn`Zicnc_-;I+t=V7E|(6%~Q-6Fmy z#Ps^VGJebYDU0Mc-O*?ZJKI+4*hw}xA@QVn>Rh*iDuJUk>SD%;gL}v4tJgB%`!dxM z0nMu2uhJ?Em5;+ufa&hSx&i0nJX*s79RMQ;g`oX+Cn@iZPES%rXle0);Gx~2;-O)Q z30@wIhCc&_a#owqzMba%bTu!WH2pF=O|X|q<;{R zdz}#!vN9&;t`2lO=B#lA1LBFD7noi_pn{ho!oCCWi~FkZZoF5cWYf$yBT7CdO*Pb6 z>So{@*9K;Swj+mv4ejQpjYJR{=sFy*+Sj4q3=@gc!LSG}psHgdA*dmXqK*iy(B3GO z-mI87VrrHt&SZ6yqQ~07Oh!3YP{FiS!4MIPT=ZTTD&o_qmZ%Qx%L21 z8c2}z;>2NrreyvQ)~r!7{7LMBGeqTXJZPz3MG`7f7M)5}PA?R;AQ5JJv{)cOS^G1% zZ&4x6T1V`}y*#XDys?}#MRR|WuCKGFCry5@p0DTsZS*z~-HqO!|EJ^U-I>>2SS7Z+ zlIFY>okdq2wZ4ApR9U2BMW{kcG0LFn&?nv{zxs4l}oA}5oRrb1H2s_XZ zo&e#u!VA(l$KZfH4xK++Nfyd0rwQ8Ih~gaVoR9OGbsj%S3)^p9L0rJ?PB#EJtSj5y zNImr#aSk_rIbECSmC8WUQ39`vT(n@M(sD1f$dCpwO~4E%*4aHHcU!KY9nkl}Dk307 zC7i%f7=$FS)j@<>1UrK?#WQ5%+GY<3&qFckX_EDVC}!G#E!3}jcd1-F<%TAqla}B~ zO@%`n5PY;TMnW#1F@E>XWhB(rjr4~$uR6jgyx{(?#Zij%e)%wgIblA{E0Aw#92ve} zc~N0Rb59a0{FXK5r+a>-MOpJSmWLW&PI*id!&S_B}zB)kMOjJ3Hjx_?!}AY zZNtDqgchkIvM0&<+=s+dZcDQt!epW8L^AjORrA&)+Lz z{DGY*){-fZKI4o4Pqib5AyxC`%&}?I8*qvD$G?W|FvD&hG(C>$*A{0+vrotqB}xA> zWSe3RvM`IXeyx_mYc&C72hr2|oXy+AfAdeji+T*8z64HT2j)>en1X+op6_E-h=J~; zTm0RGi$T~x3CCfI?dWJTbo`v=H05kb3YAfCDq}Ougom=*=xvOsf^QW$;e0^ zuqCEK(^~*wo4bB!ZGLRzjVCF8BKW9~CMh;;MG3b0&saWi`dXl|K5}{xM#8%a)+Y3U z*6&wO1C8)CAei-2V+yU?-@)`$)_a_?1$j5GZJLLWpo;ovs=?gdV4R%((&y%macq|f zHI0VR2#ujLE9f5k=r>V@`?8LV*_B2*;@#U?btVrI0}KX;RPF4ott~306m+=vTuo-@ z0LsEC1D+GUZhb*@o`o%SWjQf1mgvf{e$5;2LI#Px zD6OgT^VPtycC`65)teG)YwYaZ-S&33ZuEWKy<4HIvc(m4tr?pq*)lxZx7F3!dJ`0Y zjEMkr(4`MokIiQ*TF+{JP=iP!K(uIj8Spb{785Yc0)3OE7He~IU3b|)l8@x`1?h6= zy3i2N%H{cv-w}V6Mw2+g8_#@QR$jW~Wa^GkEWq`8yiiwpPyHMd9c(6?ZXQ-`D4CF) z2GFurBWgn9r(^yBQ1$#W5IjL4pt3NNV>_arv2tleVe|48B_=zo_B$q96Iob6eZT=U zV!zhh=MA-{KUKFbI=YS;qN}#5I-OWBtCfeHGTN)D;U^VOGV?>>Np(?qBZ|pW&kbFh z>BYVD{5Bj@$bZ#Z(<0vcRbvek<|8q1ekj5r?~|BWK57A?fB!GC0KxA~rykv$tq~dk zz!M(;fbqXg7AULe{}*0Rt2to@!ivyyMh$}lv}hvGPiZ4`jYKf)CTOvF@hSs@*WI`! z>~u6q?r;0EFdI7qpT;z+Ozfa#k{U=d6mn#mhbm6nw~x1|K-73 zzveBttLvZLgdLuY4Ewv)D|C%6PdT6eZ<{k&<(zZY^6kR_Kc7f!XmqqYjKxd)s>ljB zzvdCSD7kUxf$;X#1m3-Jd~tJ6Z{f+9{tAlIVX-mHUZ!M3{fc+osuBS1Rrpx=!n@!X zq;;_3&Re@zM=as{S9LZ+&o(7gghft~8)5e5+- zn9kjhAN*)b?31|tas_c7+vG+rJ4x{mp|Ajw=1aSoeNWV=pt-i;Qf5(MDps?sxO?{? zP7A;c|6jBjtQ_AO>Lsg=X+N_?l0^&n9t7oisF(n7R+pkz!v>CW@~%>G4EoAoH@5`T z@jR>*M3T?3a6pw~!Q@L~P{JaQCds$MXi)2`7c8GgDd6?;9n3&^mv27^{!e3~kV&yH z0Z1j+9>k+qR&4Qtm5Qj)q=9${*kG!yf$a-FrV@B1>NsJwg*pSk$>(kx5L4f>;F?6} z120QMoTvmm@W8Z~o&ktB;uO;ZR*pkd2rgUY)b1qPpd&lR_Y2#=;8FhR6rI#H!*PRT zQy13Z8fpc6{G1G3SL5CbmGSSR55CKZKl1~wN?zZ#3?-pdAlUu=q7BxL$lbs&cP=KV zDx24qr*R5%S27wWCUW`*tciuruV%Q(IqTL}4+|Lp?c6uRRFcUQ|MH(-3|l-B>cpBw zT_)oA9Bu1)xdCs7PyzM9C}cWXaOTSXZy#^w_>>|s z#6u#{pv>YY;9bpV<48@_-J48J!`GA2A(Mc8Rc(%qP#L=zG2| zq3BO&!Ivr`c?6^!mzdYdoUps~XO^^^2@{O@i8f38#5Esz^daOG>O26` zAlL8=w$0LhBHgu1(6|i(f<217Bgvb=pw?S%fY#Z(dC6g{8O0C0vf8+A{9?SU*Q$WC zX89HA+aK^R1bE0y-bOnuN%6EHPdI?6fn#GT2@FA&xb9`A7%(}y>A)f$-s*HLe8_q7 zeCWzSYy+H6Q&Gqh7(WKqnj;(75gFdqu@gT?T5ToIr$7%ZPqW}7ZXKsY1W+X z^zU+hwjIP`;?#Jy6y`$n2W6Xh92tDNj zlZ`&T5b1F20hKy7LUdu9_pv{Q6qbKt#Kk3`>TLWCPiG6>xV$cVA|8(zTCf_yv`L*< zVxtQ&PIEIGOwGV5B}OLUWt;|xNwMFA6ha=Gd+StN<`yn&x^mqHZQYTVxZ;4YmjH3; zXBbj1k;;soyu4GI+fUDKfl3K6X5rOI@{z=6@sxL+?5o%PQ)$?&0%=JHsers87^UtG zDWFutlG zUKCXj_BU*hYXVEB?tJWPiMEKM$1cQ&a;u0}W&J^qn%*G*TB-wg8bb7@q{vw*5Yb)# zBk9UP%_HF&ptF!7RGios%L#AeLk^fv(rzI!1m&Bdqo z!+|6f7+&-PI&w$zS0;?qi#H0UDQFA#yJ^4SjVrOXWOGE{kLi~ebeLv4)nzZg0LB$K zp&faoe+hEbrd6pJK9`Y4=95;kBGso>`I{*!P;yrgOSOUp#bMbRZz?T`YRQ=illZME zE*wfhlfF%fEO$;Ws`)}(4EsodlGSiCDUqrL@dg!kf+cL|zcR<~pHO(OU%S(9!SuI2 zn>f6sZL3Z{?y!N?%?=b!KYic+uG3sZxwQ)6vTy})4f$tZe-}yQ(x4Tmm){ZZpR)O` zQJYfS#2M{s`JATqxpijo63-?gp#8{o+b`w%{jIkxiYTfz|9uSBE;zO-PjSu}e&Pv|^aR(*9~Y(`~FNt3I8{_uV^K3(jL&ntOWN zSwNSi8(NSG!$WdPTjZnx=b59kinWYaDWW-l+bLo(IXG!onqr33r*V)zNU)_;(ZmkG zhZL#F!PsW>*Djg}RYrE+62k%E^HB*tKN82lF4tf#)xC4!+$*$4p%=937&zR*1 zl}wCvHQ1EHh-v5|G&-hgRgXj-Z~H{^HF7?Ej2D7(d8M@)7##yey{L5wH)R^kH?0^1 zaBQS#x%n{-FMp6nHH?!=IKMYnEPXx@{^Hix-D^20L6>v=E8(g31OdT;zoTzMfnpZR zoc~g#b{Y_JEq`JwSo69ws|<8Yf4JWh~X@SPzpc+%w@= zJc%8iC~IOm`|$pWc&zfHfLetDgtBE-Yvio10)q80jzGww&Eo9;DDk^5mkmB{Ji2YY}CX64>pAK$x;MrQV$}iuhfCTK^ zK^EfVn)XM#aQx^sw>;=oH6}F%tBV3pGQ6>aXIUfu`D{!6RlnZ|UoU<&OebqFsn0bW1`UNjOQ|v=q3}&ZS<3dT3q; zhFCaWy{DbL$>D8nVWJAV9yW8TF;Udw zUZuWFnanFx(B6$@n*N#rU)DZoE7rE3|q=bLN zQHt)0Hy&5;X9Lr|$nD)>-|mn9q0N`_rP=M)Cax#^;X?3}pC;Njjy;6BI&#}gib>I1 zYQ6s$mTX>@aoR;fa->RaIjQ}sVUVJcJVjEiHv?S^@s?9*2azk*X{5I>SP}^LZ=g~b z#%zlMX)!RkGGH%C1qGq&Z^4jrtjmm%MnWgDzQkjBp>0`vp{LumOBO9)a^L^A{)ZQJ zVgCjM0C)lh0HFVGuK$f~EFBy?>0In>ZG4rs?6w$SeAm<=Zmm%{bdy~{!+wT$!+=t4 z%TBAXDK=xjUW$+Z1uE2dA&v;+;p*8vL*nvW?ixx>#TC0>ip>dN8hb2zm->`x{w~k> zy*aG6#v;AHL2xO4L-SrG=MtO3o*g%culmBsELW4N;}Us8pNzcu4>7Mxii4=I(|tuac0{wGP@#MFL)eNG;RB_ zcD0v)|LShDU4iMjIQ+osv-ihIZ8vv@BGYW*lh$$RY*6D5+m!{*XaZ;Lsj$4mhue#< zil+y}Jfn}Q-*H~#G>kB*ngoIf4r1`644((anEvQMRWxi@CMHoupv>$MN{{<|Efh)OM?5T!eHKL`aYi`lIJ2A@7lJ(K7hfj-!4(|%bMajey-l@eZZpi@)KXq$;_h~#| zdi*dd-PNDoNXsFAf&VW=9RMJ@_gUxPxAT7<>VK{O4x(;sZ)av{PXAvWK>+;cj+BOz zF`xnj0ALOh0D$Fx){&B^popyKKjuADO)_qo0cB^6GG^Va6w^%x$q1pq3;|TAhKugY zeX_+E9A0!NidNiUEXio*e*y1bZdFlbi5en~*ZjY4z0OyQK6G+1rPxBA?nYfh>F~F^ z{+|UGtr>H7(~}=rLM*#G2Es>8vTz3HADTBUNeQsxMRs~1#C=g!|LB2{sU7q=tQ0|KngP!Uu4Wgd1 zcIn2j&iYXUX9|OI9A_wNaf^ZHrH&d9am?UUgo}Y1Qm#_6tS57KMwOWJg9SzL3Zbz4pt~je+=2}=Cc}PuMstqi!G3+MKyJ3 zADOBQ(w3Vd+f8bJ5t79@x!DjXJv`FxeB`$42ZZ=13ameGE*?2xs(2BcWTj%VTiY{d zfDD3JCrS3{@AhB#q|2>iIf4elQQGO|Avx+H0wAr4zHPf7-v2J(YYc?JM9L)y1}25+ zH~C>yu{}CiKx5;Y3?m14r!_y)yM)6?J*xozZFp@Y_*2R}@oiD%^F-&h7KN?7*$>mF zG~orF+LmzJ!G=d_S-y%-?2sf_+cDg|(`LwD0rT=`&%Vvy*soZ6tff_KJbn;H!B=dfDSMP`#D6Kel8^@d9j0~C8v*yDj=8RToK^+r zFcsAMeL+wZ;*X=Y>p?p^w+1f5gYtUpBn8)1I#YfmVYZ~3KUn-`z!xc3=(Xg#;kHTw zx15m_fCXi-455mdY_(-(_vmNbg!y*lnJX!7=)Q1et!<()H;7f8PWNII09y*<>X0G> z#UnY?n9|#514)}oGdXl69=R=7&CL4aG4XF!ab)d5PV@0;ok`r6au{6D&G$0_c<2$U!+g{!QbS3 zC9WD7{vs!Qy$rSO(+j>O{M>6tQB{YsEQBb50b#9=CS5bga?8r3PPR$Nuqr=yojEPKM?fd|g{DA$xBi}Ja5-<)W063Ad+&~uwQSIbPF7rNSL{}$WxV#c$MaS zXOg8aS3^TXP$CK7H8srIl@2d2hATnKSi&ds#2k&2ZVk~E}u0lExtKS zKq{(7gkWPBSfJKN1cBlAKX8}1%wqWb_A(l8h#-Q#3A5*Dt`g%JNU4n%R|ufG42dNS ziM0@phqNwKpf-Y@B-{2-63AR74zOTdSMBho9e+wCMzBLy z8jw;MYC#!IxQBQ>0kU3?wQio$v(5|I&oSN+$`@OyO;rkSh!*>i+?A( zSnEQ2_thzaUzx_(^+~Zd?Wr2r(27}8?tB`=4FBC2j0UuVnEy3I?Nu4LR_xR5!@Q0K zf^A%evp=e->h~rl0jaSBLl|`7LIGA}ofp%^Wm^PyrvYnO&myWgV}Mhw?WeWRk)* zo}!?4EpBKUtw74a3jwP6{*!=iHl_t}PD1g4tPAQ&?TVS^qJ-4a57ng=<`j~ojUryy z0OPuNH${POz<-)Hn-9wmbSL1A@KX=nLWVp8u4SnxncGKcF8bOPUnKhRw45(U2~*vi zc=sH;+J4y7lA3OfREvG5k=XXwGnL2`>+hBOTM5oLO5MI%fmOn#r(fcx3(eInvH)lB zjrHPq`6<=Ix|E*YgjSvH@ayQfzZT6q$JENqAhE3i)M#HY?wgiN{ zS}G^QuI^O*NNURS18j>U?;6YT$U=Sr4wrptG53!nO{eSkd*%2vL;d~nnwE~t1RpOu z`i&%G`*hxsj#mTIP#%)~S+**SS>9^$p`8ITloAj8K+%hu$wVWvItj00cOeISFrRKB z@lYEs@ef9ZNh0YK-rf$Y$?I&8hoirxAdC6=h?1FEJ#7T)(;J$*T4?eFqrWR-J5xDv zhmXwlaAa*@F2yVf81fMpC0gvk#AwP8R zt4<){kR2}a$$G}2Y8;KWH+03=i3U`nkuO~+hujZP-l7v%rceq8zU+ta?nW5{43Oe| zLyy44kH5+RD9M$0LHAWjX8`7FDB-2m;$T5%%w}#9B19*@XhFNR0;2n9TnC=0y&~f2 zj+csq;NrArIa{i(p%Ip<$jGec3 zU;+x^(0`4IW0zVAqb(;eiS4?a2QJ%)X*|I7yqp8TcG7lmG3R|qgwCG~+)YPcro$SQ z^cWAVD(Fj>zs1~a`@<^f&>m)1!fY%HxF+Mt%9bB6x7uTocKwoTy8zsb5@|@_DGq|S z@`+?~faH3mo|2dFnCc>3DJP$y`r+maG2Ha%%WQbV=VpN9BF`d9ya#@Af1zze+kims89)qgY} zzybvz&>95O?3rw7akkdwqy@jBwR?l{fxGEESskHdxgps4XCB^7%$#@{eUJJaP0O0(Q?1Bmt={Z@bA^wW^ln1VZi%M)o>$!F`lo*1s|ie+9!mhr7)Y zRf{+lZWQ>BWES|N^J~p0xYEMJ^A&x5!a6Livewz(cDza&?n`n#UMPfrd*l2Ic+x;9 zY%-fHR`v^r@+#w$9S#*<`~8H1P_3CTC_ttkhw`z*rOlsN&NE#%N0vc+#nu$U#foiS zV9?1CbaNUyH!7Qe6#~SDjVY?aHR{!R7Uk|o9)~w1XJA&ro2!>xEoyh^R^p3)7v**x zJJ9ami}7#A#HToMgt$7fwu0~B53_>H0Gzih(?obE2a{?o1LO^@?_UvD^lf4gnCP?{ z!!R{|Ig~%bg6)y`rVco?hWnYkKcXC1W8aBS=6k+X0kqC9bjn2m7rp8U1+Y{=)v(4t z(-n`(0mGW9V1Yl<23W6nCPzaW8DO42k~W_A{sxLue#P88u5oKxPe z^f7h}6bOU8Sk4Lm^cT6dpanm|&a}T;#Uo|Mq8y+*c2-k$g1uX+QO{IkYs=6MH64d+ zEMMDzjNq-86+QGLsk>vetlvMit7GdcmuJfyVnZ*f6K)TgGCm_5E<6<$*4n|8<|uqm zs*}r(Gg33R+MO+&?60$@_1xN}DfGmRZnb+|U9f0XZ|t(>)*!GVQ(yW+rN3H8+$SQRTQzx zKnF}oj7I1gYCV}>nb|JMuE(bJ&i%AdjcxmEh;6s-W`@ehhD~4U2`Lxj)XP_A0QbX& zZM;}213%?PqVc?wtbAyyR6v9)NRS1b3nF?DWee_^W{?hOu1I$!CrPCQembxybk@=; zv?SbZY0e6y;LT0jjrJ6?s9YU@yV~l#7~<3Ikfk=QnqOnPXpi+R+o)54>r$v_j^$_2 z3;2;=+&MO*f};u1`%WS$BrVcUcKQ*E!ga{0P0@oJqgZ98jzpb{pDh|3tE zEyDL32K{J24bpYo2!^6Qs3NA0k(%N<;8m5NyY1@=IBmon*;+DpIqW*((4@z*ZP6X` zD9`ZXT`ThY{cI_W5am4UG|a^zk-?l%W$Nv-DhY+V`E_tL-upSm z8;X0wFdVTHQP`)9{x}x9e;6rol`;yqlW)Z}KBWxl+8jyx$1t07DFMq{VFaDiR?)35TWp689TgMtALM=7V9 z${cIlibjA`VTOFRT~ZLq&OF+H9$N8^l&KYZOP63)+U#&gmlDxgmNG+YQnTV)u$3y) zYj&+3ULE%>mghJCUJ(j4X;=DoN5ev}fTpT2@j4xD^3#?6I2v}YZAybnLQ|t-TQr>I zh)#a%L{CrVxVD;__}rG7dg^r#9~Xhx!(8fH#a>G`MH6qx69lL=UUh<%uKWvXnnN}AJOMzKkwUdh>x4{r{OztRX0D$M<)xInQZhc+| zu;Ovqn}`O6=*K$@T5znf5N*qX$1pSNhQJ-?Zz5eO%R?EDly@1@ABI2zd?z9Wb9|Bw z;CNGaw)u^g9%(*2$x9hk!dYG2{X6#bBP#q{MaIsA26AR-$%EDE0L7Hyq?Pm9aR`2i zxro{J5?m1)SCHuGE|fZ*A#$8fWGbQ}a***j@VefGCrPp(#t>Qgdyw>^)7>h)#AXaA zZ8e+C+4cK+9Iw2Dug&J^GTo`Tn!X5W3Q#w~HIF1qvK{k+>2G!%$sPmAxw zX2K+WAAOlVWRx^0Dmo&rBUa;{>VI4KNo$PdkV^l$^LeD2T{@etZ9yMB#fqmT+UQE> zbN!$}H?|@kd#We4Kb$|*(iAd8udU_#{HGD2MW^;QtrfXCxgK=-w%$m+s;fPF%csfH zb64R9av>{gTtbtkV4L3gez^H}k%*f(J(iJm^_vgwX7_lS3@_Gco(rcxWZAyUPLBxE z3cnLgV(VVa!sX~!IwK+T0l9#;FwUx4E!n_XD#_s7PwGW=oK<#o|nd&}Nl2j>ic$=`I; zCC-b$37Q0bN-l?tpE1RJ-CDyz8>oQU>iTVt;}vt}pRHQp2ftluG3Kj5lXLr(O99Dg zFeJ36#M^D_ENj#4YKQZ#Gnb910hiQC-En4y?#{PGO{ySS<@v}u(%%mUv3siwMuwNN zmMUJg$HS`B(Ey?rEExH06e&QX3gtW{tNY2fb3rM}74(^+>=aUfp#%%cmSn+g^M~d( z_ax1nA$!YmvxPFL3T(8CO@a66jMp`+@qi_r{l+9R*V}IHka@l>_|;|(F>%0aFDFe3 zB?I+DJ8w5Qm5A4_tj}RO3|H2jDad$X%d-(m*)j%3gC#-D?Acgm>zlkN)-j?N?JL!Y zf(RZNuKZrHjJ7Wu5279Sxg?Lg$@o2tvUQ5 zv4eRe3BcF?e5&oA!_96 z))(_Bt$P5O2YKyWWWWpV!fU<&6bmgNQGjB3Pc)0R_**!kC@fA_48gR=tWIqdNqG>Y zrj+ntK!u-kU^a&Y{|#e&s}%jMBtIGmM*S}dA%RdnT}bmN{va5~Bbs$U$Zg~Ae5VipB%_xN zh?s4QL}Z8+r)95H_5)v=Mn zEE0->Ky9|(_C7>c&Xs?Na-&${rLCW)I!ov3Lg3uEQqo|>wW07HoGA%2+b)fDikEm) z^+O$_m&$ePULX}k9pF$jze3U&t1&KR<8fxLp3UOTy4snJsG-}LjyzetY3Ef@AFmZs z5MLiwLed&AyQnd{xrGF*t$p~FJ^wV?VL(^IB4q;>HcF%^H{1N$*}B zVpz|>Zt=*7*9#ivQofsJtcxdg=|1#>yl$~C6EdnJtD4(yI-?`?6%Bv?0gbZHXY8VM z&@eNM)oD==6F?%WVVgk~Z={u6GAhHMjJYgNmnN(V5gF+|yyo8(AjOo&SXp+z^u#s? zJlRyq3==~)arQPf%UU9nA=dN|>nUT2Eho^x4q3I}o9blo^#jP}$oah>Z5%tM~S+Ptaw!EY9w4 z9StC>XCaz2@tK(^;&$JIxyNP1A&WbCiRV2qC2SI{C-`)0V{<(dzVTTT_X$`WR0jo| zOTEtFd0|;L_X(KnPk@=VidE`0;;?+#b^78chb@?#3Y!QP}w}oXQ z;L11i$kynRABQfP$0k+Hv|aVAcQ#~|8W4QWP*(5~wWOrT2wp|54UzGSk2xk2lQ>|1rb7X+B~v5;#l1+ulD6OObP7e0Wf22G?Ae|RQf>}J>59u!KLV!n6o7R7 zsDwGB>Q^b?olz7hZ<@1YEx#I%Fth{7_%LwqN@cc( zoVxb$H9zFp0y^5IJh3!GWF8>D$0MEyw@kQffCauI5J|ebg5W)SBh)iN@-1%$B9A~) zQBgqogW!-m3@nPkKXXIWlm0b*M6)IVJ0k$*mSW;!`vnjZMT_9lG?Q6$=MvfPvuEFmRq5u{KTGC<1i z*GjDVq|1}e8R2SvnJ8voyQHG=rRV-I?R63`sPI}5GLUL~)?&I+PU_ZRYUYgE;MZza z?-71aEalK7@Y_p^{WNB&dOS|ha;#>~?fy3MmKo`hfX+*DuEbA~e9W`U&q< zNXoi#t2_0eCWp0|d|D39-mz%OKRsFR(`W_O2za(v;PsL{diAG|?- z?VQj5`#fF*_P)Ef;MV=T{5;z#jzo93{Vd)e?nd9G#f`KZZF)>gIr00i32$-1Nb|k7 zq`3Rp;=FiJLdt8fm##+!K<;!?#(`U@IF37>ecB^}jg}JIzyU`}z9O0Fr)BhU(@VNH zdi2qE(&#N_um@mU$s^^%bt)@Ekes|UA3Ms%rW`v}n z{S&Q{F=bUw28;KS0m_7E1Z#=zAM3*c&kR~OG&TfuFN2PF50{lxPU|!4;*b#A9vSow zQ?ummlJ4d2yjbzFQ}|K0YKOfIeoCvirr=!4Jq|j59sNXvp9IthY@Dgkxx8Utm)vYn z>t_L6_{}!Zf<50^S7g+j+4se_KKG}@&0r9!(x#>vekZiIy`n(aLZ4vUO321~HQFGG zsp3Hnv34!oTG|+@gi$N1*nGIi(r~mP1N<)ys`zvrKN$vBLbXn1rzT~A;#7HlONW$U zWcS_coeXzxA90(X$LHSu^y$kj5AF_Llr8*{ReVnxkLlp|_UIv-n{5?gvP6IKvB$>; z8*Dt-dVU^f3Dbo#dBSe*AE#wm7~Fo2YyX=x4;H{eNw4$-c+Bwd@9*jdW+{==;ezY* zoA3+$Cu+q559tOJ5h9tFyh$xNe7=*CEU-#E0x5{qDRdWSQ7EN5Y9JQ-7fyL(xS})TfrF`^MCYh=2TRkq6 zp9aw|v+N|2h40b6>p_xc=Yvj6D;wC-{sNYr`WscvF7RUxXjAxB-0 zpH=hXulu}@L^1lmK?CY%@umVa=)^QY}7SKsx z#b5NB;hgHjiqFj^hxj5!!;Ue=BXOD9lEg#PtHMBzE?Po)XoH~QRqevIic|xY6Ag>? z^b1PX%GEZ}jRmxPGn7;C&QuS;u=+4@z1v)7z9w;)>FHoe42JlJV*ZLq61p}T^6DTo zt$qU&LCE&WijC$|gVh0Q*d!2ZI3#XdwKgQ|#eeBx9V5A&C?w3dAQ>{N#u50lw zu&f2NmRn5;k40_^jG@M~MVo8Ytip{3kRmIb4v;x`V?2wuw!SFA&;}$F1ZkCV`$zgcIv*361o3mS$t89wErtaF@OX$UU21Gd!7P*_?V=E$+`DA z1R13?&`oPbCUv#KoiQx<`a^*!#2hPaZS|0iN;hGvSLrcG*2wb8-~=kvU??UNs=sY-ki+t@ z#359FQH-gYiIqT5tE1!tO4K*m#AK>D{O>in1cImsn~}YcL*`two^_|J$W6^fdjCyf zXiiljGIt>z?nqmVgQJUAD+h?lP#?CyAgOXUF^1rNwpd2b4P+!!Jz}&7M7p;M1uKL; zL|_`K%uqjuLc#0u5-weJ34*B)d5u>;z zeT1BG-o9xzd(wZ9Kwqsr{i9&->B#FNUNAaPXWe9y-Gz%A8f*h@cv&C(qzo?X04Dl( z1c!t>8Yv}y#GohOou-Sbke{hCbf%NI+EC_-$`Jpdvary19<|Ys5D(E|AyQO(sfp+& z8m}EY@KXKv!6urzjl|*JTj^F(B_rzw)u4V;4Fppymz<>z0&2TI0Rv*jZjCG@N&cz@ zDyJ|JMDMhhZ35Z&RR=1lQ#wjSM;!UIZ5W4_2k#ApR(+ArR1hp`TZEc%FYRbb+!Zg&Pc z1L4a6pxpJ6Fu{9efY2U>$w(8|8w#R?PGaIT`Zw;`P$ZpV2v8|py!!bK+zeS@cEMwT z#;%sR*eRI!N;30*bCqNSvU%atYh+%FETOZNv= z(i^eez9XlGSAJUSxm~x{%?ee0lcnrhd-0+}|IzPwfeLvq{!&Q2PSv9BnW#|zzF5pB zA%E&Yg1o7pwx3x?q4QHl0GlKW?>A38Q<It%mRmW2NYaL}~Lm zT-wc91gTTy{kydVv}Efd^y99zdp2#A1R)!FLIyJL&p9Mitd?g#P#|pY&8AF|qYNqf zEb?Zsd+<`Ft7@OTKN~dVupL}~4gtG}H08o-vq{ZF5VkUIK|veNx~vg+#iQ&R$8(RJV8 ze4{wC1v7px3p$EtKK@>bhv|1y?%r3{(bR@J6(gxN(;_54#c4CevZaVBm1|94DK&;d ztysBV==Fw!8EWIt2w7xHO@@mZ>T9ludBfxq33@1Da%GUQY=_++EYUUxAFoy!J^8Ki zt4k}vFE6Xi%>lPhcIM)l%39P>Hb*aj&&aBJn*n0XC0XWw)9O7p$}+T!^@A?02TIeVPRd= z|H(@10#p1ahHH9Jrbf4m{RiM?`OS~54Tb_=!l?GSgB+JTJWxScnlGLo3NT>SsW#uI z1Eeo;r~#v>k>ojTr&uaAMSe*`B2C}bw-t<`AHpyKmq!U9sPTl@>^IX4zjMbgvfc|Y zf6~+<4-Eo4Aq{g-xamsSxsqwIYhUH7cDJ6ih>4#p>GWMY4SUjqp_gGjF3tj?YDwu9 zh&yctn6?mR44)%&(LX?UfuTVa5g|W8T7SE|>H-6xV9USJ-yP9v*}nKVEhNv(Y`)~d zNkM}W&}}48_MDp!AhJAT(#EfIx^5@3nZ#*r#twqS4mPr zf)PEd zbBv-x%ReOb#RiHqX!tOKiJtJ6#+EuuW4saKyIrw#2LXa%G8UdTXR!oH+H81eBzU7? z45VU8NWq|$`WzKRNLjal6ol~*EE6Xg%?nv_smstT3kiZ;-nS%qS?qdCekg&l=-0nV z>Wl-16!%(?q4Fyub>i}u%m_y1E+r_F#eeuB2`fOUl#I{8 zZ%HOcB=9TZBGZEV2rDf2lMX7wWKI%OF^)6rg}@d=5UrZykpVjj1g;4~UMF%&^!Ad) zwPA6CSc`RWrL>Zlr#|rxjiouDAKD(BCDY-WmCc;eUO=7bPd=IRvnx-}INazF#1V34~UQJ=a};QpKy!I3*rBoroM zvQ0F-dfLh)FcoEeEYHRt<7mwM@1e*qhURq45iaal`^`>$Mo)(t6VPnt)eupM=c`hO zC8;_6nmJfEZIZiIWv_LSR<|@F`v+jrO3l;$?Wk#ym+vfFn`5^)we~lZZrzSNNa|}c z)#9UQx3lYIy7k-P;aXfOwu$-6si;^?)AK*Wd+)-6tB>XeACBh6&DYn-Cd8S0hfahN zg9_CjVwuC=4xAOzL}hiXP^_r(*1-WySS@t z3!}V8z`^kQKBXvJ0;9-cz(xZ3A(f5v>Dy3m2omNLfN@V3j%$7j2vSrTV(+}`;!(EI z7bmFBqpUT*QQPjHDhKRZ^RWE)$5)zhI6;w#5E_ZLZ)7K9c#U3;Fb^n(P!?1<=mU0_ zjBdy1dVxH*mCwHg^F-1+e+$F9ELC>e~U)5RW)p17WOZr%-^r$~q<8N^>n&ds9 zXtD=ho_5vWba@eP2GMwzslmlIMUwRlB^n!tln}`0lSJ~?vqxpHe|r=E_6xP>@V5L` zIu~)b&NJAkd^tRbJhQ#zLhWvMXb_H@63FH~PDkCK13am zyDL84_EjHFchLFj%~)MN7orF}J>NOs(g8JiJReWr%9p$O#^>wz8Jd3ucec{rTb>NJ zj+2)&p4ZYP=El?ChuXND@!J+#^_6nBJC|0l0l3{~+i$=0+xKF4=N5i92D}}gV^G-j zO=3=`i<{%^qlS;1852`neM95m45Q!kXe(N2Z{d7G4Qit}xu3hcBg6Pq;%g3ab726U zcFf4fGW^6ovb{*`M10)&5|bnPpCL)hic)CK*qO3+D)x^`9)Y*?uQ5i7Bgpg#|PQgP7y#kc>&uL%+N`6%=XOAjUj(AkFR$I-_uoj0|H zCuAX$(VQ_H_oCHT&V}n|DDC-l1z-N2y(ajGq3gA0XlF+FKMfl0DJ?54#)N~* z4oG-|erC*x9_Q&&4ZS+jl=f%H}ly##B|C_+N>bawc;{M`31SFQAF$(C3+9XvrT zB%=h{-Ts={D_zXO_nXhSN+w+kAjJ=#}$VxEl5RVtD%ZIK+C9kAj3~2jOn4QQ3 z?RK2p9J9h9p`&e8uV15}TaJK|ryYArC8Z?M(Mb;9{;``0)WQ>o)B>(VGfV1SNYhvb z_abCLVrxh4gEOkW`x1S!i{39#c7%rBa|NgrLHkn20}c8?sPpP{#jKsjEWzV!FyI8%Ahgo3@+ zx)mIQ`NSJUy(YM;wO~9hfVTsxK5GjX((19_JS_^}lU&njr*q|6=cLF+7%5Z992{fZ z>Wb0M#RH;suk*D9m~5d3ooKPymqbah2{Sr&cjw$ti3hX`5*JPpD%d>GE?5CH{Gi7e zwW=f;n5@sRE2q|53)!i5IfYzvB0sAmSn2|;v^4J1` z=}owdwz=`(t`Hesf*B#0C=DuymxPVcccw=2l&+N}0yoOOyrC(8-%PRECX8uqWTCon z8PLds66i4PHu~>X3}-DJY5_lI+#{mG}#gtbsD<)Nqs4^i@iSsD@3p%;7n#f zj0f&K@Ch%cNmak(U?s`Kfy!#c`7p-zI7ZfRk&=jBCRL7V!>3Iqw)NjjU ziZGO>iJeinTKKOE$;mK~wh5$D{Q&*W3@!&gqWUE%je z&#L~LGHu7Cu`;?zw#?-K-IBV)=X!Q8gTwu-Q&i;s&aLEL#=Y_z8z@zgjB}axc31MW z+6DfacrmWffKo_N+(LqdS!uOmsuUj1#gRM(N!{E??eANkkFrb<@oGbl+|3JP8}yOw zz?r57U4?7&b&oR=VVJ=!*>3L=dn(ssX`@B;Zcg|+ zMKk}AQSN(r*7wF$QXE|6g^(bOqTSj5&^2+N%DCeuM+=eYbKSs%Z-GbqPYKA8wjl2_ zSPrt{`d}_PAh&N^FH%?#5 z%WNwhL+xdRFTjDT?DqyUa_zUmk;uboP zj(Gu4m>59>!djUPbw5kCs=C8x35+vW|Ps&}i$`?cpwl8S$`^-Lgk?y~gmgO~ICuL*BB z#^jkIv_o?5HCAzpjxKv&EkrRW^2v^O;_iDH7--W2U_NYKqVn>31kvXnWD2S0tSJa@hzHX zPf$yh_fS%#;ow>e4#gPBrGx^u6&S*CP@`bSXh+y6_;GUo4N+3J7ym$KJ>9StAR`2Xk64gip5@%rCPX}`vb z|0`3Pv7M3A|Id;(#t3y=1_S_r0tNse^gmffKuAbVMOIl)PF7k&Pe?#kSVCAp`M+9O zx|OFL|8q?EpiJ4HgLWuAHp`=*YCE5GE-5Oe%pMq4t&*XtBW+CB8aOgwN75an8<}vp z1c93aKKr%m{Z=16UH5p>WArJbwgE33xiVqG$?ZhXEGEw1eK@B@J;yvJJbXE5OJcz2 zirKhF8z;|m)h)jlgwdmDQc-4w%<2Y+)`@bJ1%ocN6M}@JQ86+hnN%2~z{Y3EZv-Zk zWoJ<3V`_UrE7rC0i|#0g5bn<*8_locKup80noP=Qa5PyrmX}(daHMGPK;=xN1xCZ} zXA>T0h+L9pQBJ--7ozpp>wDM9y(D17Kw+mz6H1Fi#P?Eq{%aqm{+rINIebj!pQM}RCwCMd8$ACH{>-89-K`v3*a1OB; zc_toIAa&otg32*i+q@9f%1XspK2bjIDJW^%qAHgp1#?O(KbvLO3{+G>F$@LC&dMuV zilesDgFK?eP(K~XOh9vG3n5`nGg#iVK%NPU6Nt2719NBm%cQ9r$jqD#p$6AXOi(L6 z4AG_)6G4hwwh?c((V~x(V5+fK8sWAF$_`{^i__{(*K@NXTi1O_`VRkW zUUZ{+YJ1-Pfd<{^N}8QfFg`dQS=;+MUU_=k^>ZJ2o7MaBOE|FZ6yX5Og`Zow@M@mb>|>r73W5M;m(O>Z+d# z;*wSEwFT4^2Y*CnPi8!4L^%teL?sBYqc}5uwO-{FBdd}I7cmn`b(uv#PWKeARl{7y z+rWtun`0h|=>{60u_;DsbV!xMmo!c$)4M>A!@^izdVJr14LvLMauzNtM|z4|J__>7 zS$?=_e_hbIYL!{3Sh5QQVTk}YH?~Bs{DT$c=HCTN4RmhQr=_7KVn~gHkGmq*ud;Ff z7)~SJwQ6CD8=Pp}zqT^lr67L;2e|2y3sk)Vg+4M_-d>*TQ1lw1sN;}q|x@B<(XHhan9tedu=Qz6>5rCg^~ zm-qt}kN9palQU8;5m$E0-$=is`=P6XYEbk?YL1Of#7xj;v(6?s+D55UCEQ_O`;fS< zGZ~$A62rG57KVx%N^0=zWjt`?c_)**wpGu$s?X4-^gv#f)%pcz;?#N~vO|ME+o0#% zV>|hHp!IE_g%(!9MxYWV#@Qv`@l%w1d=u?`ySnBya)K`K!h2F`VF`)q_nOBZxz|Jb zu;q1XX6OBSL2X7?L^)oOLQb%pLvhTRLbk?j*TES&o@C&h7oKjF>%@$ona&)4PtzAuKaTAK{J1cN7Kj`pkEEhU=L7*}pr2lnzQW5Hluo+xF|C9aZ( ztSMLBK31Wm60aln3y2rU=lpJWj3)Gas)&Um7s5E;r0d&%73JdmCpTIDQEiOD2{Nl(%&TNag7a1qpyA8o6RA&pb zPCHv9oYTd=j`5jtmG%i`!?~+XHfkA0raZjVc7if#s?>3wxESgkO3d8Vv$FuBgCb8y z%4^2?`F^oJO41llg&8-o{m;_JvyBeZcd1b527bcMDpsy z0>qmCOE#WkNj?R7prB%u)?(s?(o$w)V%O{ZegARW{d{tHir@7*kDZSAC*U0#q|el} zB_<)6j+9I3)4D=NfABc?pjDBm)o2kBxZ8~PNTBhf-HbP7@5hbz#qKW@NXI4yGGjy201lt%4YiSQ$P zalSRt8dRo)C3umAyFcq{z(0q{V}-P?f79+IKqfCfc%cH{XaCHr*C@E)CHBn4E$s4` zyL0<+Lrd+!^~G9px%WZN=(#~NxUu!6c07QU8Twf6g=C|=>|_DKHj`kbS3RDV1B96Q zuam`-VOK$^5Ns&r297@aBk*BXpR{k))VMxkb-ok>Uev57yvxHuyYd-nAn$oMHlp7g_W%Vx)J zT857dz4?2ob#ojpzR5~AI(Ch?s;)?3imw`d4=pi>rSC+O#GxNwdJ2~* zc&PGp3D?{)bHtL!pNe%RRUlEXXgfXcF?2-4f4c#Kys>km5pOyVxWpY4GunaHv!G26 z4(xXK4b*<{i5{nax(2iPlZq)&8aj!Bo4Bhx^SK;_EuMpv-#^tLlmI^D5KE+;L@4i* zyha!xt%_X;&DFJ1w@K;yN=F=qpT`!=od>q^H^Y6G3Z;aeL>^#OIX*G24xPeABLY0 zbF?$)8WR*RE5pID-MaM*p-OSq~?z-(l214w*?;Nl+sxLDoQC$ zM$t3}G%`r}43KKb|`FZws z-J_zu%-)K5Y@nDk8>B(AMqNz;->MV2hxLrC;xDYOpkoMUpqzPaAEh&;?K{rjF)KHI@nB2CfUeONE#5>jn| z&~mEVtm~cLl0;t0yy8!kM}wjGNEt^=TI3z^?HJ*yXl^kl=&Rf{vdp<|n@Z(-eMKux zYp&U|R3dU&ykAY}g_m0`@(yv)e2e+1}sl)}|cg(ySpX zTD=y1*f%5pEolU>(qUCqL~51Q;@NMkP0Toej0n3LQ>DJNl+LbuX$f}B$dfI_**y<> zCSp1DzeAW&cH0hgg0Nnc-2^BHC&<8YtAos}m9EW4z%U+j&Z(tB80|G2Gx(D6a0Bp~GM z)3()-x{N+D#zb`5_>s3VaI}IT#7Q7OjV1eVbg|uh&KkUFi0wvMK7xl*mQxnGl5sXG z#2OUkP+L4tU-VBl%;g4IzXl?_tLrweDCk;tim@jMYaCB808My#3 zpo2;y-j>jjY4T)QR7&iB25@7?SWlt_sUqjFk}GxcdZJlhvG95|L^PWMfeV7 z1iV;c7mGDAV*v3Two4Z2cP6}(_Ma7uCxFG8K=;AGcg)deR%2+(jUBfHi`hjF!ABXZ zE3gFE8z73k6=CB0ef>+u)znc;jv3^eXn}Ulr#%1t>BJYp2MThJtzvQ%sx$&Kfk(BW z60>$6nEgVaq$`h|<}=<&saGt1JbXa253z*wdw?B)$C1qW=-6-;F^SGJshhpH^_o@L zD2p6-wkh!dU*^lUBj&nmmjL~XnI+1#i1q1pvB#^JzLh%kf9(Bi%H-^$b^S)sjF2{L z7qC&vV&QFyxS&ZFXm-wSqjRwJP-jEcdV9{)>F&Fs^}5lZ(z38R zuYlOJxGopBML~P5;yVH6s$)X&{4~@?w@Qlbt;3JGHr~0-fOB}@-T)Uv@V8<< zNociLnq&2!_L|$+?x4i7nRb7rMQQMC44As#KzxNcD=pG!79=O)D61C`T`wt}+oiw^ zT9Fn2%O^;;;t@CEg1LAaVI_+E+Vg+Y(1Az7Cir(rK>X{s*#_5p@PL|-;>PQ;mw&Z5 zXC*U?m&pz<`8JHeySvI@%$fgBGGgu8r6g4HYcZ$YJ zH{!SMKQ&R65*Iq5M@ze7K4mwzxs655TJyZyVp6dr_dC)th|Z7*+O}Hm;cT@ZW}Jb= z1uYt>wns)rJbKdEdvq&lKVbyH{gcMW&=z#0#@AMBZo^{LM7_zfJY{FAPdRUS3*4NI+RaPF7Dy@qgn+HVFc@*bFctFT9|U zG!5Z8&e$lRFyzp{q8DV8b2`#iXOM`|MT!ZBc=>GSS6)Hw>Xgw&ZRT#o;h&#B4!k{? zvIe6mHTidBJ-M~3mB)tPZJ*vRO>Mb+JG@gJU?q!kiJI-?;aA%%-eqoy(CQFm5&neg ztZDA(G zfvrHfuqNHOR{Vq~3eFI`xm!}$*U6+6DwizoHL`kGTwq60g^OpDHN$-Q9%DGEe$H2q ze;%U!1P3jm+?XCKl$kZgiZ-eqA=+q2GNC?Bp0yb0KbZ?u{E}JEh^k!1tLFw&QHLDi zFr=nNtN0Q>(4=1~+9mrxcFQdUv?uNW@1 z$r)Gygq_?{^Ll=quwdapaqXbLAEc@!(@Pu~IXCm@sY3%+YZ`_I$FMV*?nrtnt?3*% zG_R-5YOBhAPs?g7r*Jr2B`YHfn9Fahc)j+w3(c4CHQJv4{_P~I?3Npi&d?2=u!NX* zaTUr=ZXD!wAZ(nHDP%h44Ii8k@_bZlK1?MPq$R;)UrTTK_RE!O=5C&%s7UuWLBf05 zWL?17^mdJ`=W!|qYye#5H7Iqv?PNS=sa}vpW#1NB2Kp}2s4Twof3EUHewG%lxHZgO z4*5NrE>cL+V;B~8T&J3|#%K?49bkk#VLwnQX;%n{t%qMfT&Lpk-Mpr;2Hfm+mp{_0 zFJ2h0ID}Nh*eR_f?=YMRv%H0MlM~9Re7rT-$qnV)y}p{y(IBQ+FWI z!ewmRwr$(CZQC8&wr!_l+qP{x=}hj-!>n)K?wY5nA8=NkU7PFKYX0D8ZmA&HjGMaP zN{a{0Fh})W=EOv;B3bTh+nw_E71KCxMk4#|5#!+f>CSgXpOToX^V%jHu?zrgP;#4P z&nmxs|89m{*;v=!lV!YgEBPE4b3AM8Nj}e?RYHYs=mIZWm*H$@QqL}N$2)<~48Y00 z_~CSufZDB=QO4GbdjG5=wl6)ijpkNT91yUcklM;q@xtKzA~LC2X` zE%OS2B?O*3$r8l75bjmMaq3rmnuL=6FcNo0Uj7@iiZ^;vM2?bgg9v(Tz>*H+u7?ck z$Axe4iMrKNRulD$$dCk;;M+#Yi;$ZZ!5tZbB~N)dp)Gm4SP<_VcF75cPu7NDkG7ZE z!B#(6TDi0=)Q`PC5l(6)fwR#Fuslz*FgDd@7X?RzMiFl9LuuJcH;;bd(hx7BVR4@o ztnNw&<;ye!z!A)lic|Lb>&%aaI5OZ)Ic_*6YSvvi6PT3XZ!{gFJ^p(1w?1brDJT9Sd$>mA?H3N#1wN>55v-VZ5;m>+eKzD>kvOUkv^tpt z)Y%>s&YW;Do1D}q^b$byDYg4(3$~M)I;{Wq=FD-)@g!58&sGS zz+bxmtg@Bt*4Rogtnl0CdM3!Q02^l6GK>SCs(D3Jt%l zp_}VI4W4 zn4+lf?}n76sK&9zBQ?W!ztJla6(dFEQCOJY$=(yyQSDdSHX3Ch`ua&~RiQca#-F(y zI3@76rtd*Qux#WuZza1Y?q!KM1#})K_Qr6Rx-rlU3AHEM<8e6r1_1&M*)bx+#^I!Abrn9pZVjWO!zb4F8#Q zZ`}9#y4>I3dcmVX(*JRhk3hs>C)~S2`Ru&(Ln!m-!)o)isu0eQJ!lrQFMv?9ib9bN z^PEY^kSai(Fh&ffKc3g=`Oa4iYoDg#q3SX|W$NwW9GTVxkA4;wd3o7x=4>3oOq?G#yn;1CP=|=GX8r@4hKrAv**L+?AC`N!tC)e|mgaZuu(%OrSg+u{^$9VfH@y zbgo2ubs;H$a|bUG$KcA6hjzYtT45|;^(v#I{_LDqb^&$$1-*=^=aKKsP_E{?(#e7CZpeS8liD(zs znP_q=8cwxmt~&W99(l!DmIzIl{0|02^0040QH#fMDps=)PNdgo=v7 zuSyf6Dd|Klim-i&B3ciuy=K6iP8i6Dfg^(t;dY_qE=9Mvy}V@b#%(89ZwziW4eNp| zH!wM6c-irCdzF)@tu$RxaYorcu~nDu>UooaOZod zt+kDeY?GahCG?}6V}7aiwfmDVXy+Mr2I=f0c$N%Z(I^;Ua=5UvQiQ)$)Maz06h}aq zAFiefcMP2`i?)RPvm4&Wqto(^m@b;r_jh(HlWrul+OJK|wWr|a;zAd(xb>QFSp?m; z6Y3>wS?7xws5jOb=wGRWc?t#;4VwKaR%%FTi~ZW)+wPz1h=wi+unkaN3oHD)oRJ&| z=_L~+*P!%tE#|c{8w%o1-vPtBDNA?wMa@2olB(x zchDTRz78DDEgIQae|hFj?u5n21tzbs8$of_jILdAy89LJ_e`=sF3a?p>e)bgVOzD^ zOTB`NoqZ3a6Mteq!Ys!$9P1&NJ$C6d3n2VG(P2MXBT0x;fYSQfT1q#+=Mn#P$+Ht= z18DIE7Ft=>UQf}48U?0#z0iLZu!&2kK>Sip!#6cBQ4FL04cOqfK{ykC{jw-!Ml_HI z!Yh+3hkw^$d*(KRy&Hri3vJ!w5W1RZlOwGv(T5N&oG*&fN9=UzUyU&@?RNn=!tj2F z#>!J!H&+AXWF}7?j&IyU2h;L;tt*N0B04`)rML_!;fTE~oK47L>v3T_t4fp2(rBlV z=j72Ns$`z!3~#xm7EOoLZn!S29mW7_jeQ~hT*?BLlg9=LL@a{(6x<;fq?rl5`Cq5! zc>H0CXrI3SgyFgNV?{F}f(G5+>5y~W0mR&+!dUIpg--}YEA79CR%zS6r)l<5nYR*N z`%Xw52K;^C{hS9#Dm9R67dQfjmdY`5BT`GR&Dx=Q!naeu_HhrU8YNHzQD^E9{%kxC zq_Uuhc^RWZl+FYo-yT607YjJvCFa9Ufkt2n1@3&~S74O9VFk)pFDY zLLwJ~6m>wz&T49EiYN(%&1c~h%Yo^&u}S5*KhQK}G^xdiXWIouKe+)NC)^YU5$(>` zNIjW5w}f$3B0^B#9U!@@v!=a_{0BoMQgZ=_&j*A@qr8Zs+GIe{|19clnMET1_%P0^`)$V{#t(I8Gs zITURP1@x%pS^zYcVKrv9SReq3w;tu6A_9RH4uGzq=s5$*Ln@%G^EZIP!A2DeK)KHCdWECJKKN5*;{1datTT_W=Veqx104o@3Aax&D)%{m5 zK9)^v@vy;gTb)RkYM60rapJfKI(^SbSv`qv)~?M<{6jYX^6Z@=CqhZpT|ZZ~WPByT zMlb6QDe@x#(3W1I-{AAJ)y0?slX}vvy2J2<)pBx;rsp1U6E#r(L#96L7&1VW>c4ZV zD-P=C-BT1IHw4*YK!#&%oSqP!Z0o;&(}Fd47aCOqiE&=?!NWNTt@7c3TS~dEkl$b2 z?P*3;fb2!iasuB@EP>@MhJcb~-INqhhj*GSP~)*t)ntYpU|<9;R_bsjHOlHXt%8T z_)oh3Y3HWr@q{`n$XK_9EvQATEml;3^Ep$W%7mUD5J_SiEDszs6NO&8hyy4LZ}-+C zj|hQ1UE1yI-AOII=r75uO*4AhNxvkRHvN7yn-6a1xl#LVAbr}x*}>|hwDaV5tZhMH zX&2nZpRc1PdFhDoWbMp_7Xi%L*Y48PAdOU|winKOjJH;eAfb>fB1}BBe3*5e%vioQ zs9PiYmiCC<7%gA`ZDYL9=37K`TM1&p>ceW6ao5hzr0b%=^Wk#< zmF%26bptnwsB-N_w{wBVI5T90p<><$Q7%ZQBRWKbq<-zJ*wIZt32zizmB|6%$NbF+=Qt7A02hG!?-Oq6OQt z(^P^gmjMzjW+C%+He8Yu+0c2hxB}J5B{IOw(lgm&j3SNO z2)$+rA<&pS-P!7oKF8bLv7|DiSj0-I93b<^*G|bm@~KixFFw>NIZwG&{h|jgdlrxQ z`H>?oxlaeGfOT)IR~Sgf%frYMVa34>u*;AlxOKqQOSN6X5{muwakCWKX=N&RaZ>tGvyWMHo{J;tu2LaZ5&d~jYI5L zdfaw8dG;_KOF7wkJa>3#4h{gd95`CN_Z@9SZ6o=>LEwSwGx0!x0M(ioLMm1>;Z5V@ zO@=pq*O1_Ld)iyrtHC$C42HX87 zm{|@CHzGr42N%K|v0L?I?B&3DdY!6lo_eXBJqzRvC7h)AOYyb@YAz!xW@rCJagnvE z$MDxqNuU12d97gqU!ea)VbP99V#^fxJquoRxDMW-#C^8f$|I*z^rI2mjbu>WFrrJ_ zL+i(iD23wLa>$qYDKkGqC+eC?d(Re`UJJ*m+m`PikHN5yN&WatE`gmd=;ZeLyy?t2 z>=$w{jiI2@rG?c+ak&R5)h#;AQ{)ETaI8ITsGA8o8R=z;FAfXx=yts<@Ec3fZgJGV z_W9sWpT2oxpN*rh8d(etjDXgD)Azoe^*SmXY`=>z$>pQ4x++sZnySq-$4RP<(25m| zPB&tXa8;*iSmtK^(Vls z*L0!Bj!Hrwzq0r(+omuPbmNGkt`}nX(7na67VGK_1C$m-O^bi`)QR2wcxT%R49Yut z25KK>!ue7%p|FSY{Oi8VK}suWH9)b<)V=QY!2W*{!Y-=%i6Xy*Fz+uR%>3VBb8%&T zG1>p1a+T@-bUXigr#P-QOeEUuWEo*3wA#X|g)^%KJECZ%n~R21b-w>f&WEkDa^J#! z85M28aD#@!p^5r^4b75$zsuHvx6|AM1)scZd$=&m*V=!k`0L$DFNI*Us9CuJ2F;*% zhcHsx@Yjv`K&xNJP9lH@^hul5Op%($@+c;Q_1xci`x^V%+%&FbzGoSQkMLR*FQTI0%<`j5Z<# zeC5u4Q$(W9v&r0}<_e4l%IFt3>4qqLRwu{daZ4&pIP?ni2JkwDpw%K8_85Wf6GiG7 z+{n)S+QL-C(>nF(8GL1dDEHDubyPy#O+@LtgDwTm(m@VFSj3wp#XgW4k+73VrU^iy zbVu*4GG)<_ho2ers9x^${L*tWI)}f_I6SD(+WG%1S+}qAjmIk(^}nI*G2EW>?B@=SB$?o|6(#0-m^=XJ42r{DgAVzC>OK_-C_!vOKLQt-X($lX1X zA5DqZ6=PDz?|(-BKMy6AU6NWZ=MrfYx`qK4gb&V0yVefPxwCbD;chPyUt*h z`thWBZ0wMbWe0_ocF6v-_h`}i;QZmZ#oWrl*_jl*boCgx>9nXLVcqjgWLTDKq*N6F zF<*G5h^h6(b1gEp6m15@9c$to%3X~sn*=hj^o8?+N@TQ$;dj%XiRgi+(tx7YeXD?9 z2@mwgv{!?sH&eU=o97wQh>%pN-L1eDT^RJBc@;%AjL{>bm!6wd6WXQ8zEaR8N3}l!dlaT7dkbDZk5)^+-3Lq%5VjI@UqSz zzU2VBvD?Ir@sKoVZ1kgBNuX-@*pJW7(+4gfbKb`_wZsDKh*|Fv*QGC#?%IMoO(-3_LBmsIQ(={@o3)M?mTz`x1<~wvXV^pCxlAyycNrB!wCQf!M!lgJv}q zR3vV2NHbK$0Y(KZ$loVPGl38bI>P}N;8oIl>FR~%T99k;>SNwge905WQPh`~tOEj1+(FfBw>l3KM>wC0mBhWR}tkWr7#m%MF^m+-m6kb}^uf%}JN3f&$b#=OVxe z(-#=yqvf9v)a_0?p5E|J-^-p`KL8K|bDd7@-}P9O2nlP{sSK@JC{K;MgvWryJ3Aj9 z-4lIC%;d>NCm|R%+b|(e$vfUDPlfoYu&ZEUaMJ4MTr>iswJ;6U5Yq1%$b)j19sR8m zWa?zIoqNcB((#d0{?it{REU3KLv^TxB8{0^*8b#-$Dg3JY>Fg+&rLgC)&0c6vpT3h z&UQHNj0N1^!epv&2E|GMgTvMjlEzunY6+(W)xM%?Y$B6e5$&-eAe-xs)KYBk&OnsDlG4G=`NBsCl^i=uhmY{R0IX+ni$67A`{&ZbWA?aE+F_ zf(EtxW>IGao66*LM~V(4RVv|CJ*68D^O*}!xZkXFE*DkxISA=rvzH*=ahHyUTYqi2 zo2r*^snDT;%!MB<>uNQ}@p#UDy_i<#inhTD^@KA0Cn-(UBO@^3y4N)yURmYvLI^@@ zaws+mL9M2bJ%sK-ny_NE1ra)35T40C4Ni3}LD>umjqMX&8~Vq#@`rkF$b-(R(f*R) z48=?_U=~e@8DMw@P60}P!?f1qu1E=_193tJgQlmRqEU4^c}Z&0&XE};PYxkg2=IDyO_H#yp~woH9M7ACtgR5Nz#UQV|!%bn_F zhn;a^A+>Shuj1};;_h{E;>h)E7w6Fb^NYWiq;FpQ8)#7a^>hDM6rr%ZoS3Az>aQaG zt4#lb5m)u`ng2u?UMZ)D91B1J(cK7NM6VzSgR$5%P=buX=|O|zJz#6I{h96O*!Lyh z%(6=jJMY*J?|)ZdvM^_G(`Qw!X>t@}>JA$wUvKm}J-^2XrQ_^(Iy=v>So8GLBNjq` z2X}H5$wk??i|M>qGhN}h1o^VI=PPriREpzOglS|E_U%_q%OLcNX+%ptcQUn-i@d6x z8N@~Zt%R+5)cBA@Qc_)7=j@_N%J9W!SBAaPPwuw;Rvt$tQp|N;w{ekA5Yp|P5xPz< z(Zhl+gCANgT61Tqs-~RjW}>FW&2w)*r=lG@-&1*wQZ=ocDqTBlrYOJwDRjp|$O;XV zu^lMX1a&;0?dV!GD)WZKinMq*@_U$Y{UcTuTs>jGWD_5}sp{FQl5U%w$7Hc(d694RXwO9 z*)NYA>E^4%`C7#s_mRvA`0e`6ZsT*|!c|SX;p?C*VPiy8Cp@n&MM1x4n2lc&Jk;N{ z?@f8)YDDuQd*QPJm%tmh`&(2=(yp&gk^4AP-xL!T7GSmEfgJz%S6DzrRk*54Powul z24mIhofb16!3W`JEt1%F>IGY%FyLCNk>Lm(vr?}v6|`}#IA)2b^T$(8PIVN$42}H6 zH-Gs4ki4qt097v*S%ItdL8=G=Xj;P6Uz?9uPoG?h$XE8(JHJKcywcjs9!JiO$ImA( z$m1hCA)jm4rdMm@F=Q7Yhh63Ed6PHb3r7Y8xY_IIa`o+bO#7N;tWvi~IOu|5Xy65$ z24+d(PD5wguSq4%9~g;|&!3>$eX8WCCrt_5E2(Waf#iTo3Rut#_|)6fKL%AIh~J@Y zhA_Sg^6x~I2KZtcA93_l!cqlt89L}|pFc1M5RjI%c)Q?=Ni4I&{`&-O%pHD-Kt~Wf zBWkLZ`G#)_Ei)Qwy@wfy!1z;AnERTPt>*i}cUIFnviQTee&AmtHh(Nms3lUpF2zM@ zdu*sdV)3<=3}0aH3?=+ooZodMhkGTTys#cI=F3>!rS6QPi&OYNe;uD^rpe<{Jsdng zFPZ{g)0}eLYlE-Z0kg3={6)eR4rQb`s2g}t_n_p|&R{FC;(1!@D%_84*3%iJmk39> zy7b|MoV-jc-aiGjiw<`Wa>*4$CR;O@S(8SN91sH1=CR(M(xT1B^o8Ws^al#iZ!)WS z3L+(0yW~Fuh=)J8w>)f~zSo+)Q{z0})4kUg$HUI+4dt$O<^k#g4<`&W6{GWMXMEs@ zF@qYlTsLq1Bkh1x%3)T=zry30uHs^0W8OiPW$(HVAf`Iv+N0x10shHL;>Jz@p& zI38njf?44(F1UzKQci~maZC6{rG(I#G}r;;nPpV1`km=!vwhK2Dq<|>kdVaTb8Ay( zkuWawiJ}}72YE~pVnZp5X9h%``2{K;>(eR%`w@1JDEUIE$s|ZQ|4|^rCuF16{Zpd} z${EBDyYLZ}R2QC2-3~p>Vu;^SO!&?UhSh;v2Mnp1VVnLNaZqB)qT8BSrPvI7tb~?4 zH-4ULnd8?M&5Jy8A;(4bc)d$L(D8%gXz;@wSWfz(>yNi|Dl&Nmvk+S=GdZ)=f7^nw zLr2SrU#EZZrX+L88rY0CD&vF*D%G!$E&DqzxwBE?2#Eo#*~u?AtaJc%J&21zVqOG4 zuphQrXD!{(M|UqoR8Owpw)Fwv5I;~I0m-8#Xh5beV631DtAMG}bZ9x}wOVdw)bu(J zz_5Uc;kketQcI|CRRCuabxe5vnO3Gav7+ceKapBm*WzCqE$40W37Ur3dfsd*7l(P8 z(LmUSjm=mfBY{Q2jc?rW^|*MdTT2_Ecwp*)T72(7YoeOrrLHz#A^8LV&h~vw9evxe ziAuR_Ke%kl9X&tZaoL6K0zLbaFHM>Tt~X&@izxHe&4?a}1_Bc$n-e5hg$;IHpYqLU zSO8j*WBf^H8Af_r-f?TJ1@85<7yF3iVT>Q^b4=Rt zsEs=^qVf<>oXXPa7?Dw18i=}7OJTMi+qqp!MQYO`1D!#HHES&T2Ks-mzE7Pu9anD@ zq9G^%0DnvX0MY;MXGcj?UsOXyNl^Iz*s|p1{`b4`?=|SFDQQRZtCYP`A~gVx+ht*9 z2r`X8#5e435@@)VR26QH*G1rD-r{P<_QjHdMWC{uWjP?}iI}*iKm!B$xymv2dSv{3 zr@_HbZ!EhQRo23Yo2$>xsGsic@Nn~XzF%E9xw^Sh?ygRjGKGcV)0qsW`Z(x%8|@@E z3{Rd^TNkx4reECV`4ynQ(GjbqH$Ixwc5bwyP3p0A<`u=15-G2A_8JYCICl9Mzn>W1 zT6%tMSPvUH3Z8gt8`HyC4t6}kW-KNC!-;LNUG2a}%CLI9`@T_MY!V~9!5dSsX4`pj zFCNgwF|bB=gAXmdfAUScvXwnCX`qNC5?UR8+*CcgNNMA*B@-G@DoJkD^TqFQGo0EF z1GCPmE&Mn-vPtj8d^L!v-Vib}^)$I#R&>Z(X&e?WxH*{5fpu^6;%IT_U9K%jO1kQ4 z=c`()StHsm`JB1?^tru`Q_@~$;;&8jx}KyPiYdFSql=Ew9sCyrzjWN)UB|7R;hN@i zDU^RC8&(M8ac|-)mG^~6>(}-<@&1nvI+Fq`y#x2*qJK93{QB0Px_8i7)Tahc%c7#ulReE6uJo*Xc zx6KW01&I%AEs6#SyRLIG8*sQrN3yj#bw+1`@C5%?Zi99#OX0tHO?=#@hsb-afOiUp#K zMLDSzmjs=H2&T=ohB#2BWLURB+Hfy20w)HGZ_+Eij$#d+ETOyvO((GWo5QI(zdjBM zIRrd-IvJRpm^PIxFg85xh3)(|Y_K<}%xZEdGCTdN@7*>s609SvhO=i!UWN=)$wXis zoNjX@@Op7kpcfhN==HR_dN}yFM*h4FN;(|oVTKdI9DKcrL50gxkOuU`>FY^s67GAQ2Q6Z5M!TRv$Ng+PM^M)9kIDL z#GAQ(pP%nv+IPn!EB+}7u%fi;A0_rgy%s+wcBn+B?||)cFAdFakBfw)Fm9n_=yEE| zUSHa-0aYARzM7pUjFc?$Qe6P`^s%p;Ls#-*A;hfO8R-4 z9HI>u;?UBLRs+S}JoA)Dv*3ic$OVdaJ9O+@vrDGIYnravEZ)Wk7ZSi}SGbYE)ZTsp0#kXu_AsRxFYUQ*vp6HX;NigHKk_d80M$)1PZN=f-b8LU~}E z+{W$3SrXEA#I3nQv0Uop*M_ojI>(AKCcR07$H(k+o1k)o*B<2>r4u!38{Xpb&{hCG z;nM%(*?(Y{-izDg_w{j!{CqB|S+>`DaXY}KBaqpQ8bMS5&@2=E^}#F`bsm#HJ+`#j z&nTn0%y9frSoAVfg19AfJ-3toN;uA)9iiZSt_VGO7)>mxAUy<6oy;IH#oKWH7IBYB zeqIx9nU96nBDI#eeLGDYN3BcC^r~9{A2v|HFe&c*kWOmPESvUh{G)cm zMyHB}+r9btagYL|Lv_(7Ai%?5T+^K?{T)?HQ~>1QAbWsj5se~LsYyn}Tf!kXf$Q%s zbIUKJM&N2QYxsoCmDYF&bSzq5PL&V-fdQ^Sp&*biR>-8&%nH{2{BQPKgd?nUabtO2 zy2=HX#5%)2zHOybE*ht9(wHAWX9*#N@P2$W;_@-d`J1cz%j5a#Ycgu__D)XG!r?uW z?j(+_*$51%{<)ZQOU|58j*W1w_QW+i=Sro-&+sNdr}gu)EWWyexww_UDLKvCNOszv zTvwCqHe%6KE#Ikba=VELK;}qwV;QmRbNHZ375h2lP@s=i`8@y|EwD$0@ovMLmX$Iz z!5f*n&{#?<%sWnD|Fl;BA;#0IyL@DNO3yV*0?lBM@3~~_SbU|OMOXo94hAJ>LlMJ6 zy>^b|U}*qMnG`n7ErDAP!?7G%=ln6NsN-^?r~)K>xsuW>j(RG{g0*N!G?cS@R|d*j zO~8xt<^i|rTOIcPt2)|5!ZxS0$Z>g*bvSbzj}~26$S;hAu`OrRme1O#d-r?hQ5QaN z9F}@F(suc8zI&CgQLllMnq$GaS!yOmXq12rt*}1=Mjk)rvK7_{VwN8NvaP4iM+cqx zQq{dN>sUelcggjE)a>#>^OWAhV~o&Bu*X8ri`M8PJDX?Nt&jZ*R4qjW`Mhm^;WolY z7Ub7BvtZhq`qRLIX{ZppS> z*t7yv=|#2$wr;27QCYROQ%7##5AQb(GneOlak@JUJ$?1_#`_6BJ25bFW3op5(AjxW z%lf%+PT8N$Iu!UfiYq}#2`G}o4>cDCmU9$ELC7@>X19=|)j$^BEg(&4=b8GFe~5+5 zP_2*-CWmUFf7$0p<-fLYpyRm{nl!BC@X8#GDWIr(I^0N zyv*Di{}Xid!CxAs4lD2aEZv8dDth9P=O@|25LA0B;KMrao4>!mpVJ_=?TUJpuBM2- zdmD?NZnULZ?`^%tvYFPnqvS7Tpy@Ds)qZj){HH2h;J*2s`4{tYC;Qm{IvVDo(GP^n z_pS~UKkrW#_&5P}=qcH}IzWHF)`XPh%5iXQqQloWE@tFE;QtGg|Fgs_v!_sAf(`&6 z_luDg{(oSyvZ&0jC;UG-hTjT|U$H|Ldzq8^xVPi%BbVnx2*VTYn<77$8>$ZD4OZ~F=pwJ!IqV% z_N|?+Inm87wviUN`}aT8h$T&$Hmz&Bpi6A?dP9ek_w}o-wUel;BJ+2x@GNh0r9L+* z=S#7!QM_h17q%>PhAO4XY0-$0m-x4+t2MD|>BeG!su^Z=&f~rfxEft<=1@Y|={Ze( zcn33MBGH$7a81FwuBUvpSJ zx4LiOhaHB#2h%avH2KXIc?R?yhEfonJ#R>ucFUf+^Hd z{3Ba1GUr+VfW#t(E%@q(a1AV{4&85+=QspinA~YMQHkqUP`92-;SB3$!qSET^9N}A zrCuU|d-0qkR(+Nh39KNht|~q6`(d{UX84_1mj&-zq@b#_0;rw>w!gTm?7%8mZL|ZV zKQ9*Bt`J(g)4aa4$zc=9Kn)?SfLsXO_(G9<@O6em(G~W3m50K}J~8Q}wmS+4J;r4$ zyKUc2Lc29!!xC~j3b&rcTJyX+J1MV_gAWOwMqYG!VJP4YrVtQxeyzrOs&T+s2JOse zJi6B2u{S$wQqBXe>MfZtxBgFFcv6EVidhuskYYd5^bL5R&qF|PV9)FfK0T<{?YaSb zXP(kt3wzeqZ@f1u(uAn`d(EEaC9H+3_ukUdE)*bI2>>Q5YtLd|MLr@ddATXHsKyx# zr8O~`jSYk&OLK9cD{Fqh%S2MUrr!f!h`MUth_%ZYJkam><6sJbTH6V1JJOq;V`lKC zj5Roh0W-Y77=8mr`_O(S%+v~`lCki9e7L=R0LDfJ3vCrB8TV+e3$ncz&r2;}h%y_% z5qm5W(G*b!Qng;o8ruMTwg&*-zy~f{r~oG#ZtpBfrR0dCrH4)%3}e&I#|2T!)+vo9 zTFgIp5G#&GrS1yEm(Vd)C-iT5_nI@!C!QSpF3lM3up)xDb$0 zf#pJ7Kzt~yr?BkZ2Le`Eh8tVwiA-0aIkabJaQ3H^9~hV&SZtsjM8Z5_@ma;&%eWQdSBMuT(s*T8psg|3W@EHO?VUi9lBM@$7PS4HSq~^ci4><6 za^Pd1@S~kY2AP7Cq!Jwg(-s}O)9z*|md1L26(-WOUL+frJ9;1LU=`7SY z{A=D77`XHFM1=!9$!0&ym)?5s5blrF)IAP_a6M!QKr!{`C6>Jn0XcVPs99r@Ey1*| zUza?tU4m8n%4IS%phQUUJrLKjnYu1$90Z;w0z|E(c!h1#@4 zdaOtZd5fVkDlHI(bXH*cT$7N-@%>C44*LX!warqo{zU(t8$Vq36s)>rg-1ZR9<8&7 zg%%7N(K5u!P0?N}2n$D;{;?hxV*p{_oEJ!r=v@awIc*YFhj=Gt_rp?sH?kcjFrEUJ zNBmHqc0lE=E5VZ8YYugu0N%ZHh2w!9KyE%bkd)d+{$B-U8Qpp;Z-?_3TfR{>Tzuj? zo9Iy1H8==oJJtL@!3ar5^$osifTf-tEF$SZmMO`MRJf+67`8Yl$7iuOY9&Kf9i|3Q0q}4GXJd zO2RcEgfpUrgt=lpbWwO^8;PbRTLJ(;{ody4UtDe*LCDObVHPcDv61)1B>dAx#ZcmS z&b}n;1SP?ilyYrqTvK3Ihw3ffY(4sSOX%}mXFv0ZkIYz4yOAltwec50M+UA0EZJ5C zJh4A~z&GogqoY_1#Y=`RRj5~q6A1}bjMz}0Q`0WcC&WVsn&a>0`G_q!+vcBTf4iGP zXN4#OxHTHpjS?%vxFWrilY&Z?b4ou3k>#?=M?O|?6wBB9Gf_VfKoyaJI z6*zf0krrJ`>MNldX$)zy!5FLsL+OeFeBYiWf&wIRHHTnoQFx@3joN(sTi7ogK~)a~ z-c=@29=ij zoi5T9fkGGoifB};LhRF?+rh7FxC1@STabfn1!id9RUc|TiGXe7RIjq1=KHMs@)jB- zEPw980BWww^Z}plBj6D~K3v-Tvg!MbK1YgIcTAdbmVD+eAr*#ae{*QYy0Cl;lmK)e zha-)}0_xKlKGBQJWUk~2K--Pk93OfoYNdcVv8Oq}DbCz_1qc_iaoeHW_N7$;T3(W` z>E|lafDF*w1v?cNYGsafyJF2A`^CItry<2Ve>j$;aqt+UQxnO9F83XBkb=R63m%m& zFKQASqeReIzsPKrZVL2cPo*%98T94LxygsK8_UWawz#f)HZOK;0%OGB9Rp_6sihq# z`S-1`X-a%Wco)=iU&4?ShV?)R=$B@P`;*Kc#ziTkd;=JepPlR2sNXxe@(}%mjgDs} z9tX^m8g=LT5=hI&0;W!1tDTGs8qsX;W1%Cl%!jxHWT<_Cg{1i>Edv2z`wja1sLSP9t2w#69sN>a zb@D~uCG>9B!M?1Bk|CncF3b3PU*Qm`HGKq z{=`Aagl8X_x$vcdmQ{>6Su@IP=Y%g9KY&rG$7K2>HSVf+GF!(MLbia5Y4Ff^aOk<_)`H`FQ?8MY9`8Z_dpz`D~1zAt|C4H z5jSbBw>Ot|5{}&Ac_lYM2XstyJ{CbPH_uy&wwd}7^5x{f*S#MK5hF<2=VrMQ%}xj$ zmNVk;`U*0Jc83^Lq&@ZMd-9o)>bl)fu+yWG>i`=7@#!&MyM5w+Mtje}%N3A~q)d+U6 zawjt2zE&zKYne$j#}~P$SS+)>%m=W=WihkxrJ~-vnJLP&W>fUp3dgMc$;QQIb3z7{ zS!95a2tz<{${I#chltngCLtkVZ!40^b~OWMLuE`1j}U7%@jbYgkQ(}9uBa4q>7SE> z=+RO6cC_*?@Y{Tmnnm>ogTm_8U#b}yKakPUQd=s4UC*_D|A<}1$Lxy1M?x3M?r9JZ zEn{6q^8{HUdcE_q(7&MnlyC&%mt;b=N`id4;0OgL$i2n8@%-45iWhM%nAfk+7gH3- z6qDRkZGcm9t+<$g-6CeztQ4!@)yNY{LH|qKt7xp$lIq)a_q!U$x|~UO-dYJu%fj}e zklvo_ED8@;7So65S0vJ9L~rG9*tg}h^XPWA;q_1wB2?U017nK!$FVDFmtMl(oeQV~ zY>i!bxMfmdr7QwAkPi2YruLf)*vMtpry~^?WoP-aCVw2_DV;fuWGI5C>M5uWndHC| z)~Zp%^REfFDOgTYeKh(3Vrgn6Br`$NSWv&=O!@cz$55J`O>P;C=&LMM!|^><3`L_b zgpO@oZEc5Lc*(i`@t8~V8BSfD$}qS)&Q&mZV(kRfgrK^l zTJ?Rw_V;0~ReN)7S-)3miJ#TkzZ@OV@+%O<28|9;LT~xb2K_) zr*0Z!F$+wGi~T2XYA4Bb!K+b zb=8N2x?C9i>YjKrW>kBOAJ5TYFauQ|DI~L$NCNCQZidEpB`&LZ>}cJu_n2(3(+7i$ zEItyZ)b#FIKtPGfQa_DaBWa>#x*i zEbV1mxe*6F{^lswD0_JhP|B`|rx})Xe@JV_+nVtV?eGYJ`S2mJTOqB~AR_^EVWV-= z+}5q5XoukgYhB;8Q4^9D=XNd$6y5G_f0a@m%CnJ;N4V?B+Ec2=GQV}XP$6VaGFL}Q z>j>EQS~tWPWmMJUh9VvK{L>kyol;)rL}#rScx>X7RHJ8c8zy zKZ=ic{Vm3)L(w`t&Q;5uymFP?^a`lRWHKk-txxJV+g)Vl>h~S?H?oRu`t287(p!cJ zqsu+KeptJ>d7cz>2L+bxX(a5KNtKjBHLK0#R0ct-8l{!(5XnS;=gdphAYnM6;T@_6 z@3RW>_$)A6^{C>DuT)m19uS3i=V|kKdQzV#Jm7-NNz1rl1tT&{3HlPqV7id}lz1{I zPE6KMs<1XcKmSf&8{*L89d_ufQZ!K^&I|1T>6RrRUG1`Z$F>!-GCES$KM8un04CKW zE6DYCOew+EELO@;PhODSSfTHAN}I6p1gPj>5di9aU>xWWcJhu(HS=y}b2thez_m;Q z0j0<`8%&j5UE-?5nG=8+SIY)^e}kA3@c(hBYtf~fNnPGQf@12Tf5|TQweX>Ym|p#4 zTyBU?F_I5Xx+)56KbxrXTIqX})=e#(R+}4T5EfG6>eL9)vwS*$L!Goa;=&}(rX4SC zPMA%>lTuVhPZd&2)=;9+A(eo7jsH}UGNYozqx0LvJ8AXb6A~9#sEv+s(ORNw7@x|_ zi0N31W}l@ej2o=JU7p+#d=q&M?{3l#OP~ET^f?xv0~Z`4F!q9w-vd@%sIyRwpsZ3t?Cs( z+5dU}nFzFrRed+E?7pSUP&`^-=nyZBjEWGM)w%kN+_EUh`AbY9lO};@;&K#P2wA9o zNHm5R7V@vMq92M%>JD{N#^`K}it(F)2dk~-=*?BO4m$i!A%}r!MtK`-oU?08P#5#y zLl+~<_izOBf)Bmn$@1v za+%pNKrQKVb>MPUgps>yTQ4}atHmo*IQRYTTCv7MA!3$Zfsby zmN@OK-`Z;!(+Vci2e^j8BX(8abqM|9M6@Y#4%oFLjz-DSrROOGmZYR|6U*G`Ub=yI zgkqjSOl*WxUPnYS`FknZ!D(lqA6>3Fra0ox`+h2c>7V)ZnMzhx&gtA1RJ_t&VPrA%V@Wf)>Orzil45EYf0yE)ZkJh8SgS70(zeEjnx;F&yU4JbJVppukgn+vHfQR86 z!;BsjoKXu5UIcio5%LVtYk z{_jfQKZV*pn21%-5C8y|bpK@mu&~^(b4FfK?vJ9NjGlzZe+)BI>HkB@7`^dX~V7$=v97od|n2;IO67b`R>tFye+SC?N5MNR(Q5=l{vr zU6Wnd>0`r6$PnMhlR#l-C#Ro{JzQ)`lbean9hJkEfmemZjKPEHwuRk*AiYTt{@LE+ z^2qdWHY7`L4z(`{kXD%>A=V#%d^BcA2k3kV0g#by7{{PeWDr?8WTI6C;?H1uB@;^| zA;&ryP>&X87&!7A;n1z8kpeYSt?tK(hg63yVQo^!p=7f%(1B^l+)p7}@@7C&brvsI zk&3@I1f>o!V{bOiL`wPSR2)W{gEMJ?^1#RK>!?tPJQKMFH&%tX4pc=AtrejKRF9c;Z|2h#gsgN0$|E!?Z3P-gZl41w&`zry zuYBrll{Oto5soQ}WCkgy{aJEvycN~RXHXTlWz_1m5xRv&J}Z;KRMIBhiwxHOh|X{o z$<&}w8{_PvK!@14IFN!0>L<-$s3^8yT=mpejmYD(L=E$=m|zXdvzp;ImH|aOktEmF zpZ{k;)6`+30896$&))rR7q0#DL3_IyLaKZ-Z?k72ap+$Rhl*u}S%Zreq3$2&O+il- z5OQCfG)a*8-k^7Xe9lzY6pM~qx85B$YQh*J=mvcz3BtR`lX?H1F;j>33WHo}U^BGD zNVH*iIsClWyT}UA=djqv56Q_p+6O;>ow!Ru*tI+Q!IgjSU|DAAoB@`EH-CFK;Qq`( zZ8{hG_`AfFYzcWMkUQ1GIgUCbfxv&cr)7NYG&En1<{nGV40Xe;`?~}}mE*E;sJi+D zh8TOhV{C5=M;#mzq({D4%^5xyptd>}^9JVtHg$x4)yDgyQ!aC3Hr=vG`$4M~dD0F45vR(_`>Pt4v-$CC-HzJVyX|3W z73<^mDE_lqYZ!Z0dk#$xF_xp>=TzJi$ojYGZa>EaMIftm*59c$JGBw6K85(-b}p^d zqL)FLmY@s&HCWXLL>5yMLZjybn?Vu5S+`kR?1y^K2op3VhEmOuAF$Orl4Tv5j5>Mx z>z!@A%b$(9t_FIWutrF&1?RAm;y63`{l2EWZn{>aYcP;e-Cnv-{%XTqs@~5#rsqJ3 z;KOax*6a4Vppw$w$M10_I1550?|_DzblK>jod90fLozk=T-RlidfN+5mj_+ znn~y~$BUgIf!a$Bh61;VbjrgxI{EPOpL1i(4+F4;ZeJ6a670qynQj?0@{8?6UMx%s zyJ`P~Kp)p=0h?&!4ko((dTEh-o!_T93A8tkLiOxbq>uW>;Oa}_s+EVxg)mJn?JECy zHvzU^&PkQ(Fm6UeR_XhUfw}xu%S=Qct=yv%KC{%fz8@M?!-iSiw`Y z6;=boHf1;hS1aano7*ydqdE`N=X~Asju`CN|f#<}bBS z6pT>KuH#zpX?N_KgXar#-HsjlsZ`&@ItM_<{LO+-CW%teW5!&7@<1>Z#ioC=xIKOp za^608aYIbr$_iSp}IJo z7cIw*qN9~V@9(lA&hv;y!Ti0ukRFC!M7|aDv!13{KOEiUqo&c3=@!XS$U@5LGa;C! zqt`UBMEA9dONJ%xRs+n)sL&kI&0pNGB_vDJc zxQ{NH;tsjjqMhrHh(N-yly-gV9Cld1L5$LTxM)DDje+<_!(R#P6Z+M z4u)9*d=jFXh=kO~Al!Pft- z)JP7F(Fz#N8|tNs=7L6~Lepf3f;gG2j7f`Ro{QS#Ojmcz*?=3pKu?c@z|@8qO<-0h zk0$tpKKUB@7|Imtx2!UI)?3c^lNRhLch}NL9ym^VAfJJI<)6rJN;D_~nE*>ZuADV| zK$@2!-x?~k5!Gn!{*LV`AO75v6T&-w%UBnh%1^Nw!UeRF`FU?-(EdaYnuWS>tE3c> zZA1q~oz?M2hR0nPTHUYgs*X8IjUjja@11IGQ`h@IhGu#or(R?llSiZsBBbV>4S{^56QqkWWKR<%hI`S@-Yg**zhRTL;@EGLeb*!=7g$AJ9nb zn-sVZ;Y8r=pkTo{-%v75-XKBtH)G@QROYc2^1_9=DXK+vhPx=mMpx`+qqA~n9{FjD z>C2#}Xf&&i;jQnf*0b&PGI0EdUSv&`CTEMfV;k+xxJ_y%3~xFnYt|bJqdXbefhejL zU1XffZqb6KIkJy@rreZ#x<2W7xv4W5M1IPIkCOh{7l zkRet-lR=@bon4j#JaEO2V({I>8Xm(1zw1aC{Jv15j51)IA8ChZ-pA`_zP)9&(*GnZ z;_AsD`4kFvdFw32Q7ZNy#xdJwF%jo$pFn(3*vokYziAl6VcPIp)9I{T(+@6=Z}>Dq z_X$Rf7F%i;X;`a>J6r6}dE$GvWJFGW--)G)=tM;V#UTz@f6y7GO`UsV-3T)8AV zQ0N>cqRE|;rkRKerCRysUGH;`T9C)N(PkL$$1^^ino1|u8o`I!N4b0VTphEFS``W| z1_qc{Y9FxT$^1|iL}Ex2`6wxd9{FE$FG74@_P}3V(HgGT{&c@~SU&J^N<-^p6p+=Z zmbvgjjNChSdJWme3?9iy6wX*;bWs=DKd*X~g7p~7iiZEDi|gxY$A036YC{H(Gw%ri zOV$v{CE8;&tWIoMIu(mXdf6*-HE{zWEW=JTT^A6dFm^UhCGnHa!L6DlywwF{UgkMn z1Jce^_03xV@EI^BzR##+bsEUT`5!|myL|p4v@oYrTZq*G-R{;k`4mKp?i6_%b6~VM z3#^+Hye^n2+;qyHrw&uZ2roMDzXlts+h&A&;s#=o$EbQ1lLDY7Ldk8krT|vY&3#>! zy10Z{vQpv;zLi%C6C-wy!yNoJeOZ!`anEx(XJ)VlNmfmK(uf{B!22TLa;b;;GGrlT zKL&|?z19r&PD%F?&-&uhRFHnUKJ0QV-`GjhBa}oEreTZTB5e6Gr~{r1EyaQrveew} zRt{(&mz_tBn&zt)1L9!h3>cU9!%iG)mY-K>`)eS?HN3JRT3t4JS7E$smHTwA;R3nw4!8X=os1WXzXiHl+) zOHX5R;ReZvTx{x>G>Tbd`_qJ1Q!SSiAdS1E#+1%h3<9AN*I8^quV4o#cR`JN*zR{Y zPGMc7u^0ug*DxPpRUs)t1)2(N@5?qyGVjShVWdy;-dgIFN@6i10aEi93?LA)Y3W^I z6&~e4h3yDL-m}8fgs36uNWL&%>1eiC0toM6uP9+vJXYn&X|Q3IHsj1Dp}il*I>u;T zGJ(r=TN|eM3*0V#8d~19wrj0g`qQIoo)aX#7^oES6sKL_A{IVdtRicT9*VWf^x2cg za_iaHfBJ!Pu8UL6S`u1Z?fwnc&85rsD(t z|Nhus9cNF+{6+vZ=>Y&({u`6mFUd$yNbvuTeQQoT68{g%MZ{sx-{_k@ppeQKI2bA` zJ{U+A&qJ)Cg*z9sSV6q<`ELq0y6x7Q{R!+R84skM+vH00zj)*E#ErZNvBe8NpX~*5 zyQ`~mXst{gm8A~9)A60R9WyU8@FI@_S64pV+YhP3?wTr{ryVaI4tFJ=(jEoS?Qxpms`N5dkQRnZe>Z+u8f?(w?-&<$$E-MteK3#3gWFMrYv)PXi zOsqcTITx39T3edZ2eVr$>pe9C)Uv!vvPzpd`MPf>R#hhP+g%-k)b=HL7fBT!`*klW zpNJv8OFbLg$7w5sNh836h=KPn%<}axQ-q~IYeN>jTiY`ZIc08YtZL8J19uUV?)1?Y z+FG0C9Xf~r`U4kHK_Hq@tXB#+loy9#VfLLVsU|ZS05vF3Nggz8>Tb6qlY>ImTsfDl z&sM<#FCbTfZ}&2nd<@D2lPfRsBio!A+ftrtqMy*h$~PgOq?3kvjSb+dR@w(z8Bm-r zZu1{Y##Nq=UU`to1HkKjT=G3CS=DS9NTm%=VPn(=EOby2G+A^{16T;82k`onvf@Q0 zTevZdHN=#`WPgh5V?FsWKRR)`$nb@kZgZLIg0idQ$sYAqkavB+odibSFa}3-EHjkS zyXibhjEga_9gX?ZFI{Z{255E#C2o5xZhXGB<`$;k7dq~CR2LmAA}bt7_Vnw~$If|i zI;fpK!3tl7BMwRKSJ30Fx}tgeSB|6T2}{RX+3-YBIu;aTcIl8ucTQV~YmPfBIl1eD zT09jM-B(L$ANB2Z!_fLtFYP*a$QfnmlCWI}McAJnB@|{`YWQ&d6wf=}l-u10jE)i| zhOzb=+AW%msOXimi;_JHWYPTyLkTG!KE(Oym-h;wTOxUiNwl)UHYhJgQfuOQg%8SR;fSm%vTWlC&ySfEpsI0~nUopvPKzt) zwh7-d(_&_bD~QajI4W;$fi85GABDJ(bxD$$4?wxul>56P$=OGt?>*ePN7JLz_dW-6 zI6m4w6P}WTAYvvGeAwQny&V=c4^ecJ8VVDFQ^J~>c#Ujaa3ypxdlNrFgO*$*ek?8v z^XP2p{w7yAPOv9N;Z4a*B#ESJtRIQVl}R0+QKsh9@|f-Xy^+*xhl8@!(QUhusH?={ zMHTz2qLOTyWqDzGJd)VM`G?a+>$zax#$O*cYkPe1xu)=jmEU4)ClR};?2J@X^grCH?HITrzyD0{5|-V~oDmb7*pM2T%lL zmO`T%x=DLr`D*6ELRx7vATpPBZU|&aU&MI$53gJnYwWX(_MVfw7`@wiH^ySyKpE$U2nkBB_f02jqRdyG1I& zqiQ^2KC`qSk3B^?)rwB@5VXcVp6^e}k{ImOx!}Y*>6!;i{6ju|@JG%cv-1 zv$ZmjMxp}DlVGVSTJ6*tNRSsrt&9q7z#eIL&E7lnUy4}$!kITWNcnN78xwqLUcyO- zdrDTr1>#77Q0S#>$NMwenq6#r+O&W0xeAzeIOuUXaqPGHS6~bmx2{m)$P`#g2NI6< ztsWeg{BI5_MFedfzN9T5b1VW{S}3${B(4nF(rdkagbqD+pEhg~&*EFV@H5*5uXNc% z;xRR0m|4r9xthha0BIhFchxo$c2e6=g^aWTnQR1Ko-z@9ETk2o`h=t>jVq$7r74tu zBA&FUW`;}@Kf|no{(|(Kck*7)4GAYJAH1&IL-HgsoKlP;VruoGFB{T=2 zc+Py`3sWbJ$q+g(+$+Aok2)WE=dDWkSB+o#)||$|O}gi>uJCQ-^l4YEHu418&VQNe zdNA?&6Z9an0(hL%dUN|X=v+MaizRLmIuDYK3Y;MdK; zX9T5I%)>F?n^3G8&60;QvFlGshLN_wJJV3TGr>IvUpmUe^>uhfIn{qVpug>R^oql;LOl^2=av_sA$T))nqNjWy%-mmDEuk%6_aDONcA!>G#V)1Ad(8MP^`RS` z_0}QP=;h+}eb*4nR~tyY^{A-$84y;fy0N4w$)o@zRB)qVz1CC!M>VTuOD$kZX?mNg z=zdJh^ zW?bQZrPb1NO)$frMv78{Tsv~--mHC3@zkJflCkYQ>l)=0ic=y67oWaCi~7j{2?EQw z-6c8mt)?)vwokMrBcE!NcwB0^zAJZf;-N-XfH24<>C<2`auC{{TzhDql(I&HcxolR zM-h3&fdP%eE-D@d$9P?wa~VIgC;h3bMR&^~N$!XcVKL_ut+xs?W;c|FmBU2np31iy zp`F11#YT93f7#74RnL0ncW>hFZF(dSlTQ4lltyxrxhWh4%dqIav0#r`0gUpdPn$sU z33vF7IQ)o9fmeS_QqW?*Ze!W2K#B#^}|u(lksd?IsTllSaFB zGj$Zrg)Gvz+QM4^HcX;@+uAtKWAeV{E=|dfXIM_&Ff3ldpDc@5G@B2bn{RE+3cu?0 zSHJ2Cma6On`9M-j0HgQpP(hRRlr$vE}DicfARf?bN&)8b(bAnAzM)P3o z^*VN?h@Y#An-GqqV#V4<^L)C#P#e$i{=9NE8GOxo=m#H0LUr#~xqs2kiqmvvP@c5H zhU;-jp&%{w{2P}l8SUSPBWbCF(PmZI(2@u;HMjh1fF$S~0lY9hqj@APbrN+)0`-g~ zaeF{dlOpb@A6Aa(SIech^PR<}p09_&!?MGkFS}k|9`2*ly0|?yCUb# zm+jZ9&sXQ0sGz&~{ZsG{{wsW38p`m#5HYz3&Ogom;r@2&wMWryh`aoJycqc2@U|h# zUx#I%-XqWuu1qo&b;tQ*$<<)w!YKvSWIF`*g(5W&cDv0s6QIN`o=06nNw-@3L! zm;%E3-Oi-ZLtP}`L(&yWt6H7}eRlQEMmU{dkoKKV*oNm$3&W6xkks>~ADmZ~Q0s#t zk4nO}tA_St(^BJLBjbqUV(eI&zF=<}Je!e+B2s@PsY{N<@+V5)-){#WO;YB>L;qb- zcXU+OIFB*{yrBDm5(_2^w-;5l;(Ww_jEm(Zc$sR|Lc#RQuS-6TqRCB=Smlt5=dul^ z!>0Bw710)8_AI(>KirVd1aV8lYvYocMZb>_;iY*42ZztPppaHf^dXV^@xLt?B#e7z~eOZdH{J63}!JnA|flby}H)@{|~;wRlCf2GOsjzohjO0W z-FB?b5U$@aGv}P%M5W3W;9WRrY}PW=J~HYB-C?1%*g@T`imgW0Z0jOX4tMVEECC4l zr&KKK78{=gT&_8eT|$Z&=thAN1Dhn{{o_=xZO0=3dpPqa)?YfyV5lOHB);kZZ-QeP zZLgCIhIpNFp<-J+hlFNxGE-Pg8ie$eAsw9{dq&~Tvh<6lpB3hO=`W?s7Thah$mS5E z(Gl$VJ>1Rl-^LM_fk+{UEAdXaM-6=dX?ww7(@X|FwRwR&0jxm05hCD!3kf_|J5$md zU?2!ijJE!$r%R#oyQ%{;DZ!0*QHNwha!ZA)fJ(*wdilT&|w1npW zLt^pQYYjo6 zwA`*sdAFq5PIij2D)9AZ6+?H2e6zf(58u?Mr>2))FSX}}S$cl=^M~}g-j7eqW^uVb zk59)%a`b&Zk5~6mvvqiWcW+H~_`JT)kA`PcZ*Smcjkh6E>!Y`|9uK&fJYLH@u>~Yr zjTVOt(u7$v8Mc1ABQw|84k0%|v>zWwHaAVQ>Txc0ne?@JU5>8L6*{i0)7a>CdfoFF zakxh8Z-(!EexKuEHjN#{6|_o@CmXH19dkLGI^i9!H{@oe2MrJ3I~nt2i(S^O$R{Tn zaHFGT4Q>5G8%Jy>=V^J0jf}%cTHd$g$IuT7yWGgx7IxYL_-vCSA!yW7-=`*ZASSk7 z`d;kq@>3{qT^u|Hv9sv%6B#!A+cRv8bm$M)>l%wJ!`rFM>kHt^5s__-w}ZwiF~6}R zeukXcBHDkja&&aCe6QLkc6VG|k3!a*(4i(#xPt~!3BVm|b6iGJI76B_MR+Hy*<1#o zFvDp(F5GF(>lIznIB&=}ut&C|J8iw?->y`QZ=ZSOj(wg$(FE6hFo(*rEMXCRmuH2O zmf3aNYn$8|+v!L8KoOCYV=FacdFKpAx8ls@^YnZ7_17BXlHS{c z&T3!c@hW9z7ZiVLSt%&(-hY&lpyjvJHESs%zf%{gJbVGfD(`FNkJEPmNI z_I%B^1zikrI+O=jr?Mxvcc7q!h$;cnJ{bmyf}$|O0)a;QC07kQvj2h;`h{86kI&We zsCMS2Su7L16PmO(+m!nH{%kGQ43o?13*eW%kjwSG;v@+tXCGv*2s)PHC=2KNo&J$* zNg5vfZtKSs$;4$P zFu;Rvc+k3mY2AH002d|COy2DDW}q5qUM6ZNp2-HbELe#~71XQCYPP~-(Fn^>T@;NA;V-0>!$E9BFFjx}A zIzq4>8iAZUCjp$QpqH2LTi;>Pydnt!JYYOOL^0L4g}TWywc-twVSNRxjm5!D zXwN+|(6LRZbSnZVQ6`9KVwA1ObwR)a1?94Nl_t0A8M|gVdxXdi0@{S!StNlie%wvtd(jou!1BWEd$UZp0=U$oRs+AS;|#E9sQ zVo6_f#WomMM5pJzyM#5=GVfSr7hvnk?}S^vl|5caC}WPM05hwPPZbwv#QA0RF( z7Y{sg1Hdhiw?A=eFyO3)uCUQMrb1*c5~_}{6YZ&dajz8 z%kIo*(pFuAlNn%(z<W zujfaaOu=d%XI_;9YHjzY1-V`Y{3F&qxRN>1qO{k|X^#k9lTFkh8`PDW2k*h{=N$NL zI1`bF?#(XF@TXzlh^--mv2l!hBNJhv)}gJ$UM9fwY-^ywy)x7cHG&b+biP5E=0SN< z^0cL!^btBcE(J|fE-L#d6&Dho5*1qJK?CskHT>QOtQ^(!2^a$$b>F~pi}6`kq^6$w zwxuN~ES1E-!Qr4zxixU zOjXDRN;J+>vR32AYPbK)I#@3*JTyX2lX+NS}fg!J_|g53!*cuboNcp zvh9(d>54a34y22&rz+0FvNo;vnvR9=T)bL6JX1%{`Y!y6H>T4%X;@=9;!@-Fayep^ zq;T-<_O8^P^7GAv^im^>5dO@ngp^q**H~3t_0{L|95MSsfG)e_+C|K2d8_M1_c@5n zsa4cBh)%I^B@9L#5Xf-q4;{pYc)3P?st*FX3J!~yRK_^nEMZ!j6wvlTpKn|@V|^5juJ#|k?

wRgrOx_yE>1G1JhxQ8!eo1}NsD{C)>IA! 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

Co`)cIDrMn$?VThU8ng&ehG^3 zG!u)S<+kJU{-ZVb<)Sz^@Q^_7y&Nvmb|?rS6s(dunl>OG=Av2DI_OiiB0c zuJ*9(2j%5oh!2*bvbt1g3Z%6UAmp2tjY*~qn|%l54qtIbf;uWnWU0mK^;j4Uo^QK8s_VGY>1to)vg#j z$`s${D?1I-L{cTVTqEymY$44^MRXA_uW-41Gnc_Ls0zdeBgG*$=F+S%3JDQIP)yH` zgUlh#0<^Q^qQwF3K|}lSPRAX%s^34ZwM05nn_+V^=7yf=yab1-oP2KXUz$5(l( z`^wD>gEUd61gffZ*cY941@98;j%_$sa(JcC!GUhVa31QGNTLW$3zgNboBES}wcrsL zYZjw*g*`Sj-XHXDTXOE#?DB9IENq8gGB3|EpwN4|!NJDaPJ zh>Sn=e)d;W#}LWgwT!!Tom7;nwl~5Dp_Y6e%j{ZO1A&No`#@Om|(ZGji3o4!*AJmAj9UOBnfF9T1~h|=)BxQoxm#6b@o?O(0@&NG&^ZO z&+)@$3VWgS+sY@OEkY-fhx(wt)J1E+$FX^R_kpf4;J+t!*vWAWYnzPxgXMt#^%E{5 zIC&aOw7o;9hn5fWcoD<(Q7{0E1EE_moMS-Gxgl(bvkV{FyVPX@k!X9C?leuseX495 zCf<(NaXfMv${mQwG4_}a*oi@&?2^8H?jO#{+$I9>IG1opL7ce;BG?Y_)90xNywBN8 z>v-0yTMN*c@Qffv431^l2;R|vn;AsEzPfh`7T-bnqKPb{GdJ_chQNUUn2#;^>2jZY z`8W3FyPb#hM@MeC978mzy2v~sl#pK-Mq0$h85_dR%oNUA(y|;4bb1i)6puq&osKg z%3OWZVCOv{u9BxuT;eFDuG`#t2$H?$Oy;Y?hzJvi35_M$zlPN9m2-<(DH6;nS$dYy zirmplJ@>2{hO1~6M(S^@+@|^%VU!LFV|5etq~x}HeT!BR3UdZ^EjY>e0XOIkBmUmE zb;nJ6qQE+c?PHsnGaSZFK>HM5KU_241L|t0&4%@{aJBA0Ex0M8#1=ZEgD7AP@9hpI zTp5I3^n0i90X9uHMi~P&M`zr9gy&>ajA%e)db|ZYer55%p&*i8!PfIw#Kpw~5WIq# z#&l<4X#o*jcSnBObMqxHI^^lB1?Yr^-W;rhD+-gA{+f8wOVa!=hsr7Z@^3l)%;g{G z^3)I(hPwDa*ctKG!TIa}Y6b%Yt$%7hBrGS0QEFd_lPk^5U3z?LDw^Z}DK7Aa;4=;y zOR`_`JHbrGyfP}J-5o;u*DfJstMho^iN+9qVdWPsk1xgtH4tO72I|ne#_O)uJ}CIs zGk5=jx7)8q-Y=VPTB?+wy{QbqsC5>y!q95roLvk)b1O<`3b7frW=%j;3CoZ_V@nGF zb^nE)GNT$0ZB+kwFRmp|`@ z{5$kDtUJ5Eu=*LNF_Y=@fp>$(@Vr*c7qT~D4prj<20x>j^LQGWzBv+MHe*KAQQyjE zu+hNk6rh3s*u0ejdwCkYYWrumBPBxZ9KY^D2_5ZM)anV2R?yYLT4j6Sl({(#b&VkSfh)T6`vP5ouwDLs4{{Hd1-XQ{qA;g}A>PDv)RN zN#kWIF)g>@Zl8xGgP!W5T#t{hz2NWD;z5Xk<`sTvmr@=k7npEeR~b}OqS4Zzq`sQ}KD9S0ag+@R@}MH_Alxfp zH+MyJ;rlG_4$x%6O?^&Wq;phnHPo@llxXmW(BlD&%lxY{b8CvSbGz@Smlsct^e%$5cxKw~0sUx)jwOYYn zWzrgQtUm_eyKXGVOIGr1wW`|&xOBGl=QW+oE3v1;lOC9L);WgJp0FI}SS5;C22LJNk2mCl99hE3Ar?dWsut z>rirg`}@uH3`dZywwpg~KLKa0H!odI6Q5^ogQmVd!K>6g_U0(xvkkZcyA#HlB@pAR z%N1D{#t6J^=t82#oU1I;eo4BzX$A5+zzXBL4Wm%6;x(4poOj}82fP3SI}En+m0Pa^ zJ+@KZNA@||;-YD|ML2iy2KN&e*FGzL=Y|pB!h5zjjqhe2U`keGcgreXZpeFMz;@Ip zQ8xxCeyrD9znUD}JFNy?|3Fm+umA>T?4IfKkIzjm@ZBe@M?NFzl`;RZgl&V6G{4gh zh!M@#!f;Ng6C>N-;Bfm9|IzUu!@*FQHPCwdS(;$drSI8qTY)DzA=@9FUvg>1&Zg=z z`cYM+Xb)!;M#fXmN?hs3l=kDh4r@=>EN-{>8)-O5^2g>d0W19TC>7g5J)##Y$Xs@C zY)*{MAkLt_YKQ7oIAzcwy^-baHQlnEQDKCCo8mx*1yBS)(hK?%s6WN_IK*Zdd)Mw9 zkPF2j#wr5oRO=Z?qKuWs$%=Dxfb`6E`a}ID=`NR*evq9Ka4Gb+ObgDgTnr>w?T@Wt za0-{)p(zPP52iLjMr}s3(MNZ8yd;eh+aU$4&}G~U5yAjcBU~QeXIf9IFONK$ay$>P zz`40CZ{9bCg#O;Mpx*=&ni*gOghwYPv8fF5?yZlb0G=(Ek)}lxR%KxEz zRaHZ>t#9o3>_|0RrXP>wCNz-A7JzHBt~$BnPZ=bH|NPO?t@?q|K}Mh+OOul5>k_c4 z9yoMAv|2tp&EN3FeWTFH@yPc`9Ft`JLM#rja+rQk>V%9G5~`Xo??Fe2CNnwo;Vb>( z|Keok9YFpgW0p;@M8Z+!?!Hlq+*feu@17zphIYVY5m|={(j`favyuww*-ruE+mXr{pY&G3i z;Urxt*yIelf`?ATBN=bPV7BEp`98Kkez4S=lk<)oRFg3U)$iW2K=5Cm5k4hbHf9`h zqjf(_yS<=;RCHOU$>XdGgY2-* zI$InHWdO}S+*lzw|Jm6Z#|B{X?`R+~o9^oH;Qcrd99p!9=r(8*+b#mSv@qo{=20g~ z1KgRXs)N|vDs^Y(5lI%wn&tuk{ZL^WCm+$Hga-ER*GJsvC1-e5s-s2VA|^EM7d8*f z1@h(dLQV59>$ItlhN+Ku35}Vq{j@5kbD*p1o%ht*1=MIoa-u$$0!oBuzWnsV_#hY% z+jI@$SmU@|l(BFP9MR4IvTJ|XxiWxLyvs)AGZPY{eZsMzg8?}r{4%(FSDFg}S7Ap< zGiW?~!VEo~FuV(({(L6*qiXVmQPKlB6xgEWt^}hJM&#G{yk{2hNx!|~@^B6n1b~mB z%bf^I2NdaHj9^m=i>V4}f03ne`LsGGo#ydJEA45NUHGneztf0gF0*2A;1DM`xf?gV zKEEzB%pc$k9kujs)P(aA;qDrG=QuDBv>#L<5&#{f_S15yGD2~1(eEeV?%8A!dE-^4 z_#6x>_q-Mqlve&K!B9a;CNS6)-F?TR-4`LgOZ%L`<88>jGJSY}1tJf5?mMji`$v`L zy+KhF8UTQs5deVb|E3ZsAuRp>_9qHS3n(c`i2jxZ{~we=r`nby5(7&23&p+7Db17ee@ ztlDEE<{L3vtwESTSOa32`q0RsjQ^y|#Zr4=W4Bx9^dU^iGA#;gc+;3o#d|YN2Sw^r zC9Dv--i4KHqatSZz({EEGe+ifLzN8575-*J6JyX1hW&Ms4}g_4&<_SJNrNG283l0) z%f_dTHCWHDfFD)oJ`BK$C8UpsS_VU8U4miw?Tw70`FyxI$M6QL9nms>IY-{JJ&;9C z2_*Y7%VukxM?Pm+>45EM31mY!7&(=s;{#-YDFU)joxBYEsp_j8K|WR9^-mUb577-w z@KwEn889hK9JXFv36H;xAbmuevl@y~EeC`sxoDmJ?Tr%P@V1O(Q@oZ?A|xQEWD*3w zWndEN^ks||sfgy2O}A2?9LYPC;_LmI=QaITZsranVfVlc+INrGpkHi?T{JF)+jrBw zY3E|)`D4$wY6Ao)xsZFqy3(A|H&N6-MPoOrhIeGe$~}mW1c7h`@)&*L^8BDFTDhGp z6e3ur{VOjnevrp|48${%5PM|rsuXBl*cZII|9tHWrljArB|u{QXw}aknc62DIU@ri zFBZ<1-jt8`sWd)j$;zwC69I%iKdnyoK-l8nv80^LK2lOYo^gD>`y^1$u(T2VX*x}? zKPN8Mq9M!^=^ty}wd(9m0a1yJw_W01v4Fj?w(&Mv7`=YmuiB*`xJ9!&~{GW-vp zhdCQS?K((AHa zNSJkn1#I^j8^Yw{k1Ehfs-;sTI*&o(gh0763WPDPk$PJt5rBlvsVV6z1GyCKC-p%{ zlZJ)q6G>6~?jn#>TOg2KRBBz!{MKzUH z=`)o^9wKr7<77ca?p2L?xU4P!T6(ByYFK>rj%tRU_t2AD3!$zej`0r14+nsxG{7wF zZdT!BOQw9#=A_g>fToUQ8o(IjL=Dogr;%>&26PZeg4sBzzCoW6k=Y;bQ8F8oXHD&O z$PRc30}WgRKxhLm9hup!ZB^SHqJ-^K)*tj^ns10}`u9|>2Kw?r)kMqJr@r^n^MOCf1HKLRmHJR-xzZs8W0n;^3$NaurP@q zgDl;_Mv0UXLP>LKy2~VsOU#K%;ROG+E5S2bh@=c^L{I=OBvwi3dEo(U6%W6yzhFUA zg{n^)Rcj*hsiyy&eyRFt5>u&h0~^Hr%gTeAR2_+XD)aMcqUbNV=P6d++SX~w!(3XE z^R>ga?yHl1mlC+QtacqHcc9!jL`+{vn`>2GbhlKX#T3*66;chj&%l{RSA<8$;eIM$ zn0A0O^(zV26cFWGoifETr~LCOFcjbYQwBgloxLaQxPqozQRZYcoAC?}`78_#sl z3b&7$^=oyO{p$B{9Z!VKFZeF$E9)Dk+OO{o55o_q!`9=qqEkLOR!4NZ)3LHxq-z?+FN-lT*as^#I4z zL<~S!u_~=m!8d+T+t&^*kZ>XClu!W!1s_Kwe!xL8J>+Wd&9`dXo2O#t_&nc1-*cc# zY@_K)$eW#mo0~5|!9U?l|KBT1CFR;)u_}p0W?*$0O)W~OWG*hy!U+0PRs)4s*H(8f zJZAAyX;z#;$Fq2jCga)l92*ze`Q@QZ<2Z&jLi@gAnTp6-h8F6`p8S}_w<9$PB`|Q| zb_N;OfN7STEa&6r(A-4V-4VvxMPo@}j_xo|(-vQ5vxeiEZ>lgyNdXLNnD$C}JdUmD zk~+nJDEi)??%mSB(SHLw1%UP7GKN(-pyRXMgV zG7;HV-QATeq+D*+4L$@ZsvhI|39A8eB&w(^cD5?vW9w%cK+mda9`UtV$8%>Bhpl|6 zI5?4DkM%rzQ9}_L;0pYz?$3G)h{=(Tyb}|I*2v*Kv-y-SP4e4 zsp`swAKz7v_#7T~N~3w+aTGBA;P0%mq>!-q(?j(jq9P)s`~?CPbcnkUjm_A#M+eN| z9S$6fB()(^(lB9(;P@dssi3WE&tPdzY~G%&L#QZh{{6bEgoig!pBb0W2O&~)Z!XAM z{WG}kH7u+T0bh-)42acV!RfcYw*!c;veH)r9D^tsA84P&7%6vbkU|`oTN@E5lfjKQ z?}}9usF>nHG(<<$=VeUD4kQFn2E-hwikcMF18o<>`QQr;6jT%E(pJk@M~WsxTH4Na zI%sl@{dK-SNkl<(8P|B%WQo?gx3G=#(9E>rdluY_kE_j7>S_KeP%i&R<&;T9;ONBQ zh%wVVvX#D+H7ZD8h{D42@awx$OIiHz!f@F!^CdEjAE4VSKtAZZu6%=TEoBG(?=6j> z1kzQEFoy6aBbu=00SBm_!3XNHrb_jTqJKdp%7)eWM_L$vq+lnY9W37=tb262QhFjA z3<3zm4&hWX)tT)emKa{?YNlB?sXDhD%KbbNgN7FT<}9w6m+0+v8pPl(F;pegEQ0Kk z4bh^XRhJrn?k!6I)u#4^n<7)rio5h3@h8chZoc#h z5sci@d&{%g0@a%A=IO&+1=d0AR`~kL*0aWqlrQf~Z3+n6d{uq9x?V^T*!$_VNK~*% z@Jm%s-)S|`RrASoc2Aziug(y1Le8y^3-ftix|wE}KuqoHL6x682VxYPxC&Y{|Be=p z3(tg8otlTtJ6k2%%odGwC7_~a+^juYy9%cMiO1Y36GTkyi&1m&@~$ms^XoLFQ&76j zC#)QQ#B~2g$US7K#~&Wbw_Hz*n{G~YDT>I@blSaL&%+XOY_{5zeB~Tl2Ho>9`wkS= z|C7*kQl5(`SdN*W%asHxzGUPWj$n|6ZH_`z0Z0a_bHh;?&4@}AU1@BPm`F2?o>!}_ z>l(qO@*)lr45$cd3!%!A6@4{AdcULVmE=2h-972i6KZZ{S+IQHK8Zsp&!I-&>U-Jp z2*q;0k0`R0!vyw^Q}l0E zA`#s#oPk!uonSObM`_i>yw`{@zA2fKzKYTSyu1plf6oQH#e=IK-#!OKVwY(5r&~kH zJTv`3dKv4|ojyR8qZGQr&6HWw3^)ze`f7`z2OlwYPXdJ>HJ2cC(_ zaYFBX?T5z8D?qQ*kX*u$mgL%c6qiXO8AYZWQ6cdlvble%%8n+!7%^eET;zra**`5? z8&E|C_UFChe4;4zOY8AJXMDHvQ2BbR=`1o{%;J&Zxs)Rh6EbeMUY3Hbg7xLmP@#hL z5TdU0Oyvo;EdAV;_If?|Olp~WFgGWykQaYkc8&$k*Yvs;!5EyhSHk z62`&*Ttrt^&TFm`WXI>)eJ!wC)umTc4r|l8FMx&OYKw(BWsG{P-E3G788FFX{gl+` z%(TDK?6)B&U=N3o}>$A)ec+#hz zaVQNxexf>E$)P|R+5ZztiS}DOSCC8=L=mwQB;p$A{X><$YfwP+`0Q%bPkE^(A? zdKPq3^Ur;`QScEqgaCM@Bp=*+EdBmV+6BU4uX{;7q1Q* z*c}0dKtdVo{o>!LC}~@BDtu^p$eOA z#?t3%`h6VQsW_?Wif#h%h!&0^ux&Iu^nS~WJz7W?EMMzBcG zQrm8E%0_D%+B+B9`2JL<+vI zobL)I$2FyM!FrUmzT4Cg0%BDk@Eidb^$;KXKCZPRaG*h%9jWekIV{zgRw#>Id-bU> zvpVn-0CSzpG3S18Pf_zm8m0&)PelMbU(AK?3%{^pk%6B)&s44U0Z1wO?;6AE&+h63Wy{KsT@rdI<=j`F8M- zR@6*i(y=EA5eeba5@Nynpr9LyK3is zEUeIhGlebL`*jVpofy?X3H6>$-yf9(|FLc2G)x+=1wJJc=c}6Zd!F(U}@)Ki5|+g)P2iHw0nVgk21UQx9j1NLlla_kGa*wyLl!oWb-;mjz%5XStfGXIxk{k zzVOum-37|VdQhIM;s9we=%kh_f7KTA0*f@b_wOZrFqd%5`S~)yc2d7`!6Ef!ijPWd zJJyUjFT{#z8e;NO9ZNSkF$@w z*^!i#24559EqSLDYp`gQ^}b?Yy91!t90iLlE<(2^4WxlxFy>6c;a$Bg>*a~+lHwo1 ztHHkh7&t!)N>5AWM|Ad$NR=gF`%k!ck0{m3R#97F`JK5Y1A6mtcQkUvql3vZnvw0Ul(G(q zgAd zv~h*Zf;L4WPKR<9)WT(CWFd;2+49}r(Chhe>=mM=_fJ2+1$TD!?pmac7XG^_S!Z1b zJgZN%H93B6zm>V85Dj@|S?U7%H=xBJpbipHQ@-Me-fl!@la%K{wCAZ($r2ri%0!`^gT#|#E#lEzRz2=Qs z0`Uitq+?i<6w$hKen2`c(uyLWsD+&`Z(@I(*{T41TJ8V&$+|lIwKL z6rpjUd+JKMB%_JQ<%2Lq%1OMDt8@n-v^I4WxM@(HvfNrYm_sP83eY$`X!OT^P)nEi zvfF=dK%Q%yV0j`{tW@55k<+E2()y|kxF^^zMay3HIUEB8cDtM+4dV~Mg9z`y&Qsp* zEU=U~AhrALq2ulQ!vRQfyLDLn2@!DiZRV-$X1wN!&ohUy%1vZ8?jlR^kP4$cCY?{L z-B{siDv zwjG6WC}_Bm1}n1pXb0^gAfX;Aj*%fqb4m{8tpop#>y0Jr=)_z7)3e;_lWSe!VyNv9 zG&M7eh0-`D?&r2Wq2h3?todCWK)22F+}@3_OHUjM+ENUXX7v#_iz+2oX)(8bTH|SQ zAmiXX<65~{n2YQ~xFI&%F5PlgSl%Lmx7u%(5qWB?!spMVGMTd{>>+ZsQsi~9=Dig94flD8a;dBQ*o4AIs!tcC1)f(z$TxD!0?Fk1 z{cIBX=wK-}uzogwon4`-hcRXq_q4g3NEa$LPrHQg&BC5~2N5jEssjXZ`U}#%E$++^ zq&Xy6I}Qx{q$FzK+G|zpEnAY_2wc}x>6e+?+!}JN6DE=Sr#X=fpV793lp){< z6x#Ce7ONlV#R6sk`A{|GoO)Ggvpd9NmzXVI1VHjRxry(Rup6uJMICW~`!5Cyo_LUj zdc7_6V-)&uWJAyS{=b4Zq{^$dfs`8cDL4Q?-f#P>`2VWlEvuxgs3P<~t*(k9zs;^1 zdO~ut%8CL)%1Zy4(NJ%jMrJ_xrT2=WFcV~=rUbHsgnp2hsyA?f{9DoW4is7xZ{!9f zkzY`_C*_9RiR`*01%V1h_!+i};qzm9m|{1B!{)8b{v%bQe6rzwcs}Lza>Ltd|8riI z5p%8E?(_9IAck(c)#>;08T9d@>Qe%T$J-Lif(13_?k1U)ST`i#($|6F99~X@YF_)^ zgy}3lJcQzyLGMx5%HJt-Jw~$h?pwRVN1~XlT+xxcQkY&)aZq72C8^UiZouySBTbKt z+O`ayhPhF)!}p@O)#22&n%k({#j1cYQ5!HbtSQZ7%&Cjhux1`&BfGS;XkxYL*$*iV z=00g81?aSo?W8;%qN{~$Kt-!EUp=5oSFhg(R&@i=nF_HuKb(xukHb7c75_H3eGfSotr)i#NVlzYsGr?0H!~bD#0D&*AP?IWfs7BkxsjlP z+-AxFrP;K45fn-StHsOIy1@X?=O;cO^M36m=BYL)_&Rpledw|^sanFachh+MsCe`?>(4}5PmZEQI|ubPczGyB_2-H{_So(UaFlgW3MZ@

9|xZXYA-rz-kt$?elIAv&uG_WvLs-0}pJKRQ- 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

W^mG&}Kn=iRR9Tw@-{`{P%G^ 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ϐ<`SP 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 z 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

sz8rV?eMg_gv#m~Mhn5IsSghsjkM zw3x7(j_O+wu+AAx7e_Iy37b-&ODsxaI7>2xFhET7;iO6)I0IvQdO|AzlWN^eCPYGw z0m?=iZn=`0JEn!DQ`com=(uR6!nWA6BEl(Q9gH3h5UFNirI5IK4sp$KDAV-zvZmNKu zsHZvfw0Q358~Sq=DBD4CiY7L~I3UsKHXxc*x2x{Fw$GS@#w_Liz_5OvW57J!1!DJy z6x}?)MiKda{&1tV7Z+R2ovAK&MGr!qOCRk$-cfQy_c^uHnZ%)PygQ>eraFM4yY#m% zi2YtnEgz{V)EF9y_JbK*h8wl0HXS(LQ1t4lXu5K}BC2MOl5wLNr7nAy@313|inG4_ zB0AO{cdAaN8{G|A88%e!gcA2=TbvJdgM^eaGO@(&89E@nkes|bB*uEJlVpmQ!wtpx zy$+YsPB+vyyQR6zx<-0>ZOMctjYqS3%?nedIFaY9`!_)-(nf}c%nVZ3_A`xGV#X51 zC~r#=dlfSy>*3d5*`8%#48fCyRb7&`1_;0wMNfM=d3a~A1(_g+B#az3B9SS3o;4QU z61=lDznB4>yw?U@hI3m?h|GBQ9{+rOuUXFCT8utp+afZ_eR*3}gcw1P_mh>@UG%oa zsIihjI%Z_v4c2r3pcbUX0Umi@ueY<}x75_U8&0O2F>gUk)^5&|kGmF}L= z8?@vD6!=KDeemy+X{`*XhlM#KrG$CgMBZU7tg)E46~A0Bm_v}vbno?APZ+$1x3)u$ z9*({~rVRf#`-F-oDYVHq`wTxuCwtJ9nq=Z*6!D`V+>iURd#S>AxdD8K3eS9?qIW_> zrn|Jo{rdd@li+vJ(C-_g{U*fy!x==!(BZ=kpnqY_&<}3LG0*ph_p&%aH@OAy;AipFKQ_lJv|6&ZCJ0pIRL%07u^64-`B_xy5YgQM_Wk$9hgkzlLHdK42`W>o z{hdhkr8f!IW!dKj;@v!N-6b+g87}dQRAMGUn)I|cx9Vpfq-LZ9M$Qq%`-QqazeLT- z*=aTTp?UUDeLnkpRMuB+InAuVD0ADd6!4=?BW=p%$YNS*wB{VG$7eqwq$EHTq#;h4 zzES#{#FC(rOB`=8{OYOK<(}+E4E6fw!!uXzk^A@m^Gj_qOM@^dg4mjoX0QT7@Kz=X zC1$1MzFMuUy|?vwOerG;Ik4iE@$J_uyf4%RrQaz+K~hy=z6PYkxV*18ojjbk@Pmc* zif}}(T40Ipk;bSLaNg_Gs5hlAZqWp6Ys4@*_(6)L6896MEEtnNc7TjAV;BrZKU8XW z${EfXc<&Ik0VPExbAsyD44gOk_Ul#5nYM(a5kA9c#Nf+Gj;hccBsbNNttb+hkwOAF zZ3sK_t?~fSZn}A^w0D}bY>G26lm47E2t~^$8-Y4nD`h%tQIQov=#%OONbh4QppX0T zuCUQewK~NrNV%G54bI&3kbG05$&4u}t&K?^#MJFMd|x9}8r|wTsu{6mjcg%RO?0ui zCu%O#5~b2nXqnsboKZ~!cAM%AGwePcs9Lo%i6K{p$_z?GifIAurBN&fV7twAU+nft zbk)A5Ya12HLP@);2$c!ebda1uG(LdVqU>AG)hSk_AUR%j*6fgXs+8E~E1;ojod&x9cjsKC@WYVq$GT_h0PRT8VwT|@8Sxw_`*P)RS0PX{ z(JE`N4#af&no@3i6RR`16a9LKS*0K%YbXYX##%UIg}$Bg&FrWiwpm=PEsH+BMe32p z$cf%~^bY4qOg7fA0jmx`GUGfAc%N5YRuXl@0K9YfbS5k@Vcof{zTG)cNg4aVK!QUmX9>6Q0sulUel=ji;~M=E9J+ago{mvY8++wkk# z8?GTpwzG3sLcqKQteWwdz%WFq$p{SP=}Z5=#Rn4+9^}7vy1yF=JiCsT!oYss`W$kQE*7M;m~1rZcEgTAylp zbC#Uh(lnW(*GxsnEE?L=$-<~<6$9X;$WImub4tz7CTCgfsUXQ&=!}9W?G0jjgQ!Oh zeA1lem@;BWm`)zUFlbh$xRf%BGj`4e?KKriDviE1q!W45DBA~0dS6UcG&ALDFi_~0 z)(B;B+v3jQ+Z<5P+KkFGt7}dN9wkOasmv)!L0>ZB3eBxVJ(aT~tM1O|FeS~>>_?3> zDHI!UbKLH8jG6ZX&dmEK?r5`5#ypszH$JPi zWS7pRyi9A2k>@m}yhEFcYjRIx|EN%@g)#HqrME}1G^?&qhzgAdoi~9YYC{V>7!5@7 zQ9fHijj7k!=7xq={c~rGM`Wr=kkuUCqCw{RURoSbLs$z643N#cwOc8nj9n%pB_J8o zEe*Ms*LA}*ctt2%C_~XErz~+~fM}Fs&d4TrEQCEINFB~3@|9HAOez$q%($)*&%;p7 zP*O^AUa<@yh$MUZeHH3*DWpoI8#5$!Lz{SK4OpA@WlMOQ1DF^uk0!gXB?DG#&m16+c_8fHhA>+Ha5&1>xK@z znjg0`IWw;7ieD~oAQ=4d=?O2>sYx&R5%n4PNPGM6ZQo&e-dBjXZ%SEQ$5YPm)?si? zO*Qw;Z`o&}>gESU=#MO%;|Us5#FxuEu5p7SgFik!<1~x_fXh1LeOr+^<7pW2Je;bW z>}KKJ(6;bnz4g7paK-hxqXPdv!>WGp+ShisjTG+)DO>hl5hPwBTVb=`G50^9?0bfk4<&#-=q| zRJUteKBH;!Ido=Lz1*`5&A8vBdN=m2A9PR8qecNy3l>hi+lWeJOQB@0OT_iM!C8aT z(@;&Pj4|TwIXQ$a?V7}4bfOYGS#bk)-e^%F|5hn`>ZV#& zk3{w;#o5qJb{xR)qs6vF7;6wh0+MKr*$Of`&+$XYIzL!MMKeenVq>LIO;H+1G2)>b zsni~1o$?ri_qPqJ=9`LiRiOTY=2a9&n?IplOSFhrGp(fBY%8ev_K2a^+L~I>Z-j-s!A6rfPd;mY*6Z^X-cF(o9S>1UIosbVlm zopD(=#iqtoDTf}H*&b=LswQSN2U%GkO#98=IV*-|+5{7k<_NPOL|RbLfu3$Uvp?#r zfMCix%<$wz>Y&TV7DQMFGX}sMBA%T@89UaR;4j`#mZ zWDK{Ab5?y}88Y6E5|3?07BjX@Xx=Z=c#C}S9joo%iWnY;6!Z|t-f@t6#zBY?zrG7P z|LJtXpPrs~Mr2jT#~GJ(!MFJe0^yI(&p7!}n&3n8K|B2<<8__!&-sGETD(jXCX8Ta z%-e>4yuTsji2w2Y2`4vb1Kc@E?%bO1&{RL5pMQL7X)iJD8`cL@;LHh^ZN(ZRM&~hD zi!DWjlyLF`CO;h5NIjbUqugh@Y1PX!TG#iFV#a?jf17*R#H~jF70u+4V@91HLG^CY z_gear-fW~ApZ0cN{NaZw!}a_3VlUq)L-kTiHsqALB|-ZEW6%CSvZ}fP5uun!_Sz5D zx~1rwm8}PWRN`Tcsb-d3R_8hs(voX(Jjcb>6pe`uTKR;Id{YO z#^%Uil^F7Y^+t8z?~TRTjXIbXUkpzMZ!utv0fY60*4Wj~c9%u4J0ou%(=H5(`lqh_ zlv|fj55kg#=`|*1r@xA=KxP2jn!uhhf#LM~2|$Fz=18L`aTnVf1u6hEBNnwmM0M9S zHJS(zov+oR+lEw)t2hHMpQn1W)-^~Ispe2_usAbdoW@O5BNeWGL&M;(tO4WTY8;BO zgl&z8DPtUzGN{~fQ$*hS=Qc+SCkJm0u5-ZK>w*|FPA7+_=LxJaCtPAZ6rG5nWmmet z*s9-+oo2T#3Bs33_>yc8%G&zi; z!{8kN3Eh_OQ>wjEuFHVJ76-Jlu~SDK=iKE%bNz3+S1MMDjBIpPqnw1|ud!K$N=2nm zLuXe{V9Ey_5bhq3H3z!tHK^JBD{9GIQ(U!+q(~GM!rJ~ zsTOC=roN}zb~1BVMS)tNIn}?H11eWz2(EvogqllR+_`BNHB)kB=@A+8{#5eDhKIDXT<~ zOH;mbYz;FP?}UbK8jWldDFBN>)fV8D-u!YNr4e+tBJ$Q+G1sbVFN2D=0d<2TBcDIU zD9D};SqCp`YTM))&PwHS*1#o$sC2N9r2%D#5t8gVQJn9U9TZK1u~sv=Bc{OtEXX2h z1HP;gW|SQF|LY&WBD0{v<#>&$(?n?#?Ti%Pe159MPKXh63<&B39dgE&lDMFgAQ9db4RG7r_Rh!qG39+^>%Y+? zbcXLe>}sY)nfVVf6rU1!&B* z*Ko#yI9C9OS(&hgYO`CY)>UZ8CAmfJjWY%cUx8qe+i139 z&FPr|EIEqNq4UCkjWWbU>F4+k(}X(%(L0Xbg^O1{Q_>I!FOLW&wigr@T&rOlTA-WG8o^@9ax z#-_i|4hA_Y)i5`wvO+U9L@`y)w_GVLwpG6J#p79z!)pE{oD+!n)E`xXY?K^MrCoxu;n_- zGguJc!v0_e)^&q(7K!B9_s&XIY>d@uA4)N{>RDin(49p`P1r)fG!9tSfWcc>Yw&tq z@%d?jvj+28BF6})X+(?>YlxLSFnNzPhJ&PuMZ%$X+*@(MFT)e7!pfWp)^8BB#OQ{j%cuX%cF9khQpO5#Go%l=U-;TqDVAXoOOV8O9PO?*)wqD=TQj zpPoiok_3SzM2#NG*kZz;e|o~Vw^@ojX8d#-v8tQ((|JNnNsyMo${DsrkTH0fJl2?C z0DQl$QUql&*2;-6DuvQp3s)k^Oq+6N5Ui2CEaapVbgm|58GW9$AhAjJbLwGPZ*rUU1gRgIA+mx&)bGC*BNu%Duph@grNH( z^_iu#H=^RZE!clU*ZHWipyTkXw7-vkClTQ^43%LZMtBdz)erT*^xHJc$36x>_8ums zJ^p+?<2(#F`#}ow2Z-s(5BO<10T4Yik$E^JX%>Ribj3S4ONZD2%}Mr%#PtS1zd?8X zdz;|hef`L^iksO{V%1M7eKe$~4FlgG=Q|zn@60aV1tReWL0tdRvhO7t9SVFiQ0|A) zEke`kIY(TKUrXI{q#^X01-|iezj605rY6L|3d2omwOnZqMwzL7?ar!2Zer6;GNw&z zAGub32Q%Y5%6Su1tKKtMGH1lXbyDdeDf_F$i+XGJ3GKuHk^nRWa89)cq8(P+@d9f+ zC)M{Glk`KQ_eeR(*$b`t>bWKZ*sP6ls^?q*+ZdHYNdzOM_Or!zv9CwJup zX&DWExqQd}oX%Lof@zqr#0|t6C5Yns?X>1YO?9bKCvFnGKFzlH+?0WY>yd`~0Q7F9 z-Cptqr0y0VSOK)>J_eo|JcVN^7OCK8-;yykjhE$u{K0mf1iTWnIHBC3v)APzi zuGkOvB<3IlME4D4--~R0d+ZyqHT`LWftFA#1=5h2GCod14 z>KXO`nKaqUmZ}!fxz-f1>L0c(%GyX=CwM`dY42?3B95vf=nwW)bD9Tj@?w`&_8=?GVfr-8YrqDHFYvGnuevo`ZSv+N$k3(S|Cr$% z)dqdt5{5x&p6izI{cXYfbwh|r2P~%3F}EYc7TQ>)xwq#@o<&<37u03%ib0*N`vx=P z%eQMa94j$O&f1-(q^HnH&Rs%`S?Q0Y+7{Gixj1#_9FdZ^3K}(lDiqXxW*qI-a!@1^ zoly$a?-jakaYQ#MRY&16BqJgW-orUtL++h5NGahw4Yk255{b&oi zCM<_qTl3CZr9G)W(isfSAtZ?d^3KYE!7}_>gSaGT20}{s{w8L8FHx3D zj=8#F5^4NiaWgL-4a`{8P5L}~tRdnbuNN#K;;%nH3o}KT?pzLky|6K+I#g4K0mPi~ zmzNW!*68sapPY=J54@!OpgN+3_Q>r%a@Hl+uj&NWpRX*Fb!Udup*lP z-nIoXvkn;KY#7~)(OEoAC;fA(vV^B0z#4<^v%z}^SX024>jln;#(404$B@|7xVUHV zb%^!h2ejGW-iz#Nr`!D9$LMTIj5S51D9_^4I2{_tA2+qXIq&BOfZ)AUo z+KY61*Q5K!M}`AePziT(!)=L8(x%OTkW$!bbxEa4Ju5~uxB2!uYCUI_SyGsJ)SdMP ztmlTUau+~T6^y~;d@~!ZROH5{%tg{gy%kp(>*#w!WAAWo4KQ`CP(4!JuS1a_HO6F( z;w(cMZn?yQ0~?icaW||zdf4}a2pudK1MfTrW3lFlthLUTHoR|(YM5K3T>+8Wa4REg zuT<(cTgMWnf`jE<74BPMI%EKj5BfybsXQOF5519*I6Jet)8?k(t41A#n%5idv}F>* zu>rh?yyQDU_oczI)#Rv9cKhFvHNK)WFPWRsOiF;ww?!{^d7=G-b}zuZw>__)vHK_~ zX6zt2x{(p?qwn^$*yLFnBH-@eaCIpg!osWyn2n=?A+HXyQA z^pw^KeRJCy1>bwOGxF;13zzJ)EKOvg+V+M&f*wYA@6^1AD*6xrqYIV5xifwI;C|^ z>Fa9nhDDyA!3omx?R{1%x@k^T#fQAwwzi6MccI{mX_D+GU%y`;y5*MV z+SzWs7K$h}OB&}*9g+|U4Yp*7rV=BR8#CeC+ll{m)em$!p+G!dpieH}BoHKk9&25MgUg^ClW=w;Fvj*E1;H*VrVJVPD^=?QhfsDcE z#Mo}9=k8*~paTeFsiO2TLv%>i;Os5tIaKDuq$r$s7M`5at28Q!Or>sFV?azW0PjE$ zzb47rKy%TqQC(mpOEA=~k3_c_P%h5W25*-QPiK#lA219K1{r_*`iA#4Vsw&oSj@u8 zy$Vr=C{70oPOoFk;%o5zy5Qs;{_r&6by*dWKt6Je-X^ zD^#^;&PXhVxbBNK+Yn(IJO*d+)9EAyk1?Y44guEyM5WmN^Zi}W;cdfHad{p`_)af3 zIuCk(#rJi^B?Nq5W;~xJJy+;%gY#i4!Ppm+zX2`GEIH97Vy}8Wbj2Idy*R3S%t^)) zHvIkd6>|!B9tI4~VIaRV6-pi2BiGtBFyr^w9Mf%z@WWSNMq)wPLryw0BiJbDzPtz1 zBm`=JRhSYXCs-XE?(4RlI7Ig;~&v zJg9!1#96iuk)zlmOEab@Yw;M#TJx7W%aoyScbloAxy8Q(YFOL5EplTdb$%;ZJ#Omt zR;J??Wk6Vl`a5&e!@%{(5FqN4LipgN)YlWTekVWR$q$&71?n_rHRc3wEXa=vSje-V zxS5~j+y<^j*?pE8gOWQ>g-2>OcXX*GFpRS;YjhV*-UmQ8!xliain$sN-A?3K%~4xl*SW&RGz_qP?_M^kBt}nTvC;5W+PVt4-&dDHvCCf`aZ=qfTuA z&=oWL`hc6^O{b&lb4DM9aT6W?yKk&D_qVvQ?lN;bLjXEtp7qzV7-(53oH;c|Y9clK z;zn~R3%43R6&g`5 z2bZW7Q{R6-HOqx&ow76uv@aHsx=W-xRWX_|UD|gUN?2>UiBqRNwC(=q#6q8|RCL*p zW6IdV+R!7S&JEni#EO9!qvku?!-2v|eRcJ4E5Fkkf+brczj}u|qOLq*#xQuqlyIFl ze0rHM4z41gAYfgCXopN|mYaE2uTyG9XxvSQ2Ja5~;7*53z;)iRtO3RtoTj1arn%jl zX%rN7U4slnysM7$J-~b{xrNFfMN=P>Qg5vqOeIAm`NmDSFCt^it-$0SVJj$m+<`bp zm%)${Uau=sVtjfUk#gshuLx9BSK-0QJ^MU5T(ogoW6~_&MjI-{{1RfNjrT=wY4S-A zsd*_V`9fn~wg|=rfB*I_Xn%-!J`ZXpRh(H9NcH|Z)(;N4H8i($ zOMtN!IVCvF(LD_wQ3q0%2(R;sm@|I){$BS3YYYbOu*QfbF#i4Tzg9#D08Zmj?_DcT zN%cs4ll^El8~lCUFo%Fs_Q=`c8aG_l4KYUi`!BC}-y&YdNv>`6Ss(<>8m!H%HiXwA zcVT($sI>2fMsXctHWzIv>@$vo<+gsfW9#&TS9Ed+<~vxI9_Flu6h&fk57~GKYSF&z zHJYcq&*ubgT%qYc0=!SC#@>B(XDUlKdAij{U?(*|jWS8dh)HAMz_=p7&N7JbT3~u- z!NY)4j2PAx*RWxU5nE33|7*hgwqcDCe zc;6PplrdO`mvO@LG{RZ8lV_FTXVT}xk>rLRlWe$43)t_qIxy#qEk<0o74PeUYuFIf zM`JP`pQaI?rZYzGbx_NAUuS%quUKP}LA4Qm^V2Y5^j?bNn?{(bDPte+R!l4_a!4ID zde=PBooNT-X+Gqme`NIa)decC?fY9O!x&GOH&S|Y$hFQfwsJJ+jG1cPH!GH~kp;eU~ zX01Q6+R3z-iaTn+V^o8@{!YIGCpQ2BpV( zTJAw&#^eWl9!~hW&Jz1dgcsvs08HNLJ(PSSTg@XCNTODk+A<_33ux3GYkl7|$ZY^s z<{$1zV?{AuC<~vsLraSbbf`JJDQWXj-JEls%*clor_Ydcl#S#41-K}U5Z9cVw8I2 z33nD61%Z7WRn!_bI-rN$0`DB_s4KR(o3>X}7uemuPOrYZPo*$x4P4Pl((VAR&WYVY zEC&tk+^2iwFn6K6!yw}PVRSg32CQ4CpWQnnMnz?z<}xhFuq@M^Y4W>+*ARhRo8E;j zwN0@EWSgeZh{a+(1I$5VRD^Dw)rtG=$hSxUoCU|EZhb9>TG$Zjh9lOyt;!+DaM)*U z_7Oa$A~GEfxQqO%*OZIZKr<|0mIf3oNb(kvMrlQOrPr4AXboZAl2Sg6M4J@@rf#Ui zo&PCm1KLpa{lAyGF{TWMZc0jxnj9tL3)>cvStJWB<_XwT$1ltT(+yx{^Lsu|h%w>) zx&i>E$-_G<$h5LhoHqF7b$fdGO<8h41e{JBxjQKOCS@EP{{26{U=0!f^RIuX4Qz-B z&NL2LJf}hFex| zqe2zNktsvi!n{$hf&cjW27G zQ^XTzFdLiksFnZ#AOJ~3K~!uh;@jndU#{zCbkrh#)RgUz{0~s^Bl7xD z^Q(h|w{^xpuW$Ii&e%9(AcH@|4S#w1jHhwj(cZTd@wQy?Wxn7&Y)Hr$jK!z%gg>62 z@H9*fIeyT5({35l4`}X(2%w^C?buJ%pz8M}X5DXms}B(FrmoNdS=^^T96t7=&%Xn@ z4$~+S#*auYl~qSvO`^)BEkKDm0$QcEthF#zpOMGN+L)ICGNWsFTeDbd!#*|&M&CR4{>V~08O;sN<@M^Yfa8BVL{*svv|6Ys;WOH(}Ly8`Vv2Axiv} z1W4EWQ8p^B8jbD&RTML;<99)glA?~~8A&N)82q6Q+#`^ME^Le--6>_nSoE-_<=++u zZZ!f*Ig7rcP+o1xPB!&AmaI0JWUHxx7XRF367Qo4_ZhZMDWuj&Bs3~3kw7UYT;>gA2ykndf{Nd@0KYjXy(R)nZ!&|2)q0#ueqpR+2V!Wq$@3Mi9 zT1ozp1)6il8UrqI1DNU{jSenTIkQ9pEmur-!1HOuvfzs?stk5lz$7@WhiAK{JD zS|B5E#`kr>RZ;BEr!$_05regjwqBTWeKcO#lMj6s^GBd9-)KqiPM3~N@FS`_7}v1k zpVv41GG7r{YP?Gd;Q5NP8!$RKtED89X8CW|SA1I+$*|V*cTS?ww8n_j_aXnA)%0yk zK^awq!8*8(S@x)d?bQ5Tws&ued!J7FTO=1Z-6P`xBE28J8MCLf7wKOCpFaHk)TqIr zy{X_%y1`t{w~YRrfvGGZ>ZJ+A*e?Sx8N{YWU>2|?r)pxMtS5CwuCYE@B|Hi<1IWn8 zx))1{?^FWVz#ihxq^ui)5wMGKD-xmF4EM39nlVrsN_56>;#cC@@TkjMXGZ7v-1Ujn zF@1aXCLL@Nb||nxND%~Jazm}d#5gSDb)7Mb=9g9TN3jqkm$vvsLhB$U4JWz0W}w*jv~oB4Y70f zAP3kd-WMuJPpj;2R7_$xB~(VhdndX~Z|m2ZfV(#%Q%$KcN-rQm^9n!S2>KR+P%EjU zg_&-OP@`DXX1|zVF~qqwrF3WJ)je>Ac1XaE7Ojo1)rPxJBC=8{n+9AC?1~g(U(}W6 z9Evszg}OZ`MUOyTEJ860MC7F6K34Fv{ol@g3PSsF)= zKXvrd%_yNjIyHJBnAz zn%7+oOXME?kDoswri}MRES^43Mj2)%JWtYWSv9`8+x+)2HGHdR>I29g^I{+06VaZhnmzAr8*U#5 z7T0aVua_&VnejPJ`04b7^Dx!{Vkt}{CehYGWvu&u#@jOE5+#o8&*x`M-r?8l1>e^N zZ%WG@oUa+yq#EInGnN?ez8PV77+YO!b7ow(1z*<%1aWT8nz=r28~%BD$FK7hffGIr z6Mmk~c%G!OT~oy0-(K-$xnM~VbJ%d6MmS^fJWd#`*CDKYjx|QSZ!^BF3w~W@yoU{w zb2xjCe|!FnX&5U{sj%O20cg0-k}a<5_wLpW$@Gp6{*G*wKA^hmJ^Z#@@pYMz!T9rZ zh9ThFx?t5o&gYy_LKn6a@wU$RzAgZOKcAj3T8r=NjQ1Gv>vF}*FiA8N*`20*-d22D zu6Wy|arTDrGMw;vI^#5qDzCYx*lteaJAnfobAfO8u6SSzP`|Yd{f=z7)~6oP_J%rF z4-PuYt>~utzcJg{p~TcR!390cl`3m=!zn|sngCKM&rR`{^&BoNJW;;Ls>&K7L#91P z!fKV*i#f}gUk0!_c6~~&;8o_RHH2yTySuo_Tmdivd2+SE;@;3KW2b>`tjt^mMkP`T zo%AY~sIU%Q<@{h&+SLa)diKLlWR;r~6I)Yi@UligxTb&@158PJP$M(WoyNBG6bcU2 zBa;klHN853k5r-?74821>wK_*FM@7$J?1P^3qW$9h~T{xaw$p!xLhMTrXp0Tb!*x{ z#ZC2a0S^c@8B|wK$vBbsaRHh-2M(-#*=3a=p&H86=|a#sEl2&mTn&;4B-ME} zktx@uHtV`3QqDEPN!*rYGmkML=8Qon?mb)K=o{gktM?)EtxC6=w^?c0gksvB88Inn z*Rz>&N&JjNcl8K#a}#EzV2^{ZhhmHJ$}(Ilna~ILsKlZbmuXd@~=Q>2H+gx>` zQC!5y7{r)xT>^%|A?Jjcn#lySYS$()F&Vta_4}onbR9H1^30-YZ-iNp1r=e`VM{Sj zD@G`(cmx=NcLr<72r<^7qc!aS4W-#rHidH*qj$CGEygoFLxg%BP8odHf!Cgm;HbZB&4HV`we zYY^(SA$&RySVNNGg$|CgqNr3Ov@!;5;L8=*V#axJNGxVqj+ExCsR2&S0Lyxb+)h5m zp4Lp2L|hE(^!Yg$ta4YZ5bw2c+|#6g3k^{brF9GVdb#53<$~)Lu;tVl@S!;v(<3@G zH|FBbee@2J(@Ag2(57#S6Z+V_uE~DD(lh{0-s2BXLVqnLEeV2bT6)8mc@{%BX83L} z!H4pGjR|k_jL~^agKsjEzDTUz2f4+O+>ry^9|GLz1nw9WWzD~2<+$7*ycG`!gTY#H zt-f3^hk&0>XS|FPM(;&8+_AhWYNH)m%o&%kA?1wIFyiw`D8w;myoU{2lqUQ0#DHxm z&E!2!&SQ>ZM0VL0On$(iL(a$vm#|?=NgH^o4cwROJHE^pq@3}G@q|A;KjYJM5`+l^ zn=DSw)hNE0a~;SI){Bd789HY%#u}XiXT~q-ir28=Ed)HpfS*oJ7}?h~M7RYQ_mMe# zlP+?EG#h%%_syF5!Qbh&0iMH#w{^jm6F&P9e>w~6W=RQKSP@xME%ZgU7;%jOk%7;C zz+cYKI63icST1i^V#E>!;We(YMV7GPm+Kq;dA$hTT)~vLuwhFPf1yt}`$_9{zCYx> z`B+U4Pkd~K@5~Eo)2qg_oGazGnk$jPJ!b0O7w6V6zU)&&YWGRSk*?dW3Jkb4HN?9lEw5QiH{M}r<4=MalqUA3a5>PLl+^_l_@bKSZClgW+Ch5Tr|Zwb91V+Wn&OcS)tOF z>sr=yaYT2{;5u)x>TE64Sh;+|U0_{?H}lvFRvS@c_0!`9aj!BHHDmsQYA8Nx`T zP|SkLHHaz0CPg;A1z_Q*CQ_sfEL4fyMye?o-3W{Mftb;HZ^1OhNG z;;KB2t~x=NdkHoAN-1LvQ9f&0F>e8<(Q9;)sZD!Ia;S#Lc)Kk4w?BS@VIZ2M`qo_C z(91Kl>KZXw%yeoTP@UqoCYh{gjkBUnL7m=TFDw4~M~Oc8{BpwAx2w>nJCHoTsz8In(J&<#}pu`&&$~hVc3MgqUJ=@)X7lwLEVSoFjxS;K>it$Qryx^n* znUK{hz!+FfI*`LVOXOEI_qa`-0~Br+doH{2QWh+#_3nq5yaGvBT88?9-^ z8Unt)U-0YYg3G!|e&eAic^FG{x0<0{ZYbj(-I@1}vbY6~xQBZAQGkvNP@cyTpQaPW zVXQ@~1H()bb#@H_?^&9$+{eUq@0Xbna>V<#;isIy@RjOcm^`e--W((n&O3|qIKo@k zqKoMxHRXd`-Q5~!G*0NyWQjorSKc>f6${(t(`k}M_;SIQ^@=acf;mLIk1Jlr5u+c( zpCJXjtqT$uUh}t$94sWkd@?gaigiB$t9!P_jx_2f!5cwXzpsl>kmnhvVE|(UAQb2K zZAD~;Va65{mayS{UGeMniZvy?3VSC;8?I5Z z>px8=oQDZ>*lOe8I@V%Kix7s6w-%%I7@Wsooycu!3}mY#Vv2ZOuJ~n^=J)J8ChIWA zfJ=dEZ>o~T!zg_Tc%fd|t$B%|IhvlA&>vs&8!-hEqtu27TIE+q=yqvSJnr|zy zIy$JT%|TWN=v}^9hwqKLNXw=XcZM{P!gNF3X8a^f64NNaS!(E*5+Y|k zGddOv0Z2yT<+PsMQbf{hUST)oUBZGnFkH*NSsPvET_VMPW%HiOt!OF^=5X90$aIiS z6pDUU^C+joG*UO|+#%`4$dH)2%x!aI_wV>rI*`cz~lxvW3c7~%LJ>};mh?6 z|I5#RLdd|p&6ox;u-sB;roj5147YpRlFztGikc?7F^w1m7dB}Go?b?!%w>{;h5IE$uFs9+h}mUc9T1YsbAm=%SUYr3sLn{*&-V&IdR zv2Cd~#32;NTB?X$L4u33@wP?Deb!(nK0oQrM+xsjgX1N(F6i*aE z@2SRl^e&vms4iu3M$Vn{lu@=qLHU<;!!$ZEiCF`T0Z!8hL%^c<%T87rc5RloAk)HO z@FGE=Vv$cfb_EFd^fakcvkc{uK6gUD4@#Y9eRflw_>QB)G%3L;ehcDQKaC#V%jjNmq$Bd+FgQ~wz9FW1out_`NSX0;9`z7mY%%K4 zK?fOXN?3oI&ec>=-GpYu zS6uBylg-GKIu<}HNRmFsF(z#K`JKj^u(D$$wqkE6SoB*-o79vU@2b5{On4eRPJ{27 zX8DC7Wo#*H{;R{uIV?dO>Iu@gn=WIxu8lhdbJ_1@DBV+>4?5raXJ;modjy5{{t4W^ zE+}_bBzLIr{YYK8mT&WdZ!g`MqPlwZDdq`7$T~`DX zYvCHQn14wFx#1cD))cF4$zTj#1~HEcDT?uz()w+O?xFJtD0;!(6zJa2=yjR#>-8Pp zTKxIxlRC)T&fSf`B)@MgN4dm5Hcfw zUsI9+Fab-9h&jWeFa(>k?R5+Ivdp-|h?8~rALkc54-;P38GpOJVNP<*KaBxy=-kfl z8nPZ7+xM2KA4Gw1HG5h^!0U3wC5VTD419q#&Uo7vOwQx%N1^f;HX4eXa>teFoQ#`` zaErF=_h$TXtkEZ_NNrdeK5$KsRxrUfmRJS!%wEc&O{$?%_h=9jp=xkzVhjrPzRC8w zx#pfhTg(-?^Bw`;k!bZXUeq$M8TZ|~`Nz8LnBt9t5e_k}I7m1@@Kd|_-(Y>ESX*N- zI0sJ_3+r=Fgp`3fZU`~Ls<(qRMc!!DBS#zXa^9-mH`W+O!LCzhl-W{Gl(810Ab5om z%Ng*atu(t7o1U%|s9}qB6Cmm+&!vDbhCn5XM<0j~3RRIS{S49;7a(s*^0{PK6x4G{c5 z*fw!|T(^LE4*2$E*4L%F0PAfm^vERF`RPR{QKz$0M{q%FL(J-Q+H?bbo@^;>=Q(Hr zEofY&DQ8srVTn~**M#eAsz#V|qdkX|^^y zL3?F*A-TmU=31Jq`~7vUkyBvca@}Bz6cGl%H8HLfs(DwrCn;z6L2Tfo>Y=wF^fGG& ziT(BK6@z#9^fKVn%SrW58aNKjN~oitv0 z?^-Ujp!MEcjDr_*w4AD02uf~VZS>_HuiFMP2F?=vH~>Vr&MUsXUGep8#^5ZTP6I+r z`1Sh*qjz{Z0VxS;_{X1~@z1YsiryN0dOp>|@T85c(8IYJWR?AJ8axK?)U+#9G~anK ztxB0OF9FwO#o%p4k+%?Qp7RzWLQ3#So;&YaZlIV?$z(O?Gvb}m{U~D%2{A@EN7!Pl zO}4mLhkBh%MIyy;!deSMjDS?9!VP?&>ZBf%Xo(ZGW>l!gdq;a=?5A!x!AdJu!#mBO zv;@uV6>qhy)92PrR2M3}ep#vFj9=fcYVgE(nLNA|Q!*x5J5f>f(OH#_?{kADOI^ykKX8jaiA^puDPVnc&vRhlhC%fkDS}ZQ0O^)FK@m)_b~_yg;T0i=2CfO%V{&4V{g~V=mox&vkIIlZ)VxazJ88b{d8{cs`PkQ!#wu<}`Zt zgEl8=r!Te;RJ9O|QcifiUh(Dfj;lVC))3a1Fvo7Q`#=Jy%FH;qF5DwBvZ_Gx|FzB9talRx3Yn3S;qGgFD{205CCVmd{IOo}8n-5~ ztiyn$g>Ye6zh^J+q9sQZX1vD@`HdUc@-?h#WpEm8)x@*ycPq_*{?N3GR5IST4S#Pd zChPF)Ty6q_RK{L_YgqBe^&PBDhj|zXD)au)*v+92s0=!0(qgIBW2_t;o!Havqa+jYG1ffWKGqb7vIHcEWiW@ifS!{@b=- z&GIayQVvR#dlB+S((oIh#-nAf_bj9&p7Xe2Fc#-wQfrZ@mA-9P{IR@a3@cciWikK& zAOJ~3K~#R@mu72d`)dbb?B5%G;fqJV!gq^1YI(W!&z*72_Es90N{ZiVRVpR#o^gGl z)z7g<>QLjjFicZgl$t}Ue`i-a?B`a#`Gkdzk&*3fp#V<0YgFB+5i0tJjuxw*$*-oa z7P(dE@DHln1Msoi@D5GSY7@$mqT;Pw|G`>S^BIvTgYh0VL?uCcZ3uD_AFw=GW>;D< zcLZ#`Muu;iH!VR}-vWh5qfCLW7dgD0 z&H`a!E!zBG;n-+lN^R;V1wp~OCUDt0SQ0RdGHrW$9x;p#>na7@^Yhe-o*J%$5Og3JF|RUBRhkRu^46-juimwA`@JHwyhWoK_=Me^N5^Eiz@2|~ch*F@M=D#g)P72wa)u$J!$u*64a8?S# z(>&n$WyEQAu-0N(L!0_R4=?Kyv8+)&mgr)cCY121uKIDC^_Ml@fdv+{=@UF$IwYo_bDS{~jlnPQTxGVuBGlmL$ z(tF@Eu1Ti+`)1zzTC#d~o1|9bZJZOY)HFJ5A>;QyuK44xYl|Hs2o0EvL`{X5@pjp8 zxo(pGs@LgoQ0rq4_3#;$LLOp9NTQgS1}pc#TWtTz`{Yj#q?ICEi~e~%PNYL`*MJx^25<2Bd4~7m4JODslAPIs>k`}V;e0>{Q75Fsp;Nj` zjP}?WPN`)d8!e2SlixEY`J8XpfWO~XyqrfkYoysQ0GDOMw#k&?vTQJQDr5{!^N4Tn zi*~Jx?ggcJv8*+CK254h5E=J4cg^c@2LscZZ{mBla*wK{xAPnWx%qjmLh@K~nZ_7ced&7b;`i3j zl(VoT)SJshJ7xUf`JyJ7u7w)9333ImRa?ZaMAZGXlh|gpQ(Qtu$P8}?r_m!<;2fyQ z2Thk#F3}7Hv-bk4OBo>-$!sqB;h^RZmsp*MaN0=aIVtkXtt6 zV~)hZ!}|cfvuS4b=p8=egvm#lM#Y3ksB=@7JmE&}mKgg&(I-dA2J?6fX za5z9YB23O<@`FO6_LE$Vb9!G_Y*hr1lkpM~KX7|g?nU(aVSfcFq^i3v-- z!1nBi3Z>D;(P*W>{iN^rHAzFPXynRh9nQljvTY}4HD?K*PbWFwZ7bF!6Ui+n5DP(j z?DOXh(Q4 zzsp2RLdXSc4l1!k^JF?h7>&i`Jf6o9CqE){!JpT6yoMF;G2t!61Ke=17N5sivW2@; zkrwaCACJOVtwkXx6tG6+9D$(w@RYHogl}QPk`jhZrodH=P$%ARQEUgH6#VOY0TW}% z30dK6e_SuP1hGw#HYMJ+6^RRCDfnZ%%HCX)1W@q0ZHQ{OxyDTj>XN`9gp%;StwKvr z5sAyqd;XDm_GcC@f5?!oMPw=&m$2eJuCi9gvpl=%rJwyE5rtQ65*Ja?)%dJFKC`L; zD|oQ3%L-32WDbF&Kg?pj0qfQ7J>3wB_u&*Dr0iUBi#e(dOQY!@(sb9UaVf|pxA-Yz zs8i~6LgpLL{9`Lf4;?f5$8-Zx>Xo2J-olL%{JYa~kvY3#{`JkB&fFy!kifmD%UmX+ zLsTBs0z*GQEq+U37;oUM!(_cA`*hZjH798rbx^yio<(Cz(9H_2iZIju!~lp&k8X-O zlJ~b0FQi3I8S7PGPR?0ymO~p1;0G@cUleJsbp&G>mTSJ%(Xd`UVL28o*NDq|Kq(?C z9wraxWJ9smfUFeKM!l(I2sue%8n%oOGTz?;{{G{N&%e$1?H^~9RGQ4X7AnJFn-qIp zW6Q_h3L|U@%M!s1_`zTt-9Dk#g;}M-%q*XmrFe19U|Tc58^+mV937TxYE#=fwPr0G z8o@P7!R?)G8)_xt?u}6DsLs2X!H*tcQ#sEX)!SI``fWuB8K;v+VYw&9ssA+P=E>XE zC=zZx;EL?hXatbKy2c%Aj~%{LU$)BVr*MN2x*^a>on(l z8epAZb+=66m@(;#aoCdnrpto(V*LhW^?HD5@Bo>LZyvSgA~>ak2>w~*Dpv^PsYgaQLc+@_qT zlgI!1zkIUf>z`egfa?+@V^<~e z!{9I|wo)eYQlzIWaT%nOw$e>01yTcy*1#GkGTtcHXxS178QvHSCsll0R;1bxu!Q$z zLoSSIko?b*3;upvT2bYk#p`9gD-{kB9(&BbtA$8NGHEr&AZCMcu$Uo~>i_!R|5TYh z@L4^;&Kmre|Lb4)b`hmYWeE(Sa1@=mb?CZQ{}-(#8-{M`GvZA?Bu}xo+a| zk%%&psaGY6B@(hV?dJv3s0i5VhfbKtX;Y5z>#62Mr!HEo9`aec@-h{4gGY!N*DWGw zzP(pJeNnl;__ezUc@LZFB*}+t-`fdtU&dBwmXbZ0NDmf|I8+J?Y5q9sV!V!r(GVl9 z>)KQv5-%qAM%H-Vp;YQi%SDQj!gve`;>Q-(`x(;x5xI|o>MWW2wW(&|p1xe6fweGD zGHFpLT1W{?i1_33jxFW}6dbL{izn};KrE$!_)1}1!iI0xYkU7}DlKJ}cluxqK2NhY z$1+~Sh9yeFEl?KP@y#TP56wmTfXs9J{Re09`E-Ue7H`{%B?fFNOBVH0X$S1dO2+SL zkSyHOI5wt9;T_x~z(d<$I<@E-oX4kGrs+!v__{5!1~l*bq*CHi3S!B4-&Xv2dB=MU za76erPWZ>uOE1Vwo3-kVb92GZ?JJX&Z0}0b7pZ(FZU&kC$P@r_&j;_pPWhkfw%HdGhxvfy8;A z#*z^+CD8){vP29$`vIjCEIHwtcYaM>6;;AZDA-EYC@_OU1#8I&>s3j-`?Hg=KkL=A zU$pslNeS`#2CIcZ;)1QDwy(X%h{Uh(#v-#6+ZKeA^Gz=Qc=G#EVbmw8(0wFQXQdK( zyC@8vhZ9c2(CjYq9`JY>PhwXnxr@5e3|A(Z(G_m6EF#l2gZ4soFPL|T)JJ<1y5h5a zNiHZuVT24FflJb#*C3?T;DEMw5Arv}clN}OwlW}XJ=o~hLN<jHzuX#;9LO^V3SXWsTx+Xd|OhHP)%;T08;X3y6zIbIypH{-l?GUoJsoe)dQq z(?PzrEeSPOebF`d*eVpP!qn;mK$MZ9X%pcTv%-qX!P_HE6)!*E8pJ5F-w+GN!D5`8 ztgp+4ad4PMr=D1VIcWi9aCzTEX035br4+0oA%xsyuT7<+xs?SNgUQQb{{0e=^D8b(z-b;Zjt=uQ zv;+E3VP(!Xc@e<){4(#;r%G#tmvw4IeqYqL3uptvSwzj-Wo-^vBZamhLUKh($4;gN zs+6eEuxS+7Ow?wKRS4A`L5ZvlB*Nh3`FVMo@#~kTmOtxMewb2j zv~N+e^uUW9;#51!Ip+qT3sH*9kTQ%B*j1f^Oy1)(4FDKhNci$}!f#(r_~Y*j#?j&V zG$E#p%d)|1zN|4)Fq*C^iaFu^D);X+dGSGefoHAi8IDo*m^mecDA2MHGyZzJVv7mm z;BcA-I4gj)*w&^z2UMhZApq}dXh5l|AgJ<4LqNzyCZbxH|BpXku|~P}-dPxPmFsCB zktZavOEm-7)oHT&1FILcHirIuy>u_18W*$^B0rtRc29)vTn;43(HmGYhvF!e0xkvK zIsE;0?JPJuIIlJuQkJPo)cgO-c@|(=VTI!vk;bN?&y(zFTS~ZIH+)+H)~a;rUj5bU z4@QgeDZGam_1%1~vSmgm4yME8sOAPA@=6c!V#hYlftXDCGf+B7U*C)tK+)G_5#Wfi zqChaF9qdPI<$e=2$y~}Amq55`6y2@V`k>+E?$@Tf*~U@g{lH7cegCNf4?79DOcn$X zwS<6g*Q+XqL=wBjgf#`MF=0u$O(v`{m+MQkzQ5(5@h!Hm}7(=_2U3=%gK1Kzd`UzaOh z!-fLF=V8FF=Vv@kQ#U0>g9z6D=8eJVeLJu|is{-X+xr0Gd8&nS%`>IL_cq3~LZTKb z&(n-)5UWa7`6@SJwi6#U?MjltJN)zc8DG)~&KQi&e&Czm>k8IlSaQe(e!3gzWxDh{ z&v4ej8;jqUck%ifi^)1zBQ~xzM}$(~$l$m6geNc8`s=phTikU0)pMOHb&Pz^(OL|~ z0mKMJruLzf274>I51y>Yi<3I<^4^ansAN#TjAvxdO`*sg8U6qpxM5T~voln7;;$A!^Z*9>m6b}==;5ot`-2@Bn{C1uBvCO+MqBu<8|g6Yfbk(oH2+xku_xS zG)(QIdbPohl300I8r9;PSpT9QQamoX#G`8eHBs#F+8&Wsnc2#Zh5K3aOE$ zua^X4W#iy2VLqSm+iz!tnDEE%?=Xh28aZsYJl4#JF=1U3uI~ZkB*jhG1WY9!PFck3 zk~BM#+amQ<;yF58ubXtTwhU{N!mnhr44cBVN(b>Vay|Uu8VJc2nP9{%A?x8!B-2I7 z!75F(`vkXA)}Eh7OtZ(If4nOtm*EHT2!@dH{4&bnG8aUn65S}7phXYgRiey=1Ud#_ z3*z4scp2}~f+mNSg+I@(nf>J++g8w8C0Y-ol_|8+Q+wk;|AW{s4PAgFx3vV_~XP(V8mJB`iuzH(GQM5 z{V-Upn|vMX_ZbFr2sJ;SM#Lo7U|AwA*9}_`sku{cqWG4j=vbB@hr%cl_rZCcx>`LL za5oi7n5O|TCIvi+l-XH>#Ihq>Yrr{USp&YkEo}l@pJ`?W*U34_b;+e>1&czVO53Ug z|8m`$g1{QW_MUKEHeA=#Ce&7C(9x2PUS{=1bDMO? zWV0xt`k1ZFe1yae-Xf-g_v?z+%Z4?G>~U}g&KhhnV;&rSc{$;98bnshjCu6fLc-H| z#IlP2?B!{~FQ3ms`doyvT_yHaq7zaA;ewblUY;hLPh*1u&T+u=c|r&gmnGnRA*>9?y-uAe*Pq>JAx%k>D$vSVTtWgD#%KwnlJ^bCBxPBGOnpgm zj~T$S1$@13c-tbPHs+lA#MdYU>%uCR)0ZmW9})LBih9bSzWn23zHfKX-<#^%vF;?* z)cJIKR}jGfO z8F5)LJBy$oIco?n<2hn5s_uxn!TyWyTfz`_uQFH=pfNMSWk?8 zKi$i!4}NlT9$S?jJP(6PdMj7uXaoGne_e_+L;mgk8y1yI2bE_|*5k`O_!e$P*Mo@O{>8?WNd1g{`OD^BAFj1jkS>@%qaBGeY z&f(-`+PbBPMXBOU;vcOD8n%hiMX2xb4!;P-Jps`I!xSI zqdLhtShfIlnX^q+yaVjy99vqNhp*Sai)f|RT%^1G>7xO6%LZmGQ1z1B`gV)brnv*7 z?w3z3V6+!vrA{Y1$m71&O_N1e1xe{RhxG-)INI>)zR2C*0JK0$zq|Ww?f`~-Br-EU z<`h1#d-oBT)EB`$u(+3CYy1;cE8I;oz(Ji<3W||+!p!i-;?s13r~S-iNZ1AR;)_|8Hw>4bixW!!msTp#b=oe4 zudyVDZEsZ~S+IpHkqo)u={(5cJczGFJleTM1(gDDWCZOz87rOeJmfabuEc6I7@CXbjoE~RDySVmTb_9Fd2n@+N()?a2l&eo$q|g>ICA`0{xGWoTE_i;P+GbaDVqN{Fh6r1okQtFxo5HOd z`1-cAENSbc$XKHkB&XAWOoW_eDs`G66YZQ4V#XFSQWDzvm**LuKb>S6J2@;%z!n0w z;1uX49n=`*!LTIjyAtE&CA;JL>&uIaeCC()gmDnymvsh%w{Xtl|M;)JV|;Qrp9aaE z^bY^|AD>_e_%HwW@0bVKA4hMnh6tZC{2=n&wjCc|6#ym2Tb0pyju30*$?QExOtE;KqJDH@m=a3batCZkg{!Ep`+(4Mpw38h9 z-P-iCV5}-%MhA(bs?s^7%D4>nJZjUi`yx*%mO6x&V08>pD*1hk( z4N!~dGBzz_Hq$8C)7VE#aq5iQ8fu(V z!s+Z=1kbic&^*9{J-%vlKAI zfEx|w*~2tVC)q1!N7TQ3@H(B7;mJs~nu$;o0gYQK^~Wg15IT{{Fg%Y!yIB!1?U( z>n~@_lT7K}E&(yf6c$xlr4b@vk$6{6nYRYNewo$6Nm#A{#xOiIYc|X8^fY@sy-axh zw&1#Q%MNyykcz~OlmuknfjNa4*UN@!@;ILdRXq^S^ME`QT$g~?*R5qlJ7?jY0kp_j z7RfZ7M~A{vtbckQ@$x+5G|TT=V|GUMNvD|gAP>x=gEIv&C*+jjy!iVGtiM}oi)Zu} z<8YG9YGdF$Nrr7m4HT79!Si{LXEPUsEn>8`HOc^BTLWG%TWc0LFI4563ckIrutuib z^JuX}!Y~?4lf*3j{`VWUE#uRZ!+G|I8gKM`8gU*yE^ENQ{qc&JiWIR=lXz!?gvonv zkwS#keCAx_C18~LT6j+>HIV6`RT;XeFFakNDP@s1tKaalB|OigfUk_f>)V2-rwN0T z2_rEhgoLk`EB^8Msd>w-CA=*gUQQ~BSGx7@f4*T05&!A87fhqYw@XoGfXISkPM9Z; z7z^GmD~bcQZ&!SIKH+H++O*f4WXZOb?y|E2282?}v-;kRA&g2GXN_vAN91*rgR#*m z?&tG_KVKKvr<$8QV;(%-uUi)*BF}&^2J<+ylWcunjFD;f+jYZf8jzXsdflXns-0d- zMyJvirAR@7pehysTL!jjuddLelp8e682Mh;Er`U~QJWZpf!R3>gU1>Y{(M{TZ3$Q+ zWAFv}8u0Zh(JC@MH0}Ic^dJ{e;8b4SloYk&-5toeX9Cp8Z@Gtqz57N003ZNKL_t)M zbRy-$B%#HJXij5`RO+OEwVpcSxoCrkFnZrCNOuLe z{#*4|T0@vzm9928gGltINm3b-*IffRknn+nODEh^hKu zLi>m>)hRaVyA0Y}_F5f5b(5{b_ow^lrVmsHbX#qIxZY$k`)NL5%L#uhS6p*MTr!4j zh0~&`{`CUcw*t#q@6#Yqu)(SX+W^nwjF+(D&vnJ$8vQg`i!~=KI{fg)w*1)ENTFWB zs_XGlw)9 ze8XMnSrWSpS_^nX2WBC2(RUWNtYhxim|ov%OC=+F`8ar7)+?rA#NeC&`2Yl6KLp_K z%NxF&p0RE#Mmr#Kf^EGwo%r6u1siA>%_>xi&W=eSo|P8uN*0n=DKdp4u*3wFn(s+s z6qjJOHVv+ekPHDDjYiBc#9F9GLBK^0L_~XJ3LSFh_ReK5@~Zw1m_4twzC;I=8jq9H z!(Gt{tx}&YA#6q`AqK`#lL?o?k`t_wC+AE9JtdPG1$tl5BC8!ni|3aKITuWmZ_>`e zIXpkh--%IV+)q!EqbvZe)PP!6qkQ&Q9<;7&DeBc@frZVJ(`jZ_kdjR7>U4he7Ur~j z5&GlF<+5QKoXED-BU}{l0WEw?tWR@yBqMHgPLUYNwNEG-0h1eH6^-m`V68@VFr%b` zUw@r3PaeZyB@eaw9kj5GS`Y`5n@_smqZKN}B6YS- z4D&UPCYOEsZ`vBugM4CWeJ%%B{o27>z$vvEK-f}~mkKmZ@@*^l%~`@|2v08~o=zjy zE#dWT!Lmkq7E-}DT4W~io@+*SsRU|<+*@nf1Xh4ga*aYt8r&|KudI28MJKy4%AZT~ zLJFY4SE!X7=0Zs#t@7Ra<2|;>PhS1wzx5s6sH2DUGgIW`uH8@QkzrM`)`*p?WH3PFstyp~ZTnfIt%zG@7(Ts1EbcdkX zt?NELuvQ8`ues$QNVaT8sjuI!@LqhCk~Kz5e$Qbr0D0-p>PstxDBz+l&wTP01*OS- zol578k;s*x6Zp(>puH@sa2PU!kQI8Dnha?R5?3@h@vT>|UI+=xCLTs<(n+B^dfDG9 z_0STb=z2;iw;XIk9etd4isosQ{cZGO=kQi66Q#&RKgKM+D432Ok4A$udQa9Z;kqdR z(OEcSFst_%MG8pqPzRm38j^QSZfx{T5$&ASIUbBlVBe@xmXsr7l|e!S4@xNo5=^uXSFb5wrFjpc{6@Nw$* zfI#|D00%P=3u|MKk%(af;XD+L*LozQ-OnSI2+zZSFQ*euKELV z0*?zVei$S30El(tOB}t&Z|5iEQZSD~z5ea#Nt!vsa4ddWbC_`8`L#FrezqFD$3I^_ zH8`j>qWo!@$}A_-X&CU&=NHZYcG^6+k<5O`0q5_+(unV^o%~_R^&cI+D-olC{C4`c3O$y{eovh0K@$5Wa2ATXm=^Cneq^DuT zucs$z0)`D=!+K~CJ^KMqer!dnG^wO8e7yJ%{)6xK6Yd)lbbQvBzSE?6JU*qHBD$`@ ztZJM=bBqm{8x6>stZK7DcgiWm~4zAceqxKFv z|GkF6Jqe$9CkQuzU)v5@?~4?_y_~v&U29rFuQZ_Uo72I=OWl8$bKM>X$H#_g=bx{G zA*QYg$-FBe_yYn~cP)C+MB`R;UqFqveEg`#Ds~F8YZz0nVaar)~G+chm{Qjpz%t<)mtM4Wvz`0 zGjihg;VS^CHgim;xflNj0J5-F57&A~Z{v6zRVw>vx(|lljnkx3tei4fB~YYL1n&$S zORppu^)lA{URPRZy|2+T-n4^$^$D8R9p>igbcV3Sf-SL1iZuqtOTJ|cQHmrza80wr zd~(Ri%i(p)4Ta$xA?fs))dRU)LL*RHyGP?tgG-1{co-NdNf8-B1hW)mHCx!boqXMQ z`<=6L9jdGr8O2!r8fux!wTNehkFeQISK1_cGN! zp9T!06&f&G@I2reB2vuw_AMQV+hip^W^e|?GS#_WL!*luLm0h-AB+~pFI1FpmzS`m(Dx$-5fHE_CRq9%!q@J9VT_Xmp1+ zJDJ>Bfv${Rr14gyhZ4dyXcbG?qdGshHYZFAgs3FLDu2k+2 zgdkl?X|S-OS?LUoD>B?9Z8d+mK%(kG63^@89Y*i)bQ(b$pZ1mD>2qduP5L zLYyVcgOjGEv*J%SI~1hmwx%S7yE9S%7oDHnga(qMotP{~nyDi-W_TIM1avg~8>f3!V-FNf(r>83)pFH{QXx$I= z_>6JAcILv+r5O$7?t!vya< z(T8*Aqlk_N1;tHuHaL&ZXWMe;#Y^crFFoDon%q%YZ|J=Z3^smzv-I{lV_^q#98?f~ zFrLTvi?Hw1#*b&oHd~w>-B@#D(mrM-76we&L$5g(@FoYr`hATN zxn7-Sh&)%Rr=&#cQjir!b+?Dpo-rxY-d)yry#|eS(V%ywWNxbzc+=!yUA>_N+oBV3 zHFF8AxgZ271e{L8>ZHUg1gkEZoQ1wEi=$v1CBh~rIp8~QFu=+5am%o2Zv;?L2$r7a z$WU9HHJ`XXq%|g~`F$&K`OqQXJpffxPukp&Y+u_tpSBj;-sr@bV4X~NYYfy*<~4_Z zuZMA~dAe1)z&f2RhF}?BE0Pi0;-+?wW1a3vT-6TNNg;zZRwZd;pp?={+IEs@`~6h@ zZ3>H=R|{{kn`o|>`Wl~~JW{sp+7H9Yf*@hjF4S}v|}5Y(AF$yQi*%XGQHN~r~2_F z&W9S5%vsZ#8M96XQ6~s`Kav*S)oWpm#8!z1QTC0f0HmS>WT?-o(uynmD5b1ZPSZTQ zxs)pCfpZ4y7I#UW9t_=NT5fI4tv04MfzaZXB+jc~@cJ{fG0@~s%y^myDME8Ws+2>O zl~ov1Q;2i`j*G@j{O1mNT_Un7Oqzn*a z+csF8=vHqO3}JAD%oZ_57;E8;dfS`VwKN|sS%T9{R%f(>Tcn7wbscs9vkLub9$bB^ z7b0E1XbscJJG^h=gO9ooRWM-7(%hlT4PYltKii5W!hLQd)BdySfs1bsO?(3&!QMdT z2O>>s#Axcsp{!H+?j5Pu&QQ-&tzeekcqYHcI7nV}r9OWs4yAj~+A7=H?ucK6RuY`=gM&AkFlzg)<+rLKf0km_`{D#??2Vq=n_PDFM6AL zkBgo==(g&+^J=5Z$sO!~mr2gof2|i>a?lK9M#uuSJv)!j^9j%63~$^%K*G;Q9CP#d zcF@8H@n-!Ll^=QEb$`!%Q#^mYVRR19I@sal4Qz?>~-&^z_4bGQOlLBAEXwoh4+_Z9lzIy z!sy{1-6*{|?HDZ%f;IQ6YTTQAv1Th4Mk;alu zZuVA?OFN{q(sxCQm=a5-T`C|ilMt$2Xd+CbZ5v0? z;+0Ej(NczTgV_Kz8;-l__>tONeX7!2P{5bUkr}r!L^_q{y_vAf?e?OVOU+y?Er7cE zN^5Sf(LyO~y9Y$*#P#0p6((!87;7P6RkCQU5wcrGYizL2EQln7lk{Lt3g?o7A}Rby zrf?-OLQb+|6@*sQU(DckeV7^JU>gjHnFWttUtC5u3|rS!*DAIOsq)_L8KtFCNJTPk z30SV1ya@Fmol|K(-ocxL4XLgHIn>Lu=A4ibNrT==QGu339xYN}22(jqZ;c_0mIM$* zP(QqB_iUdkqRah7lWtep%Ahez03+puyb4V?1o04iTPLGC-OyUoB&j)NSOTnfm$iOiuz1taJbSO8chr$Jvse!82trjbX_NJ~6X{4qk+1aK^kPXJs zVj8Uw+*=bUw|BC@(?s5zN!SoaTdP zmWF^xD-GZcU?koO3Nk5Kplz8M#)%AB2+IYhNl36k>BOhWE6qIPvI>dX!|XN^_34>XB(yZOS)=!J;iGJiesH!`qWoZmu)C(T zPk%k8v!AA+`aZtf`r+DTcS2^vl+9ure z!~6bSu-S+8E`L0Y{lWL9AGk~(R%?d`i5^cs`N4Si!MN{XQ{q8V%k7o5m2Um0`o1M8 ze=zM7wU&W31K^L~o=1&`;}W1FTK8vQ|QpxbvqJZJ8!`XR!jVmUSaF;84lv?d^7KQe=KHmTYjOmJ0RKKef zY^Sr;$R=*nTm4s~*EWB|B!(bZC^tM}QwRqjO+@f(x7O;-iKya2i zXxRR;BsI*NPDWn+7*(n*Q<$BaSo-^9&;d16>nFJA1NNK&IG{BUSbc_Ec#k~dowjW( ztB^n>#$ZO)B_bJsrOBe}HJC;ZHc|{1-lKCWF>p}2cqwwYu6fWgWq4p<{ts>P$ z%W+FO@hlx$zY>i_%H0u!Tb@E`4^%0nje&BI&E!JJTSQKpy{pqD=7OXvyg(*)OuO{5 z!o{2+SWnoN2q*xIRSIgXGy`D7lb^ugV$`A_&<1BLj1x(%b4De;N)^*T(c!dTV_nk7rK zPLccRd`bxc3`*FW1G=UqI?S|uNLFvEd|lRDZrx22K#JvNIWEK0t;^ZA77XcL_X@`1m>J_TgVs6R;W4KM`vhJTo zTd7=1o5U6+qI+xbJb7HUh&7cKfn`;m9=514UU{_p zv2dJX9x{BvA1Vu}C5!KK(>f)FK4S*^XG2vzF~jxKBK3VfO%pCLV2!&x_#+?WLDfq) z=T-g=4H|c+y*sJ${Q;2gipyFE_Y;o0Aj;arT; z%q=HO&f`D5057L`hX{QrpZuU0BYG@h{9bhg{Ktx$2j7J54(>lO)#L9}rg$Vn{>W_l z!8iGUq4uL6d-O^2j|)A}g9H6Np6%fk;Sa3ZKQh?z%@F0I;*pPvAtL(jccw>!TI!_G zj{>c|ne%_urPPqpAO1|XI^XK!6=Bv;GA zU_4I4*l6tr^jMw34+`NFYM?k3$ge}|7lcfwJ*!QCYM zpgQSPe6``gT?3)ftiJl+s!zDX>nLqXf}nTfk4u}f8mj|DQ({?=-f->zYN$OPXl z&SGox13nEC{@d~f2EiI&CX3e$yl*S!aYE51cST}8g6@?D4BLNJ?kB?fey!&LM=F=9 z*QRI&B6kbI+#vjVqFB4GIytMph;oy1-->2K2hUSoDAa9QocYjQs2{d^N=xQF)`X8Q z@mjnQWZF`S+$edMb*6OnJw1Xikoq_3*BR{DTZRbBB_5>M)){z9u*Arw<_Q`Nf+w94 zGAI|M*c-%UWOa}T)X`*-YnXEp!?>OUa{VpzdV;uH+h%W0mws@d)03?CA(w95PzU9b zLt%x=kkMv9X9}o?+aAtP^PEY64^?hl;UXf{R;jN}=TZ^bciW3=7-@+z7Tt zr|Vo8)(LIZsPEg5NG1lQAn(X|G&wP|93G=i_*>_yb^uF9Xf-6B1haSEn5DoAb%Lm# zc`iqJoFxM1jKnqYTuR@R1mrLcRtVZUxy?#m%^=upV4Z0gchhKuy54lUm@|+l?@>`) zkc`01#FGi+l#x31MJ<4`76gWNms+Jk7l=2zaP`ECRCyR2l4i_SHGoVc(ei-n6#aa* z3Y^Q>wuH+yz&r6}g9VzkUIU6sy9q!D`b?=RK&GjCCSX%KsGm0L1llwkgF>+^S`k}g zjcOE8Ys$2Y>#`Sbtau|5kE}5}VRkQ^0S~2YtEWBbG@h#MLm^Gun&1bk1+DB2B?D`S zI>D`LPA0Q4N#nti6xOk={~}fhyYEleWz%ReX(+@XK1cbT9j?~^qZ9p78$P@@s7w#O ztHq=~h*|$J1U%2a<&v&jkcM9)=1Lc=PBjK+6hOteZc!tlxD}i+XM|J$12_kbl;Fep ztM1=1@2=Hm$Iy&G#-2x9eZ+N23@})87KvmE+Kyb>jCIB!YNMnomYVv5kA9`YnT?OJ z7StUmb|2XN1c+}=n*3l&$~T@Wx+{jL1DrIGp%%;Br2nv156AL%ymNS-CoCbLlm$um z3Op(tZxfF`BKaPs(Kny5A8pf4ihWFv{b+#P9l@G6`8HLOA5Zi2d@&e{llKCUQ_tq( zN#B0|LY92hSPDKTiELxT_u!tx$(6sOqdhj=`Jp`bJ5uBSUxje*yX5XZe5XvJ@B1V_ zRy#k+jOFimbqmFC1ft zxYZAIyT?#3FTZ6i@GFpoy5OIme$g7kd=Q!TxDB{BGthRy!uyWnBsyY`zsae<4eEnw9^YN^XNbTJ z?y`3g&?YLPL97Kxsr8&rM_>Rh)bP}gLh%_CWZV4%sJ%_E{8|>e|sKhsAhV3N7xiCiO+Jjc1 zUNvhPO}2R4gJik{#okjp0QcSzV3&oL!a%hL7{%Xkm1Oq7)xA(70+6-H5`AV@d>RZ* zzK`aQuOOzHjVe$nu^I@uy@1l*$l#kUWSzq2EHeLGBsX)>X`?mNiVJH=Ct5hhk+oPG zA@Idqb~xMM+ElQ_0;>h0H3r3^WiWdu@~3SRFY3#aM@kv*SBXTLCxOHbG-BPN#_Pzv z$Xq0zqsE=ZeSJ8mv0+IMvu0PR6eHI%=N%w5jaH*|R9V1sEv+%|o^}`$Rj7?_kH+f# z*ggAMGon-D2#`cXIm!L?g`1zf+NrdkAqA*!FOUiyY<3T0Fi#Fap-on0 z)zYc7N=uY3Xe4NsFIwzR$=u|~y)@h^Nx!~uVk+t(Kf+bS4_x2}x$pDfS{#r_;`b9k zE(GPKtAAS~T(S_KxsX~d7|CRWDA6v?8N6;uWxT4yU;tE*wEzts`6R9{0v< zvjp8td5=@yzCpiJGrIvoCzb3ZY;^-FU3O!~H!zU6o-gMULN2(3O)+@)=g*JiuSc2O z_oTr02WUFPp6~}p=%XaBS9~8NvHeKl;fYu7>1aJBC-284CYkipN6eu9v)AUOQ7`8Y z4%3g|Onel4)8UAGTY%EfP3iuF#cvPnp`VdL|4iX`Yptd4X-)b2htv-^V7(}mZy%D* z%Xlng9u>qNR(iM(>N?8Se_TyH7WqFkH{XZf{;(SkhlEk-W>}q-2Hx!KbQKtO}FYBM}Q6=r+RNi!CJcOf8)b`w5f2l zvEZOSqTAo=1BFNXy6QuJNQS06uky~j;KOxKDZx1hV{D6|bH-x!BfNE3a{{=4tVIE^ z#7(V$=7G54vD$?9S7SGUzJZVt;8M~Fmf6R|Dak>i7LN@W)lEGccqi8)Q9(lBCT}Gx zIU`AOqIPNgH(rqzWji1$Ip8UsI1*od#PL{~8xXmy>Dn8FkvmD&HPQ z*Wz<(A<`CM1w$o`P%_kFdqfUU+V5P8%qoGdU5!$yaLfk@oY6=oXq3!6djVi+G|=fJ z|6dOH3JWWYm?YML)Yn-jT&6EJ)VYX2Y1!~ zUb4ukD?F$a7J06hrb$xWYu$^gToGiz1f(o7NM8W&8N(nMtTAPzD1P0NWy)8J{02JH zsb0=Si*3^$#$h0BOqiA*ZLA!^*DbccE5)WzrHigp@2o`4#EkQ4K+57>Y<_dzr<^qt zx~|KZQp=<@#vsOolji-3|IjvRXHzXyAQ^TUKXh7`i+ryT6UY$Gv&Xl$4P^G181Yp~ ztX3r*@6#xuy2=oqnwLDrtY25Tum;m4e%N)57`(+i4{{$$X*LAvWTzrmHt?FYol=d} zA)Qu2if(NKh9p1pG>C|oK9@tk^Jr^Nf@)ahPO3lAwcbq_OgO~B%roxQ_6 z%Cl$&%_1fXR+vLkAHUh*gmAi_Zd+EF7nB;m7m8JO?wx7-Muj*Th!O<^#LS%}ea|>0 zBK0O4RTmJPm;078gKU9w?yl=j0H(of13_Yj))?WH>|9u==u3#02CJEllC@p$?>rcc zD%mFhDJ6`91B}J8MPx{0VT(zr@_Vx<=K@JaQmJ}ku#sHxm~t!nYj-zmgkQ|5d7HTu z3|6jvu2DY~4oHMlxmr}a@215Owa>yp+Pi7p*;AUBOa`_d+d5fvcih^2Rh{+c@XqVc zc@Gb`+#Qezd%EB;R-=|Y)>@pW37=v_NJ*#b-#tFu*LWWe&>nd~k6y)NM(yo1m>DCW^^l_6_ym=BZ-2f}`e=&A_yF(wlXC0ZBI0|0 z`_{|&Bht}#n+Sa0c)4BDH@%)8Hy!$zs1KftTMX?_)U0$nedF8YqW^$y{-ZCymGl#R zzoBtk9BVVzTMuAGEJ+7JQpgbBcu2pS$GlsjYWf25UQk=*qu4q$!UMGiaJT0i|74dZ z??6M@$NK`Asc)NTeY-NK(WwIGMI3xw%GvZ|4lGH`uOe&(>1=sJw_vlf({#lWAvG z;W81HYiiLz4JM__D;FhlS7~G|x`|*ljI0(@^X##OjF{w_R-dKOO(QmmFl%9~4|etD z+T8*l({AoJ293O(D@aGF%iESQcmp>$ge`YL-Q3$m_J|6Sc&asI&BK+0{XBaNqcj3S z$N&NJ=-|9kts&&;tl7S$%6+?s);fb_jQ}&;;4oMNqrS}d%ZAfD2-Y)O#zU|OlAEQ7;E4iwSvPKgOrr0Y^5PoJ;U{$0!Hc5rh&ui;Y=jH)X3pE z7j2YC11ZU1s$k$Wk65%wb=J!Bh#io{RD<2cw^{F7JxCVF+BPLiRFjcOY1W+6 zr_-p1HZ{%gOkH&P7VCz6x>w_)phz`)Z3eK!8CfDnleQSx|#)U4YUE! z`IB4oP+vs@H)?x*36}09u!blNL5R|ze=!(qk#drv--ryU%H3Hl8M(-w?;SN*P>m@X zH6jf+1pz~Vio}GMXOH)*5Ymkiuo>ygys&MDlal$+!OaZhoEq4zlnRy6KiAkjYn8%V z_%K~ymS{CcM%EqB+(JFrM2r%$gXN}w?jb|mnyb`6Bsj>AQQub&WQz6R(MqEmX(($! zy#rM`BuVYQvryoVK-K-5G%71GymR6O-U7CibRz!2#NuWUbT_3t$cP_RBYe#GrN<-0 z&e(DM(}P5o4pRoc`Nq^Wr)KXlIfqghYYJF%+|>|tAMe!v9&|IOjY+_8qTF~qpA`E? z!V&|P5VT<@fS1X6*-O;Bh!4vx{?Nz#Xj;lFjj5P267TOLLlP(AojVe&YtyD=yss<1 zE>~D0yv#G6=XpPf|9gw4j%q8I$?v+3w=Ih z$*(uwv@aJ<$x9yb) z{GGl)1@5()hUw$!^aE)&-R7=8$TQxDh5PT{-Vzmp$M;iFYPP3i^z1&IxtDSurt_Lj zO)XZao7CUP@|pSJG`jGvq(ukv1v4C|QKDm!{r8eKq?}oaCr|{7oE}? z>B6VNt+Q=NB3!IalxwCasoc3rajS&aIV0Y?QYU6Am(v1r7%i+Lq^Q$6Z(#f$<3n1k z&nMsFYhed{61+2a9p$9H+MF5Zm!VyBIh17$x0V~Q zT!R*ANn(};gO{gCnh8Oy%#5;T0aauT01Xs5i_i7m0|07LcXbAvt* zNp3GgBd)A~<1%GfYp|>$sdk!$TS`HW1*IgJtk(SNTJ$vKiZmW#ibyHLIV;3uXVnJ{ ze0y6l4qo^HFgv`hJ?jPYIKobPf0=Pv1J*5pIkgP$m>JtOG>Q9paEIx1EnJ}us=+(FUDqbx?kxnhtLcqIX4Ri1e(KVIa?jqi%wp3iSnBgyibK+u zlyd?#sa{*j(zXaON+at3Bkj$aB)O3^!A}9$;qGzd!7f%;x3tWR$jZL#|NlihvenHZ znHk~kb^*|NP{n2Dk!1DqC6kd6;qGQIKvlm>FtqYDu=UQma`DL>FxELT()`iJn zVeET6jRUUhg6P8`js}kmy{j|iFeR0XlKUtkzrD~K4{#OIinTU8uZp+ za2+~p;6uP|+pvaE20j%yXLN`g6YakC?9>6sv~BqHc7-*B7bAP{(ff+AZX3ScZumA$ zn7pqjo|5bOvW<8>UoiHPDa<=H_|X~mM<^@wx$$_PCcMp)I9pdSI-gD_{Pg@R!SdDb zi8127toY^nj_bPO(`ke?RV-FzXjfM z)@K&l@;~$b{sayCQPaiyX;$mRpP4X*(Ay59>v3Ht%zj1RIaspQwNT(C4f-Cv2}owHb`hYfV!Ygp_G6gl_Duzg)ZWl0-?Tq~!AE21>_z3rs&h{%D{#uhUbqwl}(UEaqfgH>*nQS&ZR zEIWE_oSen^GBo;B=JI>x^~9Y!A|kE*A}7&r^eO8^`|*1##^onlF> zGlGU18InlTAoQD9P3Izj&KR7|P7z;OB5MeMFO=SH=s+>$ks7`4Th_^@hTZB^f+2KI z*K-!>2Ol$KPBf|pYzUqi>^T?iQKO}dA^2DsA~0Y=$)Po>Bfc-I7W;y@PFujxJJnNb z26k>_44Pw|vICbko|@lmfcvZr1!FUsDRkvc>A0rSUY0{VHPrXnE45mhb;-Jxg6i$6 zI>T7#Gn7rJ3RRGrygNB$jGEY3r|}ArWf-Nj>ExVTA3r_~XHYVg2`%k1#x@Ep={~KG zxJ?UYm1OjqAN+n>HFuM8lV~l$8qxi}-?V|Y^0|`B4u^DX!!LHeHuQIcjL1W!=Td2#7ch9YU-o z!P@*L)Hz*CyOsE)KGRRtG*FGyn7KJbNj1J>=kjyyL(n}K=xhqSuaSEe8BG)f_uO{~ z91){1BE04=FRPds38I{IXq1bQsHm*X8YZf!tH^95qBh1RMbX6y{j1GHQJK9oMH2%! zgkO~5qs^}&4*repNM(4%JBl>by0A!y#3cha6*M{5QGRFV94^CvOV?xb^Pkg%(gVYn zhwjz8!nih-d2lZC56yL`uw5Ic(u#?sQi{%6p+^$ozHL~%#}?yJ*GE8a3`Rw!Ccg=T zBY9s`Wb7pb#CbtyErzZaC+Hoj8bieUG~<`+4R^ocKR8vrjCFC&}!l zMooCkv-}7p%*w2Y`@G=4w2>8)HB4Aoq{O9`{A~XKw=^3x5 zGhA`_`vIAHN8G0$K&gB8s0Q&PY+=LuG9ku@u^Vvedtt_f4b!$Ea>USe7+oi(gnv3l zs4AZ8*Zt5f{LeSSjiFqngKc#N{LeSRk6!;#cH57fp?8{9YYax$;krzi{f0}Bp>SOv zX8BUvK_4$qlXOx!L2J_%xjL6_b1>6-C?0-@yr(m(rj{RvM2~-MlB?x9Dn_mMV?K`>WB=XyFO4rZ2{E-?vVGUo zj{8#0p`JR9Y_2m$)8RK>gds?T4hC1h;=0Tj`#~h0L4d;mE_DW_7%QJ3C1s{n9vqq# zAM<^Pa9{s+K?Dn$HCRD*JDK_mdWcMSHpakMHD}7My_MCqn$B!%khqJd4%5`*`nG}< z1tyL70F|s>+ZoLume=cgX|$!`7P_0!Vlzb>+0Nko+l*z2SneAb#muHKpExg&Y3=Ul{pVe6dvSK*pdV~A>s`^Q3;5US$QNVrzNfI+-Y@tMV&Y&9%hTi3C zyZL~AaJWw^-o7t~NmR~a+y_r<#$n`k8YS1wVHgZfCkNvUrX}F}w+YJDQc_=XQWr|kF|s^U(NtCuD2EM*H!7csv#!i=$)FPk*9CO8BvN+@@QFg z*j;DQ_XaO7Cv4k>>vd5|sMGi;p_h!Ed_HSP&?FxlBDQn@lcsA{8^nZ0Icssb^e_ZmuWN3uMb|FKV`2@Y&#f}YyeTG| zf98mxcUXhR^}gWir?aph0Q~1aZm@QfLq-QpF~^Hhr3puav?N0v((JbA8U0{E2s(I> z!9r>b)(}e$u_;U3b8)S9j?|Pu(8g@c5E=d8)D%vmy^MinBXK;6G?Nj>V`M})=G}bT zJf1G2Xie8m?vpWjpXn0Q#Fl8Uq!&*##F+Du%RPjmhC;1P_t4-xSoFOWhw$JPy(~>6 zs{HJz?`4C~l?81UO7b*qm^aa?biEZMnV>Gs>gsI`mM!M}!8n_Z1A9xEX%b>k!H+O8 zhTdR+427W1)!^C@SDs^LS?5A0jydDqDvG{(52yOSvc@YTwaD1QCeJBJWI*&0ULBpS zWjJHth_EgJ^R`I?+*vpyOpsG=bvPmoYt0v99aMDABE}8#D%p;mwUR}xLnQ*K`Cvib zjd5^b+%*<1xmTwsw4v*=sm8o|tm)HA$uc$&s;_GQ^qwx>BeJ;bKWYM#)_rsi zUruNA&SKs?*5EVi;Zq)`?A0q!q@W!m%i5_qpbZ$j=0Vkyqr$*y++V- zYs~*YmuW7;@hNPu(PWqX6gBuhFZjO9h{X78T&7$55b?e)h+upQrz(--F)+y=y#YQ< zsXl1rXyz|2!i5 z!{1yDg18JmkB;nr@*e(?CIB5l;=Y(_U30DN-#Ka55kC6$!FA|ehiO|dZv&ilIZ@!~ zob~A5eIN}$iHEDKOdACL&tzXy(qD5 zfB%HINnv1&6nD$CH7=CQ8ch@ff*0+T_aP%Iq63aOUPblRFrCHg*E7z~eKsgER%x@k z;TxN1aH(N{#$1>Z&7>%gL<%WIZH?##ho64F;QGD@>dKsdzcER(Dur@4*zDYTI`@KZ zlLeWQXDV{zh~@40( z>$D;n+f362LqfqEdWUTbfX0Yq-7Fui&H*59GEC@tgY&t=aFPbG?>lrI;ePiR1`CGV zqiw5P<90_2KXRqVmal!+8(fASm*)<{(7`#0cp;^~Z>u1PbzvCy3=VLk`bisU%2XXs z9nO~y=ToPJdc?8>T(2AEbwi9rGg5RQq&h$@d$MjgF;-_^&Os)8`ZVIFFBkmRKd!h< zB_1PDZuW|sMK7V|UhYinE4>8(Je@oAoxy$bT14*L1}o;oeuC&Uf+|_w2c?)kogBV= zKI8o^l;A~a(UwdekaV5J6s9USPxFxz0;!GGecCWB^1i;joNzh!nAZ*WdBb(uq!?D} zx-%y49Z&>2Dn+JtKQ3lcgv;1r^#Sj827Ndo~Q!aR$#pd%|ysG7!g&cJoO=;PCpHj>9I>(_z-{PsS<8fj`fb<|BruX7Sp zmSh#@u~*uW(2sp&Y}sjFW6(^ScfM?1bC;!=9tSbP^P0^&C|c0Q3>ELh(GT!s!?2v~f;v;{1y2a&@7#%=Z471L;buuacYY~?4(uqE!?aq2>pX(xD1 zj?AfsF^TF-jVW@@PfRQsdQ7RLnig17w{zq~rT4CjklOu|fX+F*oKNr};J4cycSXBC zWPZ}o`1$ZXKQtryC~}7PW$Uq1rj&3{Non-{5`ZlRtU;Iosjz(H-kM%-3lVGZ=$*yq z%Nf>KHEE1^yWjDBny|(IXAI7Lhu6~?edivUkZmzw^&T97^Vs8gJmEA9YN92&f2Rm_ zedZ=Zx7BZ0{FePqjFs;dDz|M5Y?itwM0x)aj3?LQ)9H-MIOd`35q;t8kZvFV1Lcqv z&iYCIXL>t6YO!etVKK|+`##^{IpVqN@iGqTTT-`jl&?u!mT;4HKo4oqJFRVl3eyJ= zHZ|8}2_94M@G)c-M^p;@6gGUSY4rcCXsR6&*JziiwmJW&n%7o2&8VG&e~32!8BOqE zjzv3TfIsm*wO?@7;i(((tKV>2XY|gYw_P=)H&ryx!BRQ1hZs1lv8;I|vvZZEJTR>5 zH)d`aDUG>UrVlG1L@lF*Dx^K3iNpsp>1NHvy+Amnid5OdhwF>h$h2MVaW^Coji|wq zzJ1I)J}$}Rf6+!)oBWpAq4ho&xxO~LB%L(Ks|KMd*S>BLNWF-n>VCzPDxk9#uj2`L zqik}P;sqza=30^v%X_9W=uMG;oJ@%8*xP)68P>SGd%1buvgOCRN|W1lMs#_Bo4A}@ z7;uT(NGJ^H-!rvQ53PRaq)>Aj9byfZdCT2+a%PUqVBgxNbIx8(aJ&5b?Ok*y!|3q* z>4Z;T&w{F1gMP5Mz0dl3sj)V>*^mrX`E&6bf+CPyZA?Be*6W&0l1`T%myAG5!zPmq zZJ^b_CWex!#az&5C`UbPQmh#xipNcJRsZ9EeO6;Cz;6M=;3Si9iSXWwh~B6k&k~+r zPC`kyR!nky#JYMlBZ?SCCr-}E$~6`^LUhoO0m9SsfX)dz-j5PA z9=sT(c^?p&&|8a_*E6iMnC@G4M$X~adhKEiN<(bTF;3?WUp}93x%6@^HlMXw&KNvB zjfhO3H$iNJYFLwb5TH|ZA9F)2n+&1rNm&L4)&b+t;d1FQ4i1|Sczr#=`-pi7Ir=AM z7AN{3sW2})d{Vm!=4qd?xLh2bpHJvI;l*!WU7lI)M+mWGzbXBe4pgJ6IMkxA?<}4! zqZCC3czqsln>KylyB}0jpz>b1CF@Yk-#88yUq7Gm`SpZp-tgPEJAQkcvFebAsHSf2 zqzeF+tsMZ=8NlbE!|>YU`}>4%Z!@mbig{6!nA#$e#E8eCR^VMgwH~xVvYYzMGoCLee7{Zj?d^`+v|;f#KB4P6 zK=W#E(~9dP%!qZ9xTJZL-=7R2x@3B%nhB0F*Spin%GV{7&^AYE< z!)@O3=UaWq$n6?J&i-bO*?l}s!>t;Bg;dn$h6UJ^(IQULiS}L0urkVMwBfB?oa=&6 z2d2lk$5MQS3foN1;fCljP{oC%VX)WRaxpjAA!JD_-xy6XHR!@#T|}w{{``EAdvm?v zzO4ukkYMcDkB^l~yQY@>=!=ly3R02Q z40Y>4qaX*pnx)M?VvPa6PZQP<@K@(>83!HsFa~S!bQ%#tPM44Sdf392)#lHZbpb$h+70fTW%%w3Z}-ZSvyAeqU#p z!JsoP4{fp!08;}hr#RIly(5+0HRTQo+L;U}_d4&xA|{{?C*ww?o8nYWwWm_+Qov>7 z{HaV=}r50Kt|Rnr#z(ja3&_ zhQxbJ_pRMzDsw7h3fzFx8=T9eWYrxo9ygVCN=St?WPO8Et5hdFevI$nuEXb&C!T0-? zqm-VWN5m*!mz-RoR7nhq*o~(gV{2_TB})r)(}I*WYjqf0HZ6L38S&}$EbBVmH>6zQ zm|dm~6+HN1rg!j z|Mdl@lNfwV^QtCZqT7{>U)H=|9X+WgI}K+Nn%!wE)wk~xy58caFHiWA;(A!(qL^f0 z00a0$3hs!Jr!!uj&N9?;7N4Kb z`03NLnC>uRUA>y8iHq^uZN~5KGj7W!F8Wn%k(#FS(7_su+q{ApxSR(VL-^OPFAYN{ zRGQ-u8SnQ6)4JvS;%QZPd1LVN=O>JV%UQ=6A@c#Z`-=OrVqOEL&0|_Ntol0=tAcB4 zC;>0$0Y86v#`o(4Yb|Kb^38kNdLW+igbF zJ#XF^K8mw-D#+5Hu+5?6T#PwGRdIb(`C=D~k&3B2%+K2GiXPqQ2C4P8F~t~*lwuc| zw7`m)md12+)lCgG=YbvJ)DNI1Ekdu1dGonBp$7;r@3g>=Jg|0dQad=}k*>I91@VsP znLdY{v&g;zt?5dewo5Dnkil6z4+G9h`~CHH#rwQs@d4l!^S0p(RS%Z_@y1S~vW9eaH8CmLv%4020Z`Z_^#~wtCd;8N} z7vaOmrpUk+J-*L(Y$4*Q@9;W|m78`c#$}k{br`T=4Ia)IT!sNJ<5^S^D!rMOR#bN%LLR<%)}T{eaLtHX z{VF;0WJ+z5n{<&DHICxc`ZUxH6j4ow|F~=23l5Ii$Tjl|J81>AhEB(%o*h$`+JQG$ z#!0*XOh)`94(QU4nEi(9I-|Ez6Qx0F_FJGw!+sjFDCX4vp}QnHUfGxDFdwf;d&z5q#U5Ik)kGiz&dz% zJ#$4)b{06Hj#MLPszuDicsEl%2y5yq zvlK7GC`L5X-D6q2X8Wcv?nI}h2O0+Xi|eRmsT>#@G1JjtihF7*Ryfp_o@gidN*7qx zSsn`le*N{HO|x#d4V`A1-ar7B3T-ThRld;>4eaIxVG1D%LQO^YY?Arc8o>8Wn=jQm zExr=HGZNq?we$OPMRWE~GH_Xlc3WwNsvAJ&%?95V97+TBC+FoIm4f?DL=@ z#ZRRSWNF|D)&k>bTY~|00%sU>Dff(#<59qX>zryB%VcpJ`+_=9ZPh~P+_4UFPS$kF zq_+CN5~L7GXg>#W`F(zJFot2sitygLta+_1Oz_LYb+X7=P=GDW-i19Rl3~;%e@(?aY87fTk znukOoDB(t@;>jdyUd6C$B!j4WYexpgSd62?Fcb~Y=a(n^`_F>9uA4N*n>N}|W4WOd zgz9qY@(}5A>aqHe-Iryr)@)DJn*YaNzhtifr(*L>HI8Ze-gOF2wjfOkvl!eJnkH8i-HMur((sn&T2T#kF3o6S zD)1udP!Snr&!}`P=U*yvB1fD$Y2fZUtQh(ck9=7Quv#+6$G*eorza2*zTYR@*A1)g z%X|9YBjlR*z0e;-raa1Dp@vHP$a{wiJ$1*z3jgxNkz$U0K%aZQJ1ERR=NBn0+~4F!VhLgn3=@kJ~%m*Hs*;`vKNU#`gQV z;Me;t)3t}L`(w25A&OtVkeb3V!RUGOvvIt-V6QgMp*Q#6W5K!tjIcPsu@D*bPn^m5NrI2j85c_RImX%!oM? zM%Urek9b?|xNQrZb?B`tH0THF38}&4y>5QP>^Jy|1{_(uEEezKtmw-Ho1jAy7Ire$ z>^i_@kB*J`uF-)U#vuCe zM9Fo@=tx$mDlMoW5!ASoZL8NfnxJ~(l+j9Hvy+kJNf>1pv}NXlk3xL_v{N?L&-kd{}CUV<6?z6aNe|f!Blk}ovNi^K+eNj{~ zVp|zgjE(j>4G~U5htp}mQ{Ulq>J{-W+VdC%9nB5AUhi!SAS3s|Dn+uGqLmC-XC=Gy zJPt(?!V)QDl(GudxJuJ4xBW7XAj7%%NLinoN-TbTy9--FqpFM%pMq20VeB11z&XdE z5c;me<`=x*W&{rSew{J)4wv(Q)6nDf=_I+%&T8CMtEcnoW<75kc#YyNZ`3P7Gllz3 z;+{f?`1JCmu}pv=&Nveto;;y&(-sq84p|f#0vQG?P(sQG?Q(vk_Xph6dMp z#d%yI2H*1BUPeKS2G{A(*JQ0Pt3J?gDN0NZjLipOWmqFQ$}9uN)q7NonxP^UH^+SC17q@XUVxN?3?O)xz`f70)ltWd(a>+tn_ z!Rz^q^Vn;iq{Y|gXN-N1ErTeFwByAw1dLsepPrsT1Prd% z3~kv5X20R?H>`e>%wz%H%6oYOC&Twn|`-uqUxSDZ5!^}hTd5Gq}M}? zH$A%h4S&DB<9%81x~=G(6Z6AAYnZgV2&pOiHjCr$v~5^oz}aQ=2!eaO?Vzp(%gXHW5D<6j_>mXfbcqu=$(ZR(lCEpW(1BHY=F$k1?$0kikGZY#DB;LIl(Ug$G>TNnIe zxnuMWli#HAj2>$UAR=7X8Gnh4*YjC);gK!u%jWTq+dJ-l#p`f_GX~SPVGaU%on4RD z@hs@Mkz|7J^BwQYEG)V66VCmR8yJoe_ia%JZPvzq5Jd5Vd5P5lz!n6(@2rKPQJ99{ zwt1=bxA-<7p@??v5>9PWLOFlr2Saw9PE!>^NOis`=`}>a8Uq3Y zla~QoGSF(h=0X)$Man}cjD#YzYoi6387`e{2`x$#twJ@bA$u;7f0bKfZX%L9rHP>0 z$gFar1tooCXgRgU&YGp zRw85gaRYqN?4^uHYUvUWs|2Oc^?Wckf7D1P)Q+fxf-|vF0??SDG((G6#d72au%HY5 zV9Qj8TkRAnB9Uo%6+)Ssij*;21m=}IY&P26BT}BhNaF&s6ggxl@0Ja!<2y3(z)eM41Ln)ds~( z8G)~9dIfbaD0;a*#mI+hd;7?{=^#~R2n=Pq=iJ<+@lDIUG}x^fLRw!w#NyJ7GF^mf z*-=eb+pOs7cX`fvlj%C82LJcBNzqOV=ZqGD#qi*N|K~S3nrv!5On!z^MruNYyhcFz zM01Xu>2l|>!{sz!=v>Z5CnAIp^7K15wubTqbXhh;H3{TuuQY1b#fro_MLDgyS|_GV za%l#Vw1J8qR4LW$W!9WNpD_mGAV2r%MJSZcQjWR0&kL@%3BSGH^Lml2WyWdfalOyD z&1=5K^X741H}sw4BtM-79Y_eO9M#>@0NPw~!6aiIS-yJ$)pf?Z;jFQKk**38<=<)%Z_wX5Ap^R##7>8tt z6d|4k%vF4vI+~~F=-X}1J6US_OYZff9*!QGqZnf_7%^TNyB?>$$J;#Px-5zuRl_N6 zd`x~EjZ}+-(}TUIXexq2yQY!%_Ox8$p_=Mi*(^r2zUQvPr_&j)movtp%jP&nwTQjz zM22Fjfd@X&D*woshm>+zS@S7EcQ zlI8pRJmGm5@bl9%PJLgoa*TR)2%R`a#?Z-YN?j!kks&vgGQ0sF$h1F3fpgAvxdt0Y zye$i^>k6-Q)y^99&f%!!Elh@U*W;(l6FMhIy#--?4_KqevTZ`q*6V7?;L~`*$#r-d zM>uN{LO?%R{QY(n7R0vT-1ibi89Z+53LhDth5`R_dB*5E_!#hQz5~nh_y#N3!yNI{ zpD{X#T>E{xd3f@bE|qo{f$Gpm#l5k0zs?lL~C-S!biq?x@@2jHdxaP~e_%wF-rB&im;lmnOL$57ip%xI+-R zO5n)udA$%pzx-qsM(+a2Zae0Vb*<2sx+!nAV23 zKxIv?ldKn)8ckFd<;GM~3qA%JQ>85^0OqdY;7VV>g1izJ2VBn1nESa!iR%FatVL`S z{;fB`a20P|H4y6>s{>B?`N<@~kgkn33#{mzxk3EsphKtKG$GlKA00X$jgJY)raiRJ zPb9Q@>r6u^F1Dly(@{Q9T6U`xSovAgTk~mapXlB!fxa_lTshrxH6NQ!Co#l%djSaO>Sb*+}nTe!fTqD9e(my+ftdlqVOwp1~$&X#lkbij6KJ zs*Z&#M7>b-kLEgc=(|w^n%Wtf_Zpmi=As_FVnmZw6Iq+Ne?AVeO^TMMqCfqdKBWAvLF6OH7$tJ*9wn$xZ59vonT9NhCN)Y8Dx)F(43YpA&<*)T(2 z#5!?v46muSn zu9ICVp-hQ({_Q#;1VLnci1>6Fa9=iTA>w^nlxBI$d**3y*?k?LeEp(Q#5!xUnUusz z2}Ro(qZ%ZmrfA6d%E`DYJ#VqvR!rq0on`)qkRcYvvV{S&%ns7#p7>CYb9J;KXTD@-> zHfu&>tt{d&DCf+o$=8bkyC^7Qm^*R~h(Rzp8)Elz6wH1<87mIdGM6W*2u zYX}c>b$M@y_0VaBJ~sT>MT_Qq@MiRUbO}t?*Qn9e*mZaw2SKC8QHE7y8m~R^m#{$2 zo8{w_n*XHBZDVLkJ118Zm*mPtJQ-Te+luegg!{4xjkj`Foqa%P>Jr(1M_VFPIxA>u zM+WC%z^NOsWB--m3mA95;g{<>zD@UB+N@EG?rc4n+*Lad$MFv-(DKEO3|{&Hy|b9M z4ews|jx7Yljx#%`R&F~(ICUNRu0v-XLNtm*8f?m}k$WNoi_e#*%;xLV?cRWJ>IOKv zVO1Z5q~6~`z{U}d3|@y5UdEHW4o7&7_%_d2R6asGBQ-dPk3L2wmd|K)qA`zGv*NR+7I~oBEyWxjPLV=zu(^R zeO>XgEI4%oItxL6=R4ll6{BdzQkm${hA#X_PZg_M*L6k}`)paU>dfhUPM!wI2n zw=1X=%V=G|%CI$gW96#(ec-3Q1DlwPQiQoRjjL*7Q-hZ^Bd5tz=3|83zK^8Jr5Oxo z07n+Rao9LwRD^yYizRy8)){{#Q@wX?5bXB6t51(zEMN8c9jD4Makj5?6z#;y)fuNwL`0;zK2rHVFY>V{J8 zqac8lK>!y`K#iEAe!dtP9V6A{Hl;!(h7R!qdq{PV%N=a(7+EcZ+0($80LQzD>k-Ldo%D0Xf6S9z zLs>S!RdhwlU31iBiZdmBxDKKcQ-V!$M?Xy?&dF+^&iMwYWgZlWgAoyZXr#77I8tdnh@ znL1XiZhO)YEANFnKMB+lkc#`0*hT3x=0QSm(9-tM_Heshi6W{!b}Hrwa#(utc5#`82S!F*I~Hb@%uDk@sb%_8?_PP zm3W%Z498sB{<(6A^kNLxoG%<1+TR3?~d-W$gA~08M-9bUR-CxY7F| z5`1J8F^m3u@e+g9yADo=F5hl<{Nr|oH3m<8pY^Ju`=7DJaOlA^Kyd`dKNxhBic@0A zVj1@8GyBwa=&eI%EI_6hBpnRN_=8zW8->zai!bLhp2iW^dB*zw9c%P>pC&OPtITPT znnoto1{aFBZHDH>lr8NKi(fHsKI?ZG(iqMmlrw^pd@e<-Ao~+YGbY++dvJknopFVt z?lj6u(A&;9EOC`#U1Y$PZiHaa8-sJ-XV+_E3|{&Xvktrxn`89>Yn1BcxgYQ}i1RmV z&GNQP__i*X!v@b07FHtNf-qWMhXJ3)3&y@zwvEMo+wk4bnAR132r_J|*hhnP_&lC* z>Bl@w*^sG7L)EJ_NM62O>?>raQ&gATlUX zi?bev@`UnY+K74GYTh0@kifK-nh|o+SOrl^W(}6T8uJeN` z6s}E_D9(9_!o`K3A;odv9A#9pG`LLZw7^Q5(k5fOLg-TAmKx2vbPx^gM-MO^sl^A| z{9<6zhG^^c%R0#_svy&EOU%OqDOq`)Z|VlS9t;1KgvjvG6e)GSzAJzG^HZuBq7{W)?=Gok8vWhxCdaWzn=K0{pq z^9~s26oqqOe=rb=NnETNn7rbf_f;s!WXeNVDA}!*KSRusfZU%}jTAJ;&B9R3n$28X z_$bIP)uIw{0=R6(leC`scbf+TCrqg6xDsS)Vd#8B<|djtYTapMV02x{qO2y=X=s@T5S5WiGa)BIrn7+~%VD2hBOz4{DqH=YY4znS ztfW811V)ha#O;YJly!d4tsUA*!f`m+G?@myC76>K_>H~8v~IYs8zwKV+#&nCJ|-8I zjdN#g(KOyv>Gf)Rnlc1tVkvBm5lXGK=(I>b4+BnpFU^fI4vquQ)|YF?>H2{|7k(He zW3v-!aSD!Fr27!?{eH*WJW12>e1SCsmayS{nX!b3pT-eCJwIb`9ROhQV%T=uww=i` z|2a+W4pvV^`^k3r`T1FN#L0govPvhEqD=d{$A@S3;p=lXuqOj&9R}BfM#5#D@NJp# zw#@jnT?9dVC?lrFo?_IRht1oHU*6yGwu;u*RC(CabVN0bsx^mgI2P^5rE~yvT6(NO z`)|_F?p6=i@kzpL5%z(6J;gvJFObo7iXN62td>k#!j9W5O59ydTVj>P*bs}!*heDZp7#&On$>{TX7ji z5D2$*!Q?$gV{sWqbjDU}V?I3Mpwb8#7>usN%Xr4`(-rUY1Ovj;aMJZrA*YcMLcknW ztntylCR){v17^R%hafdUHE%12%VYgMN2xEOGA&JYjzv`Y34H^LG#CUtvaaTXV7s?He`r4GstQL%NsZ&)}- zO=5QCZm>hfL%)}VO$iuNa_>_wR_cU;RA2g0SdU4=%i^!{+kC^O`t_1ZSaC4)^&Qo9 zCAVHckaI1Wbh!rY$?lZt9>wOvaXsltM+vtY!rGvSnGbRIs0*M};5CLdl6T7odZuo9 zYznnAPdb$*sm=T{2Y4GX&mMk@Iod`Va?b8;RM|=vq*o^P$tEAPM>>l8ZOKL6^?g)| z|5mKcj|a~?tLeO?A7r$N!=Y>d^?<>MP$s*a)u?z)m!K;AyKYQrubW_MaYZVY@L68) z0o5&r3WlNBxM?$qQPQ45$JJ#>E`=>Qu8s;oV}4d#K}}=bO||h0@3b9t^S?7_;riZI zCQ3xL2BZE=IwXqXiD@+wEY*NX-^q!i$&UwtV!l9P5L5vDiVBO&jHqWcr5G<%7d|Gn zYf)LDmNhU>_1~*pKGQzIb>rREFr||YwcP}ngG?dk73b-B$>w7aoO9W|I=PIdX3`o{ zOt?^J>;{yj81>))RkJEZh9J3h<6P%cCIr`-)?9)b)I&P+IJS?6u^U<@&$S7+&U3pi=y*L~TP zCdXLAhQ5>dx18Gypi>&JB}occ6>&+=j%VJWhzi}%Dy~rc62sCvhu86h z_ie@GH@q(sPF)9E`5Hj?Kw|y_jyYvF=ig@0#r}MG#`8F+!5QPWuK4@yO;Pl{e)0pT zyoo9Mm~MYS)+^Abc!zL1PpUG7Mdv(-(>4P(84IB3>J#|Gz`>03Fr;U$P|5IV$AQ}^hdmf>Norl}$< zl=ToIew(j&Tg1!bX*lUw8Z!tZ4$z^*5AHk#l7W@Pe8rOUni+s-veFq3mIBx7!Q`5Y znNeNh>bg=Mgd%%WsGzAT{u^}!A9%DSF6aZ+i`0sg86_f5EdnZT_SBuvN@Q_|uRs9W zvEn!*$Tf(Ww9GrwF!SN*hz*Urs*NfZEHtXG$U#`&xq(#)S0ssPbqx4e>g?y?q-jL4 zs_O`MzrtkMU_I@?2Zju&7`e1#)yU7gdfgz_H)r4VbCWri=d{%HA`i@Y(9#LHxYpKa zT1_)EmU0L-SKpU7`5_>i3`vh=GJO|B7*9O_$=<9HT~4{QX!EHWR4>gGGUq?hbn64X zYE+3D1Euoo+9sB3x*jLd7gZY~wJ0NM_81p!LmnWMhJ$w~D?cRp%c74EhvGEN;^V2? z=E5=M%>WfD+Gfq6ZBpq$CR_EETLib7Qt1?p*tE`V&BjUvEn_Jfqp7kbxghT~rIpof z?w}VSKIW10BZQk;_qjBIO2}Z96WZvxA;_9Ba_w2^sTEM&Tz1yMhOG)P+R+eVQRzAxl+BOeDKBrx&A;=H5VmL zpwNobG%;y{)AbQOZV`*_2fkDn<5_2!TnM?+9HwEe$rLOwvU!V0(OS)ZRKq4x_w|$# zE?b0^1=#3(+6OF4KPm*XehjVB1&&P(HM;BMP+ZVzJ!D9lUc(Y`K%pGB&Kj(K!`OF- zAz)qt`cBXjA0s{wqdHp))5EHk)#@N4JwHXa+`?^C+~BhQyncoaLmRi!{1O@1Dsm#G zp_%fL}$PUz*% zVst&O>xTDb0r49KCnic>U54X9>%4d6syEP z3XG-TutZMYnfPLk~Jh8%4n(7Zl-upvmIk=Yj8d+dpJ-VHRgV-alUSGN zhNO*WavDbU0g0)Z3YY`pTSba98;Hj*e9jptiwpkt@pD z$t1dO4szZjq^JV7+rpF|Y~RsKp=NgR8GE{G)}%&iSoE!P{gEb3d*`s746Io{yt@yP z5cg`W-5Mc6t3lvhuWzZ)xq+Pd7&X7`kU7=dUe5QDD;M*6;E)G0%)1SK2YOJk$&b~+ z9P7jlQ|ad!4ZWQ4Kts}?yqp_=(j!!`M}}o6qv5SVLpvc)=x{q+;oZc8i!LS&!gB9o z^!*o2GxA2*&SdI>G#Qz-Q&7&$e)G9&)PZYuK&96wK1hK0K!~HZ$xPk=q*`UASc4KB zo?DmqeCc$kmWFH)CJHypYnKfhi)ekHGfuTF&3>X!#n!(r+CudZ)sM8$!euRl$T$s7 zBb5XV{x+}KDLU)@fiyZ}e zcRbh1V{YxKKklL{g!;}&~^BHJ|S|z zZQby;EO6V3-gY>59nP-9;(b+cmvyp7&h=6 z@HS7GhVDba+cIH|p;_dHATd#7Fh!4V(~QA(7`h%Idc4h(n7e_S3&{tHJpFjNF;(@; zeylMU&0DyiVX8QDd}7FgfzBG*$ZSam-rkT5sJmspHEYVI+uE(kCRl7@7fmR0CM33bKq~}*>J3NnPFc@#^jNk9?c#db$ zSzCt?8Pm3kG@z-hbA_AV`5IapbR&z~yPnn>~;E-gxPve&)Vom_IeBvYfc zZJbZtN@NPk2Zu-9sByz_=T_uaPv>?yXPm6osZ5?S7`Qvc7@BW=u*lyPy8DW$rbg4= zl{>ZwHCM%|&f0iaaWy5sX_ZH4G|yC!Hc-_F*Ny5?ynLWDav8QHgS13<;!1*(l*fkBlrA&x>q^)wxc*k(vMJ|D!H%1?JFip%SPhec~<9Ww?oOs zpnS&)kOIe4Qiu8-G$zdSpnT+`)GQlyajOf?j2ktHqz5aV>me5Jo}WDoQZo(r&Z9r( zuIf^&O~hzdD17`3B_9F{fNj$5@qyXXIfu;$b%al5VO3_azPdFgXJs3W5-}BWUi={b zBsKT(Bi|OryL0ow3H9S9n1lxXd^(};9F|Sc@MKIlIESI@(B&8)p(Q_`PO#QuS{E_; z1jL=Z>#&7@P7(0V+D5RL^rfe+$EPvktR_o!jZ>Ftz3cGx=?T5H_&!hKTC9%9m+^$> zVZ`$|YD5yM*g*O-T$c&I->=w)5l_QOjT{3KCxV)TlA3xm#3(U_F`!eH88ztBo~3wvSE*@Y9i9ln zNe4-1`iN1JE~DQStzFyt^?;C-d?z%WpM7h_lQ?lfpAMo0#OE$V4%ADG%AbvF#= z>U@cb!IbiV`4KY3`E=a-LN)c?18NS@2Pc1uz)gP=XNJVdbgK6keupCi4{?^4-Y+)D ze2j_ZSm;}+@u!MLU3=vKPy{&j9i}y1;)=n?2f8LV*?XjEof<<3KB7_> zH%_3j%IakL*rB#Yhubr)Xzqx2@FAmV0P-^ucN8hwKO(%N61P;?V!l|@78%6FmLDJ1 zQ6;{El9sasFSkyc`(~{{T}%5CD;i*n=$4A^=u6USne+8kVMKC07L>BMD7Ve;?&RRM zXv?}rDzrwbjY7Hd17)rnqzdV)Vr8m;q0&Gqf|sIGB3IOR!`Y3v-eC?+)T4Dn#j%bQ zQALH)*AuXIl3vrAsI}cb5}*|=s>=6TgSH>G#Hv}Nwk_PJ6J^x4+Kib$Di-PR&Wcfi z(p!nLBVxV|)sU%tt<}ZX$ktvK_}BrqZIsI;Z1w5P{8%sdFyQl80X$^H9h%x$HNov( zP`?Zx+~KJ?h-ly69tG9dGc(&E7#-eU?N(1&izJ!FJ}8pAdfZo!r?JN`-)c>2pY80~- z(@4S-Z7!RifhtGy>iyBqj3iSzP0`5m5k=%`^K8wmDwJZkUSrxb9~43RDZAOx8cS3V z<%l}wHkpC{q;|8t)P;EhI#Qs25N=yBW~f1Q(|?z7taR7ZoY7^!<;oC^9_&N=a~B6T z%AfhLw3}`IxaHlWMvr@9(nil(gHzu(x^=2)lNCFwvkuRr#bp?(Y))w)BQq}Js5#q& zc0?i+>d#M4csZY8Nq$!u&a`jP7{b_faK_?k9N}YtCPBhEX|SEKyXcV0Yz^3zibrjf zA;P&I@Ykmo5aji!GQTP6mTd!-$`s zUNP7^?p~<%##%geJqFid^#NN9a^~wt=&Zw+^AngEzb_N+e!~_cp1K}S{eanv!*bKe z<*QCdYkA;9Lr<>G(m$Hh5D1;?@M%0@4l8bc!{2Z37>xx3^7%O8Q$OOlAN4*-L;pIA zxcLQd>kNQ#T6)P2-WE*3yr`cuQV;xR7RkVqU}Mj2w5%v$97@$x3aY2&HC}v4jn`by4;~myzHA zZ$Oa0oqnbI`NCUBaxJ#?lvJq4RMTitBrs9AM_g&hc&`(#_ZJQ=W-Jk1W5zD#DIC*;H=9m+GIiogyH~iC=UZ-^Cy}=!30+(tvFB@s9q2iMY3^l zMzNyK0&Y?e}jEKPWcp_#={1>DWB%O^d1k?fn9- zoH&^bsN&KR?NE3s&1p?bZRqc57!s@SX)4Vu>-&!To}tP8-0h}ZD&OK|RU`RT9%-ek z;U<%;=G}7H0GP4&AlCp@P*&x`A$1bB>sIg5m`yfmD&@wZ( z=8B9Do?YZM$j3^)&}hN!%TwLx)Uyjd`uotH_CybJ)LSank(7x?8Z>SP2@MKat>D}M z>h(B}4lkDx^CEFa*J;7L1<9$k7GTEe8PBIaH-4Qpn0?HKbh78lels|62Id{T+~lf+ z(1g4_^EUt{M_D|G7exe#rO0!I>I=gdFX+jASmh z%Lhes-c{KAhcCm&b@L;H_K!M#I?i0M6GHr;ZvSCJLqszC`G^TpeN;~7ogp?KXz#qUne>YFOkUT6!xEC(xh1mhR(Ovn7a5qyP?4_!v9+6p1 zwg^yN)s^vZH#bw&?}ew+sW@&|HbFB&J1+}zby+TETg7zg)A<201pMmp342ZjosY#e z{JbnkIpgVc?q+J|CE~YFpRwnJPv=ubm$}lBOP=t zF_8kkeS89l@Z;+-7=eJw4&+e6CSZMJn*^<0oV=et3Ps^S+XM9>u_<6e`5b$X|<1wB^#FD5(ShLy2 zfQRNm7DjyBX<19Q^RnROdcl|N4VTM~mm0lB&~=&}f@NlW*{;a=8P~Mq`=`%%s-6}~ zuVh`t#6GpeAWS#W-TsF}Co8YCJSv|~g)YEdsq+?LmI~H&F4$=wMGwTH1}0OVK)4h^ zx;#@eu&RtfvI3tlerv5bq<2r$)1$3P}#)ktW6 z{qPz8`1Ylny9FX_IpfRQYcWl0gJ7C7qB)D0s{u5R*iKOIHODSJ2aU4E4)g{@6rOR7V|v6xquCyMVvWw( zjANeY3l@Q9AI;!Aj(5^w(Q`iH_}APEI2IaJxz2Qf9|&eTs~dDlMI$!c{T7X*3=>9n zB{I5>lN_38hPLNnkm|aZ~qcrpG$uQ}4 z0zp=YEel$SZj^OoO*3k0o>sEyVLiJU+%kg!&b%6Z=&(Gc}Y!;w2^kYl$oAOf} z5SU1S+dL%w*Oy9>2R!jwb{oc`Rz8eW5;a5G8)XiYw zh#tW2M4WIaBVdz0F#jd5Idl+VGIV>s_ZggwVg=*RGAf=k1u;2`IgP$-gvsUgI4q1l zG!pS~W@I6ME>J)~a9^)A!S>IW7;B@?2Z(yqXBVMUM`D{ToytNmE> zayvSYLh)^sb*j4R({jRJeTpN>tTx7A#%Wpb+i!ja=3JVl5Np&~z;8Z%gYWWFY2@Pa zF8cUsS@8YiCp@i1`<<(PzBr$sitBz1qWPfGU_X6>r{z>Kf@>V&8Uh}c6P`|IoR(O% zmB1-ReE;xRV#C%4F_dCNDjCFqASm^kPPv8!rx@#*!T9EM#%YaH&>F)*G~Tg)G&*#k z1?jsDJCn*d+|2t zCX&LOM0y%ol$V?DhJk=GjYi$FG9g$?)7Hr|vh8IDkCdEP4d7B8s8DA=jG=?GXOOqg zhI+OJ@jgjb zd4>b6!C)b%HdWGW%WbAQOQ_S$bs03ok+V03q*H9gak>f(|tof=!T{~2+Fl_ z&K0|0*8r2wHiO7cX63wW>T;1EDl@xP9%dMtX05*;&BrADRhi0~(E#%~eQFOMRLtfO zHJ$>}d46h28LqB2*jNvqkzqX$mdG{r4bvTfv6c_?mX?Fc@AhzRV%F~3qC3}7bMs{M z792G>m{;q8R86TKPYYfy8&YDNmVn=X_lW1WD}H=_!*wq%z5&3)DdOd_4f=Cp#F!Dn zGHANFm~JdfK;A3ECeS#{OgurO-wPhEQ%ti#wKa2r4I`mFI{0%ef1*HFIq^I5_NW7Qp)ey}h?QmRb+4)>J zrl#9{iaz++dT}y;!LLwX-yK36A^TIb9_w1sqf^ErQegx(UqF`iY^Sv(_}A z8Sgy^sRfB9=kau!`Sy1fBOzdoge5-U=_IyCGDcQ%;1CN7U|k|UXBJI8s)j!FTDu_R zEB@-!H#IjrAcoj$iZ!maasPxR1f0U+Xy$VV!ye;;&!= zV9r=$(K!>5!_Tl@H~M_t8F<}xe7U~iQ$_Xr_l4J(OJ9N!7gcH_>Ny2{094PU+<*v> zAasvE>qA!N`5VyO>kxDeI~r$p{4_>?$y{Vh0Swgd*$le0vn@fP24u|H%&?YO58(A) zK&lSy6(iw*5y~@{q_THIceTcd(yhjd%#2ek%#y^cd@z1^dmdmWw0k`|o0NykT{RP4-CZcRm*jJfPA@meWm&6+S~UttNDiJ@k_5bK9k1iYz+R3Ps} zw<)QlfC{sLv!%6>DE8Wcs@pz$*pOrHBdN@R0S+wm4&whMoJ(4jX0M|zLUrTbU9ySY zzRC5}Bhff!Q4Ag!*bD;zR`loA;LAMO3_>8O8Pwyfo^jeK`K(uKglIIpZavWmUt&BQg9g!>UvCS3d z1C|2Y`{Wo(=+>J=I6J@rHULl~d7?WSs)4L;uR-G*^(J_z(!`?BtqJ3{`>itd17X_| zGK!(q_n#lJED>?v@#*1&7@LU|_XvWVfzuMP*FW1*u0ipPRzmD4BXB7I_dR0`0f|ap zWBGGdZq42{Ml3a_Zs%HmEAt3R8;cMQB8tRt&@trVTTZB~gOZqpzRU2V<@8vg+G0%x z^?XU{zbEl&TI1|s$#Vlf4Ti|DANUT`>kL>JR+mps2>l0}DR)D#SAG}|fu&~qRs(%6 zq~}KSDS=$V#GUd#yriSxSi<-2>thDvba=tsw&{qHe8eF7&}SpK<2Qzp!hQ5L+4+og zYv^ETvwZ(8j@v9rf%W7I2cWt$Tp=eiOjT#(&UWuGB4mEBbk$?`X96WcIz zrT4~gQhQ;GFf7RLc{Ey+(O|~gw&68xC7X4v*}oJt!vHihUzoK+v{Ng05T|;X^ z_`YGwNlmQPe~A1`mcNhXEVqqE*}&2=UsBma;|DAk1`PhZfqRrZNnIsueu(Z6HD+Wo)TyvNa{aI=1xMd!?gx9ybaS z6_KV!C*4`xWJ|-caHyKYIiI7mO<2qYXhQACIz|g)BPP0C1hbwk^Av%>2;Du}?-eHFtQi^wXYtGcnM825gLRi6sZ z2vxVK-kyfgcX%KSC;dBs%MDO;xKOBwzOQL~-`C5**tltwfVJbl&Kx7{I(vs1armVP z@0b#hf42T&IMmb<&b4fkuz4+wJk{gQ{v-F{_&)N~&#|)`-FM6W*u>-x>%bXk)4Ogs zv}5TJ%TAmnz6&eg?(x5RIAXp(TjxE0$U#JRUy%*QNMd~%rKuT0GM=|LJZ~jJ>zi}Q z{w1Hs;ji(Aq^Z1h)=VE}>}kjIVOX3s4WR2a93ZhBR;gXw|GrFm5CQPBKFbbDKnKs~@LTrQf6A$9ms{*p>b^RG z$fTt5VgGI2q1*p&oIz;AZ|aiENJB#_<8a%4F%0Qzb}{4!$z5;G&4(#hAJ_W%5|?^n z=Y(AtC@&}xXaR)RycNxLV~G_V0vKsD+uii4)YXAl{XT|q&lcHvFgMrV@q36btS+dS zhAV0?$uGqi5`0ZlJ#OGgysy~ygQ%l2A1s>OAHJ4v++H>Ss3BdYsAdO^5--!&XBO2_ zJGe}9K1`0ZCY4k}$HM0~S=db&{OXa6G|Ym0X3St(KkfN&Ag_#E<3R1Y8fmrqyo|vbRa@9SMKOp?%B5?_ky~wEn}-I6=ohH zqmcSup!3YQ5>aBRF*K23`uTGF)GOW1QkbWq6V3OAEgQl7_XI{FRIO81T2t8|h9H05 z{MxgXM}emBl3dv{bqzhgU8|8y0Oyih7(&@XPazcj5D{K3d)L{2dE2qZfX7qG{XMS{ zdrm-#csj2D0b9y=#g3daPD{}QxA+K`t}c;25_$|yObI^VkjoFmT{vHt&o2el(MKVMK z8EIxE-B+PJsfh=Tj5&cA*ixD%{qHTl&35P|Cw~lay-UGm%+_rUVc`R~*6M)e5ci#5 z_JF4CoWlMOdijzcZFcC6rdiYxG-Xlq(W&kaAP$66h9X z=>8y+j=^Rh2{!lfkU~$I?c=Z^_=qbYmgoKJ?)(L2mlfl#-4B@FvHPp%0FR#Oo|y3v zBTjL_(|SgvXp9YSynmq-G@ zje!caNGb?p5NC)S=#)Lb@0|dy`v!!lw7A0oSw8{XDaRF=$7tj{ZV3y3f!)12w_GA4 z3zCdE?k?BOpi&uN<}$!n1A~kMHbMJmaQ$+PT$4|EuHPqDr~A<2Z3miD?q#i6a^6SH zH`UXvix;oo(H{ndh&Rr7diaD>TyWVpT=R|q;4uU|Z&&>I{4;*_`B(Vz_JYUrBVM;F z0tK9x6|dU{sx*BT(mw`c&m|`5l5&lHVk}^-`y2=<6t!73WVubAc|NZ&XMojY)OxLN zZJ<);!46zyoOzXHKi`^5PE$6X{!DM3WX-+I^vP0(?NFC+qaR~^63B9&Itnjhdb}yl zL^GUnoDL;f%BV}(oy!Ot1AD=9dzm|79R5|-zk(Lwat z=*}h2qitlQbrK2>XF+*6;0iF4dq29hJNYwXjbYk`jio1(S}(a$cXrOWN33eaWbRE; zbuVW#uoB2}qYsyjE^GFmz0~9vAsy|SmZgd5fk%^{o7DeALZ4z zI-p`7cy$Iyz|klQ6T5DhAF*R90Wky`QDdZXrzK64O=U^q8G8lr^0r}Fieu_I2K?$_ z#p|}?<(lwv-PQBC20{!0Z`TCojEA+jL2oJJhvy3}dnput^Z5Z!4<`@-&(|F4od{i8Zj(Dc`Zh6c%f+*r}?3EZ*HjBctilkL<$hmO`|~LJSP4@FpyM! zBn?MOT@DmX>Z~nUHd-`!jqH(TT)f9hwe!|mw!V-$(cd&zVCX*^b{)c6=$Dz<{Q%<<- z8=kidUbbs*Rs)L5ctY~oW*EsPqYfqP%y`}|SYyN!9J54b zDvK8g70?@XrS{gb;smCFhB5V3@%I&+s4i^SEC znYkO^q3XStsSM;f+G8dzNtl!M@Je0VIrmBy7Kg{Gmf2OKR(5B4z+g1%0u_$d&L>q& z^b^=2At_3Rn%>ArmFYvXpz(>Trw;bHiDg66BtsqXs7kP)sbfJdQD$NitTOT0*fjsP z4kKXf49FUo2f<)P0rj)aT1PaR6pS4AiiW-yUrn` zuAge%b(g5{XvSpFL2UG|rg@$ZI;|NF!cgnh2G@HXI{3!S5I$^P&@Hx=pDg59yZ%S7I2K<$1-2t+O+w7kR@%JFj*OG2H0ImyLL6 zuI@qan2j>Er(yEfnz+G;U`5d)(G0Pr?TJycbYRcoiP$p(dl}Yjdx<_;mk8Ptww&?0 z?d2H_B?ctMfXkL@d>ydujK92GdjS2@dBJ&Iu|Q zU~tw=f2MKB_VEG1*F5~S=Nuzs zGJnGk^U#@43Q=mWwOK71cXJUp4(V%H&C@v!+-fmy7dkjFAC?qK9i&ZuV4G8ye88;h z&Lx>`Ee|lXU!t>}-q7Rpk|RN;gVxZ22Kl3i{H@_SsgG#H8~4BChu8x458lxP^DzKD z{Q#3@5FF<}>4$DIY2o7~&R?@E4-!IvJB-Qquff?o)M)$+k`*c7^Z7xsn!Njbd$vMT zp}@IVOYNy3zh5ft`I=L$ak>9WiX}wi?C}4&ri33}pK;kYe0$#T&G`}MQ**e+JV>kB z*}zNfBeK~0bSLcBE@ZG_n?if5@flPFFBg^W5 zLihJU1+j6193Uob^Nz;ALJ^P4S~IVKi0U~4E?Ln;SZa=V5R}P4gzLUlG7-67U%=1DH zK_48U{lAJ6F_aB6NttC743F{525z&&ZRx^2#|_PcVmd$pM;+8?j^+RpohOq)q2%Pt zK`48csRKeNVv3xeO^>8DyeMeyP$)*3gU!QXR%SgDg|R&fHe4I3NbReQ1L64=3Bw>Z z<`dMZ(3Q zwdWr6afJRejgiDWQ6a?I!^|pb)A^Qb&ocjKY3phjJtfkh>?m8!2K-Gd^%Dyj5v?X+1ZzZZk4G-0OWN0e$Q{eML`pOo_Hr;SYWe zI%?oe1Rs0=&Ejo`Y&YWDXzaT#gorsjbmq7-3^{sVy0>`V(LM6}`oJ0Ra9sK(pu~EW zxFPetIrxVMBy{7N@^MrB;Wa27-v_&p$^YKeT(tQB`!_?8x%r*H6W1m<<&10I@qE4D zW#6%L8oJJE0LAj)KI#QTO}KMLN{o$DIgbcfmk7il04>3~s)moCG7xR%w@fm_m(-cn z;`zM0&(eLEG!QYFBH|7^gXjaB$UJQ3cdb40%rAz3l6{hb1_#GE(R+4}jv=py0XXfD z_4V?GB?dgk)2P0xuSuu~^b#V75>hUPpTvYcl_;z&rNIoS&h9ZrL@LHudroC-7X6DEU1@Vf=5&;qsY(a@j?-V~WNkaCIV< zjoupTtOthbyVMCKwI2-ZY^vN-)|iUMvbh37v=#lIt@?%6Z)*2Dd71-v=%)sNifC#wmxuCymz|(ofmP#XAvVUtn=R$Z` zBfh-tMH9S4@Lo&>Q$|0WGOAm&ik2of`4|UMH%b4R5INH3Wh8V`foo2&y`O=E#DS5x zG`}GPgh(ngeHt1<8=gt$?=s~c`#n)m!xG&`5QOoh(vWF352)U{-beE9os^m=tiFgnt1GpzkjtUeH_P9|AaWr-}QDCYx^HTYeiYojzG} zg75aJv+|c5!%=HB@}YY$MP=PtOYfw(vjG~^Si@b1M~16%B11ERuO35BgH+JFPwNBt zk@2uCxYR7)R0r}|(v({uQQhnV$#ZX*jFx=nfHg#%<66BujB=exQFE^;^)o8vjAe;x z*u&j$5(bG5ido2h7ki`eG+iKn<#TFW!`YeF9eW0mseLulKKU+m50?PtltKExGdnC7 z8Do2A&)ibNDMozz@QC$Gz{Uj@2t-&zz{_^Qo)flxFRszKoafj#Y@D&iwGKF%A#Axm z&3U@5hnyM9(E-EVd|}WU`CvmL@uZWZso<%a^W4#(3{Y+wF7SMCk)sQdu9511XXkYt zuMe8ctVm6VJQE9TA~-uebvkoLi+pNF|Nb;4cI;86oC-%hTN03T_E|m{C=i)Q3ZB=r zhT)yL6c1;;=GINJVIkwl%}0lUx&zAjcTTEc1LKX1q|HvuS{}>AF?!NpLhEoH_CK@Sq- zfUDio=Cnvkz5r!(HE3Df??kUPt|0pHIfBkm4AcFaSHQ6U{lTC=HKIC{7>baOUk zqmHL1#DH~K@a@AVoJ-zUf4zkw{&IQ6b>I87i8TY8C?JY*y?vfm2DG|2hz5Q++`m{) zPGY$` zHZsiUj}Oc=4&SK$rz{Y0)w#}%)}+sdKpc23jM!#mvdpAA_F|Zsa5UYSQV8lvp**-D z@`XtthCL^kL<2B|n22JD^+1harcja{Ks=9BdhqvfbtRAjKfGOM0Nw;`mc!%Ed1fv6 zdhtP>p}Vf8H0U{G^x|R=(BhTau&4N1k#JKM;Ao&eF`EKPSRifooFiQZbk+h}HiT?^ z#QozjBs#K_7_RD`8#&MM6XLaUU4zOwlC`PSkg<%6I95D*hKm!EvzZ%KNT?`kPGaC; zpkt}=9~xls(!|sABabO&gNAhjyGC~}P3?8x3;GMjIYvYRwt5(>G2pT%q?A>Dd)NJ* z7MzxVpWk+X8Q(sg@p?`DkSVUrr6~?UgaNT;05MtX4V~*w)?Wb_?)u(vU7_P-JvmgN zLM$8Pgv8XFSf2V0Luz-K3^+7uvzSX?&vXRdIC-O_WkRZ#PeW&(QIZOX>5vZh5fda$ zHn48EU(xt_8LKx?V0k{YJ#|FPslarY2lzwHfY-y3b9^4RQ3s95d*A;kqCqjK-eb09 zRk_|!_UmU8Z3x_pVWRhqK;C2E#K2T665YUZk6+&+TzAJI%ripidBza#nsk|p#P6x^ zJ_qCj8az$5kDqV6_ZcUZ9j`R^ch~(#h8a);|AxNy(>D}t=P9n$ScxI|ki!r=>r?Ia>>Rj)zsW21Z(J40>! zGKNos73$ZVi)(j1hYAZSi~7iyi!e>7j(V0_?BWt)9c%!5WhF8)e!RRQ<%BgZh#_DX zZuv2;*i$Z^QO(q{HWQ(N6XO0Zk_tE#Shm3ENSQ1M+CmT|gGWglp6D+#c3O;xk(r89LdU?4-EnQ>{HJuU4m+4l2RH~(wSmUQ%Qp| zD#YkkOc>7t40ozjH#HF_#9}rrPb5iA9%np5xguxinHL*(;5JEO>nN<4#WNxfJ*4nY zMiQ>O(9xTw zr-y)bUBcEh4V}JCqB&F=U~>H74DvJfn2|Ni2NM^e05$c>7}8BeoJ5kyC^e13qo8Xv zSPX{h6Xd53reF@^KrS@m8hIq%BXc=oN`f5;he{T+MC~ykN`E!^w$En(^|*q@c!(i_ zvEdYBH#v+Ul)!lcVhmX7dtdj2Qw(@qBVM<{+SqeO+8E3kpC2A@-O|XvMk|ofvxAvU z?t(-;Cj+~A(56zuMe#{$ut*9jB(*Ecd|uLQ0M>Y8xgJ4)7upykw9G?@bx8tGHg3d3 zlVW_hLo+K)=kQu1k3(-B&pMnnIGkLT}xz&4l;xO+4; z!Cv)76C>y&NT&ka$SXprUyw};ykpBnE&u=^07*na zRLAGaI(ffqVY&aEaG!5}A7!R@4c?YuqAYD4vJ;M=1ydQW_nH|(REYmREeoT^-?SX%^j<`Y{mFZ9pu zMH;Y70{Gfz585b@=@;CC_jbTU?h0VZvf!bSZUg(&jwoW&8y#&Rd_0`1(N))d!=Cpt zkY_4#E&z#u=Y7MTGfwLXq1G`erBc__D6GaJ7<77cU|`RCWk^~LurazIdlHEFmOjN{ zo(oxTqh!&@v;y-WS5LXHL82vQX3mb;gDB5cJPON622Vo|O}El0<*+7)F~*Xoku6yH z9oAdcflnVNB&RRNMOQ7J8wVm!ZceNhG(2-B2PtVk!NYmy2xOYxkyK0<#c>VX?I(m-bzLbQoxvs5SNM zu-s4BAcQtZy1Z$&qjc6T*<{VL$U1uR&3&0~c~=OLJYwvIP0#LS(uJBl%3#Bf^__;W(BG2=7xl`M8+YcBn9mcL`Y&lp@(0^1Z(fj z`asKh%3`&YIY9|ij`iapmyfB^uR5r}L>Mr`1Z`Af*X}q&gJ3sod-hKp{y0LU?+qDa zT6-`5zluhhD_H4l+Tu1+}}ef>=BCjE9Nd z`WhLUn~h{W9CW#w{~Onc?=dwr!Tpf2bhH}8f6KkjGX|&4qa-szrI|A~8hL3FLNFdW zkWSvUCW&EWHG{CH9hZH>+jd3DJ06x53kavUf&l!yU-1|t5@$pNyyYD)*EgI`kJ!>) zbCClAqL48OvrRNVlSISV$U*i7Dvn#E6>$=4 z=Us1>=}p&d$U6m06rEvUCi5_x+;_MKlhtKAMZ_4Ic-HPxFG*rJ%4TXmXM;37HK_=z zfmFVGsx5B4YW~^iJ8V-!jt+#a1E@tb$T(aNLndbbfRPprG;WqSNO)qY=vqSP<&7TP z>T-`aY*KO$J|Oz^`%Qkc>*?m`Pvzsk}8| zfU+@{+FzwBHw6jF=gM<`@N#d*A4dv;x?SSUO4eaD13A(&ez^HHM>Vk%AorEfr`u4F z!r*N+(S0>MYOrx6)ferZkxd8f&FyB>d8@B=URFP2VhKFS7r}(X9nhhF2|{f?Q#W)I z^&j0b#o`07{^olfvOOy^A4iW5hM8{GtzT zgGQ*C0vYo+WhG-ugj)ydoTo)%T;^*L;3SN*L*;-eijAOLprLdmnWBRR$21CTQFAua zE-%R1?@l!IL@G5E(4)Z_3(6%OOyO@KhXY%Dlu5^2ksP96xNIM?8pJ*&n@bWC8ZQr? zh2b2tiCZ(N0PHr-lT{V~Ly-`BS3t`)B)9ldQ|)%p8#=#r>J0GbXG~)#)V|*m11Oa2 z;WZ2slFYyofn|x<->x08ZyCNhbEk+AQO#kmH0Rp91!y{aW_dTMqnoa2j*0EEI&*8; zLbsp?2aOa2HT7C#qmrO$y4?P z-2~vWXKX3q9OH3=@Xo^61r2O$6MX>Q^X92Hw3SA{qu0Oxq2R*nAJs70I?{YbRwq9l zqpe?)z3c29$6XW&#*rSn^Ms*^h0kB1lXj6{HuvU(xzKZ2bD)pCaW39lZah8aH);c8 z#CeO^AcxW9HRXJ>H~lK6!1QsPI`}J@%d)mt4#4~Y{W#-&RP5;%-lJU;1{0MO3QRPE z_FuEETZ5-rJ@(_>$)TdJ;H+Ky_%v>_9yve3D0|9bSx^bqm*3tHB!Wv+-h9aT` zARMg^GJ0KW05%UBdXY@lxYRL&ag2_}Ul)0>+ItRD;_Kw3<4^EEVszS(IwFAto0unO z-(!M^w|T+bKWLm7)E=f$WIPO!W;U6&kiV)LDH*aD5_lM9KW8)0xz0Z$v#x@46)f z+R6mnp(w~+R+cw zK@0&Ikb-JG{ zBP(wJE^0bLhhOM0+LaIb*n5jXp#hfi=NmD;w*j0=F!~DfwD-&^7&xkI?!Gwd0mV^$ zjt|n!1BMSriOFN5S3dY0huZ-IAK4qqb`+kKGjurGnrXWS zm^~ka)8E6Rt%Do1*%IEf{*E+wvS8ymp^xEcP(9eunbM`GcDKDU%L1q!<;_Qq_yWFV@M5J zT#y`)$Y$7-uH*SqlNF!oiKdsI*)~fU?yW70I0nKsjV2*8V_9OE&ZerRt%p|(p`*ZZ zJrFZ;paUd_l8z83-N(jY1V{E8Q1DUq7_&E$qAS5J= z7@75cE;5M~HHhv&6sm#oJ47~H_mDntr?!KD|MbT{;$Qvxdz_Y~>#O7u6~efW1H_f4 za3tcIpfc^r8v=`IEP?J9Y)4sU2Zg_W)vV&-XwtZn-9h0|$WFEulIsV>m!A~?CSumSP6C>}i5>3414HGafLGyuMr zhs7Q?3CZu*8J%XG95nde%hROYI{u38QYQ~#kXk-Xx6?)i>`y0IYZ>QI9bb#bZ+&I!Fev zlVuA8lDERxol?JNoJv!6-_g0FHCZD{#pKn>e$yIpk@MOtnrAxN+s!84J7(?JeO#|d z*K8h?bw_jCqKk<1`w`<{7zWXFN^?C-54}b6ttSgx6xtx6qD!nl$A&yXsuqTk5fx_|UH2%IA{tz`M*wKJf<@uBRJ&ob1O4y)r5Bq!5U>Y>P3)%QfZY<^bdQ4k` z$~nE${E*W`eaQUl9mv|f4ulNHTusG)i5S>8Vv^0Q_1Samfe3s&5OSM8H5if4>okoXFit?89-R$f_>i*DBy89A&KGeo^#Rq z0=R5foKGiQQZ6~bplXOUc80_moO92T1_P&MEq}LYfK3U^^CXBZfGUeYMZ+X5j-}&! zd$c7f8LTrD8CkC*ZiH_-&yk)O9a?nH|NMo5Ym-cWo zU{>?7rbp?3th*5m4Ub0sj?bWp;?CN1^N6lOL1g)Qd|L8)ZSt7V^BF9gV&X#?&O{Xz z5Rs)x9tGCZ!Qk>}ic5AkoEm#aOitb)1HvJkoF?OF>`TTa+$++CQ4pbMJ4W8Ikq<~$ zY3HCKIxYsN>WKBj%RZeQM$g-gFZecPQPFCRJVMZjT{eaXJ@6cXGU=JsA4$zF4Q+Kc z%|*{YN7p$|5gMe;(1>UbjqlAC9IA0pj*IQ^dCNmbS{mV8C#uw&DWI5B)C9%;=|a86 z?R8@ytZ__pJ1X0v@Mxy(k=Wd=qc7QKknOxv#H{t9$QbOj$O(3c>MR;MuGcfDy`F^} zq3V43HcUCycEqj+t~JverTcAt#c1Xa!s*2NjIxmfkeKn)<=Tf;M<@^jll(y67XqU= z#V;Y$STJ;^4pXJdbFMKWq#kc+j!0tQCWj8T_HEPs&~)dr5x0-LfD4G6vyr3&D1;N} z;3SmKC_hVGyG&Cf-JAUOE@7<6K%_qZIQw<;F3@83f@e0l2cF_W(b45&C=I;pjSuNH#uN1b5f8KorHW z_nrYK4p%$C?{32BHkISURPKXUf3GfF%}=OCG|Jqga-Ewj>bmcJ7}=2DcG3|AJgg@* zd>b!QXwa#i8<7YUVmApbQAdoF3R1hq1)ok2bx>bkCxd&O=U-l*@%!@`kwR&FnUK+9 ztr#gM>?!rT6lw$hcse6h=kEoxg^{Z3*wGfq{Xu1Vve7DbE;g%3lTpvHvl$yp@Brmv zOp=b)99fBcBmRmG^vDb8z&u4N2tzI#KFvZ{Zfa|GrYEE*QLPDZif2W+5>Xp&ks`m= zpt!c8Qzvk-<2B=OQ-rC2>mo^-0(RuhI3FS+b_h^Sw%kmEwOLmadWPlQ63yMIR;7tz zoQ~s#SWUP1E^URq;TSpe8&POWXJhFgtayymZl$Aoq}%3<0y|^g)-aPNERgGuL{t*G zF45jA5{wJB9sxJKTk!l`~Z zhz<(2$ORVneV%OD%gT2S>iIvBneZaX`+09TzN6z|Of3S#r-ymJv+um6~88+R88~5Y;%4+}B^2npl5D1xY^_jea0<28;rw zSLV?2_oVh;BEu=MpG`LY4hnDC0wigOlD!4=eS!>1Pn|U+KmW`Y7!AFp)pr{3dopf1;xV)T z;e;HCT}1f~3R-)KC6s1~IU{o@W=p|uRFB3ShdsB73;W2mGa1AGfBYj=MP{88mRM_g zGg4;coa%K-0EJF#E>rRHjK>%eLd137gxM%fCCm~^^kM=7DfOXX2oVbra@r9XSeF$~ zr-#mH3U!aT=8O!&UtYf8*Pp*dN(rYBvFC&>XFM#Y+L-5#HpdXLE(?|raoMgt|9P?Q zj%3zS-5XWu9gHQiEVe_N$}=B~BgBs~xqKu0qii-prkTtDN6dfIB8%tdYfQ3v(l$Cn zC@=wmhvVqbry3V%1&UbrQdtl~AC;TG6lzjTMe)OoLb+ZwkUe99~bl+6s$clrY$+DSsqE$Asx7@Rf zX<*ngS6pTw2dbu1c~DomHPn@YtMEF2; zf=?~#NU&p?mbo76Nrb;?wYzv$rzkwVMw@Fjxc7<5oRG|Wu9j8y4$L6{33 z(ilazEzfH{Kr!2Sr}h|U2+E={XVC<*$f%#({zX%(8c$=gMwN-t8{H|=Y}6y6br58< z=FmPO7 zpyiX1k$UeT{+6X{ljm#zra)Q04#%v|q0D|D0ZfnFe96~`w7~pcB>I+c`RK!o>}fgt zq=Uo$u=y{4`11CQr}G0YX~Wa`5ugQcX-8(#%thmOLN~rV^&xxEO)z_uIi7I97-EmP zYerJA%nxg_B$y?aZO0O0sk@o6=N-(by4TRp3RE<;wJYs?p0Ag>$1(Pt%Fo7tQ(Umb zQ;iy;>JI|!DPu>%wrwEVv8)S_(NSAjV{@%3`kqpUr#UC=mF$e1@cDeg+kVBv>4eYm zjOV=J6PB8M5b)D}K~4#eaRsMbD9teCYIgy4V3|WEN2a%6w=yYFy?-j(O|D-8(<__j*5N+LnQlP_) zLVX`YKVfNzB?`n~B19Tc-hVIhj_vnTFp|{9^=w|P115n;%3?eaRC696iU~_6Y6XmP zEnvMw1TBihW;XJIbuRT3J>PRk1sc?xOI17(4U}|>s;X#_Gg)Nz5O6z zRz77x(NYP9$EO-%JD?gjIL7kYx#>m?ajR2S6_Wy3Vkm8tb;1z>$b;Q9yq~xELZX&Ne^&kl$rIUP(EDKGhhmC#qtq*IP0ur=0RWMnk5akF?71}?gw0tEVIC)0Xm;SmhsB$o|C#Zv+2geqTtDih1`4A==Eh7Dbq|^5T{Y5V znnz+qU9d)S6J?+D@L|+7>g1Jq}jrlN`aRP?W7 z^<))8ql-v5RBs6vdy*Emlx=RsqfdvDMm{VjBvu^HHaAoZ7I=25VrFo57_~eay^b`A zA%J{{$k+^76lQ?_Evi=%0Yp1*or&B0{oh6ODVTEVb4UThG(g*JPBXP!6q+Je2 z6lI$VYOE+?Q*%V>{^eRUv++JxT~B@H1JR@$W7fqT-?FoXHWBO7dxNwCZsO66(v20< zB~L)$$Onp7Z zPsv@5M0)?7L@0s^Om#q%GIgr4{cPkJagyfZga%KFVxGxndda*`Ee?+2s$_;XGcr2i zP|@ljp0{CzCsvzad@Uj-rX%kaDGn?cf;=uB42zSzV>gJU$S&x2Mw4=h&KAZuLed7W#PZZ1r%T+X^c1WvgR7y}6B zxL{cWLR@gUUH}xv*GjRlw7}R?#+LRv^v_5&MIh%~8|8?{C6;q46q6__l$NqD=TiAE zG4|&xrG%U_7>vC(=&@>TLFM&RWxTZ}z97isYz$(EPqmvkp+NuuAOJ~3K~%1CB268r7U1*HyYp6F%7P?(~<4v|C ziBfFt(-hxMH4Rm?H%zLK!gM&0;jBolGs$L)JWUcS)Jqa_$#otSly8Y7xm8tpjQ}9k z0PD=uL$C?ju!~_)3N}L)sx-X0VMb^XROMkGgMnENL_+i>wM!bKsP{SGz{YZ{D-}jG znLLpy-BeL;3NkZ)o(?U85&5|V^+OS{DjX=(iCkc$Bx)%0tX9TrHBf5zRv_`+=tUMv zS{=j294<(GU2uw2a#9qhs05u@7zCNp*W-x)O2X`o{8qg`Ux9^Im3ooKWSLw-qeJ@H z$aypfEOdLaIc5R=N~c`%(m#5mHukn)k7J|nBmhf{*wfgrWC0e9fd%uRGB({0IwDo6 z#({c7QVd~4?GTHCAA>$-=78i5OSGJZSx4z9*jA#lY+~H%u&wMdl@1?-e*i2^dmwpi z7*Iqr0xKItcJ{o?f`UtY)MEA~*o=IQY{qE#nH;_RIDcq55G-CY7FF}Pux6Ab*d4?f znZ|&yJ2snIfz(h28ue1ezOj6(s7(^%*|xJTWi`dfeA3gUjC0hDqjGE)+%@v1e+=H$W2}N9*jF!9cFxGqW*jrqLu%^<{?0 z4IjvM`FbS0Dx^E@s4t5q5*67J&y;UJGttPTi5r_eO={>_d{!3sXgoi8<|rGcfakB# z-Xe-W&ycZtqvrqT%L{fMUM)0lFa4kY_?JIR%fYVEm-nPi>#|@Q2Dz6uxr4Z_g}_8e z$UUtm z084GI*RYJ|5{wXIiG5@spvkC&FF}n&Dotn+B@N@midZvYt;q62SbBWYL#)0LAbi;_ z$jms!h?MGgjeF3{%G87P@whVW~Uiz)QU#s+5l`C~=d{*eBrj z33O8f*2#4L3e3V>SFCjt2c>9tS+jY&u8IfQWpar#*QOt~o@F(l=znq|E&s_xS{C3f zaLOIYmCtvso0{rF1%;?If3;YX?!ydCVOP&NPh6+zv9P0Uo?voQ>#`1>W_e$3m$pn= z71!7Z%ttM<_}p&eH9vmkhq5~*W;H;n>n)Ag8cpl2MP=rGAP{&$?U;DDVso3wj*H9= zABKo=S^`qe^?7VYH^m%_s-8FHJU%CYrO}q^0TC&TL!{o5ZBJNY=!aZy{N)3w+?p)~ z*ru`T+ZyOd9X7Pyqd;W|UDY~+K%5a!4))BWdDlhl&;z3KKL8R4v$c~QvWzx)=eoCK z>v+sO6;iD+%LYmAj~lV`+|Y1s7kV;s9xy)8`m$(z+g@eUF7&XQl+hKCCq3en8iA3> z(BdwnHXb5MtL?vb&m=yE-sWn2PF&c;_sdl8D`z&M#8o3-l<4~9&QX}d*-4ZLK zuI3!yfP!mIYS5(Q046eyWDH7Wo3u5UjHzW1&%T>cEA|*G&tuC5N9pUvtE2nbyE$53{0|W4ilF%YZF87B}V+!=@Gwq{Di;#_Sg9K z=?Q=J`CB|aK7yF>)7uOF{PR!v;q@86`~G`uX~&n#1t8#bI^%bbPqjfzNE!I~?X3)n zmj&xuGu1)Zb7?e<_D7!q%)%i%7}-t(9)e4E%~LkK-h4~bnE>K`9oWQ~UMu1nC}0i6 zj4C5z+c#`!$3hX;yx}zu{ck~53!+OX`q(u_P*_SM&8fr%rGfkxh88lRMg*kz_FlP#QkPsqajREI%#VJO7T37H( z#$MSc8!{pR&-)de6VB%|_PiqyVWDD%)gm4x+l~lR4CAt{p%(@0P}P+?Cb>eoX)EZt zg_iHYHXn7Gu{+2N%;wpeIPp3)(x7S1UAn&W2c)|EFiq=c^DA~~*OINomU==ann9om zlg>;15_%EJ*8FG6Dy&!G>=M$2yh_nobjrrg<|w_t&INAf%?XQ^YzAQS<+4 zoG;zLNt<74(rsoq_BAw6wVX8?-=^Z(BA+(weJ;-}eWKI2d1zRVvZ7hgvWKbJoK(&> zR*1PjKQ;uUdtyyg20B=y(vPh=x6=LSwpBLIvR+uE)g$pTbsctGnhcsbMXc`Sg23M_$DI;!m<$d#6TJ--8E$_ zF@Pvkdh{@b;fl^5(VS_Dj+PzcpGyliNX_HXJfVBgX8t7hce8{9g2i zwnxeMB{7f8_4krkndSP)q=zNuiw3fkZ>e);=l)ZFZ8oeB&HQoX8U5Uq^!YHPJ(m1S z-1S(ypzHQMn56(_oPDAD1_Z@m>i2|21MKJ?$VP{=I271)wgN4m*U*6rECwo2_BNiC zhDML7HQi#bZ-p*P$7a@pV`ut2B?mYxASmba*@ps7w!It-5@e(6pGhn|PMG_8JdWq3 zo<&~PLq14q(MED4&@k3h1C^$vBj^Srg2i=hF66DK$a8_JU~igO5Sm79H-G7C!`(wkQ1g=bu1CcsiZ&H^2EUexHAhe|i21kEb&p&kq0r+rHycQQm}tcy2j$ zYAuEGof2ow4aWiMLbG5+2~Q;0(kE*)nqP4S5Zjp(V+mR|Sq2WF517`9g65p-|59(o z&oLr%E>eU*cw8TFURK0d`iVVfq_h{dO5TBtuGfuA9gxR>>sHMpL#)pH1%+K=#M|`( zs#NBj_bQ91C~aoMN|BZ|Pm{M0GOpW()3Ov68GslGr)32QNV%+$WnJ;Kp0R|8-#mWC z!_Pn9k`su_XFP|1*RqaFj%zO2hzdAb;X?pbXUZO!0MR6H zARU}cZjAOkNyMzvV4iB5>DSEp*b=_oKRWiupS8f|-raB*V-&=z)1~5|zy%u9f0pi@ z%7T}$uG%!G*|4xulIeew2w>=IRnyhTqO0CjH&mjVc;loyYGzTv?}#S~(L5bynm5_5 zK_}`3I^0xVSyYdRkw!N=tr2_5wMm%WF53rqSP6SBuB^EgdZCy&u|uPGt>NgP`%#X# zekQkWkmq;MF+&dB!^;R%I)0i)9s0o0PQKQwLvM@Ri)$9qE-7U!^_r;&5`hSj&}+1M zA7xPvNTfb=)4Gut$$3yoSzZVBhf4#c=0lfu%Tl8QLZP?+O4nU)cb9{E0?%&XYDtYI zGl;gIC#jM_{YbaHD%W(3%2XVk1`jMyAf1JI8cfVrYREfC`Z0(Nq04y48X`1mDv344 zLRuwE6e0J$VNgWGg~cSVCk>QvjzUD2BB{Y@_hy;Tn@%P7?yp2l34$_S-#=JTw(haj z?_qoho+$qwbTBf~$0t~hTv|!6J=8w$4MeoiRVVWWW!GmPfMyEHeRwy3g;4KTYMv`( zhdZQAr|h#wlel9b^7YS8G2)U^H`Hqy*55un;t$_^hky0mZ}4zB;nVpMpB~N#AtI%O zx9y5AZ?9NlL{1GkF15+d895cL?028OL1M;b--}!)2AtMYX~NQmHLks%xa_HzIfjUx z8EaU}>v}beVS2(=q2!=K3es{0HqhHbU_C%?HASovwm<=Ut_&;ymwm(Q^@2TTtTE!W ztT?ad9&?y;#-36!&Z_rzT~=)Sj=gH*0|*O=QA$d&g2V|+jQ~6$;>Uc&+jhZs{HY`e07y9_hBz|aF|#~Ek1GvW8k*W@ zN~E&C+$3`0B*+8NV!Hu}hFWS*8imDZ;Rc;b=raVxRBqy#0qY{v=?8#z|Fu#KHOYs_ zfuw;3vPPLyWTmP@+2vjFSJLMPnq?__G4#pUQ_-sLMg{pY>Hcy`P zg))AMCbJcb6f<}!-=Pd5Nakr5N;Fx|-_{7A(o$llQx^SdjXug;gRW_omO@o6P7g5K%|{* z9X1BpX?)e-aKPl+DcP8PeTwL`u3-sObk>=Byq7HUXJ^0Jq+#e%b-*mcL~7{DzD#3l zoJ?uJ^Kk2JgABocB=J0TW=*cfS2+xt9#u1=&>H;mJqZzeE@*Kv0g?@tXb}z@;Dh3U z4C*H7mVp4IUSP)%kan(-54jF*XlMvgj2+ukRopMfYqy4fAwg^>C<8*~fmFm81U-00 zzlNzE&FeTc-L*kth=%mTsiCAJcot2Xi=+yvO5dT_nK{!ipfco11mbSkgv>}*tw4JB z9_La;>T*^VFC?6Hg8CnB;ZRlnN9I{~}RV$2adhKsvhlp$%F2(r~$Ykzl zoqY2!%6#5Mp0B7|XlP0mlZ`!g11p0ynOV#%4GFm$xVHP31UFx6VMqEyH-}~M+|)fV z+wDli7lu|(1>1E)cqp(&{3X+iX!c4qO%sibunAZh#+3HyCzT38QlD zjzrj9Z9J*mbQ^C2!`Ny2Wrj9>+;hSj2!D9|7XR(<{(#?p`yFylpb+u-;Sq29hLjnX z?TRh!9WCT$s24(UO6H6;E(oEd7VO9%3fT5Svker$p`3py=N={Ydc7dT=3!Cm93pHv z3Fq~yy`_7<=4u#Ne$UQeZW_qZpo3GDCy`)qoY#nLOL)1w;raT8m+KXmeJjX$9X|Zk z=Wp=W-+qrz=QGYRU{49_vJ`Fe^$i5Z%j+Bd{)a!|?|%9bFZ&hWoX+_5<0t&v-~9n= zAUrOo;_{4QI`z}*GhVK5`19*?`QO_MuDLihtRdp_dcvwk+iF36nmvS0DM zUGZ{x!w+xI_{-ZX{_gpwIvg*1{y9Ya?(q};&G)~oW2jZiqY-pN6cb;V2m2+ZHgrdbkP_DW*lqMzEm^N9hDIWp`-ArkO%0tm^ zI9mvJJnmAr+czj4G^Z&dseR9EwP7%k6i%HdHM^q0l2Hv!H_Uc&L6US0#~qr~1ddgf zp*+au*Jk(wf=O}NelWv0PiW+LWP`TcQ1KoCh;{R3;WFE(a%0Fa)34-srOHTNisLf{>G|6lEhCI(HK(a#I^X?_d*da z`FYe0r8uBA$K!hkMPZ|kAW!lG^SeGwH0D?BGMtux*UR1uhQz=r24v1SpH}RN5hLNU zXY6%Qby@=URKDk)7@r;%YR@IDr*bVyY*J|~_msPN+86@zoZ{qwpbb$P znc3`0rK&5}K!a0RqkAf!p=+_5&ZsJMV<4n`9Ewod$1!xs#vz}Tj;KCU%CN`84^?DB zX4W!tKOo4+6;ucc3j;Qq)%9!!XsqC>s@)5M`fNQ0njxb=>)ODr{SyNf0~`XjJ=b;J znwLln?0_v7RIT3| zA~z>MK3)@;oS`VKIH+SNm!f#f32O`kU1=k{I$0WC0))gs?9-hf9Io{+zBHLe79@Vt zuS0DT*~SOTx-#fpa|&IRdfh&g9UA8?=W5nAWG5{KPClCrG+e3r0T?q()>Di+1Q5W6 zq^&bl&1PeCyNfWv$rBHq1}_c4THTt!SX%rIa*4F5+1nhrgGiyiP7Cs3mJyikzl`TL zOCmn!o~co;NyPW3GrsIsJjMkNG2+MVg5Q7o2LJwV{uUtyJionSSylkRnNFRJ!(1BI zB%;B#ycf6O5Rt*ib>K4S)?;3Th;i-bjvOxb!Jf*)tvTnM!JP5w;Q=piFZlk`XQZ^_AO8Gb@E?Er6H-ce z**E-ndBvA~!zQ8z3Bdke{vN-7c*6hihrh+Y{_XFvgatpnyx@oDzu@ow{AVOi`1x|d zpD!=CR@dc!d3(nH{^vj9fBobCga7U~zr+9Z@BafX+m8S9AOAD{kAMD$a;@qa)z0%z zajmrsfXX};| z0ulc7@&*6;w||Yd{fZ^T0gi@h=G6>5!FAA4G|wTH6~1_6TkGPg!XD&pz3BCX=?mO&0Vwpd<$s7C}RH{ zCXJAjrLqx9BLy;aSswZ%VqbltYJg!LVbR(kG=CB$n7Aw?L%Qc;uRBYbHMFH_b`Yc; z|8T>-?nz|LiV1C<+@zFY&1XnZdsE7z`Lt9;qE5BeNqL_W1T#=$si8B5P;iaq?TCFWTxBz9N$n(>X?*| z2#VuCOC)=R6+o@{7CgsIwL^7h?z*|Y*0cEe%Gd91ix?=pcRiGkAd!(d7!+Aj=6GoR zT5-^RH05DN()XC$bi%^9u^~4VlvWmCHBNy71_I2ExhBBs8N$gIa=LN;_)!()RTDUmU6 zGiNFht5_Hdhsh`?nX7sWCH8DEbea(LVY&&xQ<>bIqcTBRcBe?Zd9>rPyfOjS`$kG-q(UErR;2u?GF9Y1{wpux62!dGai-&>lzUd zvE{v>%n+{mROA8~&276hzW*;_Z@Mc>lAMWsW*!lldCpy{s;j%Yn!S)5&I~BcU`8VW z(j({{^soa#fc}UgW-uTrqS@@OVy(C8E@#V(aCg%W-^|=2YZ@Tf)phSVxkPxFee3OV zL`1;T``e{MBo` zxVgpOz5O2FKipx<3$KqUEb8Ra-@RdnXKuo~ZN*m~-r?`R{AYar>SMfryu(dSjV1yv z!2>Q|o1kQQU;^9(2JnZs-{Y@;@i`tYkJ$VM$BgrK!9;}T(+s8*a^;Yu>5wUto&i7J zzsIZ7Ew-@be&Gm-F)`mnS@P@-2?WcBc%u|QtbHQOpZ z+Ji-;(+3!^MjAtcCX*y1mvnikPlstNOG5tp+m;z-9pXr;K8VSNI#s5K)pcwiZlcAy zCWvJx%89OdYdK5oszghfrH9NZ6XIqtDSIa9u#+BDFFrFN+bU_!mK_Nv?OmJH zF}c(Qm8pwK%b0eIcj@{Q3-;)aS|4M(hA4J=ZmGR>5n=+>DhyEkxH+6pqwuT`nh9n zpaR=OlHgntI4dE`L95-Qo!4n85nJBc0g+b4vE%e5E4jV)_{I*nU6jbR*l7M12E+$4e?@X?u@@b|C>up1Ag_rW!6_l&cK`@ zL+Iwd%i47ES|U@C5jo{G`Rb)vUsTv5DQO2~cBxdD^uNB(Vjxum+3Za;)*lk7;HCrw zb62Zkt{*LLQ{Q8K+KRv{U_9pgM5HBVCzVJ7nq$Qqa{i1C>*^3WQC2r*)@W$*+#0EN z0jj$1PN?gN@4b0>7B`YOEwxXtZz@Y|Ud~yafnIF=FJ9oI=g)DP7Z4K;(~S4`cXhEYDhQH@$q}4Oiwjc$j~J|~(W>&OeqLdy z{nHnP2L5R1FO-^5KpjXUlICxRX5*?h&)67gB3G?S-g`vZAQItt!ZOXcU(eaMo8;M( z)MyLWi>n^6clG-b)ejD=^2L_GQpfB4}$d~~|Ohw~GTJk{N2tx7+tUBnKAIkQ^d zU7m3N^niB{cL*`!cA9V>JQhwhL{+7b-|x(fh@=+z^8JsvJ3r!w$2*+8hjU4}U7i?IAf;fU0AKP*@;&Dw;obTKNT|u~gCYLGe?GvYxrAvKGn1!MlJN*j)esAOJ~3K~y14r5Q~2YK#;kLp8Z=f95yC zL_zHNr;D}qUk{?$FAa~OC0)`OL|{%U>C4E)vRL`B1$Xrmq=O-H?jH3ho&pbOM6sPh zGyQdv5^DbNWs=-$XUFHnuRBB0JW>G=0Ca z_FdaqmineE#h=I(f4JgN`zmW4y`N$8CXpH|7;63{TNYHhZsw7pRp|2Wu+`h;XfXUoONJZeGW)dm=uON);bTW(mf+#txGm3 zA-eh%3jWj;b%+cwk28&1F2OY+6&D}se#_Yq3W4*NRiItV6wE3 z7>{DBwJGVHI&zDIFga1yA)B?)Jf39OeiK7JsJwc9a>pjW1C*I&2*s{CaQ;lXd|c@P zU{zhEz-5=2pAMgI3%=^H2lZiOgvTv~@5BMXRv~;MKPlC2L4dmNnqcEIQ=Lfxy0mi0 z$h~zxJFxrwK*vz`cBmoEL6N<6%u>&C=|DLzxz;6!su>$Sqjqi6zF>V7$}oc%n@Fd= zFrTdnLCrtkv}dUIpQXO_aUxw^Ps~ej&1Z=AyY0NeqDrwS2NjBR3ChL_sDUJ9B{RWV zu)$oa3Q^Y=LG_b|JXbEnl>ud;EVEUq;L7geC8;`}xd~g0c;+U2a{Cg$dHEWjzy1WT zp55XwFCYdkVZ+T~!P6xLDJ=>}4I-GbN-ET)$6=Y$sZ%O)O08ZAG>o~!R(3G5#`30r zIMjieVOt~8pV_hkA$GmuOvQFUrq>?X>s!>WE-&dZN=jhP3)ajjcjIPWYRy{=0h`|t zLaG2NtoLD>fS8`M&yGig;6V^PnwYeY!y$^LzR;&!+lzoiRh|%<$I>KkD<4O$IVlXrG;wh4uh19gvSt8vw#(O*gJY#fV4jc=@_;HMwGnRDK`nM1tmEH$HDc2pTNW z*G?M{dWWnS@I(2;30AV*-Ae8GESBlsr6XkY1Mb)zD0Z^XXaS(+SF>q}gJ+C(w&=l( zYUO|x{J8>;6|7to6H=@KWi(|%mXF0;Um*4RjuDt#x+i0m+NNvDusFaV?>As1#ho+*iM9kK}uPW%C|6fmc6Pip;1H7SwnPpa<$JB znV_@+PIB&kCsj2kA~;PG{>M)~!(V>-3!Ih(x2F?k=io!Y7Cb@-nB9cSdVxs5wryYm zj)xhOBRrcXykE~*qAYmy8@8}vo?H!LB(ix6<+YT2jTSaC8>VFNH{nLYB7JW;Be z3Nig(0U0I`h%z8kiPu63r0=8kx3b%-CT$2T2QPEyjcPR$)`LSG%VB+5WZMrDOO>l{C{Z_>fsl#^|BFZJx|J)3Ze_#EfX4 zM|#-Y8X3FL_A+mpomJEs zqxzMLLO{!WhvIq8p=+InRSnlEbnObLW#Zl2@~ZCxpAYFG2ik(bha|mUCbA(*dSA%j zr(+sqn-JSyN&TSPopA)JQtl$TbIvY*K8Bp&JQobG2C8C@|QS|4Zg1brxPfO5NMuR?`RmnX?x+L-{r|Xwn z^$$Bi@#bpoCw3L;C)BI2Mn+#RjC(B&`oHzp*SNxT!rh&WsW$MDc`h@hV3R0qSa(Ib zmVd++`x?G%m%<2oQ7=`j^4d5UK=dHlJf~KNZk``vd{Om}Rs~1-zL`u0gwJdfnJ&-b z<Gqx-v}Z*Uo_>6+|UMoUUnY)BmvrMzw<4YRYrFw3ZCtA^wI#j!^# zj7mkJ5`8rn6Sr20P7Q?}kMU6LrPL6urb=IvPywqtACCKyAT>jkzsrVXX)fxB>$wyP z99Ih@t2s*(B&>disMkx%8X)G}RQH2YIt(B!uv6(cI?1UE6k{SB*kO&ap4nTj4P~t^ zthHy&C;PMG4gS}E^;fA%Q6etuiYJMg?E~Dxa0Gn%>SgNP4FOx&u=x!K=Ww%3peN+y z^yD=y%;(I6An6%-xonO3?<{a;m*|J2oU1lb4>(AcdM6n*!>060mb|+X3YhQx68J~3 zxh-4v8T%LzVo-Lc#Q4th43dZ#9WbYgpvk$EQVf9)K0lwz^$-#KhD%7v*3aC8AQ2ma z0ZT&eF}`sV9`kbhY@V?Ok9SW`aFpyTK7`~)7D0%O*r{FYA~?8I`}ASGq>7;^c?nMU zhp`Wd)tN2KDa7nB14K!7o!RyyPdNi3gNA}ycSZT1nFveH5SWTuF8_Tmg1KZYoF z`H3BXEn5g;R`U5M_;7y2XRkg+2qAq%?Ez5(b#)+fAsQkC)A`;HI}|&N6(j28WJgtw zPaLWjk{EDv4hZs+q_}Af zXApuI)^}iL7=zcqu)#v6KwQ61>6S%O4-wJ+k4^`!hn`*%jBB3Yo*CNNLq=d;hKT)6 zn=`QXBo@Js!Rqi!{Z8@Kmid^8KrSvhS{5s|Sg++|<&d zg5skYMj4x$Of=rxqJuNU1YDU#ovuM5=)~~AH8X>`2fE6QBDI7TUQ<7wb;fOVO-8+d zYif=fLm)b6h@@LYM;!{0g}X?F@JN)Zo*^QHjG2adG&IS-%jp&p6)=+^SoJw5F`yTdiM+krk3{OdZ8YM||mkit@WF=2l^gQ_uPnR=@7(RLcgk^SE+yR_bpyzGH0S=eT z8O{-Ax4?n0%oA?sCHYbFjI;)iE!Pu>GFqVa_6R1q5s)%= zIC*CgMQ~u3g4Oap>4-2pQr6Bkt1|(2>r<*tB1&~f#L1Wtb^TWJ?k9mtmS#@}%UBhE zWc6_B+8sfal9fsu3aB(cJHSoAMDb%J+hVj2SZhCRRH?^pBigIl z#Z!@`vuIygVkOW!`^^qTH%jPC`|dy5m1FmQH~Tkt`hf}morsQ~ zFi&SBwpQ;Hz?##dI87~HzC82`qF%eZs8ta3_SC}ml`c#Y)HK*wd@n?pCf6Q-(s`!= zEXxF4BO=l&n9}v0z33r%AW8^US>lg}DS53OH+c$|ML(v%ger^eip8jZ*hMqoNk0zT zHY*F@bTaWGb@M)6`R;NN{p?KtBz1|2jOGtEOEBz!C*5T}-YCV^^+&~0?7Q4z%itm%Opim1;nw@KXozj>R%0_j{o?nSg z;>T*Un>f`6n2DF#5X#v*R?u@F5@=b!Dc|D)|pJ~t&&kIFx6fU*)r92cbjvcu+N0{ zb&mOg%+w_E>720(9Vu_00np2Ut?(&@E7bX5Skg6~WfGU6YQ@G~Qe=O4+u>d6CS0zO zBKa@Ym-Nf8x(GS39m>)xvs4vhk@~Xou%FzVedB`35keqD z0=BH)IJ(rkJ8|)mCRwf{!Wujd(~M=BYIx##dqNc8IL|m84(WW35z9P*i4ep?WKQzl zdOrx(C|Ea-)o;05-UGx~rpW;Ag|&=Eh0$6hENG1Cdu{40F(HCt{QOh{bs4HJUVtcx z;Z4h|hYz93foC_tImXEyQ*!Y- zL#h{xQkHh9!Ga+~tRk3*F|)(Nw!urp!byg`g@_FiGdS&HlSnMd1Iw-6y@Z2r< zu&p>!evOJeh|0?3xB(JdjJTa<+-(~oMI30#3E_mZ4`5Dyau;(Nbk0<8b+!-_sJuzU z6q8SwsVUK7WsHFt4i2&2cTo~};~+S1TY9gM3{bFLSj*p0?FdEfFdc8F%3xGbdm6iN zMfH4!+#y-m(&z>2*;nGrIb>O=?VHo{jFwG8RfF^r;}He3EXd$5i`ebh6KM-yq#YWx z(EY`BW)O5VNod4ahtd0*qI4{PodHLQnx({r_L;+Ciwir_o)Y@e&tuY^x&&KzFXQuU zl%0w7QuXAp{okS~VUGcrUGWSGra2E5#Y66>rbHI?Y*d|=U{z}&nK^Si%&)}kNRw1U zB(~Z{6o9z-P~UXwGtE7Aq8E8-$i3J!(#;D#`sk1(-T6ThLRuocm+JX!Y)nH`%HdCg zq^i~14Aom0mtaAvLx|96*=-Yx@)a>th~fLR8uE$ z?Qhe}7}_|rR>f2$W))o|yJV?r0evY-7yhGV?9weR1;&V7NKaQ-V-Y!1%heobEG^Ns zyp9rlRunNI*_z-X+0&Ai!i61}Q&GKuaF`u}H2GNziE4QX%+!3sl6*ow#{8h9+_PRw z8yZ6?N+Cn(HH9L1nw&bH(r5K>@o-29oR=+NnHg*LDaVxPR!paf-H;M)$f@s_lLRZo z;v>!-w0hu|7GzU>XsTVnbb8hWkh}7-?)!o57AKY78=@d?9!!KSWDhnH0Ozv@m`wea zTJ*VH07l`Wl4S)wi$t{|L<2u;!bhc+Zc7f≪Ska?lnv*0OVqw%0>sefQLbKbWPC z30n9%Z@CcV%r1(QRuQDY z7T6SKLaUq6pdfYMf2j$R4y2G;@zn>AwXiQyuf1Ap&;sz#r5>~Dl`gEh%L`shgGUWT zOxJeKicsCLI>4}qf;B&(1IS`s6s5A8`nZiG%JUoRqFz)R#AK{fqA5bY0%EJ6rYO|O zw|7FF)L@AmcoQNp6Q}yO{5)NzDc^TvE<>x(f=S|}4gl_(1Bh%oLORc6P}gbI2t

Kuo)EST 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

oz3u#if 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

t@X)^k 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 *Gi-U1rgvog1q7`$m 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 ?1`MWcj}L< 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⩔LVqyARux}G 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�@%;F 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 z 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 z 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%0D7N^9g41f@hBSsPvY{~? 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

_-n=4E?g}WSO6-4o=s%#z>7R>5N+#wK|0)*I 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

6ap!~t>c2*7q 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¬bI;l)*!= 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�h#l7q+iajrj>xS8qK9azjOKJ%F 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]W?WOFiGr5=|imLfE8d0r(UN$DW@| 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 z zZ;{mWzV}Uy$OiezehjXpl_B9vI9xoG;}J1hhr>%?)qEg+_p#ZI?r9}uy!hx#(OGO_tBZHAEQH>^VWSDM%nlffyQxEf&qUUR zw92$rJSmQZB4aLy_6k>P*>m*RBTxL`E-9qzdf%9hW?4c~_E2{NW2-ghGZ3QEL^7-U zzx<{rE13$OM%XV;V>Nde85Vb+Hsm&bHI~wEaEq)r#%q;CTatFvWYN=iQ3bq9vX^#R zEmV3`Q-?#X4Em*7d$!#?h@=z+;WCMv|M>m|RUkg@7_u!&Ctr}J&faxPjE87?t*jFC zpwlt#CdNK!u1T@2IxU17^ey@va8%>IaO3G@Yz?eX-5byH)nMHda8CPbSZy@N4_jjwPBlu0ma_Y>Pb) zE4GGg#p&K{6%Zy{C%uJ=VfLbA`=QcsG!~9h0!B+bb~NriUKT_Xx3Zv+IRK(0yQOYo zT8Uf)Jn(t0(vL~TLEDj^Cy9)#XM9$Um95LJa{;-tAywN2BMcH>@S3p;rGRs8l1p~X z13<~%d+l9HczFU(0^qI0Me_3!fz>G~gfL+-Nmktvp{(k-%=BQz<%=|^`_^h~L|}D8 zZz=dBgIG6dN3vjdv(v0$?ebktG(4y&@mLUT7uC7{M2r`Uhw+9EjFdxgF(B*=24!0QJ#`n<0Jqv-;G%OYw8jSA!^I77w5KzwR-2l;t8#LlPG19wJ z3|)8t%~Wkx@I#HOxxTDiihbL6fO~w@LZgjW%8;?^c?jegS1jw<&>#Yt%Mzi{C%a4=5k5zkX(_m1tup W!AJ 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

=CS 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 | Valide l’intent, construit l’instruction officielle et déclare comptes, signataires, coût et politique. | | `InstructionExecutor::program_ids` | aucun | `&'static [&'static str]` | Retourne les dix-huit program IDs natifs classifiés par la crate. | -| `InstructionExecutor::supports_request` | `request: &ExecutionRequest` | `ExecutionSupport` | Pont historique exact `Yes/No`, sans état `Maybe`. | +| `InstructionExecutor::supports_request` | `request: &ExecutionRequest` | `ExApiExecutionSupport` | Pont historique exact `Yes/No`, sans état `Maybe`. | | `InstructionExecutor::build_plan` | `request: &ExecutionRequest` | `kb_core::Result` | Désérialise un `SolanaCoreExecutionIntent`, construit le plan typé puis le sérialise dans le contrat historique. | ### Types et constantes réexportés @@ -52,7 +52,7 @@ Elle ne charge aucun wallet, ne signe rien, n’appelle aucun RPC et n’envoie | `LOADER_V3_*_OPERATION` | Codes stables des onze plans Loader v3. | | `LOADER_V4_*_OPERATION` | Codes stables des neuf plans Loader v4. | -Les modules internes ne sont pas publics. Les appelants utilisent les réexports de `lib.rs` et les traits de `kb_execution_api`. Le module privé `validation` centralise le parsing des `Pubkey`, les IDs natifs, les contrôles de longueur, de montants positifs, de comptes distincts, de dérivation seedée et la construction d’erreurs partagées ; les modules de programme conservent uniquement leurs règles et libellés métier. +Les modules internes ne sont pas publics. Les appelants utilisent les réexports de `lib.rs` et les traits de `kb_execution_api`. Le module privé `validation` centralise le parsing des `MdPubkey`, les IDs natifs, les contrôles de longueur, de montants positifs, de comptes distincts, de dérivation seedée et la construction d’erreurs partagées ; les modules de programme conservent uniquement leurs règles et libellés métier. ## Contrat d’intent et résultat @@ -69,10 +69,10 @@ SolanaCoreExecutionIntent { - `intent_id` : identifiant stable fourni par l’appelant pour les logs et la corrélation ; - `fee_payer` : compte qui paiera les frais de transaction ; -- `policy` : `ExecutionPolicy` évaluée séparément par `kb_execution_safety` ; +- `policy` : `ExApiExecutionPolicy` évaluée séparément par `kb_execution_safety` ; - `operation` : variante typée de `SolanaCoreOperation`. -Le résultat `PreparedExecutionPlan` contient : +Le résultat `ExApiPreparedExecutionPlan` contient : - l’exécuteur et sa version ; - le code d’opération ; @@ -114,11 +114,11 @@ Cent neuf opérations disposent d’un builder : dix-sept System, quatre Compute SolanaCoreOperation::SystemTransfer { from, to, lamports } ``` -| Paramètre | Type | Description | -|------------|----------|-----------------------------------------| -| `from` | `Pubkey` | Compte source writable et signataire. | -| `to` | `Pubkey` | Compte destinataire writable. | -| `lamports` | `u64` | Montant transféré, strictement positif. | +| Paramètre | Type | Description | +|------------|------------|-----------------------------------------| +| `from` | `MdPubkey` | Compte source writable et signataire. | +| `to` | `MdPubkey` | Compte destinataire writable. | +| `lamports` | `u64` | Montant transféré, strictement positif. | **Résultat et effet :** une instruction System `Transfer`. Le plan exige `from`, ajoute le fee payer si nécessaire et reporte `lamports` dans `requested_spend_lamports`. @@ -146,14 +146,14 @@ SolanaCoreOperation::SystemTransferWithSeed { } ``` -| Paramètre | Type | Description | -|--------------|----------|------------------------------------------------------------| -| `from` | `Pubkey` | Compte source dérivé, writable mais non signataire direct. | -| `from_base` | `Pubkey` | Base de dérivation et signataire requis. | -| `from_seed` | `String` | Seed utilisé pour dériver `from`. | -| `from_owner` | `Pubkey` | Owner utilisé dans la dérivation de `from`. | -| `to` | `Pubkey` | Destinataire writable. | -| `lamports` | `u64` | Montant strictement positif. | +| Paramètre | Type | Description | +|--------------|------------|------------------------------------------------------------| +| `from` | `MdPubkey` | Compte source dérivé, writable mais non signataire direct. | +| `from_base` | `MdPubkey` | Base de dérivation et signataire requis. | +| `from_seed` | `String` | Seed utilisé pour dériver `from`. | +| `from_owner` | `MdPubkey` | Owner utilisé dans la dérivation de `from`. | +| `to` | `MdPubkey` | Destinataire writable. | +| `lamports` | `u64` | Montant strictement positif. | **Résultat et effet :** une instruction System `TransferWithSeed`. Le builder recalcule `Pubkey::create_with_seed(from_base, from_seed, from_owner)` et refuse l’intent si l’adresse obtenue diffère de `from`. @@ -169,13 +169,13 @@ SolanaCoreOperation::SystemCreateAccount { } ``` -| Paramètre | Type | Description | -|---------------|----------|---------------------------------------------------------------------------------| -| `from` | `Pubkey` | Compte de financement writable et signataire. | -| `new_account` | `Pubkey` | Nouveau compte writable et signataire. | -| `lamports` | `u64` | Financement initial, strictement positif. | -| `space` | `u64` | Taille de données allouée ; zéro est valide pour un compte System sans données. | -| `owner` | `Pubkey` | Programme propriétaire après création. | +| Paramètre | Type | Description | +|---------------|------------|---------------------------------------------------------------------------------| +| `from` | `MdPubkey` | Compte de financement writable et signataire. | +| `new_account` | `MdPubkey` | Nouveau compte writable et signataire. | +| `lamports` | `u64` | Financement initial, strictement positif. | +| `space` | `u64` | Taille de données allouée ; zéro est valide pour un compte System sans données. | +| `owner` | `MdPubkey` | Programme propriétaire après création. | **Résultat et effet :** une instruction officielle `CreateAccount` qui finance, alloue et assigne le compte. Le calcul du minimum rent-exempt appartient à la couche RPC/orchestration. @@ -193,15 +193,15 @@ SolanaCoreOperation::SystemCreateAccountWithSeed { } ``` -| Paramètre | Type | Description | -|---------------|----------|------------------------------------------------------| -| `from` | `Pubkey` | Compte de financement writable et signataire. | -| `new_account` | `Pubkey` | Adresse créée à partir de `base`, `seed` et `owner`. | -| `base` | `Pubkey` | Base signataire ; elle peut être identique à `from`. | -| `seed` | `String` | Seed borné par l’interface Solana. | -| `lamports` | `u64` | Financement initial strictement positif. | -| `space` | `u64` | Taille allouée, zéro compris. | -| `owner` | `Pubkey` | Owner du compte et composant de sa dérivation. | +| Paramètre | Type | Description | +|---------------|------------|------------------------------------------------------| +| `from` | `MdPubkey` | Compte de financement writable et signataire. | +| `new_account` | `MdPubkey` | Adresse créée à partir de `base`, `seed` et `owner`. | +| `base` | `MdPubkey` | Base signataire ; elle peut être identique à `from`. | +| `seed` | `String` | Seed borné par l’interface Solana. | +| `lamports` | `u64` | Financement initial strictement positif. | +| `space` | `u64` | Taille allouée, zéro compris. | +| `owner` | `MdPubkey` | Owner du compte et composant de sa dérivation. | **Résultat et effet :** une instruction `CreateAccountWithSeed`. Le builder recalcule l’adresse dérivée avant de construire le plan et déduplique `from`/`base` lorsqu’ils désignent le même signataire. @@ -219,11 +219,11 @@ SolanaCoreOperation::SystemCreateAccountAllowPrefund { | Paramètre | Type | Description | |---------------|------------------|------------------------------------------------------------------| -| `new_account` | `Pubkey` | Compte préfinancé à créer, writable et toujours signataire. | +| `new_account` | `MdPubkey` | Compte préfinancé à créer, writable et toujours signataire. | | `payer` | `Option` | Payer writable/signataire pour des lamports additionnels. | | `lamports` | `u64` | Montant additionnel ; doit être zéro lorsque `payer` est absent. | | `space` | `u64` | Taille de données à allouer, zéro compris. | -| `owner` | `Pubkey` | Programme propriétaire après création. | +| `owner` | `MdPubkey` | Programme propriétaire après création. | **Résultat et effet :** une instruction `CreateAccountAllowPrefund`, qui n’impose pas un solde initial nul. Cette opération peut verrouiller tout le solde existant dans le compte assigné ; elle doit être protégée par une politique appelante stricte et peut dépendre de l’activation runtime correspondante sur le cluster ciblé. @@ -233,10 +233,10 @@ SolanaCoreOperation::SystemCreateAccountAllowPrefund { SolanaCoreOperation::SystemAllocate { account, space } ``` -| Paramètre | Type | Description | -|-----------|----------|---------------------------------------| -| `account` | `Pubkey` | Compte System writable et signataire. | -| `space` | `u64` | Nouvelle taille strictement positive. | +| Paramètre | Type | Description | +|-----------|------------|---------------------------------------| +| `account` | `MdPubkey` | Compte System writable et signataire. | +| `space` | `u64` | Nouvelle taille strictement positive. | **Résultat et effet :** une instruction `Allocate`. Elle ne finance pas le compte et ne change pas son propriétaire. @@ -252,13 +252,13 @@ SolanaCoreOperation::SystemAllocateWithSeed { } ``` -| Paramètre | Type | Description | -|-----------|----------|--------------------------------------------------------| -| `account` | `Pubkey` | Compte dérivé writable. | -| `base` | `Pubkey` | Base de dérivation et signataire requis. | -| `seed` | `String` | Seed de dérivation. | -| `space` | `u64` | Taille strictement positive. | -| `owner` | `Pubkey` | Owner utilisé dans la dérivation et assigné au compte. | +| Paramètre | Type | Description | +|-----------|------------|--------------------------------------------------------| +| `account` | `MdPubkey` | Compte dérivé writable. | +| `base` | `MdPubkey` | Base de dérivation et signataire requis. | +| `seed` | `String` | Seed de dérivation. | +| `space` | `u64` | Taille strictement positive. | +| `owner` | `MdPubkey` | Owner utilisé dans la dérivation et assigné au compte. | **Résultat et effet :** une instruction `AllocateWithSeed`. L’adresse `account` est recalculée et validée avant construction. @@ -268,10 +268,10 @@ SolanaCoreOperation::SystemAllocateWithSeed { SolanaCoreOperation::SystemAssign { account, owner } ``` -| Paramètre | Type | Description | -|-----------|----------|---------------------------------------| -| `account` | `Pubkey` | Compte System writable et signataire. | -| `owner` | `Pubkey` | Nouveau programme propriétaire. | +| Paramètre | Type | Description | +|-----------|------------|---------------------------------------| +| `account` | `MdPubkey` | Compte System writable et signataire. | +| `owner` | `MdPubkey` | Nouveau programme propriétaire. | **Résultat et effet :** une instruction `Assign`. Elle ne transfère aucun lamport et n’alloue aucune donnée. @@ -286,12 +286,12 @@ SolanaCoreOperation::SystemAssignWithSeed { } ``` -| Paramètre | Type | Description | -|-----------|----------|------------------------------------------------------| -| `account` | `Pubkey` | Compte dérivé writable. | -| `base` | `Pubkey` | Base de dérivation et signataire requis. | -| `seed` | `String` | Seed de dérivation. | -| `owner` | `Pubkey` | Nouvel owner et composant de la dérivation attendue. | +| Paramètre | Type | Description | +|-----------|------------|------------------------------------------------------| +| `account` | `MdPubkey` | Compte dérivé writable. | +| `base` | `MdPubkey` | Base de dérivation et signataire requis. | +| `seed` | `String` | Seed de dérivation. | +| `owner` | `MdPubkey` | Nouvel owner et composant de la dérivation attendue. | **Résultat et effet :** une instruction `AssignWithSeed`. Le builder refuse une adresse qui ne correspond pas exactement à `base + seed + owner`. diff --git a/migration/khadhroony-bot2-reference/kb_executor_spl_memo/README.md b/migration/khadhroony-bot2-reference/kb_executor_spl_memo/README.md index bf06ea5..b0de999 100644 --- a/migration/khadhroony-bot2-reference/kb_executor_spl_memo/README.md +++ b/migration/khadhroony-bot2-reference/kb_executor_spl_memo/README.md @@ -39,7 +39,7 @@ La construction de plan est `Supported` pour `AddMemo` uniquement sur l'ID v4 ex La disponibilité effective de v4 sur un cluster n’est pas supposée par le builder : elle est établie par la simulation RPC obligatoire. Une future génération expérimentale officiellement encodée pourra être ajoutée sans la limiter artificiellement à un cluster. Les générations historiques restent décodables dans `kb_decoder_spl_memo`, mais ne sont pas exécutables. La démo `0.4.3` reste limitée à Devnet. -Les signataires restent visibles dans `PreparedExecutionPlan` avant toute signature. Les clés privées ne font partie ni de l’intent ni du plan. +Les signataires restent visibles dans `ExApiPreparedExecutionPlan` avant toute signature. Les clés privées ne font partie ni de l’intent ni du plan. ## Validation Devnet et démos diff --git a/migration/khadhroony-bot2-reference/kb_executor_spl_token/README.md b/migration/khadhroony-bot2-reference/kb_executor_spl_token/README.md index 2585d05..fe639f4 100644 --- a/migration/khadhroony-bot2-reference/kb_executor_spl_token/README.md +++ b/migration/khadhroony-bot2-reference/kb_executor_spl_token/README.md @@ -29,7 +29,7 @@ obsolètes. Les variantes checked doivent être préférées lorsqu’un mint et `SplTokenExecutionIntent` contient : - un identifiant d’intent et un fee payer ; -- une `ExecutionPolicy` commune, simulation obligatoire et dry-run par défaut ; +- une `ExApiExecutionPolicy` commune, simulation obligatoire et dry-run par défaut ; - une instruction typée ou un `Batch` de sous-instructions non batch ; - les comptes métier explicites ; - une autorité simple ou un multisig avec signataires ordonnés ; @@ -71,7 +71,7 @@ instruction Token ; le préflight stateful de la tranche suivante les vérifiera Les montants token ne sont pas des frais réseau et ne sont pas reportés comme lamports dépensés. Un montant explicite `UnwrapLamports` est déclaré dans `requested_spend_lamports`; un unwrap total et `WithdrawExcessLamports` restent simulation-only tant qu’une lecture d’état n’a pas borné les -lamports déplaçables. Le plafond de frais reste séparé dans `ExecutionCostLimit`. +lamports déplaçables. Le plafond de frais reste séparé dans `ExApiExecutionCostLimit`. Toute construction impose une simulation, un plafond de frais positif, une insertion canonique, l’extraction core et le replay décodé. Les mutations exigent aussi la validation de matérialisation ; diff --git a/migration/khadhroony-bot2-reference/kb_materializer_admin/README.md b/migration/khadhroony-bot2-reference/kb_materializer_admin/README.md index 520e47f..95c5de9 100644 --- a/migration/khadhroony-bot2-reference/kb_materializer_admin/README.md +++ b/migration/khadhroony-bot2-reference/kb_materializer_admin/README.md @@ -22,4 +22,4 @@ Les instructions ATA ne modifient aucune autorité de mint, freeze, close ou mul ## État ElGamal Registry -`materialize_elgamal_registry_state_snapshot` projette l’état exact lu du compte registre (`owner`, clé ElGamal publique et wire). Cette projection ne prétend pas revalider la preuve cryptographique depuis les seuls octets du compte et ne déchiffre aucune valeur. +`materializer_admin_materialize_elgamal_registry_state_snapshot` projette l’état exact lu du compte registre (`owner`, clé ElGamal publique et wire). Cette projection ne prétend pas revalider la preuve cryptographique depuis les seuls octets du compte et ne déchiffre aucune valeur. diff --git a/migration/khadhroony-bot2-reference/kb_materializer_api/README.md b/migration/khadhroony-bot2-reference/kb_materializer_api/README.md index 5ef5776..dcd97b5 100644 --- a/migration/khadhroony-bot2-reference/kb_materializer_api/README.md +++ b/migration/khadhroony-bot2-reference/kb_materializer_api/README.md @@ -18,7 +18,7 @@ Ce module fait partie du découpage strict de Khadhroony Bot2. Il doit conserver ## Contrats `0.4.0` -Le trait `EventMaterializer` consomme des observations décodées stables et déclare les familles acceptées, l’applicabilité exacte par observation ainsi que la politique applicable aux transactions réussies ou échouées. Les sorties possèdent des clés idempotentes et un statut explicite `inserted`, `replaced`, `ignored`, `refused` ou `failed`. +Le trait `MtApiEventMaterializer` consomme des observations décodées stables et déclare les familles acceptées, l’applicabilité exacte par observation ainsi que la politique applicable aux transactions réussies ou échouées. Les sorties possèdent des clés idempotentes et un statut explicite `inserted`, `replaced`, `ignored`, `refused` ou `failed`. La garde commune refuse toute matérialisation de trade, liquidité ou lifecycle supposée réussie depuis une observation échouée ou non commitée. diff --git a/migration/khadhroony-bot2-reference/kb_materializer_metadata/README.md b/migration/khadhroony-bot2-reference/kb_materializer_metadata/README.md index 74be6e5..292d0db 100644 --- a/migration/khadhroony-bot2-reference/kb_materializer_metadata/README.md +++ b/migration/khadhroony-bot2-reference/kb_materializer_metadata/README.md @@ -13,7 +13,7 @@ Une même réalité métier possède une seule projection canonique. Lorsqu’un ## Metaplex Token Metadata -`materialize_metaplex_metadata_snapshot` matérialise un `CanonicalMetadataAccountSnapshot` de type `MetadataV1` lorsque sa provenance est commitée. +`materialize_metaplex_metadata_snapshot` matérialise un `DcMetadataMtmCanonicalMetadataAccountSnapshot` de type `MetadataV1` lorsque sa provenance est commitée. La projection conserve notamment : @@ -32,7 +32,7 @@ Une provenance non commitée ou un autre layout est refusé. ## Token-2022 incorporé -`materialize_token_2022_metadata_snapshot` projette uniquement les extensions `TokenMetadata`, `TokenGroup` et `TokenGroupMember` d’un état Mint déjà parsé et borné. La provenance reste `token_2022_embedded_tlv`; aucun URI externe n’est téléchargé et aucune donnée Metaplex n’est fusionnée implicitement. +`materialize_token2022_metadata_snapshot` projette uniquement les extensions `TokenMetadata`, `TokenGroup` et `TokenGroupMember` d’un état Mint déjà parsé et borné. La provenance reste `token_2022_embedded_tlv`; aucun URI externe n’est téléchargé et aucune donnée Metaplex n’est fusionnée implicitement. Les conflits éventuels entre Metaplex, Token-2022 embedded metadata et futures sources externes doivent être résolus par une politique de provenance explicite, jamais par écrasement silencieux. diff --git a/migration/khadhroony-bot2-reference/kb_model/README.md b/migration/khadhroony-bot2-reference/kb_model/README.md index d07762a..b733e48 100644 --- a/migration/khadhroony-bot2-reference/kb_model/README.md +++ b/migration/khadhroony-bot2-reference/kb_model/README.md @@ -18,7 +18,7 @@ Ce module fait partie du découpage strict de Khadhroony Bot2. Il doit conserver ## Contrat canonique `0.3.2` -Le crate expose maintenant `CanonicalTransaction` et les structures associées pour représenter une transaction Solana indépendamment de sa source. Le contrat couvre les transactions legacy et v0, les comptes statiques et chargés par ALT, les instructions externes et internes, les logs, les balances SOL/SPL, les erreurs, rewards, return data, compute units et block time. +Le crate expose maintenant `MdCanonicalTransaction` et les structures associées pour représenter une transaction Solana indépendamment de sa source. Le contrat couvre les transactions legacy et v0, les comptes statiques et chargés par ALT, les instructions externes et internes, les logs, les balances SOL/SPL, les erreurs, rewards, return data, compute units et block time. La sérialisation canonique : diff --git a/migration/khadhroony-bot2-reference/kb_pipeline/README.md b/migration/khadhroony-bot2-reference/kb_pipeline/README.md index 5344097..a2f5dd1 100644 --- a/migration/khadhroony-bot2-reference/kb_pipeline/README.md +++ b/migration/khadhroony-bot2-reference/kb_pipeline/README.md @@ -36,7 +36,7 @@ Le crate expose `execute_http_backfill`, `BackfillRequest`, `BackfillSource` et ## Replay decode `0.4.0` `execute_decode_replay` sélectionne des instructions core contextualisées par signatures, états, slots, program IDs et instruction paths. Il applique un dispatch déterministe, une concurrence bornée, l’arrêt coopératif, le skip processor/version/hash, un force replay obligatoirement borné par signatures ou par autorisation « toutes les signatures », et la persistance atomique via `DecodePipelineStore`. -Depuis `0.4.1-pre.014`, le contrat core `2` ajoute les instructions outer ordonnées au calcul de `contextual_input_hash`. `DECODE_PIPELINE_VERSION` reste `1` : le changement de contrat est déjà versionné et force naturellement un nouveau hash. Après application du delta, un force replay est nécessaire pour remplacer les résultats calculés avec le contrat `1`. Les transactions, rollbacks et clés d’idempotence du pipeline restent inchangés. +Depuis `0.4.1-pre.014`, le contrat core `2` ajoute les instructions outer ordonnées au calcul de `decoder_api_decoder_api_contextual_input_hash`. `DECODE_PIPELINE_VERSION` reste `1` : le changement de contrat est déjà versionné et force naturellement un nouveau hash. Après application du delta, un force replay est nécessaire pour remplacer les résultats calculés avec le contrat `1`. Les transactions, rollbacks et clés d’idempotence du pipeline restent inchangés. La matérialisation reste optionnelle, exige au moins un matérialiseur enregistré et n’est appelée qu’après la persistance réussie du décodage. Depuis `0.4.1-pre.005`, la sélection vérifie d’abord l’applicabilité exacte surface/entrée ; les observations de même famille mais hors périmètre ne créent plus de faux refus. Le résumé distingue les statuts par processor, les skips, les sorties matérialisées et les refus de politique. diff --git a/migration/khadhroony-bot2-reference/kb_store_core/README.md b/migration/khadhroony-bot2-reference/kb_store_core/README.md index 9164430..5350e2f 100644 --- a/migration/khadhroony-bot2-reference/kb_store_core/README.md +++ b/migration/khadhroony-bot2-reference/kb_store_core/README.md @@ -71,7 +71,7 @@ Les premiers contrats stabilisés sont volontairement minimaux : | `CoreInnerInstructionInsert` | Instruction CPI résolue avec parent, chemin et hash de payload. | | `CoreLogInsert` | Log ordonné avec rattachement prudent et hash de texte. | | `CoreBalanceChangeInsert` | Delta SOL ou token exact, déterministe et lié au compte résolu. | -| `CoreInstructionReplayInput` | Instruction avec contexte extrait, dont les instructions outer ordonnées depuis le contrat `2`, pour les décodeurs. | +| `MdCoreInstructionReplayInput` | Instruction avec contexte extrait, dont les instructions outer ordonnées depuis le contrat `2`, pour les décodeurs. | | `CoreInstructionReplayFilter` | Filtre de sélection des instructions à traiter ou rejouer. | | `CoreInstructionLifecycleMark` | Marquage d'état pour une instruction normalisée. | | `CoreInstructionProcessingState` | État opérationnel d'une instruction pour replay partiel. | @@ -181,12 +181,12 @@ kb_sol_ops_processing_ledger Le replay opérationnel doit pouvoir cibler `CoreInstructionRow`, pas seulement `CoreTransactionRow`. Cela permet à un décodeur de demander uniquement les instructions `Pending`, `Failed` ou `ReplayRequested`, filtrées par `program_id` et plage de slots. -Le décodage réel doit ensuite recevoir `CoreInstructionReplayInput`, c'est-à-dire une instruction avec son contexte extrait : comptes résolus, inner instructions, logs, balances et erreur de transaction. Cette décision prépare les futures tables `kb_sol_core_instructions`, `kb_sol_core_logs`, `kb_sol_core_balance_changes` et `kb_sol_ops_processing_ledger` sans figer encore leur SQL exact. +Le décodage réel doit ensuite recevoir `MdCoreInstructionReplayInput`, c'est-à-dire une instruction avec son contexte extrait : comptes résolus, inner instructions, logs, balances et erreur de transaction. Cette décision prépare les futures tables `kb_sol_core_instructions`, `kb_sol_core_logs`, `kb_sol_core_balance_changes` et `kb_sol_ops_processing_ledger` sans figer encore leur SQL exact. ## Extension `0.2.4` -`0.2.4` rend les contrats core effectivement utilisés par `kb_store_pg`. Le replay reste planifié depuis `CoreInstructionRow`, mais les décodeurs reçoivent `CoreInstructionReplayInput` avec account keys, inner instructions, logs et balance changes. +`0.2.4` rend les contrats core effectivement utilisés par `kb_store_pg`. Le replay reste planifié depuis `CoreInstructionRow`, mais les décodeurs reçoivent `MdCoreInstructionReplayInput` avec account keys, inner instructions, logs et balance changes. Le champ `balance_change_index` est ajouté au contrat `CoreBalanceChangeInsert` afin de dédupliquer les balance changes par ordre d'extraction dans une transaction. @@ -217,6 +217,6 @@ La couverture machine-readable est portée par `DecodeCoverageDeclarationInsert` ## Contrat contextualisé `2` -Depuis `0.4.1-pre.014`, `CoreInstructionReplayInput` transporte `outer_instructions_json`, obligatoirement un tableau JSON. Chaque entrée représente une instruction outer avec `instructionIndex`, `instructionPath`, `programId`, `payloadJson` et `payloadHash`. La liste inclut l’instruction cible et conserve l’ordre numérique du message. Ce champ participe à la sérialisation déterministe et donc au hash de replay. +Depuis `0.4.1-pre.014`, `MdCoreInstructionReplayInput` transporte `outer_instructions_json`, obligatoirement un tableau JSON. Chaque entrée représente une instruction outer avec `instructionIndex`, `instructionPath`, `programId`, `payloadJson` et `payloadHash`. La liste inclut l’instruction cible et conserve l’ordre numérique du message. Ce champ participe à la sérialisation déterministe et donc au hash de replay. Ce changement est purement contractuel : il ne requiert aucune migration SQL et ne modifie pas les garanties d’idempotence ou de rollback des stores. diff --git a/migration/khadhroony-bot2-reference/kb_store_pg/README.md b/migration/khadhroony-bot2-reference/kb_store_pg/README.md index b57f152..b913ed9 100644 --- a/migration/khadhroony-bot2-reference/kb_store_pg/README.md +++ b/migration/khadhroony-bot2-reference/kb_store_pg/README.md @@ -193,7 +193,7 @@ Le repository `CoreTransactionStore` est implémenté pour : - insérer les logs ordonnés ; - insérer les balance changes ; - lister les instructions à rejouer ; -- construire `CoreInstructionReplayInput` avec contexte, dont toutes les instructions outer de la signature ordonnées par index numérique ; +- construire `MdCoreInstructionReplayInput` avec contexte, dont toutes les instructions outer de la signature ordonnées par index numérique ; - marquer le lifecycle d'une instruction. ## Baseline canonique `0.3.1` diff --git a/migration/khadhroony-bot2-reference/prompts/005_v0_2_2_pg_connection_migrations.md b/migration/khadhroony-bot2-reference/prompts/005_v0_2_2_pg_connection_migrations.md index c1804d3..450d9c1 100644 --- a/migration/khadhroony-bot2-reference/prompts/005_v0_2_2_pg_connection_migrations.md +++ b/migration/khadhroony-bot2-reference/prompts/005_v0_2_2_pg_connection_migrations.md @@ -21,7 +21,7 @@ Ajouter uniquement l'infrastructure PostgreSQL : - diagnostic du schema courant ; - tests offline autant que possible. -Ne pas créer encore les tables Solana finales. Les premières tables réelles restent prévues pour `0.2.3` et `0.2.4`. Les migrations doivent cependant rester compatibles avec les contrats `CoreInstructionReplayInput`, `CoreLogInsert`, `CoreAccountKeyInsert` et `CoreBalanceChangeInsert`. +Ne pas créer encore les tables Solana finales. Les premières tables réelles restent prévues pour `0.2.3` et `0.2.4`. Les migrations doivent cependant rester compatibles avec les contrats `MdCoreInstructionReplayInput`, `CoreLogInsert`, `CoreAccountKeyInsert` et `CoreBalanceChangeInsert`. ## Règle PostgreSQL obligatoire diff --git a/migration/khadhroony-bot2-reference/prompts/019_v0_4_0_decoder_infrastructure.md b/migration/khadhroony-bot2-reference/prompts/019_v0_4_0_decoder_infrastructure.md index 211056f..6c4276d 100644 --- a/migration/khadhroony-bot2-reference/prompts/019_v0_4_0_decoder_infrastructure.md +++ b/migration/khadhroony-bot2-reference/prompts/019_v0_4_0_decoder_infrastructure.md @@ -57,7 +57,7 @@ Le contrat de décodage doit fournir au minimum : - changements de balances pertinents ; - version du contrat core. -Réutiliser ou faire évoluer `CoreInstructionReplayInput` au lieu de recréer un modèle parallèle par décodeur. +Réutiliser ou faire évoluer `MdCoreInstructionReplayInput` au lieu de recréer un modèle parallèle par décodeur. ### Transactions échouées diff --git a/migration/khadhroony-bot2-reference/prompts/022_v0_4_3_spl_memo.md b/migration/khadhroony-bot2-reference/prompts/022_v0_4_3_spl_memo.md index a1cb43f..f052f69 100644 --- a/migration/khadhroony-bot2-reference/prompts/022_v0_4_3_spl_memo.md +++ b/migration/khadhroony-bot2-reference/prompts/022_v0_4_3_spl_memo.md @@ -103,7 +103,7 @@ Respecter strictement : - aucun `bincode` direct ; - aucune logique métier lourde dans `kb_app_demo` ; - `CHANGELOG.md` inchangé avant validation complète du jalon ; -- `TRACING_TARGET` canonique dans `src/constants.rs` pour toute crate opérationnelle ; +- `DC_METADATA_MTM_TRACING_TARGET` canonique dans `src/constants.rs` pour toute crate opérationnelle ; - aucune valeur JSON Tauri exportée en `bigint` lorsqu'elle traverse `invoke`, `emit` ou `JSON.stringify`. ## 7. Audit préalable obligatoire diff --git a/migration/khadhroony-bot2-reference/prompts/023_v0_4_4_spl_token.md b/migration/khadhroony-bot2-reference/prompts/023_v0_4_4_spl_token.md index 7cb4ea5..62ea26c 100644 --- a/migration/khadhroony-bot2-reference/prompts/023_v0_4_4_spl_token.md +++ b/migration/khadhroony-bot2-reference/prompts/023_v0_4_4_spl_token.md @@ -125,7 +125,7 @@ Respecter strictement : - aucun `bincode` direct ; - aucune logique métier lourde dans `kb_app_demo` ; - `CHANGELOG.md` inchangé avant validation complète de `0.4.4` ; -- `TRACING_TARGET` canonique dans `src/constants.rs` pour toute crate opérationnelle ; +- `DC_METADATA_MTM_TRACING_TARGET` canonique dans `src/constants.rs` pour toute crate opérationnelle ; - aucune valeur JSON Tauri exportée en `bigint` lorsqu’elle traverse `invoke`, `emit` ou `JSON.stringify` ; - montants on-chain bruts sérialisés sans perte, sous forme de chaîne à la frontière Tauri si nécessaire. diff --git a/scripts/audit_khadhroony_workspace_rules.py b/scripts/audit_khadhroony_workspace_rules.py index f717853..d37608d 100755 --- a/scripts/audit_khadhroony_workspace_rules.py +++ b/scripts/audit_khadhroony_workspace_rules.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # file: scripts/audit_khadhroony_workspace_rules.py -# version: 3 +# version: 4 """Audit mechanically verifiable rules specific to khadhroony-bot3.""" @@ -90,13 +90,16 @@ def audit_kb_lib_tracing(root: pathlib.Path) -> list[Violation]: if not crate_root.exists(): return violations root_text = crate_root.read_text(encoding="utf-8") - aliases = set( - re.findall( - r"^pub\(crate\) use crate::[A-Za-z0-9_:]+::([A-Z][A-Z0-9_]+_TRACING_TARGET);$", - root_text, - re.MULTILINE, - ) + aliases = set() + alias_pattern = re.compile( + r"^pub\(crate\) use crate::[A-Za-z0-9_:]+::" + r"([A-Z][A-Z0-9_]+)(?: as ([A-Z][A-Z0-9_]+))?;$", + re.MULTILINE, ) + for match in alias_pattern.finditer(root_text): + exported_name = match.group(2) if match.group(2) is not None else match.group(1) + if exported_name.endswith("_TRACING_TARGET"): + aliases.add(exported_name) target_pattern = re.compile( r'^pub\(crate\) const TRACING_TARGET: &str = "([^"]+)";$', re.MULTILINE, diff --git a/scripts/audit_rust_general_rules.py b/scripts/audit_rust_general_rules.py index 174c528..70a828b 100755 --- a/scripts/audit_rust_general_rules.py +++ b/scripts/audit_rust_general_rules.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 # file: scripts/audit_rust_general_rules.py -# version: 3 +# version: 4 """Audit mechanically verifiable Rust rules shared by all Rust projects.""" @@ -54,6 +54,18 @@ def audit_file(root: pathlib.Path, path: pathlib.Path) -> list[Violation]: violations.append(Violation("RUST003", relative, max(len(lines), 1), "file must end with exactly one newline")) for index, line in enumerate(lines, 1): stripped = line.strip() + if stripped.startswith("pub mod ") and ( + relative == "kb-lib/src/lib.rs" and stripped == "pub mod materializer;" + or relative.startswith("kb-lib/src/materializer") + ): + violations.append( + Violation( + "RUST014", + relative, + index, + "consolidated materializer modules must remain private", + ) + ) if re.match(r"^(?:pub(?:\(crate\))?\s+)?use\s+", stripped) is None: continue is_export = stripped.startswith("pub use ") or stripped.startswith("pub(crate) use ") @@ -70,12 +82,30 @@ def audit_file(root: pathlib.Path, path: pathlib.Path) -> list[Violation]: for attribute in ("#![warn(missing_docs)]", "#![deny(unreachable_pub)]", "#![forbid(unsafe_code)]"): if attribute not in lines[:20]: violations.append(Violation("RUST020", relative, 1, f"missing `{attribute}`")) + previous_export_line: int | None = None + previous_export_visibility: str | None = None for index, line in enumerate(lines, 1): if not (line.startswith("pub use ") or line.startswith("pub(crate) use ")): continue previous = lines[index - 2].strip() if index >= 2 else "" if not previous.startswith("///"): violations.append(Violation("RUST021", relative, index, "crate-root re-export requires adjacent rustdoc")) + visibility = "pub(crate)" if line.startswith("pub(crate) use ") else "pub" + if ( + previous_export_line is not None + and previous_export_visibility == visibility + and any(not candidate.strip() for candidate in lines[previous_export_line:index - 1]) + ): + violations.append( + Violation( + "RUST022", + relative, + index, + "crate-root re-export block contains an empty line", + ) + ) + previous_export_line = index + previous_export_visibility = visibility return violations

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 Q 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ΝgVE%(M};-^IRvciSHh3md@f9 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∨%B2GXQ$t#R*@Oj;?2H1GvBi{0-T{_$<)N2 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%0A}k0jIp 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

LC!;R=~h=SYV@I1U1ne#JO*6aTiARlQJ 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ã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 xCXd&?`204k4 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�dsdbU`KTKVS& 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%0ArI?Oyu3dRFlF^z>v`)K2+eTu`>Lm^P33 z#;#=m{g%tamz{vv+1fwlY3mPbqruPsD2t$JP1Q(1#ngtp^Lu>MUG#bN?O^X(?Benx zolw^lXYcf;eHyZDEq;D2{^I6n!OZ@9p53#}MYE5BA9YFfJMp!aL9?%PW15AErf;xg zV^tjC>KcY|A<*HRKk@V)d8L&91mqO0w=05YR@dVGm#1wUpp73qZ8*1P)n{9mXN%kr z1U4OQM;tR+uW#VKfLmTskOq3m#KWU^=-|eU$*r9s8;g z&-)Mu65D<|EC@>&PvXJC-4Wfx#%KLb@(z!N{nN0bUU@P8Dek^4XQE!9>{VS*KjRy~ zXJc%JkN~2uN?ETDl8|YtZU_~C)yy(PN4oPHMjR}u)%N?z98&r)!uzsVYKTou4FDA< z6|tb*Nq@@gp)laeb9bkyn?!1@xtY$*XnDwE%5fzvVC4ya*fifXr~t9i)JisJ>NHWH zB#NrP^(mCyCdU>KGFMQn2ZT7di?BS*exs<>g0|W}8NDeO*TJUpNwhOmdIanD5bPE^ zo)pcA0JgoD(Ppx10%BcV?d+m7@q^F87orEcQ8GMzBMe;>m|kCu^##KJg*_hBU5YTTnoUwIibJoxzEg8v8QX1_@zEcFaY{-!K7%gk%%k(MIYU-*d48<75C-F2Z44d*UeQsoP$nZa&90v0m--^nyt>e1{c}Gt-du>8Eijzq zzIY~x5Uvx}$;_?*Z$nXhd-~|MHr4_zMaW93QLT4_v9E3XH(YNsGdyYq?S+%l9 zMWhZQ3hGKSwgLpI*C?1B$xN$yR<)!uMU3#4JT;iHr(bRrsz#xHTURtZN?YFG6{5oO zgzQv820HCqD2N7xFVPr_2+%XZjGD&(Lp9#{P0(YbwN?yHmXPEFd-&S{e!1}KYyO%1 zO--(Baenl)@lrzLw3HH)gD_h+Z!0_7@BY=t&CmDy>@jOHDrr^;QX}kQi<&A_C6$;W zc1?mRQGo#+xK$ApvaNb7?JNx z1ZVcPmE|WhT-W#o;@B++r^!42;%BoH_V$}p-;e*f4IRoapG*D>wwvTa)gCpPGj{-p ze>uKG1@IQOs)8P`hu8S0bcp#_IJDP6#i)Jfkl6`F^TOMady`n7j}b0`S&tC*8Fq`~ zxTskrTY6gtBNs-v?l@M!XwXI1Xm14Bb^j(uG*^~vtxaT~CWxt1fm_PE!9b=Jv5xaq z+GOn~q1(iI3?xJ#>QVuHy*Syz2VdR-SQ6YK06A4g0J;LW)YnZ31gL$%L9UK5cYy|W zS(A~zg26af_?Qc!V(ZidMH}3~$@4gZk&JIwYBe!3rn4<;k!B#{kBDGK=Iw8H!hU&8 zZVZqFN#A7dkPV^k#*pJ4O-<2~VVC*moS>2b&euqd~N4eT%ZRfRZkU%Y~h;o|(ZkOk^dS-szdJ#!--! zSdYpQP()USJ`^G|DK^K-tg;s<{4g;U^oG$?e|H$;azv%>q!>*qn_ zt!8CZ;!-1yz@7e{W81UI&$ePFQ^Uaj>y=(HyS($?>2Uo1j*S2{nWc0Q#m~2lW~I`? z^;6(SO;`EuHDpwXv6%Jz@EvrBSzOhlrM`U8w_A0`No)jtN(512FvFLDEnQ^wiCPG~ zeIL}I^qQ4@Jq<2LFZ~@uswznCCCgItVb8~yOLUVveme`VKDD`WnlTHB5ZKskn8mD<1ozgId_F7sbvSUBagKp0rJc-sqBelb5@8= zY~lVH>qFsH$8~CxoG)h<-Wd@uO!9UV>B4Vr2b~1bhU#6F^5#2$S>#+t17d+ zXZXK}zuYcvXG~dn`oU-W`}G<)=xD$a5J)i&p@F>39e4PrHcCEa{&V2qRl6a#+yOf> zsxtQZ3k|x7+9jSQc7rYPm~@`55n}+^xm`^?wn-RXG#CH~4(lbCqwvN>O1FT1p^?jm zYh5p%SZBVdW(x`sB^kjN8{XXXUHQtx;rH;LV1ygvlu3qe{m3(a68iStfF_Pxf_0^s zyvM0guOXPNv9BR8$ew0&U$@*eqnPoRz>~{Dbu4(Ia@NR<{NWe+{%)fBHuuVPlr~}u z4db!Ee&Y4Vl2ml3NTE7(9yx|6U3QiC895)N%=33~yFVl4A6Bv3`6Mux@37dTczK15y&pIWdSOGUssL&umqnx&uUV*72hHQ|&J9&{#9xi>q+8oYOfNrMyJ zs9^FL2*I$i!7Ay_Bx&v2;tb5gix~UczejH3>q6_^PmZlRZ z2L9`hn|jxi_!LJO3NzM;3z&`J`wCc}ad{$p-^^dLIoenhgIOC=-~v9DmF;yXXuh!= zHeQ)tQnk8lzIaEnyqz^RZb*m6KIs^hqxM$DR%fmMYfd4u|3HAY+;HrHo)pxc| zZgLh_#_LYVO{2JaBpp%Lg^e44wCS)m!AMRy^T(FJJHlQ0H+CuKyQYY-d3PAdfgdR8 zJYZSFL@qK;QquYLutmK)#~nUlQnaSvVHH3BQEFn6xRM`ePE{O~M)HTVs*f%6YsAe& z9|6r>PKdxgJb~5tTc*8MEd@;`{ZX=A7QgcPU&u|LSZ(-`(upKCRUsv` z`K$9al9eELt2b2MU1l#m9EGT!-GnrmFtX)vr1RgEvZHzxhBHG_tdsb;rq5NtM!-xs zw1qd%w+HqrC~qPOFW?R_=sRYr57n&x2^-SWAoSxjDeenu?wpY>$28%D{#8N8FnB0P z(grbP?-g)iy=kCC#*$U-GUXX$tt}KmUi9UKM~a$fG)k_;nsay$F2zi&#G4H%n(cbo zh3ie*juokEiMK1V&iY*jH;e)1!!=r?n+^^*KII9Dapx_yVoCD#j}2j_6%bWU#hM1^8m`$Nt!naLUna74= z?-bs4AcQAIh(|D7_RrkpSa2qP`%1W9cj66QVd;0&n2ju3P4{o1^-Y}M$n*e#@qB+u zZ}7hNp3sAytJZ3Y6^5u5=LItMDQa-6$j5$tarv_mcNQRx8b*wz87jLK?1? zZL8O#lpKD3pDs#Bas!$5BUN+#-u(t2@6lNcme10~EiZtk3?||tRUremA=ravh&Cdx z5AC~pNdn+CR(i66<szAiXs%Xf`=h0Nli1upnt$DW&Zu&Q?`93WOt zM=L!g{%|oO{$lEGDVCRQq6}i2Wt-nuCEDAG&r~*Z1I{~Bo?9-f>&dL~p@e&PIkEQj z+sKwpxuOmfkork^|6Djgmqf8)Dbg3;uHy}L-ivqSooQSd$o9duG#o$_t@e6K&LyO=dxYG z%lg}v+=!;w@qJ1YZpJK)5i87_4({=T|9PW)@A_kC<>PfA<10`fim#QZ961gE7b+Iz zkD~H}GUPmT;(VRvT4L%rN0^O>PiYh>Uea_QD31Qv_z$^d5+dCa2j)FINzHP0$a1bG zU`oO1*eCyFxP@PsWuYNn$@;;!SCO{L42(?GHso-vQ6^5D(Tq+TUkwe1w72Ace`2fW z1*`5ikX$#fyBjSV-M2LDdq&DW#2Qhcd9ehwzj48!{Vl&>)887O$ZRVfH}N#{I@4{Q zI~D6sI&H&(hDwd-#o{MWV7{MBI>>6ADY9ju&HhYFz?GzyRZK@1CE#!AUR1j>>=C+Cuk+j;$W_OmYx&1=NChg~!ZDQxSKMUKzeSLv&9`NqOqH!JEeok1LD*?+j;`5}%p z1d@B4K&oAhra2n{5nzF#0#H042G`RpXjv3uUn_Tjiojzrr$GxZoiw(h5&=^`}VP)uwPhC2L7?6TE!0JVegs#$m5s#{dKOkqGG z4guQ0fNMo;3haof8HHe7AliUz25Lq^Ci^}~sxT zx>4N)9Jz(3DTv8$r(+0$$?*d@<2h%ykbB-Dcb_O1vlj+2)$A^c*H(Z2-=z;yoopdcJ7003S8gAE>-3N!8ZPT10g zPm;EgeRUanncBMXhy+K(nQ{U)r+fESUXuc&yALPXYV`P(z9B0F>|87LoY4ooG!M|c zU9UgF=UwsMh<_?p@*j?2CKYw3$^$FSceSmQYj$Pu`IqlVN#47Kdg!SUlA?H^NT?`D zta_;7oY$G?ev^L~m(V*AsC($H{x~JI)3%BZ9tu$2J4T#QnP2YZ+^!d@%?j{Qhyx5k z#utGe*p_7TNL4IwsQ|iFa!IigbD!`p-tT0Y(wZlv)a>%{iJ4%xG~bz4vwA_yxT;S1 zh^|ERzjgKsPKbaO5aSy&dk@--Ef`p{!ikhFx6@&$E}>9RP~lbi8~ml}8Yg@f8~qQM zRk>pQ@fAjjL&vnw9wY@V}#h*%YsMEZc0(!;yMb4YME1NZj5xiI~9l zLyq_g?Xih|879tcm(9S43{~9KcBqZI<>D3*I?1*i2Ls4uyjS&`jSLLjODmVu9)rjx z7{Ut4?!B&so5AD1D#p6n$0A1f$EOv;N{q~O5+WFX65n!@4T-_~=;xy>AuHd}%P;i$ zYq6&z9bh*VYSq~ZYpqS7h0<|vEacZ@bCzl~O`YyB1_G)^$D2*bD!nDtFf&M{pr1|J zgK`_|U6-`?1i)YFwivG)*ed1HUPh%Dt~pXNp(I6>iloNoZGcKACn6v{Wg0}(jg%lV zso{of_nWSJD{w_CF>|H?Zt5)9<>GwVdS3CsC?!I)IwwaM8^*)4EGpmIcgCd&Xr zM4wVS3@K=SdY4B9FWi_n!heMjCeF$Inazo+2(-1Bp-hGW{k}dbFbv$#Xd*v2usCgD zyyU%KQN7N~QhMt&AN5-nBkJ|r%~mXQHSl45F!uUp;MKU1IPI1vFB@2Qd})fCHLcqL#~2#bPS; zgIdew+q$FXaxQfl^shdvuG~+v#+9b|5>-pnf9hiVQ!nqR`18tZ;nq05H>*Oj7%zgX z4|DNZdAq6Nl9Ng*!J*VNlZ%-0bg-6~2z!h`Z-SjSs=;H8DqN(-B7WuGiV_2Hg`d%- zSG2n{#*bQI&jEwWS7&MVl9c?hR1G3jR{M(UWDX1%+ZrLQ@xG({VTfZ$?7DQ;n>F#P zIvbOL%(3eYn{FzT)M~>@U6`QAX&%hcxlQah9J*44Q9@Pgo#56?0MCF_e?cHS%d&ji zlfwW7-MX1v6i2(tNBZYRfXqq}3Cx{5m z8avWd6Uiq8#Co!){Kh3>YxC$3pcHz zM4=-fw}~#;o@?VFns){`h_*Jng>=U5pM8dI{qgC^?!3DRznz_PourOT3p9_OCtUm; z?`T!8Q<+Wi)@T`fI*DcWDfHMm4xF z1bj*05K-DOUNv?PKI#4yqWND6jQ^4$*sB7y8`n9&gWWDhQEq1na~eZk&N+1Xh7#TgNE zY#DMf0lKDH#wTJ-OaT?NmI>)*X7ercZA(?7Qmj&)+E6ZRf1pe%qA!5*J>Ddps{zp~ zxRpkp;;EfnUl3A=Hp!*iI_o;H>x7dPm6SM~aYDMGYQoc@19AL|Xyb?|L<;BTI?~=Z zR13x`@p>VK`d{eMzOxNJz>zk$N1F2YWqF4EuVOGo2jY)$H?k9^#G(STC}PTQXkT