From e753a80c3a5ae948986f7c5d35f77d444bee337b Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Fri, 24 Jul 2026 15:59:00 +0200 Subject: [PATCH] v0.1.0-pre.012 --- README.md | 4 +- ROADMAP.md | 16 +- RULES.md | 25 +- docs/PROGRAM_NAMING.md | 18 +- docs/PROGRAM_REGISTRY_CONTROL.md | 4 +- docs/SOLANA_INTERFACE_DEPENDENCIES.md | 10 +- docs/SPL_MEMO_MATRIX.json | 8 +- kb-lib/README.md | 19 +- kb-lib/src/decoder.rs | 637 +- kb-lib/src/decoder/adapter.rs | 9 +- .../decoder/adapter/saber_decimal_wrapper.rs | 43 +- kb-lib/src/decoder/admin.rs | 17 +- kb-lib/src/decoder/admin/jupiter_lock.rs | 41 +- kb-lib/src/decoder/admin/pump_fees.rs | 41 +- kb-lib/src/decoder/amm.rs | 158 +- kb-lib/src/decoder/amm/aldrin_v1.rs | 41 +- kb-lib/src/decoder/amm/aldrin_v2.rs | 41 +- kb-lib/src/decoder/amm/alphaq.rs | 41 +- kb-lib/src/decoder/amm/believe.rs | 41 +- kb-lib/src/decoder/amm/bonk_swap.rs | 41 +- kb-lib/src/decoder/amm/fluxbeam.rs | 41 +- kb-lib/src/decoder/amm/goon_fi.rs | 41 +- kb-lib/src/decoder/amm/goosefx_gamma.rs | 41 +- kb-lib/src/decoder/amm/goosefx_v2.rs | 41 +- kb-lib/src/decoder/amm/guac_swap.rs | 41 +- kb-lib/src/decoder/amm/lifinity_swap_v2.rs | 41 +- .../src/decoder/amm/metadao_futarchy_amm.rs | 43 +- kb-lib/src/decoder/amm/metadao_v0_5.rs | 41 +- kb-lib/src/decoder/amm/meteora_damm_v1.rs | 41 +- kb-lib/src/decoder/amm/meteora_damm_v2.rs | 41 +- kb-lib/src/decoder/amm/obric_v2.rs | 41 +- kb-lib/src/decoder/amm/one_dex.rs | 41 +- kb-lib/src/decoder/amm/pump_swap.rs | 41 +- kb-lib/src/decoder/amm/raydium_lp_v4.rs | 41 +- kb-lib/src/decoder/amm/solfi.rs | 41 +- kb-lib/src/decoder/amm/solfi_v2.rs | 41 +- kb-lib/src/decoder/amm/vertigo.rs | 41 +- kb-lib/src/decoder/amm/virtuals.rs | 41 +- kb-lib/src/decoder/amm/woofi.rs | 41 +- kb-lib/src/decoder/amm/zero_fi.rs | 41 +- kb-lib/src/decoder/amm/zora.rs | 41 +- kb-lib/src/decoder/anchor.rs | 9 +- kb-lib/src/decoder/anchor/core.rs | 41 +- kb-lib/src/decoder/bridge.rs | 29 +- .../circle_cctp_token_messenger_minter.rs | 43 +- .../circle_cctp_token_messenger_minter_v2.rs | 43 +- .../src/decoder/bridge/layer_zero_endpoint.rs | 43 +- .../src/decoder/bridge/layer_zero_executor.rs | 43 +- kb-lib/src/decoder/clmm.rs | 41 +- kb-lib/src/decoder/clmm/byreal.rs | 41 +- kb-lib/src/decoder/clmm/fusion.rs | 41 +- kb-lib/src/decoder/clmm/orca_whirlpool.rs | 41 +- kb-lib/src/decoder/clmm/pancake_swap.rs | 41 +- kb-lib/src/decoder/clmm/raydium.rs | 41 +- kb-lib/src/decoder/clmm/stabble.rs | 41 +- kb-lib/src/decoder/cpmm.rs | 9 +- kb-lib/src/decoder/cpmm/raydium.rs | 41 +- kb-lib/src/decoder/dlmm.rs | 9 +- kb-lib/src/decoder/dlmm/meteora.rs | 41 +- kb-lib/src/decoder/fees.rs | 17 +- kb-lib/src/decoder/fees/bags_fee_share_v1.rs | 41 +- kb-lib/src/decoder/fees/bags_fee_share_v2.rs | 41 +- kb-lib/src/decoder/governance.rs | 9 +- .../decoder/governance/metadao_bid_wall.rs | 43 +- kb-lib/src/decoder/launchpad.rs | 59 +- kb-lib/src/decoder/launchpad/boop_fun.rs | 41 +- kb-lib/src/decoder/launchpad/metadao_ico.rs | 41 +- kb-lib/src/decoder/launchpad/meteora_dbc.rs | 41 +- kb-lib/src/decoder/launchpad/moonit.rs | 41 +- .../src/decoder/launchpad/orca_wavebreak.rs | 43 +- kb-lib/src/decoder/launchpad/printr.rs | 41 +- kb-lib/src/decoder/launchpad/pump_fun.rs | 41 +- .../src/decoder/launchpad/pump_pumpup_ai.rs | 43 +- .../decoder/launchpad/raydium_launchlab.rs | 43 +- kb-lib/src/decoder/lending.rs | 47 +- kb-lib/src/decoder/lending/clone.rs | 41 +- .../decoder/lending/jupiter_lend_borrow.rs | 43 +- .../src/decoder/lending/jupiter_lend_earn.rs | 43 +- .../lending/jupiter_lend_flash_loan.rs | 43 +- .../decoder/lending/jupiter_lend_liquidity.rs | 43 +- kb-lib/src/decoder/lending/kamino.rs | 41 +- kb-lib/src/decoder/lending/marginfi_v2.rs | 41 +- kb-lib/src/decoder/lock.rs | 9 +- kb-lib/src/decoder/lock/raydium_lp.rs | 41 +- kb-lib/src/decoder/metadata.rs | 150 +- .../metadata/metaplex_token_metadata.rs | 142 +- .../metaplex_token_metadata/account.rs | 190 +- .../src/decoder/metadata/spl_name_service.rs | 43 +- kb-lib/src/decoder/nft.rs | 9 +- kb-lib/src/decoder/nft/metaplex_bubblegum.rs | 41 +- kb-lib/src/decoder/orderbook.rs | 23 +- .../decoder/orderbook/jupiter_limit_order.rs | 43 +- .../orderbook/jupiter_limit_order_v2.rs | 43 +- kb-lib/src/decoder/orderbook/openbook_v2.rs | 41 +- kb-lib/src/decoder/perpetuals.rs | 23 +- kb-lib/src/decoder/perpetuals/drift_v2.rs | 41 +- kb-lib/src/decoder/perpetuals/jupiter.rs | 41 +- kb-lib/src/decoder/perpetuals/zeta.rs | 41 +- kb-lib/src/decoder/router.rs | 41 +- .../src/decoder/router/dflow_aggregator_v4.rs | 43 +- .../decoder/router/jupiter_aggregator_v4.rs | 43 +- .../decoder/router/jupiter_aggregator_v6.rs | 43 +- kb-lib/src/decoder/router/jupiter_dca.rs | 41 +- kb-lib/src/decoder/router/okx_labs_v1.rs | 41 +- kb-lib/src/decoder/router/okx_labs_v2.rs | 41 +- kb-lib/src/decoder/rwa.rs | 9 +- kb-lib/src/decoder/rwa/ondo_global_markets.rs | 43 +- kb-lib/src/decoder/solana.rs | 8 +- kb-lib/src/decoder/solana/core.rs | 8 +- kb-lib/src/decoder/spl.rs | 68 +- kb-lib/src/decoder/spl/account_compression.rs | 43 +- .../decoder/spl/associated_token_account.rs | 8 +- kb-lib/src/decoder/spl/elgamal_registry.rs | 18 +- kb-lib/src/decoder/spl/memo.rs | 6 +- kb-lib/src/decoder/spl/noop.rs | 41 +- kb-lib/src/decoder/spl/single_pool.rs | 41 +- kb-lib/src/decoder/spl/stake_pool.rs | 41 +- kb-lib/src/decoder/spl/token.rs | 6 +- kb-lib/src/decoder/spl/token2022.rs | 22 +- kb-lib/src/decoder/stable.rs | 29 +- .../src/decoder/stable/swap_hylo_exchange.rs | 43 +- .../src/decoder/stable/swap_jupiter_stable.rs | 43 +- kb-lib/src/decoder/stable/swap_numeraire.rs | 41 +- kb-lib/src/decoder/stable/swap_stabble.rs | 41 +- kb-lib/src/decoder/staking.rs | 23 +- kb-lib/src/decoder/staking/kamino_farm.rs | 41 +- .../src/decoder/staking/marinade_finance.rs | 43 +- kb-lib/src/decoder/staking/solayer.rs | 41 +- kb-lib/src/decoder/treasury.rs | 9 +- .../treasury/helium_treasury_management.rs | 43 +- kb-lib/src/decoder/vault.rs | 41 +- kb-lib/src/decoder/vault/carrot_defi.rs | 41 +- .../src/decoder/vault/hylo_stability_pool.rs | 43 +- kb-lib/src/decoder/vault/kamino.rs | 41 +- kb-lib/src/decoder/vault/kamino_v2.rs | 41 +- kb-lib/src/decoder/vault/kamino_yvaults.rs | 41 +- kb-lib/src/decoder/vault/meteora.rs | 41 +- kb-lib/src/decoder/vesting.rs | 9 +- kb-lib/src/decoder/vesting/streamflow.rs | 41 +- kb-lib/src/decoder/wallet.rs | 9 +- .../wallet/jupiter_apepro_smart_wallet.rs | 43 +- kb-lib/src/decoder/weighted.rs | 9 +- kb-lib/src/decoder/weighted/swap_stabble.rs | 41 +- kb-lib/src/lib.rs | 198 +- kb-lib/src/materializer.rs | 2 +- kb-lib/src/materializer/admin.rs | 12 +- kb-lib/src/materializer/admin/constants.rs | 1 - kb-lib/src/materializer/bridge/core.rs | 1 - kb-lib/src/materializer/compliance.rs | 6 +- kb-lib/src/materializer/governance/core.rs | 1 - kb-lib/src/materializer/lending/core.rs | 1 - kb-lib/src/materializer/lifecycle.rs | 6 +- kb-lib/src/materializer/liquidity/core.rs | 1 - kb-lib/src/materializer/nft/core.rs | 1 - kb-lib/src/materializer/oracle/core.rs | 1 - kb-lib/src/materializer/orderbook/core.rs | 1 - kb-lib/src/materializer/perpetuals/core.rs | 1 - kb-lib/src/materializer/pool/state.rs | 1 - kb-lib/src/materializer/rewards/core.rs | 1 - kb-lib/src/materializer/risk.rs | 6 +- kb-lib/src/materializer/routing/core.rs | 1 - kb-lib/src/materializer/staking.rs | 6 +- kb-lib/src/materializer/token.rs | 10 +- kb-lib/src/materializer/token/accounts.rs | 1 - .../src/materializer/token/metadata_risk.rs | 1 - kb-lib/src/materializer/trades/core.rs | 1 - kb-lib/src/materializer/transaction.rs | 6 +- kb-lib/src/materializer/vault/core.rs | 1 - kb-lib/src/model.rs | 2 +- kb-program-ids/README.md | 4 +- kb-program-ids/src/constants.rs | 623 +- kb-program-ids/src/lib.rs | 210 +- kb-program-ids/src/programs.rs | 7 +- kb-store/src/contracts/pagination.rs | 1 - kb-store/src/lib.rs | 2 +- kb-store/src/postgres/migrations.rs | 21 - restults.txt | 9103 ----------------- scripts/audit_khadhroony_workspace_rules.py | 107 +- scripts/audit_rust_general_rules.py | 21 +- 179 files changed, 5653 insertions(+), 10813 deletions(-) delete mode 100644 restults.txt diff --git a/README.md b/README.md index 17067a1..76db7c6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ - + # Khadhroony Bot3 @@ -59,6 +59,8 @@ cargo clippy --workspace --all-targets `0.1.0-pre.009` porte le décodeur indépendant Metaplex Token Metadata. Il couvre les 58 discriminateurs d’instructions publiés `0..=57`, les 15 variantes de comptes `Key 0..=14`, les PDA officiels et les layouts courants, expérimentaux et historiques. Les metadata externes Metaplex restent séparées des metadata incorporées de Token‑2022, de Metaplex Core et de Bubblegum. +`0.1.0-pre.012` restaure les 98 squelettes de décodeurs réservés sous forme de types `Dc*Decoder` implémentant `DcApiProtocolDecoder`. Les 97 surfaces identifiables déclarent leur Program ID exact dans `kb-program-ids`; Anchor reste volontairement sans identifiant statique. Ces squelettes répondent `Maybe` sans produire de faux événement et sont exposés uniquement par la façade `kb_lib`. + ## Matérialisateurs consolidés `0.1.0-pre.010` porte les quatre matérialisateurs Solana natifs dans `kb-lib` : diff --git a/ROADMAP.md b/ROADMAP.md index 13aa404..74fe740 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,5 +1,5 @@ - + # ROADMAP — khadhroony-bot3 @@ -141,4 +141,16 @@ - [x] Restaurer les 98 scaffolds de décodeurs avec des constantes `DC_*` uniques et réellement référencées. - [x] Étendre l’audit aux façades privées, aux réexports transitifs `self::`, aux alias interdits et à la complétude des APIs externes. - [ ] 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. + +### 0.1.0-pre.012 — Squelettes des décodeurs réservés + +- [x] Remplacer les 98 frontières `LEGACY_CRATE`/`MIGRATION_STATUS` par des types `Dc*Decoder` concrets. +- [x] Implémenter `DcApiProtocolDecoder` avec une compatibilité `Maybe` et un résultat vide sans faux événement. +- [x] Conserver Anchor sans Program ID statique et rattacher les 97 autres squelettes à une surface exacte. +- [x] Ajouter les 97 Program IDs correspondants à `kb-program-ids` et porter le registre total à 130 entrées uniques. +- [x] Exposer tous les types exclusivement par la façade `kb-lib/src/lib.rs`. +- [x] Supprimer `DC_MIGRATION_BOUNDARIES`, `*_LEGACY_CRATE` et `*_MIGRATION_STATUS` de l’arborescence des décodeurs. +- [x] Ajouter un test central de contrat pour les 98 squelettes et étendre l’audit contre le retour des marqueurs temporaires. +- [ ] Valider le nouveau test unitaire, les 130 Program IDs, Clippy et le workspace avec Cargo sur la machine de développement. +- [ ] Vérifier puis restaurer les squelettes des familles de matérialisation encore vides. +- [ ] Passer ensuite à l’API des exécuteurs, à leurs squelettes puis au port des exécuteurs déjà implémentés dans bot2. diff --git a/RULES.md b/RULES.md index 570f01d..efbd2ba 100644 --- a/RULES.md +++ b/RULES.md @@ -1,5 +1,5 @@ - + # Règles spécifiques à `khadhroony-bot3` @@ -20,6 +20,7 @@ Toute livraison doit exécuter l'audit `python3 scripts/audit_rust_workspace_rul - Les blocs consécutifs de réexports `pub use` et `pub(crate) use` ne contiennent aucune ligne vide interne et restent ordonnés alphabétiquement lorsque `cargo fmt` ne les réordonne pas. - Les familles de symboles consolidées dans `kb-lib` utilisent les préfixes `DC_`/`Dc`/`decoder_` pour les décodeurs, `MT_`/`Mt`/`materializer_` pour les matérialisateurs, `EX_`/`Ex`/`executor_` pour les exécuteurs et `MD_`/`Md`/`model_` pour les modèles. - Les méthodes inhérentes et helpers strictement privés peuvent conserver un nom local court ; les préfixes s’appliquent aux constantes, types, traits et fonctions libres exposés à la crate ou hors de la crate. +- Les constantes temporaires `*_LEGACY_CRATE`, `*_MIGRATION_STATUS` et `*_MIGRATION_BOUNDARIES` doivent disparaître d’une famille dès que ses squelettes typés sont restaurés ; elles ne constituent jamais une API durable. ## Règles Tauri et TypeScript @@ -83,21 +84,23 @@ Les nouvelles surfaces de programmes doivent utiliser un nom canonique basé sur __[_vN] ``` -Les modules de décodage doivent utiliser : +Les modules internes de décodage doivent utiliser la hiérarchie de fichiers : ```text -kb_lib::decoder::::_[_vN] +kb-lib/src/decoder//_[_vN].rs ``` Exemples : -- `kb_lib::decoder::amm::raydium_cpmm` ; -- `kb_lib::decoder::clmm::raydium` ; -- `kb_lib::decoder::dlmm::meteora` ; -- `kb_lib::decoder::router::jupiter_aggregator_v6` ; -- `kb_lib::decoder::orderbook::openbook_v2` ; -- `kb_lib::decoder::metadata::metaplex_token_metadata` ; -- `kb_lib::decoder::nft::metaplex_bubblegum`. +- `kb-lib/src/decoder/amm/raydium_cpmm.rs` ; +- `kb-lib/src/decoder/clmm/raydium.rs` ; +- `kb-lib/src/decoder/dlmm/meteora.rs` ; +- `kb-lib/src/decoder/router/jupiter_aggregator_v6.rs` ; +- `kb-lib/src/decoder/orderbook/openbook_v2.rs` ; +- `kb-lib/src/decoder/metadata/metaplex_token_metadata.rs` ; +- `kb-lib/src/decoder/nft/metaplex_bubblegum.rs`. + +Ces modules restent privés. Les consommateurs externes utilisent exclusivement les types et fonctions réexportés directement par `kb_lib`. Les noms historiques ou issus d'IDL doivent être conservés dans le registre, mais ne doivent pas créer de nouveau module si un module canonique existe déjà. @@ -181,7 +184,7 @@ Aucun renommage massif de modules n'est autorisé sans étape de contrôle dédi - Les exécuteurs résident dans `kb_lib::executor`. - Une surface classifiée peut avoir un module décodeur et un module exécuteur distincts dans `kb-lib`. - Les exécuteurs ne doivent pas dépendre des décodeurs. -- Les exécuteurs doivent passer par `kb_lib::executor::api` pour leur contrat public. +- Les exécuteurs utilisent les contrats `ExApi*` réexportés directement par la façade `kb_lib`. - Les garde-fous communs doivent être placés dans les modules de sécurité partagés de `kb-lib`. - Aucun exécuteur ne doit envoyer de transaction sans simulation et validation explicite. - Les surfaces non classifiées ne doivent pas avoir de crate exécuteur. diff --git a/docs/PROGRAM_NAMING.md b/docs/PROGRAM_NAMING.md index ace9bad..d9636a5 100644 --- a/docs/PROGRAM_NAMING.md +++ b/docs/PROGRAM_NAMING.md @@ -1,5 +1,5 @@ - + # Nommage canonique des programmes et surfaces @@ -94,22 +94,22 @@ Le registre ne doit pas perdre les anciens noms. Chaque programme doit conserver ## Exceptions conservées -Les programmes Solana/SPL de base restent groupés dans des crates techniques déjà lisibles : +Les programmes Solana/SPL de base restent groupés dans des modules techniques privés et des types publics explicites : -- `kb_decoder_solana_core` ; -- `kb_decoder_spl_token` ; -- `kb_decoder_spl_token_2022` ; -- `kb_decoder_spl_associated_token_account`. +- `DcSolanaCoreDecoder` ; +- `DcSplTokenDecoder` ; +- `DcSplToken2022Decoder` ; +- `DcSplAssociatedTokenAccountDecoder`. -Ces crates ne sont pas renommées en `kb_decoder_core_*` ou `kb_decoder_token_*`, car elles servent de couche primitive avant les surfaces DEX/router. +Ces types restent dans la façade `kb_lib`, car ils servent de couche primitive avant les surfaces DEX/router. ## Politique de migration La migration physique des dossiers ne doit pas être faite en masse. Pour chaque rename : 1. prouver que le `program_id` correspond à la surface ; -2. créer ou renommer une seule crate ; -3. mettre à jour `Cargo.toml` ; +2. créer ou renommer un seul module privé ; +3. mettre à jour la façade `kb-lib/src/lib.rs` ; 4. mettre à jour le registre ; 5. exécuter `cargo build` ; 6. supprimer l’ancien alias seulement après validation. diff --git a/docs/PROGRAM_REGISTRY_CONTROL.md b/docs/PROGRAM_REGISTRY_CONTROL.md index 77bfad4..5688595 100644 --- a/docs/PROGRAM_REGISTRY_CONTROL.md +++ b/docs/PROGRAM_REGISTRY_CONTROL.md @@ -1,5 +1,5 @@ - + # Contrôle du registre des programmes @@ -250,7 +250,7 @@ Ces identifiants sont détaillés dans `docs/CORE_PROGRAM_IDS.md`. Ils sont couv | `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_metaplex_token_metadata` | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s` | `metaplex_token_metadata` | `metaplex_token_metadata` | `-` | `kb_lib::DcMetadataMetaplexTokenMetadataDecoder` | `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` | diff --git a/docs/SOLANA_INTERFACE_DEPENDENCIES.md b/docs/SOLANA_INTERFACE_DEPENDENCIES.md index 2cbefa7..33e6644 100644 --- a/docs/SOLANA_INTERFACE_DEPENDENCIES.md +++ b/docs/SOLANA_INTERFACE_DEPENDENCIES.md @@ -1,5 +1,5 @@ - + # Dépendances d’interfaces Solana et SPL @@ -213,9 +213,9 @@ ni discriminant, ni builder : elle ajoute seulement, avant Borsh, une validation longueurs de chaînes de `Initialize`, `UpdateField` et `RemoveKey`. Cette garde plus sûre devient 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::token2022` et isole le registre dans -`kb_lib::decoder::spl::elgamal_registry`. Les targets de tracing, matrices et Program IDs restent +La migration `0.1.0-pre.008` conserve ces contrats dans le type public +`kb_lib::DcSplToken2022Decoder` et isole le registre dans +`kb_lib::DcSplElgamalRegistryDecoder`. 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é. @@ -287,7 +287,7 @@ Le catalogue workspace déclare `mpl-token-metadata ^5.1` avec la seule feature Le dépôt officiel `metaplex-foundation/mpl-token-metadata` confirme le Program ID `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`. L’IDL officiel audité porte la version `1.14.0` et le blob `5df4a24f62c2743125be096cc174680790c92c18`; l’inventaire Rust généré des instructions porte le blob `3c42eec629f82e44ba690a7c4bd2177cc78f1d49`. -`kb_lib::decoder::metadata::metaplex_token_metadata` implémente désormais la couverture exhaustive des +`kb_lib::DcMetadataMetaplexTokenMetadataDecoder` implémente désormais la couverture exhaustive des 58 discriminateurs `0..=57`. Les arguments sont lus avec les types Borsh officiels lorsque le SDK les expose, ou avec un miroir local borné du wire publié pour les variantes historiques. Les payloads, chaînes, créateurs, frais, comptes et suffixes sont bornés. diff --git a/docs/SPL_MEMO_MATRIX.json b/docs/SPL_MEMO_MATRIX.json index 1436b18..d316682 100644 --- a/docs/SPL_MEMO_MATRIX.json +++ b/docs/SPL_MEMO_MATRIX.json @@ -1,13 +1,13 @@ { "file": "docs/SPL_MEMO_MATRIX.json", - "version": 10, + "version": 11, "matrixVersion": 4, "scope": "SPL Memo v1, v3 et v4", "bot3Migration": { - "decoderModule": "kb_lib::decoder::spl::memo", - "publicDecoder": "kb_lib::SplMemoDecoder", + "decoderModule": "kb-lib/src/decoder/spl/memo", + "publicDecoder": "kb_lib::DcSplMemoDecoder", "decoderStatus": "ported_in_0.1.0-pre.005", - "publicMaterializer": "kb_lib::TransactionAnnotationMaterializer", + "publicMaterializer": "kb_lib::MtTransactionAnnotationMaterializer", "materializerStatus": "ported_in_0.1.0-pre.011", "executorStatus": "pending_later_tranche" }, diff --git a/kb-lib/README.md b/kb-lib/README.md index e026e79..fe4455b 100644 --- a/kb-lib/README.md +++ b/kb-lib/README.md @@ -1,5 +1,5 @@ - + # kb-lib @@ -88,9 +88,8 @@ discriminateurs `0..=57`, conserve les arguments Borsh, les comptes positionnels les placeholders optionnels, les chemins outer/CPI et les transactions échouées comme intentions non commitées. -Le module public -`kb_lib::decoder::metadata::metaplex_token_metadata` expose aussi les parseurs -bornés des 15 variantes `Key 0..=14` : Metadata, Edition et Master Edition, +La façade `kb_lib` expose aussi les parseurs bornés des 15 variantes +`Key 0..=14` : Metadata, Edition et Master Edition, Edition Marker V1/V2, Token Record, records de délégation et d’autorité, Token Owned Escrow et Reservation List historiques. Chaque parseur vérifie l’owner, le PDA, le bump, la longueur et les suffixes avant projection. Les comptes @@ -111,7 +110,8 @@ politique d’exécution définitivement interdite. La matrice normative est - `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 ; +- les fonctions `decoder_metadata_metaplex_token_metadata_*` et les types `DcMetadataMtm*` : parseurs et snapshots publics des comptes Metaplex ; +- les 98 types réservés `Dc*Decoder` : squelettes compatibles avec `DcApiProtocolDecoder`, exposant 97 Program IDs enregistrés et la frontière générique Anchor sans Program ID ; - `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 ; @@ -123,11 +123,11 @@ Les helpers, constantes wire et types intermédiaires de chaque composant resten ## Exemple ```rust -let decoder = kb_lib::SolanaCoreDecoder; -let recognition = kb_lib::InstructionDecoder::recognize(&decoder, &input); +let decoder = kb_lib::DcSolanaCoreDecoder; +let recognition = kb_lib::DcApiInstructionDecoder::recognize(&decoder, &input); ``` -L’appel de décodage complet utilise `InstructionDecoder::decode` après une reconnaissance compatible. Le pipeline demeure responsable de la sélection du décodeur et de la persistance du résultat. +L’appel de décodage complet utilise `DcApiInstructionDecoder::decode` après une reconnaissance compatible. Le pipeline demeure responsable de la sélection du décodeur et de la persistance du résultat. ## Frontières @@ -135,4 +135,5 @@ L’appel de décodage complet utilise `InstructionDecoder::decode` après une r - Les décodeurs ne lisent pas un état RPC courant pour reconstruire une transaction historique. - Une transaction échouée peut produire une intention structurée, jamais une mutation commitée. - Un matérialiseur externe dépend uniquement des contrats et modèles publics de `kb-lib`, jamais d’un décodeur concret. -- Les autres matérialisateurs et les exécuteurs sont portés dans des tranches séparées. +- Les squelettes réservés répondent uniquement `Maybe` pour leur Program ID et retournent une liste vide ; ils ne prétendent pas décoder une surface avant son port fonctionnel. +- Les exécuteurs sont portés dans des tranches séparées. diff --git a/kb-lib/src/decoder.rs b/kb-lib/src/decoder.rs index bb4c730..42dfcbb 100644 --- a/kb-lib/src/decoder.rs +++ b/kb-lib/src/decoder.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder.rs -// version: 7 +// version: 8 //! Consolidated decoder modules. @@ -33,37 +33,338 @@ mod vesting; mod wallet; mod weighted; -/// Internal inventory of pending decoder migration boundaries. -#[allow(dead_code)] -pub(crate) const DC_MIGRATION_BOUNDARIES: &[&[(&str, &str)]] = &[ - self::adapter::DC_ADAPTER_MIGRATION_BOUNDARIES, - self::admin::DC_ADMIN_MIGRATION_BOUNDARIES, - self::amm::DC_AMM_MIGRATION_BOUNDARIES, - self::anchor::DC_ANCHOR_MIGRATION_BOUNDARIES, - self::bridge::DC_BRIDGE_MIGRATION_BOUNDARIES, - self::clmm::DC_CLMM_MIGRATION_BOUNDARIES, - self::cpmm::DC_CPMM_MIGRATION_BOUNDARIES, - self::dlmm::DC_DLMM_MIGRATION_BOUNDARIES, - self::fees::DC_FEES_MIGRATION_BOUNDARIES, - self::governance::DC_GOVERNANCE_MIGRATION_BOUNDARIES, - self::launchpad::DC_LAUNCHPAD_MIGRATION_BOUNDARIES, - self::lending::DC_LENDING_MIGRATION_BOUNDARIES, - self::lock::DC_LOCK_MIGRATION_BOUNDARIES, - self::metadata::DC_METADATA_MIGRATION_BOUNDARIES, - self::nft::DC_NFT_MIGRATION_BOUNDARIES, - self::orderbook::DC_ORDERBOOK_MIGRATION_BOUNDARIES, - self::perpetuals::DC_PERPETUALS_MIGRATION_BOUNDARIES, - self::router::DC_ROUTER_MIGRATION_BOUNDARIES, - self::rwa::DC_RWA_MIGRATION_BOUNDARIES, - self::spl::DC_SPL_MIGRATION_BOUNDARIES, - self::stable::DC_STABLE_MIGRATION_BOUNDARIES, - self::staking::DC_STAKING_MIGRATION_BOUNDARIES, - self::treasury::DC_TREASURY_MIGRATION_BOUNDARIES, - self::vault::DC_VAULT_MIGRATION_BOUNDARIES, - self::vesting::DC_VESTING_MIGRATION_BOUNDARIES, - self::wallet::DC_WALLET_MIGRATION_BOUNDARIES, - self::weighted::DC_WEIGHTED_MIGRATION_BOUNDARIES, -]; +/// Reserved `kb_decoder_adapter_saber_decimal_wrapper` decoder. +pub use self::adapter::DcAdapterSaberDecimalWrapperDecoder; +/// Reserved `kb_decoder_admin_jupiter_lock` decoder. +pub use self::admin::DcAdminJupiterLockDecoder; +/// Reserved `kb_decoder_admin_pump_fees` decoder. +pub use self::admin::DcAdminPumpFeesDecoder; +/// Reserved `kb_decoder_amm_aldrin_v1` decoder. +pub use self::amm::DcAmmAldrinV1Decoder; +/// Reserved `kb_decoder_amm_aldrin_v2` decoder. +pub use self::amm::DcAmmAldrinV2Decoder; +/// Reserved `kb_decoder_amm_alphaq` decoder. +pub use self::amm::DcAmmAlphaqDecoder; +/// Reserved `kb_decoder_amm_believe` decoder. +pub use self::amm::DcAmmBelieveDecoder; +/// Reserved `kb_decoder_amm_bonk_swap` decoder. +pub use self::amm::DcAmmBonkSwapDecoder; +/// Reserved `kb_decoder_amm_fluxbeam` decoder. +pub use self::amm::DcAmmFluxbeamDecoder; +/// Reserved `kb_decoder_amm_goon_fi` decoder. +pub use self::amm::DcAmmGoonFiDecoder; +/// Reserved `kb_decoder_amm_goosefx_gamma` decoder. +pub use self::amm::DcAmmGoosefxGammaDecoder; +/// Reserved `kb_decoder_amm_goosefx_v2` decoder. +pub use self::amm::DcAmmGoosefxV2Decoder; +/// Reserved `kb_decoder_amm_guac_swap` decoder. +pub use self::amm::DcAmmGuacSwapDecoder; +/// Reserved `kb_decoder_amm_lifinity_swap_v2` decoder. +pub use self::amm::DcAmmLifinitySwapV2Decoder; +/// Reserved `kb_decoder_amm_metadao_futarchy_amm` decoder. +pub use self::amm::DcAmmMetadaoFutarchyAmmDecoder; +/// Reserved `kb_decoder_amm_metadao_v0_5` decoder. +pub use self::amm::DcAmmMetadaoV05Decoder; +/// Reserved `kb_decoder_amm_meteora_damm_v1` decoder. +pub use self::amm::DcAmmMeteoraDammV1Decoder; +/// Reserved `kb_decoder_amm_meteora_damm_v2` decoder. +pub use self::amm::DcAmmMeteoraDammV2Decoder; +/// Reserved `kb_decoder_amm_obric_v2` decoder. +pub use self::amm::DcAmmObricV2Decoder; +/// Reserved `kb_decoder_amm_one_dex` decoder. +pub use self::amm::DcAmmOneDexDecoder; +/// Reserved `kb_decoder_amm_pump_swap` decoder. +pub use self::amm::DcAmmPumpSwapDecoder; +/// Reserved `kb_decoder_amm_raydium_lp_v4` decoder. +pub use self::amm::DcAmmRaydiumLpV4Decoder; +/// Reserved `kb_decoder_amm_solfi` decoder. +pub use self::amm::DcAmmSolfiDecoder; +/// Reserved `kb_decoder_amm_solfi_v2` decoder. +pub use self::amm::DcAmmSolfiV2Decoder; +/// Reserved `kb_decoder_amm_vertigo` decoder. +pub use self::amm::DcAmmVertigoDecoder; +/// Reserved `kb_decoder_amm_virtuals` decoder. +pub use self::amm::DcAmmVirtualsDecoder; +/// Reserved `kb_decoder_amm_woofi` decoder. +pub use self::amm::DcAmmWoofiDecoder; +/// Reserved `kb_decoder_amm_zero_fi` decoder. +pub use self::amm::DcAmmZeroFiDecoder; +/// Reserved `kb_decoder_amm_zora` decoder. +pub use self::amm::DcAmmZoraDecoder; +/// Reserved `kb_decoder_anchor` decoder. +pub use self::anchor::DcAnchorDecoder; +/// Current contextual core instruction input contract version. +pub use self::api::DC_API_CORE_INSTRUCTION_INPUT_CONTRACT_VERSION; +/// Stable contextual decoded observation. +pub use self::api::DcApiDecodedObservation; +/// Machine-readable decoder coverage declaration. +pub use self::api::DcApiDecoderCoverageDeclaration; +/// Declared decoder coverage entry kind. +pub use self::api::DcApiDecoderCoverageEntryKind; +/// Structured decoder diagnostic. +pub use self::api::DcApiDecoderDiagnostic; +/// Complete decoder execution result. +pub use self::api::DcApiDecoderExecutionResult; +/// Stable decoder identity. +pub use self::api::DcApiDecoderIdentity; +/// Decoder terminal result status. +pub use self::api::DcApiDecoderOutcomeStatus; +/// Explicit decoding proof. +pub use self::api::DcApiDecoderProof; +/// Decoding proof category. +pub use self::api::DcApiDecoderProofKind; +/// Deterministic decoder recognition result. +pub use self::api::DcApiDecoderRecognition; +/// Exposes the decoder support level. +pub use self::api::DcApiDecoderSupport; +/// One statically declared decoder surface. +pub use self::api::DcApiDecoderSurface; +/// Initial decoder implementation placeholder for API-level tests. +pub use self::api::DcApiInitialDecoder; +/// Contextual instruction decoder contract. +pub use self::api::DcApiInstructionDecoder; +/// Exposes the common protocol decoder trait. +pub use self::api::DcApiProtocolDecoder; +/// Computes the deterministic contextual input hash. +pub use self::api::decoder_api_decoder_api_contextual_input_hash; +/// Returns true when a decoder declares the exact program id. +pub use self::api::decoder_api_decoder_handles_program_id; +/// Computes a deterministic lowercase SHA-256 hash for one JSON value. +pub use self::api::decoder_api_deterministic_json_hash; +/// Extracts the first eight payload bytes as hexadecimal when available. +pub use self::api::decoder_api_discriminator_8_hex; +/// Reserved `kb_decoder_bridge_circle_cctp_token_messenger_minter` decoder. +pub use self::bridge::DcBridgeCircleCctpTokenMessengerMinterDecoder; +/// Reserved `kb_decoder_bridge_circle_cctp_token_messenger_minter_v2` decoder. +pub use self::bridge::DcBridgeCircleCctpTokenMessengerMinterV2Decoder; +/// Reserved `kb_decoder_bridge_layer_zero_endpoint` decoder. +pub use self::bridge::DcBridgeLayerZeroEndpointDecoder; +/// Reserved `kb_decoder_bridge_layer_zero_executor` decoder. +pub use self::bridge::DcBridgeLayerZeroExecutorDecoder; +/// Reserved `kb_decoder_clmm_byreal` decoder. +pub use self::clmm::DcClmmByrealDecoder; +/// Reserved `kb_decoder_clmm_fusion` decoder. +pub use self::clmm::DcClmmFusionDecoder; +/// Reserved `kb_decoder_clmm_orca_whirlpool` decoder. +pub use self::clmm::DcClmmOrcaWhirlpoolDecoder; +/// Reserved `kb_decoder_clmm_pancake_swap` decoder. +pub use self::clmm::DcClmmPancakeSwapDecoder; +/// Reserved `kb_decoder_clmm_raydium` decoder. +pub use self::clmm::DcClmmRaydiumDecoder; +/// Reserved `kb_decoder_clmm_stabble` decoder. +pub use self::clmm::DcClmmStabbleDecoder; +/// Reserved `kb_decoder_cpmm_raydium` decoder. +pub use self::cpmm::DcCpmmRaydiumDecoder; +/// Reserved `kb_decoder_dlmm_meteora` decoder. +pub use self::dlmm::DcDlmmMeteoraDecoder; +/// Reserved `kb_decoder_fees_bags_fee_share_v1` decoder. +pub use self::fees::DcFeesBagsFeeShareV1Decoder; +/// Reserved `kb_decoder_fees_bags_fee_share_v2` decoder. +pub use self::fees::DcFeesBagsFeeShareV2Decoder; +/// Reserved `kb_decoder_governance_metadao_bid_wall` decoder. +pub use self::governance::DcGovernanceMetadaoBidWallDecoder; +/// Reserved `kb_decoder_launchpad_boop_fun` decoder. +pub use self::launchpad::DcLaunchpadBoopFunDecoder; +/// Reserved `kb_decoder_launchpad_metadao_ico` decoder. +pub use self::launchpad::DcLaunchpadMetadaoIcoDecoder; +/// Reserved `kb_decoder_launchpad_meteora_dbc` decoder. +pub use self::launchpad::DcLaunchpadMeteoraDbcDecoder; +/// Reserved `kb_decoder_launchpad_moonit` decoder. +pub use self::launchpad::DcLaunchpadMoonitDecoder; +/// Reserved `kb_decoder_launchpad_orca_wavebreak` decoder. +pub use self::launchpad::DcLaunchpadOrcaWavebreakDecoder; +/// Reserved `kb_decoder_launchpad_printr` decoder. +pub use self::launchpad::DcLaunchpadPrintrDecoder; +/// Reserved `kb_decoder_launchpad_pump_fun` decoder. +pub use self::launchpad::DcLaunchpadPumpFunDecoder; +/// Reserved `kb_decoder_launchpad_pump_pumpup_ai` decoder. +pub use self::launchpad::DcLaunchpadPumpPumpupAiDecoder; +/// Reserved `kb_decoder_launchpad_raydium_launchlab` decoder. +pub use self::launchpad::DcLaunchpadRaydiumLaunchlabDecoder; +/// Reserved `kb_decoder_lending_clone` decoder. +pub use self::lending::DcLendingCloneDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_borrow` decoder. +pub use self::lending::DcLendingJupiterLendBorrowDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_earn` decoder. +pub use self::lending::DcLendingJupiterLendEarnDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_flash_loan` decoder. +pub use self::lending::DcLendingJupiterLendFlashLoanDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_liquidity` decoder. +pub use self::lending::DcLendingJupiterLendLiquidityDecoder; +/// Reserved `kb_decoder_lending_kamino` decoder. +pub use self::lending::DcLendingKaminoDecoder; +/// Reserved `kb_decoder_lending_marginfi_v2` decoder. +pub use self::lending::DcLendingMarginfiV2Decoder; +/// Reserved `kb_decoder_lock_raydium_lp` decoder. +pub use self::lock::DcLockRaydiumLpDecoder; +/// 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::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; +/// Reserved `kb_decoder_metadata_spl_name_service` decoder. +pub use self::metadata::DcMetadataSplNameServiceDecoder; +/// 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; +/// Reserved `kb_decoder_nft_metaplex_bubblegum` decoder. +pub use self::nft::DcNftMetaplexBubblegumDecoder; +/// Reserved `kb_decoder_orderbook_jupiter_limit_order` decoder. +pub use self::orderbook::DcOrderbookJupiterLimitOrderDecoder; +/// Reserved `kb_decoder_orderbook_jupiter_limit_order_v2` decoder. +pub use self::orderbook::DcOrderbookJupiterLimitOrderV2Decoder; +/// Reserved `kb_decoder_orderbook_openbook_v2` decoder. +pub use self::orderbook::DcOrderbookOpenbookV2Decoder; +/// Reserved `kb_decoder_perpetuals_drift_v2` decoder. +pub use self::perpetuals::DcPerpetualsDriftV2Decoder; +/// Reserved `kb_decoder_perpetuals_jupiter` decoder. +pub use self::perpetuals::DcPerpetualsJupiterDecoder; +/// Reserved `kb_decoder_perpetuals_zeta` decoder. +pub use self::perpetuals::DcPerpetualsZetaDecoder; +/// Reserved `kb_decoder_router_dflow_aggregator_v4` decoder. +pub use self::router::DcRouterDflowAggregatorV4Decoder; +/// Reserved `kb_decoder_router_jupiter_aggregator_v4` decoder. +pub use self::router::DcRouterJupiterAggregatorV4Decoder; +/// Reserved `kb_decoder_router_jupiter_aggregator_v6` decoder. +pub use self::router::DcRouterJupiterAggregatorV6Decoder; +/// Reserved `kb_decoder_router_jupiter_dca` decoder. +pub use self::router::DcRouterJupiterDcaDecoder; +/// Reserved `kb_decoder_router_okx_labs_v1` decoder. +pub use self::router::DcRouterOkxLabsV1Decoder; +/// Reserved `kb_decoder_router_okx_labs_v2` decoder. +pub use self::router::DcRouterOkxLabsV2Decoder; +pub use self::rwa::DcRwaOndoGlobalMarketsDecoder; +/// 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::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; +/// Reserved `kb_decoder_rwa_ondo_global_markets` decoder. +/// Reserved `kb_decoder_spl_account_compression` decoder. +pub use self::spl::DcSplAccountCompressionDecoder; +/// Exact decoder for the SPL Associated Token Account program. +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::DcSplElgamalRegistryDecoder; +/// Exact decoder for the three registered SPL Memo generations. +pub use self::spl::DcSplMemoDecoder; +/// Reserved `kb_decoder_spl_noop` decoder. +pub use self::spl::DcSplNoopDecoder; +/// Reserved `kb_decoder_spl_single_pool` decoder. +pub use self::spl::DcSplSinglePoolDecoder; +/// Reserved `kb_decoder_spl_stake_pool` decoder. +pub use self::spl::DcSplStakePoolDecoder; +/// Exact decoder for the Token-2022 program. +pub use self::spl::DcSplToken2022Decoder; +/// Exact decoder for the classic SPL Token program. +pub use self::spl::DcSplTokenDecoder; +/// Parsed Token-2022 Mint, Account, or Multisig state. +pub use self::spl::DcToken2022State; +/// Exact Token-2022 base account state kind. +pub use self::spl::DcToken2022StateKind; +/// One exact Token-2022 TLV entry. +pub use self::spl::DcToken2022TlvEntry; +/// Parses one exact SPL ElGamal registry account. +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::decoder_spl_token2022_parse_token2022_state; +/// Reserved `kb_decoder_stable_swap_hylo_exchange` decoder. +pub use self::stable::DcStableSwapHyloExchangeDecoder; +/// Reserved `kb_decoder_stable_swap_jupiter_stable` decoder. +pub use self::stable::DcStableSwapJupiterStableDecoder; +/// Reserved `kb_decoder_stable_swap_numeraire` decoder. +pub use self::stable::DcStableSwapNumeraireDecoder; +/// Reserved `kb_decoder_stable_swap_stabble` decoder. +pub use self::stable::DcStableSwapStabbleDecoder; +/// Reserved `kb_decoder_staking_kamino_farm` decoder. +pub use self::staking::DcStakingKaminoFarmDecoder; +/// Reserved `kb_decoder_staking_marinade_finance` decoder. +pub use self::staking::DcStakingMarinadeFinanceDecoder; +/// Reserved `kb_decoder_staking_solayer` decoder. +pub use self::staking::DcStakingSolayerDecoder; +/// Reserved `kb_decoder_treasury_helium_treasury_management` decoder. +pub use self::treasury::DcTreasuryHeliumTreasuryManagementDecoder; +/// Reserved `kb_decoder_vault_carrot_defi` decoder. +pub use self::vault::DcVaultCarrotDefiDecoder; +/// Reserved `kb_decoder_vault_hylo_stability_pool` decoder. +pub use self::vault::DcVaultHyloStabilityPoolDecoder; +/// Reserved `kb_decoder_vault_kamino` decoder. +pub use self::vault::DcVaultKaminoDecoder; +/// Reserved `kb_decoder_vault_kamino_v2` decoder. +pub use self::vault::DcVaultKaminoV2Decoder; +/// Reserved `kb_decoder_vault_kamino_yvaults` decoder. +pub use self::vault::DcVaultKaminoYvaultsDecoder; +/// Reserved `kb_decoder_vault_meteora` decoder. +pub use self::vault::DcVaultMeteoraDecoder; +/// Reserved `kb_decoder_vesting_streamflow` decoder. +pub use self::vesting::DcVestingStreamflowDecoder; +/// Reserved `kb_decoder_wallet_jupiter_apepro_smart_wallet` decoder. +pub use self::wallet::DcWalletJupiterApeproSmartWalletDecoder; +/// Reserved `kb_decoder_weighted_swap_stabble` decoder. +pub use self::weighted::DcWeightedSwapStabbleDecoder; /// Approve Collection Authority discriminator. pub(crate) use self::metadata::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR; @@ -393,139 +694,139 @@ 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::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::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; -/// Exact decoder for the SPL Associated Token Account program. -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::DcSplElgamalRegistryDecoder; -/// Exact decoder for the three registered SPL Memo generations. -pub use self::spl::DcSplMemoDecoder; -/// Exact decoder for the Token-2022 program. -pub use self::spl::DcSplToken2022Decoder; -/// Exact decoder for the classic SPL Token program. -pub use self::spl::DcSplTokenDecoder; -/// Parsed Token-2022 Mint, Account, or Multisig state. -pub use self::spl::DcToken2022State; -/// Exact Token-2022 base account state kind. -pub use self::spl::DcToken2022StateKind; -/// One exact Token-2022 TLV entry. -pub use self::spl::DcToken2022TlvEntry; -/// Parses one exact SPL ElGamal registry account. -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::decoder_spl_token2022_parse_token2022_state; +#[cfg(test)] +mod reserved_decoder_tests { + #[test] + fn every_reserved_decoder_exposes_only_registered_program_ids() { + let decoders: [&dyn crate::DcApiProtocolDecoder; 98] = [ + &crate::DcAdapterSaberDecimalWrapperDecoder, + &crate::DcAdminJupiterLockDecoder, + &crate::DcAdminPumpFeesDecoder, + &crate::DcAmmAldrinV1Decoder, + &crate::DcAmmAldrinV2Decoder, + &crate::DcAmmAlphaqDecoder, + &crate::DcAmmBelieveDecoder, + &crate::DcAmmBonkSwapDecoder, + &crate::DcAmmFluxbeamDecoder, + &crate::DcAmmGoonFiDecoder, + &crate::DcAmmGoosefxGammaDecoder, + &crate::DcAmmGoosefxV2Decoder, + &crate::DcAmmGuacSwapDecoder, + &crate::DcAmmLifinitySwapV2Decoder, + &crate::DcAmmMetadaoFutarchyAmmDecoder, + &crate::DcAmmMetadaoV05Decoder, + &crate::DcAmmMeteoraDammV1Decoder, + &crate::DcAmmMeteoraDammV2Decoder, + &crate::DcAmmObricV2Decoder, + &crate::DcAmmOneDexDecoder, + &crate::DcAmmPumpSwapDecoder, + &crate::DcAmmRaydiumLpV4Decoder, + &crate::DcAmmSolfiDecoder, + &crate::DcAmmSolfiV2Decoder, + &crate::DcAmmVertigoDecoder, + &crate::DcAmmVirtualsDecoder, + &crate::DcAmmWoofiDecoder, + &crate::DcAmmZeroFiDecoder, + &crate::DcAmmZoraDecoder, + &crate::DcAnchorDecoder, + &crate::DcBridgeCircleCctpTokenMessengerMinterDecoder, + &crate::DcBridgeCircleCctpTokenMessengerMinterV2Decoder, + &crate::DcBridgeLayerZeroEndpointDecoder, + &crate::DcBridgeLayerZeroExecutorDecoder, + &crate::DcClmmByrealDecoder, + &crate::DcClmmFusionDecoder, + &crate::DcClmmOrcaWhirlpoolDecoder, + &crate::DcClmmPancakeSwapDecoder, + &crate::DcClmmRaydiumDecoder, + &crate::DcClmmStabbleDecoder, + &crate::DcCpmmRaydiumDecoder, + &crate::DcDlmmMeteoraDecoder, + &crate::DcFeesBagsFeeShareV1Decoder, + &crate::DcFeesBagsFeeShareV2Decoder, + &crate::DcGovernanceMetadaoBidWallDecoder, + &crate::DcLaunchpadBoopFunDecoder, + &crate::DcLaunchpadMetadaoIcoDecoder, + &crate::DcLaunchpadMeteoraDbcDecoder, + &crate::DcLaunchpadMoonitDecoder, + &crate::DcLaunchpadOrcaWavebreakDecoder, + &crate::DcLaunchpadPrintrDecoder, + &crate::DcLaunchpadPumpFunDecoder, + &crate::DcLaunchpadPumpPumpupAiDecoder, + &crate::DcLaunchpadRaydiumLaunchlabDecoder, + &crate::DcLendingCloneDecoder, + &crate::DcLendingJupiterLendBorrowDecoder, + &crate::DcLendingJupiterLendEarnDecoder, + &crate::DcLendingJupiterLendFlashLoanDecoder, + &crate::DcLendingJupiterLendLiquidityDecoder, + &crate::DcLendingKaminoDecoder, + &crate::DcLendingMarginfiV2Decoder, + &crate::DcLockRaydiumLpDecoder, + &crate::DcMetadataSplNameServiceDecoder, + &crate::DcNftMetaplexBubblegumDecoder, + &crate::DcOrderbookJupiterLimitOrderDecoder, + &crate::DcOrderbookJupiterLimitOrderV2Decoder, + &crate::DcOrderbookOpenbookV2Decoder, + &crate::DcPerpetualsDriftV2Decoder, + &crate::DcPerpetualsJupiterDecoder, + &crate::DcPerpetualsZetaDecoder, + &crate::DcRouterDflowAggregatorV4Decoder, + &crate::DcRouterJupiterAggregatorV4Decoder, + &crate::DcRouterJupiterAggregatorV6Decoder, + &crate::DcRouterJupiterDcaDecoder, + &crate::DcRouterOkxLabsV1Decoder, + &crate::DcRouterOkxLabsV2Decoder, + &crate::DcRwaOndoGlobalMarketsDecoder, + &crate::DcSplAccountCompressionDecoder, + &crate::DcSplNoopDecoder, + &crate::DcSplSinglePoolDecoder, + &crate::DcSplStakePoolDecoder, + &crate::DcStableSwapHyloExchangeDecoder, + &crate::DcStableSwapJupiterStableDecoder, + &crate::DcStableSwapNumeraireDecoder, + &crate::DcStableSwapStabbleDecoder, + &crate::DcStakingKaminoFarmDecoder, + &crate::DcStakingMarinadeFinanceDecoder, + &crate::DcStakingSolayerDecoder, + &crate::DcTreasuryHeliumTreasuryManagementDecoder, + &crate::DcVaultCarrotDefiDecoder, + &crate::DcVaultHyloStabilityPoolDecoder, + &crate::DcVaultKaminoDecoder, + &crate::DcVaultKaminoV2Decoder, + &crate::DcVaultKaminoYvaultsDecoder, + &crate::DcVaultMeteoraDecoder, + &crate::DcVestingStreamflowDecoder, + &crate::DcWalletJupiterApeproSmartWalletDecoder, + &crate::DcWeightedSwapStabbleDecoder, + ]; + let mut names = std::collections::BTreeSet::new(); + for decoder in decoders { + assert!(names.insert(decoder.decoder_name())); + if decoder.decoder_name() == "kb_decoder_anchor" { + assert!(decoder.program_ids().is_empty()); + continue; + } + assert_eq!(decoder.program_ids().len(), 1); + for program_id in decoder.program_ids() { + assert!(kb_program_ids::find_registered_program_id(program_id).is_some()); + let observation = crate::MdProgramObservation { + signature: crate::MdSignature("signature".to_string()), + slot: crate::MdSlot(1), + instruction_path: crate::MdInstructionPath("0".to_string()), + program_id: crate::MdProgramId((*program_id).to_string()), + discriminator_8: std::option::Option::None, + data_len: 0, + accounts_len: 0, + failed: false, + }; + assert_eq!( + decoder.supports_observation(&observation), + crate::DcApiDecoderSupport::Maybe + ); + let decode_result = decoder.decode_observation(&observation); + assert!(decode_result.is_ok()); + assert!(decode_result.is_ok_and(|events| return events.is_empty())); + } + } + assert_eq!(names.len(), 98); + } +} diff --git a/kb-lib/src/decoder/adapter.rs b/kb-lib/src/decoder/adapter.rs index 8cc6938..c0db753 100644 --- a/kb-lib/src/decoder/adapter.rs +++ b/kb-lib/src/decoder/adapter.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/adapter.rs -// version: 2 +// version: 3 //! `adapter` decoder family. mod saber_decimal_wrapper; -/// Pending `adapter` decoder migration boundaries. -pub(crate) const DC_ADAPTER_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::saber_decimal_wrapper::DC_ADAPTER_SABER_DECIMAL_WRAPPER_LEGACY_CRATE, - self::saber_decimal_wrapper::DC_ADAPTER_SABER_DECIMAL_WRAPPER_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_adapter_saber_decimal_wrapper` decoder. +pub use self::saber_decimal_wrapper::DcAdapterSaberDecimalWrapperDecoder; diff --git a/kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs b/kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs index ef2e6bb..5336565 100644 --- a/kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs +++ b/kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_adapter_saber_decimal_wrapper`. +//! Reserved protocol decoder for `adapter_saber_decimal_wrapper`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ADAPTER_SABER_DECIMAL_WRAPPER_LEGACY_CRATE: &str = - "kb_decoder_adapter_saber_decimal_wrapper"; +/// Reserved decoder for the `adapter_saber_decimal_wrapper` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAdapterSaberDecimalWrapperDecoder; -/// Current porting status. -pub(crate) const DC_ADAPTER_SABER_DECIMAL_WRAPPER_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAdapterSaberDecimalWrapperDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_adapter_saber_decimal_wrapper"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ADAPTER_SABER_DECIMAL_WRAPPER_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/admin.rs b/kb-lib/src/decoder/admin.rs index c584de8..719bb07 100644 --- a/kb-lib/src/decoder/admin.rs +++ b/kb-lib/src/decoder/admin.rs @@ -1,19 +1,12 @@ // file: kb-lib/src/decoder/admin.rs -// version: 2 +// version: 3 //! `admin` decoder family. mod jupiter_lock; mod pump_fees; -/// Pending `admin` decoder migration boundaries. -pub(crate) const DC_ADMIN_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::jupiter_lock::DC_ADMIN_JUPITER_LOCK_LEGACY_CRATE, - self::jupiter_lock::DC_ADMIN_JUPITER_LOCK_MIGRATION_STATUS, - ), - ( - self::pump_fees::DC_ADMIN_PUMP_FEES_LEGACY_CRATE, - self::pump_fees::DC_ADMIN_PUMP_FEES_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_admin_jupiter_lock` decoder. +pub use self::jupiter_lock::DcAdminJupiterLockDecoder; +/// Reserved `kb_decoder_admin_pump_fees` decoder. +pub use self::pump_fees::DcAdminPumpFeesDecoder; diff --git a/kb-lib/src/decoder/admin/jupiter_lock.rs b/kb-lib/src/decoder/admin/jupiter_lock.rs index ae4db4c..7e677a2 100644 --- a/kb-lib/src/decoder/admin/jupiter_lock.rs +++ b/kb-lib/src/decoder/admin/jupiter_lock.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/admin/jupiter_lock.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_admin_jupiter_lock`. +//! Reserved protocol decoder for `admin_jupiter_lock`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ADMIN_JUPITER_LOCK_LEGACY_CRATE: &str = "kb_decoder_admin_jupiter_lock"; +/// Reserved decoder for the `admin_jupiter_lock` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAdminJupiterLockDecoder; -/// Current porting status. -pub(crate) const DC_ADMIN_JUPITER_LOCK_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAdminJupiterLockDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_admin_jupiter_lock"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ADMIN_JUPITER_LOCK_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/admin/pump_fees.rs b/kb-lib/src/decoder/admin/pump_fees.rs index eb6adff..82e2381 100644 --- a/kb-lib/src/decoder/admin/pump_fees.rs +++ b/kb-lib/src/decoder/admin/pump_fees.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/admin/pump_fees.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_admin_pump_fees`. +//! Reserved protocol decoder for `admin_pump_fees`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ADMIN_PUMP_FEES_LEGACY_CRATE: &str = "kb_decoder_admin_pump_fees"; +/// Reserved decoder for the `admin_pump_fees` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAdminPumpFeesDecoder; -/// Current porting status. -pub(crate) const DC_ADMIN_PUMP_FEES_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAdminPumpFeesDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_admin_pump_fees"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ADMIN_PUMP_FEES_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm.rs b/kb-lib/src/decoder/amm.rs index ee64beb..39f158e 100644 --- a/kb-lib/src/decoder/amm.rs +++ b/kb-lib/src/decoder/amm.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/amm.rs -// version: 2 +// version: 3 //! `amm` decoder family. @@ -30,107 +30,55 @@ mod woofi; mod zero_fi; mod zora; -/// Pending `amm` decoder migration boundaries. -pub(crate) const DC_AMM_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::aldrin_v1::DC_AMM_ALDRIN_V1_LEGACY_CRATE, - self::aldrin_v1::DC_AMM_ALDRIN_V1_MIGRATION_STATUS, - ), - ( - self::aldrin_v2::DC_AMM_ALDRIN_V2_LEGACY_CRATE, - self::aldrin_v2::DC_AMM_ALDRIN_V2_MIGRATION_STATUS, - ), - ( - self::alphaq::DC_AMM_ALPHAQ_LEGACY_CRATE, - self::alphaq::DC_AMM_ALPHAQ_MIGRATION_STATUS, - ), - ( - self::believe::DC_AMM_BELIEVE_LEGACY_CRATE, - self::believe::DC_AMM_BELIEVE_MIGRATION_STATUS, - ), - ( - self::bonk_swap::DC_AMM_BONK_SWAP_LEGACY_CRATE, - self::bonk_swap::DC_AMM_BONK_SWAP_MIGRATION_STATUS, - ), - ( - self::fluxbeam::DC_AMM_FLUXBEAM_LEGACY_CRATE, - self::fluxbeam::DC_AMM_FLUXBEAM_MIGRATION_STATUS, - ), - ( - self::goon_fi::DC_AMM_GOON_FI_LEGACY_CRATE, - self::goon_fi::DC_AMM_GOON_FI_MIGRATION_STATUS, - ), - ( - self::goosefx_gamma::DC_AMM_GOOSEFX_GAMMA_LEGACY_CRATE, - self::goosefx_gamma::DC_AMM_GOOSEFX_GAMMA_MIGRATION_STATUS, - ), - ( - self::goosefx_v2::DC_AMM_GOOSEFX_V2_LEGACY_CRATE, - self::goosefx_v2::DC_AMM_GOOSEFX_V2_MIGRATION_STATUS, - ), - ( - self::guac_swap::DC_AMM_GUAC_SWAP_LEGACY_CRATE, - self::guac_swap::DC_AMM_GUAC_SWAP_MIGRATION_STATUS, - ), - ( - self::lifinity_swap_v2::DC_AMM_LIFINITY_SWAP_V2_LEGACY_CRATE, - self::lifinity_swap_v2::DC_AMM_LIFINITY_SWAP_V2_MIGRATION_STATUS, - ), - ( - self::metadao_futarchy_amm::DC_AMM_METADAO_FUTARCHY_AMM_LEGACY_CRATE, - self::metadao_futarchy_amm::DC_AMM_METADAO_FUTARCHY_AMM_MIGRATION_STATUS, - ), - ( - self::metadao_v0_5::DC_AMM_METADAO_V0_5_LEGACY_CRATE, - self::metadao_v0_5::DC_AMM_METADAO_V0_5_MIGRATION_STATUS, - ), - ( - self::meteora_damm_v1::DC_AMM_METEORA_DAMM_V1_LEGACY_CRATE, - self::meteora_damm_v1::DC_AMM_METEORA_DAMM_V1_MIGRATION_STATUS, - ), - ( - self::meteora_damm_v2::DC_AMM_METEORA_DAMM_V2_LEGACY_CRATE, - self::meteora_damm_v2::DC_AMM_METEORA_DAMM_V2_MIGRATION_STATUS, - ), - ( - self::obric_v2::DC_AMM_OBRIC_V2_LEGACY_CRATE, - self::obric_v2::DC_AMM_OBRIC_V2_MIGRATION_STATUS, - ), - ( - self::one_dex::DC_AMM_ONE_DEX_LEGACY_CRATE, - self::one_dex::DC_AMM_ONE_DEX_MIGRATION_STATUS, - ), - ( - self::pump_swap::DC_AMM_PUMP_SWAP_LEGACY_CRATE, - self::pump_swap::DC_AMM_PUMP_SWAP_MIGRATION_STATUS, - ), - ( - self::raydium_lp_v4::DC_AMM_RAYDIUM_LP_V4_LEGACY_CRATE, - self::raydium_lp_v4::DC_AMM_RAYDIUM_LP_V4_MIGRATION_STATUS, - ), - ( - self::solfi::DC_AMM_SOLFI_LEGACY_CRATE, - self::solfi::DC_AMM_SOLFI_MIGRATION_STATUS, - ), - ( - self::solfi_v2::DC_AMM_SOLFI_V2_LEGACY_CRATE, - self::solfi_v2::DC_AMM_SOLFI_V2_MIGRATION_STATUS, - ), - ( - self::vertigo::DC_AMM_VERTIGO_LEGACY_CRATE, - self::vertigo::DC_AMM_VERTIGO_MIGRATION_STATUS, - ), - ( - self::virtuals::DC_AMM_VIRTUALS_LEGACY_CRATE, - self::virtuals::DC_AMM_VIRTUALS_MIGRATION_STATUS, - ), - ( - self::woofi::DC_AMM_WOOFI_LEGACY_CRATE, - self::woofi::DC_AMM_WOOFI_MIGRATION_STATUS, - ), - ( - self::zero_fi::DC_AMM_ZERO_FI_LEGACY_CRATE, - self::zero_fi::DC_AMM_ZERO_FI_MIGRATION_STATUS, - ), - (self::zora::DC_AMM_ZORA_LEGACY_CRATE, self::zora::DC_AMM_ZORA_MIGRATION_STATUS), -]; +/// Reserved `kb_decoder_amm_aldrin_v1` decoder. +pub use self::aldrin_v1::DcAmmAldrinV1Decoder; +/// Reserved `kb_decoder_amm_aldrin_v2` decoder. +pub use self::aldrin_v2::DcAmmAldrinV2Decoder; +/// Reserved `kb_decoder_amm_alphaq` decoder. +pub use self::alphaq::DcAmmAlphaqDecoder; +/// Reserved `kb_decoder_amm_believe` decoder. +pub use self::believe::DcAmmBelieveDecoder; +/// Reserved `kb_decoder_amm_bonk_swap` decoder. +pub use self::bonk_swap::DcAmmBonkSwapDecoder; +/// Reserved `kb_decoder_amm_fluxbeam` decoder. +pub use self::fluxbeam::DcAmmFluxbeamDecoder; +/// Reserved `kb_decoder_amm_goon_fi` decoder. +pub use self::goon_fi::DcAmmGoonFiDecoder; +/// Reserved `kb_decoder_amm_goosefx_gamma` decoder. +pub use self::goosefx_gamma::DcAmmGoosefxGammaDecoder; +/// Reserved `kb_decoder_amm_goosefx_v2` decoder. +pub use self::goosefx_v2::DcAmmGoosefxV2Decoder; +/// Reserved `kb_decoder_amm_guac_swap` decoder. +pub use self::guac_swap::DcAmmGuacSwapDecoder; +/// Reserved `kb_decoder_amm_lifinity_swap_v2` decoder. +pub use self::lifinity_swap_v2::DcAmmLifinitySwapV2Decoder; +/// Reserved `kb_decoder_amm_metadao_futarchy_amm` decoder. +pub use self::metadao_futarchy_amm::DcAmmMetadaoFutarchyAmmDecoder; +/// Reserved `kb_decoder_amm_metadao_v0_5` decoder. +pub use self::metadao_v0_5::DcAmmMetadaoV05Decoder; +/// Reserved `kb_decoder_amm_meteora_damm_v1` decoder. +pub use self::meteora_damm_v1::DcAmmMeteoraDammV1Decoder; +/// Reserved `kb_decoder_amm_meteora_damm_v2` decoder. +pub use self::meteora_damm_v2::DcAmmMeteoraDammV2Decoder; +/// Reserved `kb_decoder_amm_obric_v2` decoder. +pub use self::obric_v2::DcAmmObricV2Decoder; +/// Reserved `kb_decoder_amm_one_dex` decoder. +pub use self::one_dex::DcAmmOneDexDecoder; +/// Reserved `kb_decoder_amm_pump_swap` decoder. +pub use self::pump_swap::DcAmmPumpSwapDecoder; +/// Reserved `kb_decoder_amm_raydium_lp_v4` decoder. +pub use self::raydium_lp_v4::DcAmmRaydiumLpV4Decoder; +/// Reserved `kb_decoder_amm_solfi` decoder. +pub use self::solfi::DcAmmSolfiDecoder; +/// Reserved `kb_decoder_amm_solfi_v2` decoder. +pub use self::solfi_v2::DcAmmSolfiV2Decoder; +/// Reserved `kb_decoder_amm_vertigo` decoder. +pub use self::vertigo::DcAmmVertigoDecoder; +/// Reserved `kb_decoder_amm_virtuals` decoder. +pub use self::virtuals::DcAmmVirtualsDecoder; +/// Reserved `kb_decoder_amm_woofi` decoder. +pub use self::woofi::DcAmmWoofiDecoder; +/// Reserved `kb_decoder_amm_zero_fi` decoder. +pub use self::zero_fi::DcAmmZeroFiDecoder; +/// Reserved `kb_decoder_amm_zora` decoder. +pub use self::zora::DcAmmZoraDecoder; diff --git a/kb-lib/src/decoder/amm/aldrin_v1.rs b/kb-lib/src/decoder/amm/aldrin_v1.rs index 84727a5..253e2d4 100644 --- a/kb-lib/src/decoder/amm/aldrin_v1.rs +++ b/kb-lib/src/decoder/amm/aldrin_v1.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/aldrin_v1.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_aldrin_v1`. +//! Reserved protocol decoder for `amm_aldrin_v1`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_ALDRIN_V1_LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v1"; +/// Reserved decoder for the `amm_aldrin_v1` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmAldrinV1Decoder; -/// Current porting status. -pub(crate) const DC_AMM_ALDRIN_V1_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmAldrinV1Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_aldrin_v1"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_ALDRIN_V1_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/aldrin_v2.rs b/kb-lib/src/decoder/amm/aldrin_v2.rs index c82616f..eba4fdf 100644 --- a/kb-lib/src/decoder/amm/aldrin_v2.rs +++ b/kb-lib/src/decoder/amm/aldrin_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/aldrin_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_aldrin_v2`. +//! Reserved protocol decoder for `amm_aldrin_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_ALDRIN_V2_LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v2"; +/// Reserved decoder for the `amm_aldrin_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmAldrinV2Decoder; -/// Current porting status. -pub(crate) const DC_AMM_ALDRIN_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmAldrinV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_aldrin_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_ALDRIN_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/alphaq.rs b/kb-lib/src/decoder/amm/alphaq.rs index 3ebf929..84504fc 100644 --- a/kb-lib/src/decoder/amm/alphaq.rs +++ b/kb-lib/src/decoder/amm/alphaq.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/alphaq.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_alphaq`. +//! Reserved protocol decoder for `amm_alphaq`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_ALPHAQ_LEGACY_CRATE: &str = "kb_decoder_amm_alphaq"; +/// Reserved decoder for the `amm_alphaq` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmAlphaqDecoder; -/// Current porting status. -pub(crate) const DC_AMM_ALPHAQ_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmAlphaqDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_alphaq"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_ALPHAQ_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/believe.rs b/kb-lib/src/decoder/amm/believe.rs index 52cdf50..d0a646a 100644 --- a/kb-lib/src/decoder/amm/believe.rs +++ b/kb-lib/src/decoder/amm/believe.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/believe.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_believe`. +//! Reserved protocol decoder for `amm_believe`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_BELIEVE_LEGACY_CRATE: &str = "kb_decoder_amm_believe"; +/// Reserved decoder for the `amm_believe` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmBelieveDecoder; -/// Current porting status. -pub(crate) const DC_AMM_BELIEVE_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmBelieveDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_believe"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_BELIEVE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/bonk_swap.rs b/kb-lib/src/decoder/amm/bonk_swap.rs index 7d7bb76..8cd351b 100644 --- a/kb-lib/src/decoder/amm/bonk_swap.rs +++ b/kb-lib/src/decoder/amm/bonk_swap.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/bonk_swap.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_bonk_swap`. +//! Reserved protocol decoder for `amm_bonk_swap`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_BONK_SWAP_LEGACY_CRATE: &str = "kb_decoder_amm_bonk_swap"; +/// Reserved decoder for the `amm_bonk_swap` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmBonkSwapDecoder; -/// Current porting status. -pub(crate) const DC_AMM_BONK_SWAP_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmBonkSwapDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_bonk_swap"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_BONK_SWAP_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/fluxbeam.rs b/kb-lib/src/decoder/amm/fluxbeam.rs index 28a6bfb..06346fb 100644 --- a/kb-lib/src/decoder/amm/fluxbeam.rs +++ b/kb-lib/src/decoder/amm/fluxbeam.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/fluxbeam.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_fluxbeam`. +//! Reserved protocol decoder for `amm_fluxbeam`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_FLUXBEAM_LEGACY_CRATE: &str = "kb_decoder_amm_fluxbeam"; +/// Reserved decoder for the `amm_fluxbeam` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmFluxbeamDecoder; -/// Current porting status. -pub(crate) const DC_AMM_FLUXBEAM_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmFluxbeamDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_fluxbeam"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_FLUXBEAM_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/goon_fi.rs b/kb-lib/src/decoder/amm/goon_fi.rs index 4a4e5bc..a201a86 100644 --- a/kb-lib/src/decoder/amm/goon_fi.rs +++ b/kb-lib/src/decoder/amm/goon_fi.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/goon_fi.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_goon_fi`. +//! Reserved protocol decoder for `amm_goon_fi`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_GOON_FI_LEGACY_CRATE: &str = "kb_decoder_amm_goon_fi"; +/// Reserved decoder for the `amm_goon_fi` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmGoonFiDecoder; -/// Current porting status. -pub(crate) const DC_AMM_GOON_FI_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmGoonFiDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_goon_fi"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_GOON_FI_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/goosefx_gamma.rs b/kb-lib/src/decoder/amm/goosefx_gamma.rs index 319639d..983c168 100644 --- a/kb-lib/src/decoder/amm/goosefx_gamma.rs +++ b/kb-lib/src/decoder/amm/goosefx_gamma.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/goosefx_gamma.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_goosefx_gamma`. +//! Reserved protocol decoder for `amm_goosefx_gamma`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_GOOSEFX_GAMMA_LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_gamma"; +/// Reserved decoder for the `amm_goosefx_gamma` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmGoosefxGammaDecoder; -/// Current porting status. -pub(crate) const DC_AMM_GOOSEFX_GAMMA_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmGoosefxGammaDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_goosefx_gamma"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_GOOSEFX_GAMMA_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/goosefx_v2.rs b/kb-lib/src/decoder/amm/goosefx_v2.rs index 361c9ee..39bacf0 100644 --- a/kb-lib/src/decoder/amm/goosefx_v2.rs +++ b/kb-lib/src/decoder/amm/goosefx_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/goosefx_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_goosefx_v2`. +//! Reserved protocol decoder for `amm_goosefx_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_GOOSEFX_V2_LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_v2"; +/// Reserved decoder for the `amm_goosefx_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmGoosefxV2Decoder; -/// Current porting status. -pub(crate) const DC_AMM_GOOSEFX_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmGoosefxV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_goosefx_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_GOOSEFX_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/guac_swap.rs b/kb-lib/src/decoder/amm/guac_swap.rs index 4b2c914..1eedd44 100644 --- a/kb-lib/src/decoder/amm/guac_swap.rs +++ b/kb-lib/src/decoder/amm/guac_swap.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/guac_swap.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_guac_swap`. +//! Reserved protocol decoder for `amm_guac_swap`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_GUAC_SWAP_LEGACY_CRATE: &str = "kb_decoder_amm_guac_swap"; +/// Reserved decoder for the `amm_guac_swap` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmGuacSwapDecoder; -/// Current porting status. -pub(crate) const DC_AMM_GUAC_SWAP_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmGuacSwapDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_guac_swap"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_GUAC_SWAP_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/lifinity_swap_v2.rs b/kb-lib/src/decoder/amm/lifinity_swap_v2.rs index a1659ee..81707a5 100644 --- a/kb-lib/src/decoder/amm/lifinity_swap_v2.rs +++ b/kb-lib/src/decoder/amm/lifinity_swap_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/lifinity_swap_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_lifinity_swap_v2`. +//! Reserved protocol decoder for `amm_lifinity_swap_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_LIFINITY_SWAP_V2_LEGACY_CRATE: &str = "kb_decoder_amm_lifinity_swap_v2"; +/// Reserved decoder for the `amm_lifinity_swap_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmLifinitySwapV2Decoder; -/// Current porting status. -pub(crate) const DC_AMM_LIFINITY_SWAP_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmLifinitySwapV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_lifinity_swap_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_LIFINITY_SWAP_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/metadao_futarchy_amm.rs b/kb-lib/src/decoder/amm/metadao_futarchy_amm.rs index d506acb..116968c 100644 --- a/kb-lib/src/decoder/amm/metadao_futarchy_amm.rs +++ b/kb-lib/src/decoder/amm/metadao_futarchy_amm.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/amm/metadao_futarchy_amm.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_metadao_futarchy_amm`. +//! Reserved protocol decoder for `amm_metadao_futarchy_amm`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_METADAO_FUTARCHY_AMM_LEGACY_CRATE: &str = - "kb_decoder_amm_metadao_futarchy_amm"; +/// Reserved decoder for the `amm_metadao_futarchy_amm` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmMetadaoFutarchyAmmDecoder; -/// Current porting status. -pub(crate) const DC_AMM_METADAO_FUTARCHY_AMM_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmMetadaoFutarchyAmmDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_metadao_futarchy_amm"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_METADAO_FUTARCHY_AMM_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/metadao_v0_5.rs b/kb-lib/src/decoder/amm/metadao_v0_5.rs index 5a664cf..daa1d90 100644 --- a/kb-lib/src/decoder/amm/metadao_v0_5.rs +++ b/kb-lib/src/decoder/amm/metadao_v0_5.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/metadao_v0_5.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_metadao_v0_5`. +//! Reserved protocol decoder for `amm_metadao_v0_5`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_METADAO_V0_5_LEGACY_CRATE: &str = "kb_decoder_amm_metadao_v0_5"; +/// Reserved decoder for the `amm_metadao_v0_5` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmMetadaoV05Decoder; -/// Current porting status. -pub(crate) const DC_AMM_METADAO_V0_5_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmMetadaoV05Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_metadao_v0_5"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_METADAO_V0_5_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/meteora_damm_v1.rs b/kb-lib/src/decoder/amm/meteora_damm_v1.rs index d292aab..6486b80 100644 --- a/kb-lib/src/decoder/amm/meteora_damm_v1.rs +++ b/kb-lib/src/decoder/amm/meteora_damm_v1.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/meteora_damm_v1.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_meteora_damm_v1`. +//! Reserved protocol decoder for `amm_meteora_damm_v1`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_METEORA_DAMM_V1_LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v1"; +/// Reserved decoder for the `amm_meteora_damm_v1` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmMeteoraDammV1Decoder; -/// Current porting status. -pub(crate) const DC_AMM_METEORA_DAMM_V1_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmMeteoraDammV1Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_meteora_damm_v1"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_METEORA_DAMM_V1_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/meteora_damm_v2.rs b/kb-lib/src/decoder/amm/meteora_damm_v2.rs index b3cb19d..ea80707 100644 --- a/kb-lib/src/decoder/amm/meteora_damm_v2.rs +++ b/kb-lib/src/decoder/amm/meteora_damm_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/meteora_damm_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_meteora_damm_v2`. +//! Reserved protocol decoder for `amm_meteora_damm_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_METEORA_DAMM_V2_LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v2"; +/// Reserved decoder for the `amm_meteora_damm_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmMeteoraDammV2Decoder; -/// Current porting status. -pub(crate) const DC_AMM_METEORA_DAMM_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmMeteoraDammV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_meteora_damm_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_METEORA_DAMM_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/obric_v2.rs b/kb-lib/src/decoder/amm/obric_v2.rs index 52d7607..afb71cf 100644 --- a/kb-lib/src/decoder/amm/obric_v2.rs +++ b/kb-lib/src/decoder/amm/obric_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/obric_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_obric_v2`. +//! Reserved protocol decoder for `amm_obric_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_OBRIC_V2_LEGACY_CRATE: &str = "kb_decoder_amm_obric_v2"; +/// Reserved decoder for the `amm_obric_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmObricV2Decoder; -/// Current porting status. -pub(crate) const DC_AMM_OBRIC_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmObricV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_obric_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_OBRIC_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/one_dex.rs b/kb-lib/src/decoder/amm/one_dex.rs index 61f7623..51d1ef1 100644 --- a/kb-lib/src/decoder/amm/one_dex.rs +++ b/kb-lib/src/decoder/amm/one_dex.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/one_dex.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_one_dex`. +//! Reserved protocol decoder for `amm_one_dex`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_ONE_DEX_LEGACY_CRATE: &str = "kb_decoder_amm_one_dex"; +/// Reserved decoder for the `amm_one_dex` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmOneDexDecoder; -/// Current porting status. -pub(crate) const DC_AMM_ONE_DEX_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmOneDexDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_one_dex"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_ONE_DEX_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/pump_swap.rs b/kb-lib/src/decoder/amm/pump_swap.rs index 1aeee2e..57e813d 100644 --- a/kb-lib/src/decoder/amm/pump_swap.rs +++ b/kb-lib/src/decoder/amm/pump_swap.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/pump_swap.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_pump_swap`. +//! Reserved protocol decoder for `amm_pump_swap`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_PUMP_SWAP_LEGACY_CRATE: &str = "kb_decoder_amm_pump_swap"; +/// Reserved decoder for the `amm_pump_swap` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmPumpSwapDecoder; -/// Current porting status. -pub(crate) const DC_AMM_PUMP_SWAP_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmPumpSwapDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_pump_swap"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_PUMP_SWAP_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/raydium_lp_v4.rs b/kb-lib/src/decoder/amm/raydium_lp_v4.rs index 6199d05..2a71f4f 100644 --- a/kb-lib/src/decoder/amm/raydium_lp_v4.rs +++ b/kb-lib/src/decoder/amm/raydium_lp_v4.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/raydium_lp_v4.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_raydium_lp_v4`. +//! Reserved protocol decoder for `amm_raydium_lp_v4`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_RAYDIUM_LP_V4_LEGACY_CRATE: &str = "kb_decoder_amm_raydium_lp_v4"; +/// Reserved decoder for the `amm_raydium_lp_v4` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmRaydiumLpV4Decoder; -/// Current porting status. -pub(crate) const DC_AMM_RAYDIUM_LP_V4_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmRaydiumLpV4Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_raydium_lp_v4"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_RAYDIUM_LP_V4_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/solfi.rs b/kb-lib/src/decoder/amm/solfi.rs index 01bf45a..69267cb 100644 --- a/kb-lib/src/decoder/amm/solfi.rs +++ b/kb-lib/src/decoder/amm/solfi.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/solfi.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_solfi`. +//! Reserved protocol decoder for `amm_solfi`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_SOLFI_LEGACY_CRATE: &str = "kb_decoder_amm_solfi"; +/// Reserved decoder for the `amm_solfi` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmSolfiDecoder; -/// Current porting status. -pub(crate) const DC_AMM_SOLFI_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmSolfiDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_solfi"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_SOLFI_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/solfi_v2.rs b/kb-lib/src/decoder/amm/solfi_v2.rs index bf1281f..f6753c2 100644 --- a/kb-lib/src/decoder/amm/solfi_v2.rs +++ b/kb-lib/src/decoder/amm/solfi_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/solfi_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_solfi_v2`. +//! Reserved protocol decoder for `amm_solfi_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_SOLFI_V2_LEGACY_CRATE: &str = "kb_decoder_amm_solfi_v2"; +/// Reserved decoder for the `amm_solfi_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmSolfiV2Decoder; -/// Current porting status. -pub(crate) const DC_AMM_SOLFI_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmSolfiV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_solfi_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_SOLFI_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/vertigo.rs b/kb-lib/src/decoder/amm/vertigo.rs index bbcf135..4adaf53 100644 --- a/kb-lib/src/decoder/amm/vertigo.rs +++ b/kb-lib/src/decoder/amm/vertigo.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/vertigo.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_vertigo`. +//! Reserved protocol decoder for `amm_vertigo`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_VERTIGO_LEGACY_CRATE: &str = "kb_decoder_amm_vertigo"; +/// Reserved decoder for the `amm_vertigo` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmVertigoDecoder; -/// Current porting status. -pub(crate) const DC_AMM_VERTIGO_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmVertigoDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_vertigo"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_VERTIGO_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/virtuals.rs b/kb-lib/src/decoder/amm/virtuals.rs index ad96fb6..923b191 100644 --- a/kb-lib/src/decoder/amm/virtuals.rs +++ b/kb-lib/src/decoder/amm/virtuals.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/virtuals.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_virtuals`. +//! Reserved protocol decoder for `amm_virtuals`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_VIRTUALS_LEGACY_CRATE: &str = "kb_decoder_amm_virtuals"; +/// Reserved decoder for the `amm_virtuals` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmVirtualsDecoder; -/// Current porting status. -pub(crate) const DC_AMM_VIRTUALS_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmVirtualsDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_virtuals"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_VIRTUALS_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/woofi.rs b/kb-lib/src/decoder/amm/woofi.rs index 9ec9367..b684bb6 100644 --- a/kb-lib/src/decoder/amm/woofi.rs +++ b/kb-lib/src/decoder/amm/woofi.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/woofi.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_woofi`. +//! Reserved protocol decoder for `amm_woofi`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_WOOFI_LEGACY_CRATE: &str = "kb_decoder_amm_woofi"; +/// Reserved decoder for the `amm_woofi` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmWoofiDecoder; -/// Current porting status. -pub(crate) const DC_AMM_WOOFI_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmWoofiDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_woofi"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_WOOFI_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/zero_fi.rs b/kb-lib/src/decoder/amm/zero_fi.rs index 0b5ccc8..bd91dee 100644 --- a/kb-lib/src/decoder/amm/zero_fi.rs +++ b/kb-lib/src/decoder/amm/zero_fi.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/zero_fi.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_zero_fi`. +//! Reserved protocol decoder for `amm_zero_fi`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_ZERO_FI_LEGACY_CRATE: &str = "kb_decoder_amm_zero_fi"; +/// Reserved decoder for the `amm_zero_fi` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmZeroFiDecoder; -/// Current porting status. -pub(crate) const DC_AMM_ZERO_FI_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmZeroFiDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_zero_fi"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_ZERO_FI_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/amm/zora.rs b/kb-lib/src/decoder/amm/zora.rs index 75f9b66..c91ad58 100644 --- a/kb-lib/src/decoder/amm/zora.rs +++ b/kb-lib/src/decoder/amm/zora.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/amm/zora.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_amm_zora`. +//! Reserved protocol decoder for `amm_zora`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_AMM_ZORA_LEGACY_CRATE: &str = "kb_decoder_amm_zora"; +/// Reserved decoder for the `amm_zora` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAmmZoraDecoder; -/// Current porting status. -pub(crate) const DC_AMM_ZORA_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAmmZoraDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_amm_zora"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::AMM_ZORA_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/anchor.rs b/kb-lib/src/decoder/anchor.rs index d0113e9..0f19921 100644 --- a/kb-lib/src/decoder/anchor.rs +++ b/kb-lib/src/decoder/anchor.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/anchor.rs -// version: 2 +// version: 3 //! `anchor` decoder family. mod core; -/// Pending `anchor` decoder migration boundaries. -pub(crate) const DC_ANCHOR_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::core::DC_ANCHOR_CORE_LEGACY_CRATE, - self::core::DC_ANCHOR_CORE_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_anchor` decoder. +pub use self::core::DcAnchorDecoder; diff --git a/kb-lib/src/decoder/anchor/core.rs b/kb-lib/src/decoder/anchor/core.rs index a8726cc..025d301 100644 --- a/kb-lib/src/decoder/anchor/core.rs +++ b/kb-lib/src/decoder/anchor/core.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/anchor/core.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_anchor`. +//! Reserved protocol decoder for `anchor`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ANCHOR_CORE_LEGACY_CRATE: &str = "kb_decoder_anchor"; +/// Reserved decoder for the `anchor` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcAnchorDecoder; -/// Current porting status. -pub(crate) const DC_ANCHOR_CORE_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcAnchorDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_anchor"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _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 277d3f3..26b80db 100644 --- a/kb-lib/src/decoder/bridge.rs +++ b/kb-lib/src/decoder/bridge.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/bridge.rs -// version: 2 +// version: 3 //! `bridge` decoder family. @@ -8,22 +8,11 @@ mod circle_cctp_token_messenger_minter_v2; mod layer_zero_endpoint; mod layer_zero_executor; -/// Pending `bridge` decoder migration boundaries. -pub(crate) const DC_BRIDGE_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::circle_cctp_token_messenger_minter::DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_LEGACY_CRATE, - self::circle_cctp_token_messenger_minter::DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_MIGRATION_STATUS, - ), - ( - self::circle_cctp_token_messenger_minter_v2::DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_LEGACY_CRATE, - self::circle_cctp_token_messenger_minter_v2::DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_MIGRATION_STATUS, - ), - ( - self::layer_zero_endpoint::DC_BRIDGE_LAYER_ZERO_ENDPOINT_LEGACY_CRATE, - self::layer_zero_endpoint::DC_BRIDGE_LAYER_ZERO_ENDPOINT_MIGRATION_STATUS, - ), - ( - self::layer_zero_executor::DC_BRIDGE_LAYER_ZERO_EXECUTOR_LEGACY_CRATE, - self::layer_zero_executor::DC_BRIDGE_LAYER_ZERO_EXECUTOR_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_bridge_circle_cctp_token_messenger_minter` decoder. +pub use self::circle_cctp_token_messenger_minter::DcBridgeCircleCctpTokenMessengerMinterDecoder; +/// Reserved `kb_decoder_bridge_circle_cctp_token_messenger_minter_v2` decoder. +pub use self::circle_cctp_token_messenger_minter_v2::DcBridgeCircleCctpTokenMessengerMinterV2Decoder; +/// Reserved `kb_decoder_bridge_layer_zero_endpoint` decoder. +pub use self::layer_zero_endpoint::DcBridgeLayerZeroEndpointDecoder; +/// Reserved `kb_decoder_bridge_layer_zero_executor` decoder. +pub use self::layer_zero_executor::DcBridgeLayerZeroExecutorDecoder; 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 29f34c6..d310941 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 @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_bridge_circle_cctp_token_messenger_minter`. +//! Reserved protocol decoder for `bridge_circle_cctp_token_messenger_minter`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_LEGACY_CRATE: &str = - "kb_decoder_bridge_circle_cctp_token_messenger_minter"; +/// Reserved decoder for the `bridge_circle_cctp_token_messenger_minter` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcBridgeCircleCctpTokenMessengerMinterDecoder; -/// Current porting status. -pub(crate) const DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcBridgeCircleCctpTokenMessengerMinterDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_bridge_circle_cctp_token_messenger_minter"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} 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 d1af2a8..bfe0f4f 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 @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_bridge_circle_cctp_token_messenger_minter_v2`. +//! Reserved protocol decoder for `bridge_circle_cctp_token_messenger_minter_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_LEGACY_CRATE: &str = - "kb_decoder_bridge_circle_cctp_token_messenger_minter_v2"; +/// Reserved decoder for the `bridge_circle_cctp_token_messenger_minter_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcBridgeCircleCctpTokenMessengerMinterV2Decoder; -/// Current porting status. -pub(crate) const DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcBridgeCircleCctpTokenMessengerMinterV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_bridge_circle_cctp_token_messenger_minter_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/bridge/layer_zero_endpoint.rs b/kb-lib/src/decoder/bridge/layer_zero_endpoint.rs index f13f526..d9490e1 100644 --- a/kb-lib/src/decoder/bridge/layer_zero_endpoint.rs +++ b/kb-lib/src/decoder/bridge/layer_zero_endpoint.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/bridge/layer_zero_endpoint.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_bridge_layer_zero_endpoint`. +//! Reserved protocol decoder for `bridge_layer_zero_endpoint`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_BRIDGE_LAYER_ZERO_ENDPOINT_LEGACY_CRATE: &str = - "kb_decoder_bridge_layer_zero_endpoint"; +/// Reserved decoder for the `bridge_layer_zero_endpoint` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcBridgeLayerZeroEndpointDecoder; -/// Current porting status. -pub(crate) const DC_BRIDGE_LAYER_ZERO_ENDPOINT_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcBridgeLayerZeroEndpointDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_bridge_layer_zero_endpoint"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::BRIDGE_LAYER_ZERO_ENDPOINT_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/bridge/layer_zero_executor.rs b/kb-lib/src/decoder/bridge/layer_zero_executor.rs index f785a8a..c2556eb 100644 --- a/kb-lib/src/decoder/bridge/layer_zero_executor.rs +++ b/kb-lib/src/decoder/bridge/layer_zero_executor.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/bridge/layer_zero_executor.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_bridge_layer_zero_executor`. +//! Reserved protocol decoder for `bridge_layer_zero_executor`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_BRIDGE_LAYER_ZERO_EXECUTOR_LEGACY_CRATE: &str = - "kb_decoder_bridge_layer_zero_executor"; +/// Reserved decoder for the `bridge_layer_zero_executor` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcBridgeLayerZeroExecutorDecoder; -/// Current porting status. -pub(crate) const DC_BRIDGE_LAYER_ZERO_EXECUTOR_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcBridgeLayerZeroExecutorDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_bridge_layer_zero_executor"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::BRIDGE_LAYER_ZERO_EXECUTOR_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/clmm.rs b/kb-lib/src/decoder/clmm.rs index ac6c3ea..f2b3ce5 100644 --- a/kb-lib/src/decoder/clmm.rs +++ b/kb-lib/src/decoder/clmm.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/clmm.rs -// version: 2 +// version: 3 //! `clmm` decoder family. @@ -10,30 +10,15 @@ mod pancake_swap; mod raydium; mod stabble; -/// Pending `clmm` decoder migration boundaries. -pub(crate) const DC_CLMM_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::byreal::DC_CLMM_BYREAL_LEGACY_CRATE, - self::byreal::DC_CLMM_BYREAL_MIGRATION_STATUS, - ), - ( - self::fusion::DC_CLMM_FUSION_LEGACY_CRATE, - self::fusion::DC_CLMM_FUSION_MIGRATION_STATUS, - ), - ( - self::orca_whirlpool::DC_CLMM_ORCA_WHIRLPOOL_LEGACY_CRATE, - self::orca_whirlpool::DC_CLMM_ORCA_WHIRLPOOL_MIGRATION_STATUS, - ), - ( - self::pancake_swap::DC_CLMM_PANCAKE_SWAP_LEGACY_CRATE, - self::pancake_swap::DC_CLMM_PANCAKE_SWAP_MIGRATION_STATUS, - ), - ( - self::raydium::DC_CLMM_RAYDIUM_LEGACY_CRATE, - self::raydium::DC_CLMM_RAYDIUM_MIGRATION_STATUS, - ), - ( - self::stabble::DC_CLMM_STABBLE_LEGACY_CRATE, - self::stabble::DC_CLMM_STABBLE_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_clmm_byreal` decoder. +pub use self::byreal::DcClmmByrealDecoder; +/// Reserved `kb_decoder_clmm_fusion` decoder. +pub use self::fusion::DcClmmFusionDecoder; +/// Reserved `kb_decoder_clmm_orca_whirlpool` decoder. +pub use self::orca_whirlpool::DcClmmOrcaWhirlpoolDecoder; +/// Reserved `kb_decoder_clmm_pancake_swap` decoder. +pub use self::pancake_swap::DcClmmPancakeSwapDecoder; +/// Reserved `kb_decoder_clmm_raydium` decoder. +pub use self::raydium::DcClmmRaydiumDecoder; +/// Reserved `kb_decoder_clmm_stabble` decoder. +pub use self::stabble::DcClmmStabbleDecoder; diff --git a/kb-lib/src/decoder/clmm/byreal.rs b/kb-lib/src/decoder/clmm/byreal.rs index b251125..beac671 100644 --- a/kb-lib/src/decoder/clmm/byreal.rs +++ b/kb-lib/src/decoder/clmm/byreal.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/clmm/byreal.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_clmm_byreal`. +//! Reserved protocol decoder for `clmm_byreal`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_CLMM_BYREAL_LEGACY_CRATE: &str = "kb_decoder_clmm_byreal"; +/// Reserved decoder for the `clmm_byreal` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcClmmByrealDecoder; -/// Current porting status. -pub(crate) const DC_CLMM_BYREAL_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcClmmByrealDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_clmm_byreal"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::CLMM_BYREAL_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/clmm/fusion.rs b/kb-lib/src/decoder/clmm/fusion.rs index 2ce9b6d..88e2efb 100644 --- a/kb-lib/src/decoder/clmm/fusion.rs +++ b/kb-lib/src/decoder/clmm/fusion.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/clmm/fusion.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_clmm_fusion`. +//! Reserved protocol decoder for `clmm_fusion`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_CLMM_FUSION_LEGACY_CRATE: &str = "kb_decoder_clmm_fusion"; +/// Reserved decoder for the `clmm_fusion` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcClmmFusionDecoder; -/// Current porting status. -pub(crate) const DC_CLMM_FUSION_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcClmmFusionDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_clmm_fusion"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::CLMM_FUSION_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/clmm/orca_whirlpool.rs b/kb-lib/src/decoder/clmm/orca_whirlpool.rs index ae44a8e..ebd8a82 100644 --- a/kb-lib/src/decoder/clmm/orca_whirlpool.rs +++ b/kb-lib/src/decoder/clmm/orca_whirlpool.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/clmm/orca_whirlpool.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_clmm_orca_whirlpool`. +//! Reserved protocol decoder for `clmm_orca_whirlpool`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_CLMM_ORCA_WHIRLPOOL_LEGACY_CRATE: &str = "kb_decoder_clmm_orca_whirlpool"; +/// Reserved decoder for the `clmm_orca_whirlpool` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcClmmOrcaWhirlpoolDecoder; -/// Current porting status. -pub(crate) const DC_CLMM_ORCA_WHIRLPOOL_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcClmmOrcaWhirlpoolDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_clmm_orca_whirlpool"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::CLMM_ORCA_WHIRLPOOL_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/clmm/pancake_swap.rs b/kb-lib/src/decoder/clmm/pancake_swap.rs index db59e43..1c4c2b6 100644 --- a/kb-lib/src/decoder/clmm/pancake_swap.rs +++ b/kb-lib/src/decoder/clmm/pancake_swap.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/clmm/pancake_swap.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_clmm_pancake_swap`. +//! Reserved protocol decoder for `clmm_pancake_swap`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_CLMM_PANCAKE_SWAP_LEGACY_CRATE: &str = "kb_decoder_clmm_pancake_swap"; +/// Reserved decoder for the `clmm_pancake_swap` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcClmmPancakeSwapDecoder; -/// Current porting status. -pub(crate) const DC_CLMM_PANCAKE_SWAP_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcClmmPancakeSwapDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_clmm_pancake_swap"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::CLMM_PANCAKE_SWAP_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/clmm/raydium.rs b/kb-lib/src/decoder/clmm/raydium.rs index 11ceb07..472802e 100644 --- a/kb-lib/src/decoder/clmm/raydium.rs +++ b/kb-lib/src/decoder/clmm/raydium.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/clmm/raydium.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_clmm_raydium`. +//! Reserved protocol decoder for `clmm_raydium`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_CLMM_RAYDIUM_LEGACY_CRATE: &str = "kb_decoder_clmm_raydium"; +/// Reserved decoder for the `clmm_raydium` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcClmmRaydiumDecoder; -/// Current porting status. -pub(crate) const DC_CLMM_RAYDIUM_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcClmmRaydiumDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_clmm_raydium"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::CLMM_RAYDIUM_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/clmm/stabble.rs b/kb-lib/src/decoder/clmm/stabble.rs index 934ec09..f889b5b 100644 --- a/kb-lib/src/decoder/clmm/stabble.rs +++ b/kb-lib/src/decoder/clmm/stabble.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/clmm/stabble.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_clmm_stabble`. +//! Reserved protocol decoder for `clmm_stabble`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_CLMM_STABBLE_LEGACY_CRATE: &str = "kb_decoder_clmm_stabble"; +/// Reserved decoder for the `clmm_stabble` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcClmmStabbleDecoder; -/// Current porting status. -pub(crate) const DC_CLMM_STABBLE_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcClmmStabbleDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_clmm_stabble"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::CLMM_STABBLE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/cpmm.rs b/kb-lib/src/decoder/cpmm.rs index 33e0882..affd24f 100644 --- a/kb-lib/src/decoder/cpmm.rs +++ b/kb-lib/src/decoder/cpmm.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/cpmm.rs -// version: 2 +// version: 3 //! `cpmm` decoder family. mod raydium; -/// Pending `cpmm` decoder migration boundaries. -pub(crate) const DC_CPMM_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::raydium::DC_CPMM_RAYDIUM_LEGACY_CRATE, - self::raydium::DC_CPMM_RAYDIUM_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_cpmm_raydium` decoder. +pub use self::raydium::DcCpmmRaydiumDecoder; diff --git a/kb-lib/src/decoder/cpmm/raydium.rs b/kb-lib/src/decoder/cpmm/raydium.rs index fcc9b3a..915eb5e 100644 --- a/kb-lib/src/decoder/cpmm/raydium.rs +++ b/kb-lib/src/decoder/cpmm/raydium.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/cpmm/raydium.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_cpmm_raydium`. +//! Reserved protocol decoder for `cpmm_raydium`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_CPMM_RAYDIUM_LEGACY_CRATE: &str = "kb_decoder_cpmm_raydium"; +/// Reserved decoder for the `cpmm_raydium` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcCpmmRaydiumDecoder; -/// Current porting status. -pub(crate) const DC_CPMM_RAYDIUM_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcCpmmRaydiumDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_cpmm_raydium"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::CPMM_RAYDIUM_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/dlmm.rs b/kb-lib/src/decoder/dlmm.rs index ce377bc..7dbd341 100644 --- a/kb-lib/src/decoder/dlmm.rs +++ b/kb-lib/src/decoder/dlmm.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/dlmm.rs -// version: 2 +// version: 3 //! `dlmm` decoder family. mod meteora; -/// Pending `dlmm` decoder migration boundaries. -pub(crate) const DC_DLMM_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::meteora::DC_DLMM_METEORA_LEGACY_CRATE, - self::meteora::DC_DLMM_METEORA_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_dlmm_meteora` decoder. +pub use self::meteora::DcDlmmMeteoraDecoder; diff --git a/kb-lib/src/decoder/dlmm/meteora.rs b/kb-lib/src/decoder/dlmm/meteora.rs index 7a734f5..6b41481 100644 --- a/kb-lib/src/decoder/dlmm/meteora.rs +++ b/kb-lib/src/decoder/dlmm/meteora.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/dlmm/meteora.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_dlmm_meteora`. +//! Reserved protocol decoder for `dlmm_meteora`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_DLMM_METEORA_LEGACY_CRATE: &str = "kb_decoder_dlmm_meteora"; +/// Reserved decoder for the `dlmm_meteora` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcDlmmMeteoraDecoder; -/// Current porting status. -pub(crate) const DC_DLMM_METEORA_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcDlmmMeteoraDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_dlmm_meteora"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::DLMM_METEORA_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/fees.rs b/kb-lib/src/decoder/fees.rs index c5c89f0..db1f104 100644 --- a/kb-lib/src/decoder/fees.rs +++ b/kb-lib/src/decoder/fees.rs @@ -1,19 +1,12 @@ // file: kb-lib/src/decoder/fees.rs -// version: 2 +// version: 3 //! `fees` decoder family. mod bags_fee_share_v1; mod bags_fee_share_v2; -/// Pending `fees` decoder migration boundaries. -pub(crate) const DC_FEES_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::bags_fee_share_v1::DC_FEES_BAGS_FEE_SHARE_V1_LEGACY_CRATE, - self::bags_fee_share_v1::DC_FEES_BAGS_FEE_SHARE_V1_MIGRATION_STATUS, - ), - ( - self::bags_fee_share_v2::DC_FEES_BAGS_FEE_SHARE_V2_LEGACY_CRATE, - self::bags_fee_share_v2::DC_FEES_BAGS_FEE_SHARE_V2_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_fees_bags_fee_share_v1` decoder. +pub use self::bags_fee_share_v1::DcFeesBagsFeeShareV1Decoder; +/// Reserved `kb_decoder_fees_bags_fee_share_v2` decoder. +pub use self::bags_fee_share_v2::DcFeesBagsFeeShareV2Decoder; 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 a9be436..e38cd66 100644 --- a/kb-lib/src/decoder/fees/bags_fee_share_v1.rs +++ b/kb-lib/src/decoder/fees/bags_fee_share_v1.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/fees/bags_fee_share_v1.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_fees_bags_fee_share_v1`. +//! Reserved protocol decoder for `fees_bags_fee_share_v1`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_FEES_BAGS_FEE_SHARE_V1_LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v1"; +/// Reserved decoder for the `fees_bags_fee_share_v1` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcFeesBagsFeeShareV1Decoder; -/// Current porting status. -pub(crate) const DC_FEES_BAGS_FEE_SHARE_V1_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcFeesBagsFeeShareV1Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_fees_bags_fee_share_v1"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::FEES_BAGS_FEE_SHARE_V1_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} 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 b8d1c9c..a6129e2 100644 --- a/kb-lib/src/decoder/fees/bags_fee_share_v2.rs +++ b/kb-lib/src/decoder/fees/bags_fee_share_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/fees/bags_fee_share_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_fees_bags_fee_share_v2`. +//! Reserved protocol decoder for `fees_bags_fee_share_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_FEES_BAGS_FEE_SHARE_V2_LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v2"; +/// Reserved decoder for the `fees_bags_fee_share_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcFeesBagsFeeShareV2Decoder; -/// Current porting status. -pub(crate) const DC_FEES_BAGS_FEE_SHARE_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcFeesBagsFeeShareV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_fees_bags_fee_share_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::FEES_BAGS_FEE_SHARE_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/governance.rs b/kb-lib/src/decoder/governance.rs index e138a5d..2e60f88 100644 --- a/kb-lib/src/decoder/governance.rs +++ b/kb-lib/src/decoder/governance.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/governance.rs -// version: 2 +// version: 3 //! `governance` decoder family. mod metadao_bid_wall; -/// Pending `governance` decoder migration boundaries. -pub(crate) const DC_GOVERNANCE_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::metadao_bid_wall::DC_GOVERNANCE_METADAO_BID_WALL_LEGACY_CRATE, - self::metadao_bid_wall::DC_GOVERNANCE_METADAO_BID_WALL_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_governance_metadao_bid_wall` decoder. +pub use self::metadao_bid_wall::DcGovernanceMetadaoBidWallDecoder; diff --git a/kb-lib/src/decoder/governance/metadao_bid_wall.rs b/kb-lib/src/decoder/governance/metadao_bid_wall.rs index ac75364..e2b7705 100644 --- a/kb-lib/src/decoder/governance/metadao_bid_wall.rs +++ b/kb-lib/src/decoder/governance/metadao_bid_wall.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/governance/metadao_bid_wall.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_governance_metadao_bid_wall`. +//! Reserved protocol decoder for `governance_metadao_bid_wall`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_GOVERNANCE_METADAO_BID_WALL_LEGACY_CRATE: &str = - "kb_decoder_governance_metadao_bid_wall"; +/// Reserved decoder for the `governance_metadao_bid_wall` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcGovernanceMetadaoBidWallDecoder; -/// Current porting status. -pub(crate) const DC_GOVERNANCE_METADAO_BID_WALL_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcGovernanceMetadaoBidWallDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_governance_metadao_bid_wall"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::GOVERNANCE_METADAO_BID_WALL_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/launchpad.rs b/kb-lib/src/decoder/launchpad.rs index 717882f..4638fdd 100644 --- a/kb-lib/src/decoder/launchpad.rs +++ b/kb-lib/src/decoder/launchpad.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/launchpad.rs -// version: 2 +// version: 3 //! `launchpad` decoder family. @@ -13,42 +13,21 @@ mod pump_fun; mod pump_pumpup_ai; mod raydium_launchlab; -/// Pending `launchpad` decoder migration boundaries. -pub(crate) const DC_LAUNCHPAD_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::boop_fun::DC_LAUNCHPAD_BOOP_FUN_LEGACY_CRATE, - self::boop_fun::DC_LAUNCHPAD_BOOP_FUN_MIGRATION_STATUS, - ), - ( - self::metadao_ico::DC_LAUNCHPAD_METADAO_ICO_LEGACY_CRATE, - self::metadao_ico::DC_LAUNCHPAD_METADAO_ICO_MIGRATION_STATUS, - ), - ( - self::meteora_dbc::DC_LAUNCHPAD_METEORA_DBC_LEGACY_CRATE, - self::meteora_dbc::DC_LAUNCHPAD_METEORA_DBC_MIGRATION_STATUS, - ), - ( - self::moonit::DC_LAUNCHPAD_MOONIT_LEGACY_CRATE, - self::moonit::DC_LAUNCHPAD_MOONIT_MIGRATION_STATUS, - ), - ( - self::orca_wavebreak::DC_LAUNCHPAD_ORCA_WAVEBREAK_LEGACY_CRATE, - self::orca_wavebreak::DC_LAUNCHPAD_ORCA_WAVEBREAK_MIGRATION_STATUS, - ), - ( - self::printr::DC_LAUNCHPAD_PRINTR_LEGACY_CRATE, - self::printr::DC_LAUNCHPAD_PRINTR_MIGRATION_STATUS, - ), - ( - self::pump_fun::DC_LAUNCHPAD_PUMP_FUN_LEGACY_CRATE, - self::pump_fun::DC_LAUNCHPAD_PUMP_FUN_MIGRATION_STATUS, - ), - ( - self::pump_pumpup_ai::DC_LAUNCHPAD_PUMP_PUMPUP_AI_LEGACY_CRATE, - self::pump_pumpup_ai::DC_LAUNCHPAD_PUMP_PUMPUP_AI_MIGRATION_STATUS, - ), - ( - self::raydium_launchlab::DC_LAUNCHPAD_RAYDIUM_LAUNCHLAB_LEGACY_CRATE, - self::raydium_launchlab::DC_LAUNCHPAD_RAYDIUM_LAUNCHLAB_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_launchpad_boop_fun` decoder. +pub use self::boop_fun::DcLaunchpadBoopFunDecoder; +/// Reserved `kb_decoder_launchpad_metadao_ico` decoder. +pub use self::metadao_ico::DcLaunchpadMetadaoIcoDecoder; +/// Reserved `kb_decoder_launchpad_meteora_dbc` decoder. +pub use self::meteora_dbc::DcLaunchpadMeteoraDbcDecoder; +/// Reserved `kb_decoder_launchpad_moonit` decoder. +pub use self::moonit::DcLaunchpadMoonitDecoder; +/// Reserved `kb_decoder_launchpad_orca_wavebreak` decoder. +pub use self::orca_wavebreak::DcLaunchpadOrcaWavebreakDecoder; +/// Reserved `kb_decoder_launchpad_printr` decoder. +pub use self::printr::DcLaunchpadPrintrDecoder; +/// Reserved `kb_decoder_launchpad_pump_fun` decoder. +pub use self::pump_fun::DcLaunchpadPumpFunDecoder; +/// Reserved `kb_decoder_launchpad_pump_pumpup_ai` decoder. +pub use self::pump_pumpup_ai::DcLaunchpadPumpPumpupAiDecoder; +/// Reserved `kb_decoder_launchpad_raydium_launchlab` decoder. +pub use self::raydium_launchlab::DcLaunchpadRaydiumLaunchlabDecoder; diff --git a/kb-lib/src/decoder/launchpad/boop_fun.rs b/kb-lib/src/decoder/launchpad/boop_fun.rs index cf71c71..6f91bd0 100644 --- a/kb-lib/src/decoder/launchpad/boop_fun.rs +++ b/kb-lib/src/decoder/launchpad/boop_fun.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/launchpad/boop_fun.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_launchpad_boop_fun`. +//! Reserved protocol decoder for `launchpad_boop_fun`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LAUNCHPAD_BOOP_FUN_LEGACY_CRATE: &str = "kb_decoder_launchpad_boop_fun"; +/// Reserved decoder for the `launchpad_boop_fun` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLaunchpadBoopFunDecoder; -/// Current porting status. -pub(crate) const DC_LAUNCHPAD_BOOP_FUN_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLaunchpadBoopFunDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_launchpad_boop_fun"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LAUNCHPAD_BOOP_FUN_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/launchpad/metadao_ico.rs b/kb-lib/src/decoder/launchpad/metadao_ico.rs index f923bf1..9c6cf81 100644 --- a/kb-lib/src/decoder/launchpad/metadao_ico.rs +++ b/kb-lib/src/decoder/launchpad/metadao_ico.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/launchpad/metadao_ico.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_launchpad_metadao_ico`. +//! Reserved protocol decoder for `launchpad_metadao_ico`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LAUNCHPAD_METADAO_ICO_LEGACY_CRATE: &str = "kb_decoder_launchpad_metadao_ico"; +/// Reserved decoder for the `launchpad_metadao_ico` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLaunchpadMetadaoIcoDecoder; -/// Current porting status. -pub(crate) const DC_LAUNCHPAD_METADAO_ICO_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLaunchpadMetadaoIcoDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_launchpad_metadao_ico"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LAUNCHPAD_METADAO_ICO_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/launchpad/meteora_dbc.rs b/kb-lib/src/decoder/launchpad/meteora_dbc.rs index f96606f..983ea17 100644 --- a/kb-lib/src/decoder/launchpad/meteora_dbc.rs +++ b/kb-lib/src/decoder/launchpad/meteora_dbc.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/launchpad/meteora_dbc.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_launchpad_meteora_dbc`. +//! Reserved protocol decoder for `launchpad_meteora_dbc`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LAUNCHPAD_METEORA_DBC_LEGACY_CRATE: &str = "kb_decoder_launchpad_meteora_dbc"; +/// Reserved decoder for the `launchpad_meteora_dbc` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLaunchpadMeteoraDbcDecoder; -/// Current porting status. -pub(crate) const DC_LAUNCHPAD_METEORA_DBC_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLaunchpadMeteoraDbcDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_launchpad_meteora_dbc"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LAUNCHPAD_METEORA_DBC_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/launchpad/moonit.rs b/kb-lib/src/decoder/launchpad/moonit.rs index 8ac589d..451c0a6 100644 --- a/kb-lib/src/decoder/launchpad/moonit.rs +++ b/kb-lib/src/decoder/launchpad/moonit.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/launchpad/moonit.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_launchpad_moonit`. +//! Reserved protocol decoder for `launchpad_moonit`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LAUNCHPAD_MOONIT_LEGACY_CRATE: &str = "kb_decoder_launchpad_moonit"; +/// Reserved decoder for the `launchpad_moonit` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLaunchpadMoonitDecoder; -/// Current porting status. -pub(crate) const DC_LAUNCHPAD_MOONIT_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLaunchpadMoonitDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_launchpad_moonit"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LAUNCHPAD_MOONIT_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/launchpad/orca_wavebreak.rs b/kb-lib/src/decoder/launchpad/orca_wavebreak.rs index 14498b4..1e4c9ad 100644 --- a/kb-lib/src/decoder/launchpad/orca_wavebreak.rs +++ b/kb-lib/src/decoder/launchpad/orca_wavebreak.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/launchpad/orca_wavebreak.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_launchpad_orca_wavebreak`. +//! Reserved protocol decoder for `launchpad_orca_wavebreak`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LAUNCHPAD_ORCA_WAVEBREAK_LEGACY_CRATE: &str = - "kb_decoder_launchpad_orca_wavebreak"; +/// Reserved decoder for the `launchpad_orca_wavebreak` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLaunchpadOrcaWavebreakDecoder; -/// Current porting status. -pub(crate) const DC_LAUNCHPAD_ORCA_WAVEBREAK_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLaunchpadOrcaWavebreakDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_launchpad_orca_wavebreak"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LAUNCHPAD_ORCA_WAVEBREAK_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/launchpad/printr.rs b/kb-lib/src/decoder/launchpad/printr.rs index 0945f57..b9faf8c 100644 --- a/kb-lib/src/decoder/launchpad/printr.rs +++ b/kb-lib/src/decoder/launchpad/printr.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/launchpad/printr.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_launchpad_printr`. +//! Reserved protocol decoder for `launchpad_printr`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LAUNCHPAD_PRINTR_LEGACY_CRATE: &str = "kb_decoder_launchpad_printr"; +/// Reserved decoder for the `launchpad_printr` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLaunchpadPrintrDecoder; -/// Current porting status. -pub(crate) const DC_LAUNCHPAD_PRINTR_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLaunchpadPrintrDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_launchpad_printr"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LAUNCHPAD_PRINTR_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/launchpad/pump_fun.rs b/kb-lib/src/decoder/launchpad/pump_fun.rs index cad9b0a..1883860 100644 --- a/kb-lib/src/decoder/launchpad/pump_fun.rs +++ b/kb-lib/src/decoder/launchpad/pump_fun.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/launchpad/pump_fun.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_launchpad_pump_fun`. +//! Reserved protocol decoder for `launchpad_pump_fun`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LAUNCHPAD_PUMP_FUN_LEGACY_CRATE: &str = "kb_decoder_launchpad_pump_fun"; +/// Reserved decoder for the `launchpad_pump_fun` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLaunchpadPumpFunDecoder; -/// Current porting status. -pub(crate) const DC_LAUNCHPAD_PUMP_FUN_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLaunchpadPumpFunDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_launchpad_pump_fun"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LAUNCHPAD_PUMP_FUN_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs b/kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs index 7c565d9..e27a872 100644 --- a/kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs +++ b/kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_launchpad_pump_pumpup_ai`. +//! Reserved protocol decoder for `launchpad_pump_pumpup_ai`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LAUNCHPAD_PUMP_PUMPUP_AI_LEGACY_CRATE: &str = - "kb_decoder_launchpad_pump_pumpup_ai"; +/// Reserved decoder for the `launchpad_pump_pumpup_ai` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLaunchpadPumpPumpupAiDecoder; -/// Current porting status. -pub(crate) const DC_LAUNCHPAD_PUMP_PUMPUP_AI_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLaunchpadPumpPumpupAiDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_launchpad_pump_pumpup_ai"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LAUNCHPAD_PUMP_PUMPUP_AI_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/launchpad/raydium_launchlab.rs b/kb-lib/src/decoder/launchpad/raydium_launchlab.rs index 5ae9702..8b52b0c 100644 --- a/kb-lib/src/decoder/launchpad/raydium_launchlab.rs +++ b/kb-lib/src/decoder/launchpad/raydium_launchlab.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/launchpad/raydium_launchlab.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_launchpad_raydium_launchlab`. +//! Reserved protocol decoder for `launchpad_raydium_launchlab`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LAUNCHPAD_RAYDIUM_LAUNCHLAB_LEGACY_CRATE: &str = - "kb_decoder_launchpad_raydium_launchlab"; +/// Reserved decoder for the `launchpad_raydium_launchlab` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLaunchpadRaydiumLaunchlabDecoder; -/// Current porting status. -pub(crate) const DC_LAUNCHPAD_RAYDIUM_LAUNCHLAB_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLaunchpadRaydiumLaunchlabDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_launchpad_raydium_launchlab"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LAUNCHPAD_RAYDIUM_LAUNCHLAB_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/lending.rs b/kb-lib/src/decoder/lending.rs index 5d15845..b4f54f1 100644 --- a/kb-lib/src/decoder/lending.rs +++ b/kb-lib/src/decoder/lending.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/lending.rs -// version: 2 +// version: 3 //! `lending` decoder family. @@ -11,34 +11,17 @@ mod jupiter_lend_liquidity; mod kamino; mod marginfi_v2; -/// Pending `lending` decoder migration boundaries. -pub(crate) const DC_LENDING_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::clone::DC_LENDING_CLONE_LEGACY_CRATE, - self::clone::DC_LENDING_CLONE_MIGRATION_STATUS, - ), - ( - self::jupiter_lend_borrow::DC_LENDING_JUPITER_LEND_BORROW_LEGACY_CRATE, - self::jupiter_lend_borrow::DC_LENDING_JUPITER_LEND_BORROW_MIGRATION_STATUS, - ), - ( - self::jupiter_lend_earn::DC_LENDING_JUPITER_LEND_EARN_LEGACY_CRATE, - self::jupiter_lend_earn::DC_LENDING_JUPITER_LEND_EARN_MIGRATION_STATUS, - ), - ( - self::jupiter_lend_flash_loan::DC_LENDING_JUPITER_LEND_FLASH_LOAN_LEGACY_CRATE, - self::jupiter_lend_flash_loan::DC_LENDING_JUPITER_LEND_FLASH_LOAN_MIGRATION_STATUS, - ), - ( - self::jupiter_lend_liquidity::DC_LENDING_JUPITER_LEND_LIQUIDITY_LEGACY_CRATE, - self::jupiter_lend_liquidity::DC_LENDING_JUPITER_LEND_LIQUIDITY_MIGRATION_STATUS, - ), - ( - self::kamino::DC_LENDING_KAMINO_LEGACY_CRATE, - self::kamino::DC_LENDING_KAMINO_MIGRATION_STATUS, - ), - ( - self::marginfi_v2::DC_LENDING_MARGINFI_V2_LEGACY_CRATE, - self::marginfi_v2::DC_LENDING_MARGINFI_V2_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_lending_clone` decoder. +pub use self::clone::DcLendingCloneDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_borrow` decoder. +pub use self::jupiter_lend_borrow::DcLendingJupiterLendBorrowDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_earn` decoder. +pub use self::jupiter_lend_earn::DcLendingJupiterLendEarnDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_flash_loan` decoder. +pub use self::jupiter_lend_flash_loan::DcLendingJupiterLendFlashLoanDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_liquidity` decoder. +pub use self::jupiter_lend_liquidity::DcLendingJupiterLendLiquidityDecoder; +/// Reserved `kb_decoder_lending_kamino` decoder. +pub use self::kamino::DcLendingKaminoDecoder; +/// Reserved `kb_decoder_lending_marginfi_v2` decoder. +pub use self::marginfi_v2::DcLendingMarginfiV2Decoder; diff --git a/kb-lib/src/decoder/lending/clone.rs b/kb-lib/src/decoder/lending/clone.rs index 5e0f511..425aa35 100644 --- a/kb-lib/src/decoder/lending/clone.rs +++ b/kb-lib/src/decoder/lending/clone.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/lending/clone.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_lending_clone`. +//! Reserved protocol decoder for `lending_clone`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LENDING_CLONE_LEGACY_CRATE: &str = "kb_decoder_lending_clone"; +/// Reserved decoder for the `lending_clone` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLendingCloneDecoder; -/// Current porting status. -pub(crate) const DC_LENDING_CLONE_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLendingCloneDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_lending_clone"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LENDING_CLONE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/lending/jupiter_lend_borrow.rs b/kb-lib/src/decoder/lending/jupiter_lend_borrow.rs index 23d7e32..1906091 100644 --- a/kb-lib/src/decoder/lending/jupiter_lend_borrow.rs +++ b/kb-lib/src/decoder/lending/jupiter_lend_borrow.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/lending/jupiter_lend_borrow.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_borrow`. +//! Reserved protocol decoder for `lending_jupiter_lend_borrow`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LENDING_JUPITER_LEND_BORROW_LEGACY_CRATE: &str = - "kb_decoder_lending_jupiter_lend_borrow"; +/// Reserved decoder for the `lending_jupiter_lend_borrow` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLendingJupiterLendBorrowDecoder; -/// Current porting status. -pub(crate) const DC_LENDING_JUPITER_LEND_BORROW_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLendingJupiterLendBorrowDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_lending_jupiter_lend_borrow"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LENDING_JUPITER_LEND_BORROW_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/lending/jupiter_lend_earn.rs b/kb-lib/src/decoder/lending/jupiter_lend_earn.rs index 700f48d..51d3389 100644 --- a/kb-lib/src/decoder/lending/jupiter_lend_earn.rs +++ b/kb-lib/src/decoder/lending/jupiter_lend_earn.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/lending/jupiter_lend_earn.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_earn`. +//! Reserved protocol decoder for `lending_jupiter_lend_earn`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LENDING_JUPITER_LEND_EARN_LEGACY_CRATE: &str = - "kb_decoder_lending_jupiter_lend_earn"; +/// Reserved decoder for the `lending_jupiter_lend_earn` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLendingJupiterLendEarnDecoder; -/// Current porting status. -pub(crate) const DC_LENDING_JUPITER_LEND_EARN_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLendingJupiterLendEarnDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_lending_jupiter_lend_earn"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LENDING_JUPITER_LEND_EARN_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} 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 72cc678..94fe823 100644 --- a/kb-lib/src/decoder/lending/jupiter_lend_flash_loan.rs +++ b/kb-lib/src/decoder/lending/jupiter_lend_flash_loan.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/lending/jupiter_lend_flash_loan.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_flash_loan`. +//! Reserved protocol decoder for `lending_jupiter_lend_flash_loan`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LENDING_JUPITER_LEND_FLASH_LOAN_LEGACY_CRATE: &str = - "kb_decoder_lending_jupiter_lend_flash_loan"; +/// Reserved decoder for the `lending_jupiter_lend_flash_loan` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLendingJupiterLendFlashLoanDecoder; -/// Current porting status. -pub(crate) const DC_LENDING_JUPITER_LEND_FLASH_LOAN_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLendingJupiterLendFlashLoanDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_lending_jupiter_lend_flash_loan"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LENDING_JUPITER_LEND_FLASH_LOAN_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs b/kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs index 1e0571d..9a8dec8 100644 --- a/kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs +++ b/kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_liquidity`. +//! Reserved protocol decoder for `lending_jupiter_lend_liquidity`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LENDING_JUPITER_LEND_LIQUIDITY_LEGACY_CRATE: &str = - "kb_decoder_lending_jupiter_lend_liquidity"; +/// Reserved decoder for the `lending_jupiter_lend_liquidity` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLendingJupiterLendLiquidityDecoder; -/// Current porting status. -pub(crate) const DC_LENDING_JUPITER_LEND_LIQUIDITY_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLendingJupiterLendLiquidityDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_lending_jupiter_lend_liquidity"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LENDING_JUPITER_LEND_LIQUIDITY_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/lending/kamino.rs b/kb-lib/src/decoder/lending/kamino.rs index 09f2e0e..923006c 100644 --- a/kb-lib/src/decoder/lending/kamino.rs +++ b/kb-lib/src/decoder/lending/kamino.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/lending/kamino.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_lending_kamino`. +//! Reserved protocol decoder for `lending_kamino`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LENDING_KAMINO_LEGACY_CRATE: &str = "kb_decoder_lending_kamino"; +/// Reserved decoder for the `lending_kamino` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLendingKaminoDecoder; -/// Current porting status. -pub(crate) const DC_LENDING_KAMINO_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLendingKaminoDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_lending_kamino"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LENDING_KAMINO_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/lending/marginfi_v2.rs b/kb-lib/src/decoder/lending/marginfi_v2.rs index f1507da..c65da53 100644 --- a/kb-lib/src/decoder/lending/marginfi_v2.rs +++ b/kb-lib/src/decoder/lending/marginfi_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/lending/marginfi_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_lending_marginfi_v2`. +//! Reserved protocol decoder for `lending_marginfi_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LENDING_MARGINFI_V2_LEGACY_CRATE: &str = "kb_decoder_lending_marginfi_v2"; +/// Reserved decoder for the `lending_marginfi_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLendingMarginfiV2Decoder; -/// Current porting status. -pub(crate) const DC_LENDING_MARGINFI_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLendingMarginfiV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_lending_marginfi_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LENDING_MARGINFI_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/lock.rs b/kb-lib/src/decoder/lock.rs index 5f4645d..99e1974 100644 --- a/kb-lib/src/decoder/lock.rs +++ b/kb-lib/src/decoder/lock.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/lock.rs -// version: 2 +// version: 3 //! `lock` decoder family. mod raydium_lp; -/// Pending `lock` decoder migration boundaries. -pub(crate) const DC_LOCK_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::raydium_lp::DC_LOCK_RAYDIUM_LP_LEGACY_CRATE, - self::raydium_lp::DC_LOCK_RAYDIUM_LP_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_lock_raydium_lp` decoder. +pub use self::raydium_lp::DcLockRaydiumLpDecoder; diff --git a/kb-lib/src/decoder/lock/raydium_lp.rs b/kb-lib/src/decoder/lock/raydium_lp.rs index d163eea..0888307 100644 --- a/kb-lib/src/decoder/lock/raydium_lp.rs +++ b/kb-lib/src/decoder/lock/raydium_lp.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/lock/raydium_lp.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_lock_raydium_lp`. +//! Reserved protocol decoder for `lock_raydium_lp`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_LOCK_RAYDIUM_LP_LEGACY_CRATE: &str = "kb_decoder_lock_raydium_lp"; +/// Reserved decoder for the `lock_raydium_lp` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcLockRaydiumLpDecoder; -/// Current porting status. -pub(crate) const DC_LOCK_RAYDIUM_LP_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcLockRaydiumLpDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_lock_raydium_lp"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::LOCK_RAYDIUM_LP_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/metadata.rs b/kb-lib/src/decoder/metadata.rs index fd96c9a..b6845b0 100644 --- a/kb-lib/src/decoder/metadata.rs +++ b/kb-lib/src/decoder/metadata.rs @@ -1,16 +1,83 @@ // file: kb-lib/src/decoder/metadata.rs -// version: 3 +// version: 4 //! `metadata` decoder family. mod metaplex_token_metadata; mod spl_name_service; -/// Pending `metadata` decoder migration boundaries. -pub(crate) const DC_METADATA_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::spl_name_service::DC_METADATA_SPL_NAME_SERVICE_LEGACY_CRATE, - self::spl_name_service::DC_METADATA_SPL_NAME_SERVICE_MIGRATION_STATUS, -)]; +/// 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::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; +/// Reserved `kb_decoder_metadata_spl_name_service` decoder. +pub use self::spl_name_service::DcMetadataSplNameServiceDecoder; /// Approve Collection Authority discriminator. pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR; @@ -150,74 +217,3 @@ pub(crate) use self::metaplex_token_metadata::decoder_metadata_metaplex_token_me 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::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 28740ca..5f6ba06 100644 --- a/kb-lib/src/decoder/metadata/metaplex_token_metadata.rs +++ b/kb-lib/src/decoder/metadata/metaplex_token_metadata.rs @@ -9,6 +9,77 @@ mod constants; mod decoder; mod instruction; +/// Exhaustive published Metaplex account-key inventory. +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::DcMetadataMtmMetadataAccountDecodeError; +/// One entry in the exhaustive published account-key audit. +pub use self::account::DcMetadataMtmMetadataAccountLayoutAuditEntry; +/// Canonical bounded projection of one Metadata account. +pub use self::account::DcMetadataMtmMetadataAccountSnapshot; +/// One bounded historical reservation entry. +pub use self::account::DcMetadataMtmReservationEntrySnapshot; +/// Historical Reservation List account generation. +pub use self::account::DcMetadataMtmReservationListAccountKind; +/// Canonical decode-only projection of a historical Reservation List account. +pub use self::account::DcMetadataMtmReservationListAccountSnapshot; +/// Canonical projection of one Token Owned Escrow account. +pub use self::account::DcMetadataMtmTokenOwnedEscrowAccountSnapshot; +/// Authority form used by one Token Owned Escrow account. +pub use self::account::DcMetadataMtmTokenOwnedEscrowAuthorityKind; +/// Canonical bounded projection of one programmable Token Record account. +pub use self::account::DcMetadataMtmTokenRecordAccountSnapshot; +/// Decodes one 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::decoder_metadata_metaplex_token_metadata_decode_edition_account; +/// Decodes and validates one Edition Marker account snapshot. +pub use self::account::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account; +/// Decodes one 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::decoder_metadata_metaplex_token_metadata_decode_metadata_account; +/// Decodes one 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::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account; +/// Decodes one 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::decoder_metadata_metaplex_token_metadata_decode_token_record_account; +/// Decodes one 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::DcMetadataMtmCanonicalAccountIdentity; +/// Lifecycle class of one canonical account layout. +pub use self::canonical::DcMetadataMtmCanonicalAccountLifecycle; +/// Provenance retained for one canonical account observation. +pub use self::canonical::DcMetadataMtmCanonicalAccountProvenance; +/// Execution policy separated from historical materialization. +pub use self::canonical::DcMetadataMtmCanonicalExecutionPolicy; +/// Materialization policy for active or historical state. +pub use self::canonical::DcMetadataMtmCanonicalMaterializationPolicy; +/// Canonical account envelope used by materializers and replay. +pub use self::canonical::DcMetadataMtmCanonicalMetadataAccountSnapshot; +/// Typed canonical Metaplex account state. +pub use self::canonical::DcMetadataMtmCanonicalMetadataAccountState; +/// Origin of one canonical account observation. +pub use self::canonical::DcMetadataMtmCanonicalObservationSource; +/// Exact Metaplex Token Metadata decoder. +pub use self::decoder::DcMetadataMetaplexTokenMetadataDecoder; + /// Approve Collection Authority discriminator. pub(crate) use self::constants::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR; /// Approve Use Authority discriminator. @@ -147,74 +218,3 @@ pub(crate) use self::instruction::decoder_metadata_metaplex_token_metadata_decod 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::decoder_metadata_metaplex_token_metadata_payload_discriminator; - -/// Exhaustive published Metaplex account-key inventory. -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::DcMetadataMtmMetadataAccountDecodeError; -/// One entry in the exhaustive published account-key audit. -pub use self::account::DcMetadataMtmMetadataAccountLayoutAuditEntry; -/// Canonical bounded projection of one Metadata account. -pub use self::account::DcMetadataMtmMetadataAccountSnapshot; -/// One bounded historical reservation entry. -pub use self::account::DcMetadataMtmReservationEntrySnapshot; -/// Historical Reservation List account generation. -pub use self::account::DcMetadataMtmReservationListAccountKind; -/// Canonical decode-only projection of a historical Reservation List account. -pub use self::account::DcMetadataMtmReservationListAccountSnapshot; -/// Canonical projection of one Token Owned Escrow account. -pub use self::account::DcMetadataMtmTokenOwnedEscrowAccountSnapshot; -/// Authority form used by one Token Owned Escrow account. -pub use self::account::DcMetadataMtmTokenOwnedEscrowAuthorityKind; -/// Canonical bounded projection of one programmable Token Record account. -pub use self::account::DcMetadataMtmTokenRecordAccountSnapshot; -/// Decodes one 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::decoder_metadata_metaplex_token_metadata_decode_edition_account; -/// Decodes and validates one Edition Marker account snapshot. -pub use self::account::decoder_metadata_metaplex_token_metadata_decode_edition_marker_account; -/// Decodes one 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::decoder_metadata_metaplex_token_metadata_decode_metadata_account; -/// Decodes one 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::decoder_metadata_metaplex_token_metadata_decode_reservation_list_account; -/// Decodes one 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::decoder_metadata_metaplex_token_metadata_decode_token_record_account; -/// Decodes one 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::DcMetadataMtmCanonicalAccountIdentity; -/// Lifecycle class of one canonical account layout. -pub use self::canonical::DcMetadataMtmCanonicalAccountLifecycle; -/// Provenance retained for one canonical account observation. -pub use self::canonical::DcMetadataMtmCanonicalAccountProvenance; -/// Execution policy separated from historical materialization. -pub use self::canonical::DcMetadataMtmCanonicalExecutionPolicy; -/// Materialization policy for active or historical state. -pub use self::canonical::DcMetadataMtmCanonicalMaterializationPolicy; -/// Canonical account envelope used by materializers and replay. -pub use self::canonical::DcMetadataMtmCanonicalMetadataAccountSnapshot; -/// Typed canonical Metaplex account state. -pub use self::canonical::DcMetadataMtmCanonicalMetadataAccountState; -/// Origin of one canonical account observation. -pub use self::canonical::DcMetadataMtmCanonicalObservationSource; -/// Exact Metaplex Token Metadata decoder. -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 29f8807..7c98145 100644 --- a/kb-lib/src/decoder/metadata/metaplex_token_metadata/account.rs +++ b/kb-lib/src/decoder/metadata/metaplex_token_metadata/account.rs @@ -3,6 +3,101 @@ //! Bounded decoding and PDA validation for Metaplex Token Metadata accounts. +/// Exhaustive inventory of every published Metaplex Token Metadata `Key` variant. +pub const DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT: + &[DcMetadataMtmMetadataAccountLayoutAuditEntry] = &[ + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "Uninitialized", + discriminant: 0, + decoder: "reject_uninitialized", + lifecycle: "sentinel", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "EditionV1", + discriminant: 1, + decoder: "decode_edition_account", + lifecycle: "active", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "MasterEditionV1", + discriminant: 2, + decoder: "decode_edition_account", + lifecycle: "historical_materializable", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "ReservationListV1", + discriminant: 3, + decoder: "decode_reservation_list_account", + lifecycle: "historical_materializable", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "MetadataV1", + discriminant: 4, + decoder: "decode_metadata_account", + lifecycle: "active", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "ReservationListV2", + discriminant: 5, + decoder: "decode_reservation_list_account", + lifecycle: "historical_materializable", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "MasterEditionV2", + discriminant: 6, + decoder: "decode_edition_account", + lifecycle: "active", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "EditionMarker", + discriminant: 7, + decoder: "decode_edition_marker_account", + lifecycle: "active", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "UseAuthorityRecord", + discriminant: 8, + decoder: "decode_use_authority_record_account", + lifecycle: "active", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "CollectionAuthorityRecord", + discriminant: 9, + decoder: "decode_collection_authority_record_account", + lifecycle: "active", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "TokenOwnedEscrow", + discriminant: 10, + decoder: "decode_token_owned_escrow_account", + lifecycle: "active", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "TokenRecord", + discriminant: 11, + decoder: "decode_token_record_account", + lifecycle: "active", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "MetadataDelegate", + discriminant: 12, + decoder: "decode_metadata_delegate_record_account", + lifecycle: "active", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "EditionMarkerV2", + discriminant: 13, + decoder: "decode_edition_marker_account", + lifecycle: "active_experimental", + }, + DcMetadataMtmMetadataAccountLayoutAuditEntry { + key_name: "HolderDelegate", + discriminant: 14, + decoder: "decode_holder_delegate_record_account", + lifecycle: "active", + }, +]; + const MAX_METADATA_ACCOUNT_BYTES: usize = 1_024; const MAX_NAME_BYTES: usize = 32; const MAX_SYMBOL_BYTES: usize = 10; @@ -105,101 +200,6 @@ pub struct DcMetadataMtmMetadataAccountLayoutAuditEntry { pub lifecycle: &'static str, } -/// Exhaustive inventory of every published Metaplex Token Metadata `Key` variant. -pub const DC_METADATA_MTM_METADATA_ACCOUNT_LAYOUT_AUDIT: - &[DcMetadataMtmMetadataAccountLayoutAuditEntry] = &[ - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "Uninitialized", - discriminant: 0, - decoder: "reject_uninitialized", - lifecycle: "sentinel", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "EditionV1", - discriminant: 1, - decoder: "decode_edition_account", - lifecycle: "active", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "MasterEditionV1", - discriminant: 2, - decoder: "decode_edition_account", - lifecycle: "historical_materializable", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "ReservationListV1", - discriminant: 3, - decoder: "decode_reservation_list_account", - lifecycle: "historical_materializable", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "MetadataV1", - discriminant: 4, - decoder: "decode_metadata_account", - lifecycle: "active", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "ReservationListV2", - discriminant: 5, - decoder: "decode_reservation_list_account", - lifecycle: "historical_materializable", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "MasterEditionV2", - discriminant: 6, - decoder: "decode_edition_account", - lifecycle: "active", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "EditionMarker", - discriminant: 7, - decoder: "decode_edition_marker_account", - lifecycle: "active", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "UseAuthorityRecord", - discriminant: 8, - decoder: "decode_use_authority_record_account", - lifecycle: "active", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "CollectionAuthorityRecord", - discriminant: 9, - decoder: "decode_collection_authority_record_account", - lifecycle: "active", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "TokenOwnedEscrow", - discriminant: 10, - decoder: "decode_token_owned_escrow_account", - lifecycle: "active", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "TokenRecord", - discriminant: 11, - decoder: "decode_token_record_account", - lifecycle: "active", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "MetadataDelegate", - discriminant: 12, - decoder: "decode_metadata_delegate_record_account", - lifecycle: "active", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "EditionMarkerV2", - discriminant: 13, - decoder: "decode_edition_marker_account", - lifecycle: "active_experimental", - }, - DcMetadataMtmMetadataAccountLayoutAuditEntry { - key_name: "HolderDelegate", - discriminant: 14, - decoder: "decode_holder_delegate_record_account", - lifecycle: "active", - }, -]; - /// Canonical bounded projection of one Metadata account. #[derive(Clone, Debug, PartialEq)] pub struct DcMetadataMtmMetadataAccountSnapshot { diff --git a/kb-lib/src/decoder/metadata/spl_name_service.rs b/kb-lib/src/decoder/metadata/spl_name_service.rs index 90bc049..8703018 100644 --- a/kb-lib/src/decoder/metadata/spl_name_service.rs +++ b/kb-lib/src/decoder/metadata/spl_name_service.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/metadata/spl_name_service.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_metadata_spl_name_service`. +//! Reserved protocol decoder for `metadata_spl_name_service`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_METADATA_SPL_NAME_SERVICE_LEGACY_CRATE: &str = - "kb_decoder_metadata_spl_name_service"; +/// Reserved decoder for the `metadata_spl_name_service` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcMetadataSplNameServiceDecoder; -/// Current porting status. -pub(crate) const DC_METADATA_SPL_NAME_SERVICE_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcMetadataSplNameServiceDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_metadata_spl_name_service"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::METADATA_SPL_NAME_SERVICE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/nft.rs b/kb-lib/src/decoder/nft.rs index 9b0a683..bc6906b 100644 --- a/kb-lib/src/decoder/nft.rs +++ b/kb-lib/src/decoder/nft.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/nft.rs -// version: 2 +// version: 3 //! `nft` decoder family. mod metaplex_bubblegum; -/// Pending `nft` decoder migration boundaries. -pub(crate) const DC_NFT_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::metaplex_bubblegum::DC_NFT_METAPLEX_BUBBLEGUM_LEGACY_CRATE, - self::metaplex_bubblegum::DC_NFT_METAPLEX_BUBBLEGUM_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_nft_metaplex_bubblegum` decoder. +pub use self::metaplex_bubblegum::DcNftMetaplexBubblegumDecoder; diff --git a/kb-lib/src/decoder/nft/metaplex_bubblegum.rs b/kb-lib/src/decoder/nft/metaplex_bubblegum.rs index 675f430..9a178db 100644 --- a/kb-lib/src/decoder/nft/metaplex_bubblegum.rs +++ b/kb-lib/src/decoder/nft/metaplex_bubblegum.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/nft/metaplex_bubblegum.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_nft_metaplex_bubblegum`. +//! Reserved protocol decoder for `nft_metaplex_bubblegum`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_NFT_METAPLEX_BUBBLEGUM_LEGACY_CRATE: &str = "kb_decoder_nft_metaplex_bubblegum"; +/// Reserved decoder for the `nft_metaplex_bubblegum` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcNftMetaplexBubblegumDecoder; -/// Current porting status. -pub(crate) const DC_NFT_METAPLEX_BUBBLEGUM_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcNftMetaplexBubblegumDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_nft_metaplex_bubblegum"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::NFT_METAPLEX_BUBBLEGUM_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/orderbook.rs b/kb-lib/src/decoder/orderbook.rs index 46dfce4..60e83a9 100644 --- a/kb-lib/src/decoder/orderbook.rs +++ b/kb-lib/src/decoder/orderbook.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/orderbook.rs -// version: 2 +// version: 3 //! `orderbook` decoder family. @@ -7,18 +7,9 @@ mod jupiter_limit_order; mod jupiter_limit_order_v2; mod openbook_v2; -/// Pending `orderbook` decoder migration boundaries. -pub(crate) const DC_ORDERBOOK_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::jupiter_limit_order::DC_ORDERBOOK_JUPITER_LIMIT_ORDER_LEGACY_CRATE, - self::jupiter_limit_order::DC_ORDERBOOK_JUPITER_LIMIT_ORDER_MIGRATION_STATUS, - ), - ( - self::jupiter_limit_order_v2::DC_ORDERBOOK_JUPITER_LIMIT_ORDER_V2_LEGACY_CRATE, - self::jupiter_limit_order_v2::DC_ORDERBOOK_JUPITER_LIMIT_ORDER_V2_MIGRATION_STATUS, - ), - ( - self::openbook_v2::DC_ORDERBOOK_OPENBOOK_V2_LEGACY_CRATE, - self::openbook_v2::DC_ORDERBOOK_OPENBOOK_V2_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_orderbook_jupiter_limit_order` decoder. +pub use self::jupiter_limit_order::DcOrderbookJupiterLimitOrderDecoder; +/// Reserved `kb_decoder_orderbook_jupiter_limit_order_v2` decoder. +pub use self::jupiter_limit_order_v2::DcOrderbookJupiterLimitOrderV2Decoder; +/// Reserved `kb_decoder_orderbook_openbook_v2` decoder. +pub use self::openbook_v2::DcOrderbookOpenbookV2Decoder; diff --git a/kb-lib/src/decoder/orderbook/jupiter_limit_order.rs b/kb-lib/src/decoder/orderbook/jupiter_limit_order.rs index 3ad7923..405663b 100644 --- a/kb-lib/src/decoder/orderbook/jupiter_limit_order.rs +++ b/kb-lib/src/decoder/orderbook/jupiter_limit_order.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/orderbook/jupiter_limit_order.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_orderbook_jupiter_limit_order`. +//! Reserved protocol decoder for `orderbook_jupiter_limit_order`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ORDERBOOK_JUPITER_LIMIT_ORDER_LEGACY_CRATE: &str = - "kb_decoder_orderbook_jupiter_limit_order"; +/// Reserved decoder for the `orderbook_jupiter_limit_order` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcOrderbookJupiterLimitOrderDecoder; -/// Current porting status. -pub(crate) const DC_ORDERBOOK_JUPITER_LIMIT_ORDER_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcOrderbookJupiterLimitOrderDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_orderbook_jupiter_limit_order"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ORDERBOOK_JUPITER_LIMIT_ORDER_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} 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 a375865..2b64cf7 100644 --- a/kb-lib/src/decoder/orderbook/jupiter_limit_order_v2.rs +++ b/kb-lib/src/decoder/orderbook/jupiter_limit_order_v2.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/orderbook/jupiter_limit_order_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_orderbook_jupiter_limit_order_v2`. +//! Reserved protocol decoder for `orderbook_jupiter_limit_order_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ORDERBOOK_JUPITER_LIMIT_ORDER_V2_LEGACY_CRATE: &str = - "kb_decoder_orderbook_jupiter_limit_order_v2"; +/// Reserved decoder for the `orderbook_jupiter_limit_order_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcOrderbookJupiterLimitOrderV2Decoder; -/// Current porting status. -pub(crate) const DC_ORDERBOOK_JUPITER_LIMIT_ORDER_V2_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcOrderbookJupiterLimitOrderV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_orderbook_jupiter_limit_order_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ORDERBOOK_JUPITER_LIMIT_ORDER_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/orderbook/openbook_v2.rs b/kb-lib/src/decoder/orderbook/openbook_v2.rs index 5b291be..fa8d1e6 100644 --- a/kb-lib/src/decoder/orderbook/openbook_v2.rs +++ b/kb-lib/src/decoder/orderbook/openbook_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/orderbook/openbook_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_orderbook_openbook_v2`. +//! Reserved protocol decoder for `orderbook_openbook_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ORDERBOOK_OPENBOOK_V2_LEGACY_CRATE: &str = "kb_decoder_orderbook_openbook_v2"; +/// Reserved decoder for the `orderbook_openbook_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcOrderbookOpenbookV2Decoder; -/// Current porting status. -pub(crate) const DC_ORDERBOOK_OPENBOOK_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcOrderbookOpenbookV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_orderbook_openbook_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ORDERBOOK_OPENBOOK_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/perpetuals.rs b/kb-lib/src/decoder/perpetuals.rs index 519841d..3c6f81f 100644 --- a/kb-lib/src/decoder/perpetuals.rs +++ b/kb-lib/src/decoder/perpetuals.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/perpetuals.rs -// version: 2 +// version: 3 //! `perpetuals` decoder family. @@ -7,18 +7,9 @@ mod drift_v2; mod jupiter; mod zeta; -/// Pending `perpetuals` decoder migration boundaries. -pub(crate) const DC_PERPETUALS_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::drift_v2::DC_PERPETUALS_DRIFT_V2_LEGACY_CRATE, - self::drift_v2::DC_PERPETUALS_DRIFT_V2_MIGRATION_STATUS, - ), - ( - self::jupiter::DC_PERPETUALS_JUPITER_LEGACY_CRATE, - self::jupiter::DC_PERPETUALS_JUPITER_MIGRATION_STATUS, - ), - ( - self::zeta::DC_PERPETUALS_ZETA_LEGACY_CRATE, - self::zeta::DC_PERPETUALS_ZETA_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_perpetuals_drift_v2` decoder. +pub use self::drift_v2::DcPerpetualsDriftV2Decoder; +/// Reserved `kb_decoder_perpetuals_jupiter` decoder. +pub use self::jupiter::DcPerpetualsJupiterDecoder; +/// Reserved `kb_decoder_perpetuals_zeta` decoder. +pub use self::zeta::DcPerpetualsZetaDecoder; diff --git a/kb-lib/src/decoder/perpetuals/drift_v2.rs b/kb-lib/src/decoder/perpetuals/drift_v2.rs index b844983..dbee3ab 100644 --- a/kb-lib/src/decoder/perpetuals/drift_v2.rs +++ b/kb-lib/src/decoder/perpetuals/drift_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/perpetuals/drift_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_perpetuals_drift_v2`. +//! Reserved protocol decoder for `perpetuals_drift_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_PERPETUALS_DRIFT_V2_LEGACY_CRATE: &str = "kb_decoder_perpetuals_drift_v2"; +/// Reserved decoder for the `perpetuals_drift_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcPerpetualsDriftV2Decoder; -/// Current porting status. -pub(crate) const DC_PERPETUALS_DRIFT_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcPerpetualsDriftV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_perpetuals_drift_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::PERPETUALS_DRIFT_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/perpetuals/jupiter.rs b/kb-lib/src/decoder/perpetuals/jupiter.rs index 4b02879..4d0e394 100644 --- a/kb-lib/src/decoder/perpetuals/jupiter.rs +++ b/kb-lib/src/decoder/perpetuals/jupiter.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/perpetuals/jupiter.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_perpetuals_jupiter`. +//! Reserved protocol decoder for `perpetuals_jupiter`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_PERPETUALS_JUPITER_LEGACY_CRATE: &str = "kb_decoder_perpetuals_jupiter"; +/// Reserved decoder for the `perpetuals_jupiter` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcPerpetualsJupiterDecoder; -/// Current porting status. -pub(crate) const DC_PERPETUALS_JUPITER_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcPerpetualsJupiterDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_perpetuals_jupiter"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::PERPETUALS_JUPITER_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/perpetuals/zeta.rs b/kb-lib/src/decoder/perpetuals/zeta.rs index 1428700..c477cd3 100644 --- a/kb-lib/src/decoder/perpetuals/zeta.rs +++ b/kb-lib/src/decoder/perpetuals/zeta.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/perpetuals/zeta.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_perpetuals_zeta`. +//! Reserved protocol decoder for `perpetuals_zeta`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_PERPETUALS_ZETA_LEGACY_CRATE: &str = "kb_decoder_perpetuals_zeta"; +/// Reserved decoder for the `perpetuals_zeta` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcPerpetualsZetaDecoder; -/// Current porting status. -pub(crate) const DC_PERPETUALS_ZETA_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcPerpetualsZetaDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_perpetuals_zeta"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::PERPETUALS_ZETA_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/router.rs b/kb-lib/src/decoder/router.rs index 3dca690..5154da2 100644 --- a/kb-lib/src/decoder/router.rs +++ b/kb-lib/src/decoder/router.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/router.rs -// version: 2 +// version: 3 //! `router` decoder family. @@ -10,30 +10,15 @@ mod jupiter_dca; mod okx_labs_v1; mod okx_labs_v2; -/// Pending `router` decoder migration boundaries. -pub(crate) const DC_ROUTER_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::dflow_aggregator_v4::DC_ROUTER_DFLOW_AGGREGATOR_V4_LEGACY_CRATE, - self::dflow_aggregator_v4::DC_ROUTER_DFLOW_AGGREGATOR_V4_MIGRATION_STATUS, - ), - ( - self::jupiter_aggregator_v4::DC_ROUTER_JUPITER_AGGREGATOR_V4_LEGACY_CRATE, - self::jupiter_aggregator_v4::DC_ROUTER_JUPITER_AGGREGATOR_V4_MIGRATION_STATUS, - ), - ( - self::jupiter_aggregator_v6::DC_ROUTER_JUPITER_AGGREGATOR_V6_LEGACY_CRATE, - self::jupiter_aggregator_v6::DC_ROUTER_JUPITER_AGGREGATOR_V6_MIGRATION_STATUS, - ), - ( - self::jupiter_dca::DC_ROUTER_JUPITER_DCA_LEGACY_CRATE, - self::jupiter_dca::DC_ROUTER_JUPITER_DCA_MIGRATION_STATUS, - ), - ( - self::okx_labs_v1::DC_ROUTER_OKX_LABS_V1_LEGACY_CRATE, - self::okx_labs_v1::DC_ROUTER_OKX_LABS_V1_MIGRATION_STATUS, - ), - ( - self::okx_labs_v2::DC_ROUTER_OKX_LABS_V2_LEGACY_CRATE, - self::okx_labs_v2::DC_ROUTER_OKX_LABS_V2_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_router_dflow_aggregator_v4` decoder. +pub use self::dflow_aggregator_v4::DcRouterDflowAggregatorV4Decoder; +/// Reserved `kb_decoder_router_jupiter_aggregator_v4` decoder. +pub use self::jupiter_aggregator_v4::DcRouterJupiterAggregatorV4Decoder; +/// Reserved `kb_decoder_router_jupiter_aggregator_v6` decoder. +pub use self::jupiter_aggregator_v6::DcRouterJupiterAggregatorV6Decoder; +/// Reserved `kb_decoder_router_jupiter_dca` decoder. +pub use self::jupiter_dca::DcRouterJupiterDcaDecoder; +/// Reserved `kb_decoder_router_okx_labs_v1` decoder. +pub use self::okx_labs_v1::DcRouterOkxLabsV1Decoder; +/// Reserved `kb_decoder_router_okx_labs_v2` decoder. +pub use self::okx_labs_v2::DcRouterOkxLabsV2Decoder; diff --git a/kb-lib/src/decoder/router/dflow_aggregator_v4.rs b/kb-lib/src/decoder/router/dflow_aggregator_v4.rs index e79309a..42efa20 100644 --- a/kb-lib/src/decoder/router/dflow_aggregator_v4.rs +++ b/kb-lib/src/decoder/router/dflow_aggregator_v4.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/router/dflow_aggregator_v4.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_router_dflow_aggregator_v4`. +//! Reserved protocol decoder for `router_dflow_aggregator_v4`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ROUTER_DFLOW_AGGREGATOR_V4_LEGACY_CRATE: &str = - "kb_decoder_router_dflow_aggregator_v4"; +/// Reserved decoder for the `router_dflow_aggregator_v4` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcRouterDflowAggregatorV4Decoder; -/// Current porting status. -pub(crate) const DC_ROUTER_DFLOW_AGGREGATOR_V4_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcRouterDflowAggregatorV4Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_router_dflow_aggregator_v4"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ROUTER_DFLOW_AGGREGATOR_V4_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/router/jupiter_aggregator_v4.rs b/kb-lib/src/decoder/router/jupiter_aggregator_v4.rs index 581dd33..2433ca7 100644 --- a/kb-lib/src/decoder/router/jupiter_aggregator_v4.rs +++ b/kb-lib/src/decoder/router/jupiter_aggregator_v4.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/router/jupiter_aggregator_v4.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_router_jupiter_aggregator_v4`. +//! Reserved protocol decoder for `router_jupiter_aggregator_v4`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ROUTER_JUPITER_AGGREGATOR_V4_LEGACY_CRATE: &str = - "kb_decoder_router_jupiter_aggregator_v4"; +/// Reserved decoder for the `router_jupiter_aggregator_v4` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcRouterJupiterAggregatorV4Decoder; -/// Current porting status. -pub(crate) const DC_ROUTER_JUPITER_AGGREGATOR_V4_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcRouterJupiterAggregatorV4Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_router_jupiter_aggregator_v4"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ROUTER_JUPITER_AGGREGATOR_V4_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/router/jupiter_aggregator_v6.rs b/kb-lib/src/decoder/router/jupiter_aggregator_v6.rs index 335577e..94e06bf 100644 --- a/kb-lib/src/decoder/router/jupiter_aggregator_v6.rs +++ b/kb-lib/src/decoder/router/jupiter_aggregator_v6.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/router/jupiter_aggregator_v6.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_router_jupiter_aggregator_v6`. +//! Reserved protocol decoder for `router_jupiter_aggregator_v6`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ROUTER_JUPITER_AGGREGATOR_V6_LEGACY_CRATE: &str = - "kb_decoder_router_jupiter_aggregator_v6"; +/// Reserved decoder for the `router_jupiter_aggregator_v6` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcRouterJupiterAggregatorV6Decoder; -/// Current porting status. -pub(crate) const DC_ROUTER_JUPITER_AGGREGATOR_V6_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcRouterJupiterAggregatorV6Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_router_jupiter_aggregator_v6"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ROUTER_JUPITER_AGGREGATOR_V6_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/router/jupiter_dca.rs b/kb-lib/src/decoder/router/jupiter_dca.rs index e3a114c..0f03c87 100644 --- a/kb-lib/src/decoder/router/jupiter_dca.rs +++ b/kb-lib/src/decoder/router/jupiter_dca.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/router/jupiter_dca.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_router_jupiter_dca`. +//! Reserved protocol decoder for `router_jupiter_dca`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ROUTER_JUPITER_DCA_LEGACY_CRATE: &str = "kb_decoder_router_jupiter_dca"; +/// Reserved decoder for the `router_jupiter_dca` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcRouterJupiterDcaDecoder; -/// Current porting status. -pub(crate) const DC_ROUTER_JUPITER_DCA_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcRouterJupiterDcaDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_router_jupiter_dca"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ROUTER_JUPITER_DCA_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/router/okx_labs_v1.rs b/kb-lib/src/decoder/router/okx_labs_v1.rs index 1ececb6..60dac50 100644 --- a/kb-lib/src/decoder/router/okx_labs_v1.rs +++ b/kb-lib/src/decoder/router/okx_labs_v1.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/router/okx_labs_v1.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_router_okx_labs_v1`. +//! Reserved protocol decoder for `router_okx_labs_v1`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ROUTER_OKX_LABS_V1_LEGACY_CRATE: &str = "kb_decoder_router_okx_labs_v1"; +/// Reserved decoder for the `router_okx_labs_v1` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcRouterOkxLabsV1Decoder; -/// Current porting status. -pub(crate) const DC_ROUTER_OKX_LABS_V1_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcRouterOkxLabsV1Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_router_okx_labs_v1"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ROUTER_OKX_LABS_V1_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/router/okx_labs_v2.rs b/kb-lib/src/decoder/router/okx_labs_v2.rs index 9874b7c..c754641 100644 --- a/kb-lib/src/decoder/router/okx_labs_v2.rs +++ b/kb-lib/src/decoder/router/okx_labs_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/router/okx_labs_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_router_okx_labs_v2`. +//! Reserved protocol decoder for `router_okx_labs_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_ROUTER_OKX_LABS_V2_LEGACY_CRATE: &str = "kb_decoder_router_okx_labs_v2"; +/// Reserved decoder for the `router_okx_labs_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcRouterOkxLabsV2Decoder; -/// Current porting status. -pub(crate) const DC_ROUTER_OKX_LABS_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcRouterOkxLabsV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_router_okx_labs_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::ROUTER_OKX_LABS_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/rwa.rs b/kb-lib/src/decoder/rwa.rs index fbae840..da0be21 100644 --- a/kb-lib/src/decoder/rwa.rs +++ b/kb-lib/src/decoder/rwa.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/rwa.rs -// version: 2 +// version: 3 //! `rwa` decoder family. mod ondo_global_markets; -/// Pending `rwa` decoder migration boundaries. -pub(crate) const DC_RWA_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::ondo_global_markets::DC_RWA_ONDO_GLOBAL_MARKETS_LEGACY_CRATE, - self::ondo_global_markets::DC_RWA_ONDO_GLOBAL_MARKETS_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_rwa_ondo_global_markets` decoder. +pub use self::ondo_global_markets::DcRwaOndoGlobalMarketsDecoder; diff --git a/kb-lib/src/decoder/rwa/ondo_global_markets.rs b/kb-lib/src/decoder/rwa/ondo_global_markets.rs index 47fc49b..99055d5 100644 --- a/kb-lib/src/decoder/rwa/ondo_global_markets.rs +++ b/kb-lib/src/decoder/rwa/ondo_global_markets.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/rwa/ondo_global_markets.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_rwa_ondo_global_markets`. +//! Reserved protocol decoder for `rwa_ondo_global_markets`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_RWA_ONDO_GLOBAL_MARKETS_LEGACY_CRATE: &str = - "kb_decoder_rwa_ondo_global_markets"; +/// Reserved decoder for the `rwa_ondo_global_markets` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcRwaOndoGlobalMarketsDecoder; -/// Current porting status. -pub(crate) const DC_RWA_ONDO_GLOBAL_MARKETS_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcRwaOndoGlobalMarketsDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_rwa_ondo_global_markets"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::RWA_ONDO_GLOBAL_MARKETS_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/solana.rs b/kb-lib/src/decoder/solana.rs index 3529201..99b6dcc 100644 --- a/kb-lib/src/decoder/solana.rs +++ b/kb-lib/src/decoder/solana.rs @@ -1,10 +1,13 @@ // file: kb-lib/src/decoder/solana.rs -// version: 3 +// version: 4 //! `solana` decoder family. mod core; +/// Runtime-native Solana decoder with phased maximal native coverage. +pub use self::core::DcSolanaCoreDecoder; + 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; @@ -90,6 +93,3 @@ 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::DcSolanaCoreDecoder; diff --git a/kb-lib/src/decoder/solana/core.rs b/kb-lib/src/decoder/solana/core.rs index 86303b1..745275a 100644 --- a/kb-lib/src/decoder/solana/core.rs +++ b/kb-lib/src/decoder/solana/core.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/solana/core.rs -// version: 17 +// version: 18 //! Solana Core decoder component. @@ -21,6 +21,9 @@ mod vote; mod zk_elgamal; mod zk_token_proof; +/// Runtime-native Solana decoder with phased maximal native coverage. +pub use self::decoder::DcSolanaCoreDecoder; + /// Expected role and privileges for one positional instruction account. pub(crate) use self::accounts::DcSolanaCoreAccountRole; /// Resolves positional instruction accounts and validates their core indexes. @@ -192,6 +195,3 @@ pub(crate) use self::zk_token_proof::decoder_solana_core_zk_token_proof_coverage 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::decoder_solana_core_zk_token_proof_recognize; - -/// Runtime-native Solana decoder with phased maximal native coverage. -pub use self::decoder::DcSolanaCoreDecoder; diff --git a/kb-lib/src/decoder/spl.rs b/kb-lib/src/decoder/spl.rs index b0505bf..7c722d7 100644 --- a/kb-lib/src/decoder/spl.rs +++ b/kb-lib/src/decoder/spl.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/spl.rs -// version: 6 +// version: 7 //! `spl` decoder family. @@ -13,23 +13,8 @@ mod stake_pool; mod token; mod token2022; -/// Pending `spl` decoder migration boundaries. -pub(crate) const DC_SPL_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::account_compression::DC_SPL_ACCOUNT_COMPRESSION_LEGACY_CRATE, - self::account_compression::DC_SPL_ACCOUNT_COMPRESSION_MIGRATION_STATUS, - ), - (self::noop::DC_SPL_NOOP_LEGACY_CRATE, self::noop::DC_SPL_NOOP_MIGRATION_STATUS), - ( - self::single_pool::DC_SPL_SINGLE_POOL_LEGACY_CRATE, - self::single_pool::DC_SPL_SINGLE_POOL_MIGRATION_STATUS, - ), - ( - self::stake_pool::DC_SPL_STAKE_POOL_LEGACY_CRATE, - self::stake_pool::DC_SPL_STAKE_POOL_MIGRATION_STATUS, - ), -]; - +/// Reserved `kb_decoder_spl_account_compression` decoder. +pub use self::account_compression::DcSplAccountCompressionDecoder; /// Current stable Associated Token Account decoded event contract version. pub(crate) use self::associated_token_account::DC_SPL_ATA_EVENT_VERSION; /// Exact Associated Token Account instructions published by the official interface. @@ -48,12 +33,16 @@ pub(crate) use self::associated_token_account::DC_SPL_ATA_MAX_TRANSACTION_KEYS; 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::DC_SPL_ATA_TRACING_TARGET; +/// Exact decoder for the SPL Associated Token Account program. +pub use self::associated_token_account::DcSplAssociatedTokenAccountDecoder; /// Decodes one bounded Associated Token Account instruction. 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::decoder_spl_associated_token_account_entry; /// Reads one bounded Associated Token Account payload. pub(crate) use self::associated_token_account::decoder_spl_associated_token_account_payload; +/// Exact byte length of one SPL ElGamal registry account. +pub use self::elgamal_registry::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; /// Current stable SPL ElGamal registry event contract version. pub(crate) use self::elgamal_registry::DC_SPL_ELGAMAL_REGISTRY_EVENT_VERSION; /// Maximum retained SPL ElGamal registry instruction payload size. @@ -64,12 +53,18 @@ pub(crate) use self::elgamal_registry::DC_SPL_ELGAMAL_REGISTRY_SURFACE_CODE; 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; +/// Parsed SPL ElGamal public-key registry account. +pub use self::elgamal_registry::DcSplElGamalRegistryState; +/// Exact decoder for the SPL ElGamal registry program. +pub use self::elgamal_registry::DcSplElgamalRegistryDecoder; /// Decodes one bounded SPL ElGamal registry instruction. 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::decoder_spl_elgamal_registry_decode_payload; /// Parses one exact SPL ElGamal registry instruction. pub(crate) use self::elgamal_registry::decoder_spl_elgamal_registry_parse; +/// Parses one exact SPL ElGamal registry account. +pub use self::elgamal_registry::decoder_spl_elgamal_registry_parse_elgamal_registry_state; /// Maximum payload prefix retained for bounded diagnostics. pub(crate) use self::memo::DC_SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; /// Current stable Memo decoded event contract version. @@ -86,8 +81,16 @@ pub(crate) use self::memo::DC_SPL_MEMO_V1_SURFACE_CODE; pub(crate) use self::memo::DC_SPL_MEMO_V3_SURFACE_CODE; /// Stable Memo v4 surface code. pub(crate) use self::memo::DC_SPL_MEMO_V4_SURFACE_CODE; +/// Exact decoder for the three registered SPL Memo generations. +pub use self::memo::DcSplMemoDecoder; /// Decodes one bounded SPL Memo instruction. pub(crate) use self::memo::decoder_spl_memo_decode; +/// Reserved `kb_decoder_spl_noop` decoder. +pub use self::noop::DcSplNoopDecoder; +/// Reserved `kb_decoder_spl_single_pool` decoder. +pub use self::single_pool::DcSplSinglePoolDecoder; +/// Reserved `kb_decoder_spl_stake_pool` decoder. +pub use self::stake_pool::DcSplStakePoolDecoder; /// Maximum prefix retained in bounded classic SPL Token diagnostics. pub(crate) use self::token::DC_SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES; /// Current stable classic SPL Token decoded event contract version. @@ -104,6 +107,8 @@ pub(crate) use self::token::DC_SPL_TOKEN_MAX_INSTRUCTION_BYTES; pub(crate) use self::token::DC_SPL_TOKEN_SURFACE_CODE; /// Canonical tracing target for the classic SPL Token decoder. pub(crate) use self::token::DC_SPL_TOKEN_TRACING_TARGET; +/// Exact decoder for the classic SPL Token program. +pub use self::token::DcSplTokenDecoder; /// Decodes one bounded classic SPL Token instruction. pub(crate) use self::token::decoder_spl_token_decode; /// Returns the published entry matching one classic SPL Token tag. @@ -128,27 +133,6 @@ pub(crate) use self::token2022::DC_SPL_TOKEN2022_MAX_METADATA_STRING_BYTES; pub(crate) use self::token2022::DC_SPL_TOKEN2022_SURFACE_CODE; /// Canonical tracing target for the Token-2022 decoder. pub(crate) use self::token2022::DC_SPL_TOKEN2022_TRACING_TARGET; -/// Decodes one bounded Token-2022 instruction. -pub(crate) use self::token2022::decoder_spl_token2022_decode; -/// Returns the exact entry matching one Token-2022 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::token2022::decoder_spl_token2022_payload_tag; - -/// Exact decoder for the SPL Associated Token Account program. -pub use self::associated_token_account::DcSplAssociatedTokenAccountDecoder; -/// Exact byte length of one SPL ElGamal registry account. -pub use self::elgamal_registry::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; -/// Parsed SPL ElGamal public-key registry account. -pub use self::elgamal_registry::DcSplElGamalRegistryState; -/// Exact decoder for the SPL ElGamal registry program. -pub use self::elgamal_registry::DcSplElgamalRegistryDecoder; -/// Parses one exact SPL ElGamal registry account. -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::DcSplMemoDecoder; -/// Exact decoder for the classic SPL Token program. -pub use self::token::DcSplTokenDecoder; /// Exact decoder for the Token-2022 program. pub use self::token2022::DcSplToken2022Decoder; /// Parsed Token-2022 Mint, Account, or Multisig state. @@ -157,5 +141,11 @@ pub use self::token2022::DcToken2022State; pub use self::token2022::DcToken2022StateKind; /// One exact Token-2022 TLV entry. pub use self::token2022::DcToken2022TlvEntry; +/// Decodes one bounded Token-2022 instruction. +pub(crate) use self::token2022::decoder_spl_token2022_decode; +/// Returns the exact entry matching one Token-2022 tag. +pub(crate) use self::token2022::decoder_spl_token2022_entry_for_tag; /// Parses one Token-2022 Mint, Account, or Multisig state. pub use self::token2022::decoder_spl_token2022_parse_token2022_state; +/// Returns the first byte of one retained Token-2022 payload. +pub(crate) use self::token2022::decoder_spl_token2022_payload_tag; diff --git a/kb-lib/src/decoder/spl/account_compression.rs b/kb-lib/src/decoder/spl/account_compression.rs index 60490e7..6c62dc0 100644 --- a/kb-lib/src/decoder/spl/account_compression.rs +++ b/kb-lib/src/decoder/spl/account_compression.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/spl/account_compression.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_spl_account_compression`. +//! Reserved protocol decoder for `spl_account_compression`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_SPL_ACCOUNT_COMPRESSION_LEGACY_CRATE: &str = - "kb_decoder_spl_account_compression"; +/// Reserved decoder for the `spl_account_compression` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcSplAccountCompressionDecoder; -/// Current porting status. -pub(crate) const DC_SPL_ACCOUNT_COMPRESSION_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcSplAccountCompressionDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_spl_account_compression"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::SPL_ACCOUNT_COMPRESSION_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/spl/associated_token_account.rs b/kb-lib/src/decoder/spl/associated_token_account.rs index 9bab31f..2f8b683 100644 --- a/kb-lib/src/decoder/spl/associated_token_account.rs +++ b/kb-lib/src/decoder/spl/associated_token_account.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/spl/associated_token_account.rs -// version: 2 +// version: 3 //! Exact SPL Associated Token Account decoder component. @@ -7,6 +7,9 @@ mod constants; mod decoder; mod wire; +/// Exact decoder for the SPL Associated Token Account program. +pub use self::decoder::DcSplAssociatedTokenAccountDecoder; + /// Current stable decoded event contract version. pub(crate) use self::constants::DC_SPL_ATA_EVENT_VERSION; /// Exact instructions published by the official interface. @@ -31,6 +34,3 @@ pub(crate) use self::wire::decoder_spl_associated_token_account_decode; pub(crate) use self::wire::decoder_spl_associated_token_account_entry; /// Reads one bounded 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::DcSplAssociatedTokenAccountDecoder; diff --git a/kb-lib/src/decoder/spl/elgamal_registry.rs b/kb-lib/src/decoder/spl/elgamal_registry.rs index 8cbd164..831bc6c 100644 --- a/kb-lib/src/decoder/spl/elgamal_registry.rs +++ b/kb-lib/src/decoder/spl/elgamal_registry.rs @@ -8,6 +8,15 @@ mod decoder; mod state; mod wire; +/// Exact decoder for the SPL ElGamal registry program. +pub use self::decoder::DcSplElgamalRegistryDecoder; +/// Exact byte length of one SPL ElGamal registry account. +pub use self::state::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; +/// Parsed SPL ElGamal public-key registry account. +pub use self::state::DcSplElGamalRegistryState; +/// Parses one exact SPL ElGamal registry account. +pub use self::state::decoder_spl_elgamal_registry_parse_elgamal_registry_state; + /// Current stable SPL ElGamal registry event contract version. pub(crate) use self::constants::DC_SPL_ELGAMAL_REGISTRY_EVENT_VERSION; /// Maximum retained SPL ElGamal registry instruction payload size. @@ -24,12 +33,3 @@ pub(crate) use self::wire::decoder_spl_elgamal_registry_decode; pub(crate) use self::wire::decoder_spl_elgamal_registry_decode_payload; /// Parses one exact SPL ElGamal registry instruction. pub(crate) use self::wire::decoder_spl_elgamal_registry_parse; - -/// Exact decoder for the SPL ElGamal registry program. -pub use self::decoder::DcSplElgamalRegistryDecoder; -/// Exact byte length of one SPL ElGamal registry account. -pub use self::state::DC_SPL_ELGAMAL_REGISTRY_ACCOUNT_LEN; -/// Parsed SPL ElGamal public-key registry account. -pub use self::state::DcSplElGamalRegistryState; -/// Parses one exact SPL ElGamal registry account. -pub use self::state::decoder_spl_elgamal_registry_parse_elgamal_registry_state; diff --git a/kb-lib/src/decoder/spl/memo.rs b/kb-lib/src/decoder/spl/memo.rs index 81bd068..9a8e03b 100644 --- a/kb-lib/src/decoder/spl/memo.rs +++ b/kb-lib/src/decoder/spl/memo.rs @@ -7,6 +7,9 @@ mod constants; mod decoder; mod payload; +/// Exact decoder for the three registered SPL Memo generations. +pub use self::decoder::DcSplMemoDecoder; + /// Maximum payload prefix retained for bounded diagnostics. pub(crate) use self::constants::DC_SPL_MEMO_DIAGNOSTIC_PREFIX_BYTES; /// Current stable Memo decoded event contract version. @@ -25,6 +28,3 @@ pub(crate) use self::constants::DC_SPL_MEMO_V3_SURFACE_CODE; pub(crate) use self::constants::DC_SPL_MEMO_V4_SURFACE_CODE; /// Decodes one bounded SPL Memo instruction. pub(crate) use self::payload::decoder_spl_memo_decode; - -/// Exact decoder for the three registered SPL Memo generations. -pub use self::decoder::DcSplMemoDecoder; diff --git a/kb-lib/src/decoder/spl/noop.rs b/kb-lib/src/decoder/spl/noop.rs index 2fd3848..4f83360 100644 --- a/kb-lib/src/decoder/spl/noop.rs +++ b/kb-lib/src/decoder/spl/noop.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/spl/noop.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_spl_noop`. +//! Reserved protocol decoder for `spl_noop`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_SPL_NOOP_LEGACY_CRATE: &str = "kb_decoder_spl_noop"; +/// Reserved decoder for the `spl_noop` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcSplNoopDecoder; -/// Current porting status. -pub(crate) const DC_SPL_NOOP_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcSplNoopDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_spl_noop"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::SPL_NOOP_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/spl/single_pool.rs b/kb-lib/src/decoder/spl/single_pool.rs index c18b052..366a3f9 100644 --- a/kb-lib/src/decoder/spl/single_pool.rs +++ b/kb-lib/src/decoder/spl/single_pool.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/spl/single_pool.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_spl_single_pool`. +//! Reserved protocol decoder for `spl_single_pool`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_SPL_SINGLE_POOL_LEGACY_CRATE: &str = "kb_decoder_spl_single_pool"; +/// Reserved decoder for the `spl_single_pool` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcSplSinglePoolDecoder; -/// Current porting status. -pub(crate) const DC_SPL_SINGLE_POOL_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcSplSinglePoolDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_spl_single_pool"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::SPL_SINGLE_POOL_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/spl/stake_pool.rs b/kb-lib/src/decoder/spl/stake_pool.rs index 6a6cb2e..5d73cd2 100644 --- a/kb-lib/src/decoder/spl/stake_pool.rs +++ b/kb-lib/src/decoder/spl/stake_pool.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/spl/stake_pool.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_spl_stake_pool`. +//! Reserved protocol decoder for `spl_stake_pool`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_SPL_STAKE_POOL_LEGACY_CRATE: &str = "kb_decoder_spl_stake_pool"; +/// Reserved decoder for the `spl_stake_pool` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcSplStakePoolDecoder; -/// Current porting status. -pub(crate) const DC_SPL_STAKE_POOL_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcSplStakePoolDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_spl_stake_pool"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::SPL_STAKE_POOL_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/spl/token.rs b/kb-lib/src/decoder/spl/token.rs index 3a22eca..d9cfca3 100644 --- a/kb-lib/src/decoder/spl/token.rs +++ b/kb-lib/src/decoder/spl/token.rs @@ -7,6 +7,9 @@ mod constants; mod decoder; mod wire; +/// Exact decoder for the classic SPL Token program. +pub use self::decoder::DcSplTokenDecoder; + /// Maximum prefix retained in bounded diagnostics. pub(crate) use self::constants::DC_SPL_TOKEN_DIAGNOSTIC_PREFIX_BYTES; /// Current stable decoded event contract version. @@ -29,6 +32,3 @@ pub(crate) use self::wire::decoder_spl_token_decode; 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::decoder_spl_token_payload_tag; - -/// Exact decoder for the classic SPL Token program. -pub use self::decoder::DcSplTokenDecoder; diff --git a/kb-lib/src/decoder/spl/token2022.rs b/kb-lib/src/decoder/spl/token2022.rs index ba7b28e..2faecbf 100644 --- a/kb-lib/src/decoder/spl/token2022.rs +++ b/kb-lib/src/decoder/spl/token2022.rs @@ -8,6 +8,17 @@ mod decoder; mod state; mod wire; +/// Exact decoder for the Token-2022 program. +pub use self::decoder::DcSplToken2022Decoder; +/// Parsed Token-2022 Mint, Account, or Multisig state. +pub use self::state::DcToken2022State; +/// Exact Token-2022 base account state kind. +pub use self::state::DcToken2022StateKind; +/// One exact Token-2022 TLV entry. +pub use self::state::DcToken2022TlvEntry; +/// Parses one Token-2022 Mint, Account, or Multisig state. +pub use self::state::decoder_spl_token2022_parse_token2022_state; + /// Maximum prefix retained in bounded Token-2022 diagnostics. pub(crate) use self::constants::DC_SPL_TOKEN2022_DIAGNOSTIC_PREFIX_BYTES; /// Current stable Token-2022 decoded event contract version. @@ -32,14 +43,3 @@ pub(crate) use self::wire::decoder_spl_token2022_decode; 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::decoder_spl_token2022_payload_tag; - -/// Exact decoder for the Token-2022 program. -pub use self::decoder::DcSplToken2022Decoder; -/// Parsed Token-2022 Mint, Account, or Multisig state. -pub use self::state::DcToken2022State; -/// Exact Token-2022 base account state kind. -pub use self::state::DcToken2022StateKind; -/// One exact Token-2022 TLV entry. -pub use self::state::DcToken2022TlvEntry; -/// Parses one Token-2022 Mint, Account, or Multisig state. -pub use self::state::decoder_spl_token2022_parse_token2022_state; diff --git a/kb-lib/src/decoder/stable.rs b/kb-lib/src/decoder/stable.rs index a45dc05..96e714c 100644 --- a/kb-lib/src/decoder/stable.rs +++ b/kb-lib/src/decoder/stable.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/stable.rs -// version: 2 +// version: 3 //! `stable` decoder family. @@ -8,22 +8,11 @@ mod swap_jupiter_stable; mod swap_numeraire; mod swap_stabble; -/// Pending `stable` decoder migration boundaries. -pub(crate) const DC_STABLE_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::swap_hylo_exchange::DC_STABLE_SWAP_HYLO_EXCHANGE_LEGACY_CRATE, - self::swap_hylo_exchange::DC_STABLE_SWAP_HYLO_EXCHANGE_MIGRATION_STATUS, - ), - ( - self::swap_jupiter_stable::DC_STABLE_SWAP_JUPITER_STABLE_LEGACY_CRATE, - self::swap_jupiter_stable::DC_STABLE_SWAP_JUPITER_STABLE_MIGRATION_STATUS, - ), - ( - self::swap_numeraire::DC_STABLE_SWAP_NUMERAIRE_LEGACY_CRATE, - self::swap_numeraire::DC_STABLE_SWAP_NUMERAIRE_MIGRATION_STATUS, - ), - ( - self::swap_stabble::DC_STABLE_SWAP_STABBLE_LEGACY_CRATE, - self::swap_stabble::DC_STABLE_SWAP_STABBLE_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_stable_swap_hylo_exchange` decoder. +pub use self::swap_hylo_exchange::DcStableSwapHyloExchangeDecoder; +/// Reserved `kb_decoder_stable_swap_jupiter_stable` decoder. +pub use self::swap_jupiter_stable::DcStableSwapJupiterStableDecoder; +/// Reserved `kb_decoder_stable_swap_numeraire` decoder. +pub use self::swap_numeraire::DcStableSwapNumeraireDecoder; +/// Reserved `kb_decoder_stable_swap_stabble` decoder. +pub use self::swap_stabble::DcStableSwapStabbleDecoder; diff --git a/kb-lib/src/decoder/stable/swap_hylo_exchange.rs b/kb-lib/src/decoder/stable/swap_hylo_exchange.rs index 5eef258..2ee8658 100644 --- a/kb-lib/src/decoder/stable/swap_hylo_exchange.rs +++ b/kb-lib/src/decoder/stable/swap_hylo_exchange.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/stable/swap_hylo_exchange.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_stable_swap_hylo_exchange`. +//! Reserved protocol decoder for `stable_swap_hylo_exchange`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_STABLE_SWAP_HYLO_EXCHANGE_LEGACY_CRATE: &str = - "kb_decoder_stable_swap_hylo_exchange"; +/// Reserved decoder for the `stable_swap_hylo_exchange` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcStableSwapHyloExchangeDecoder; -/// Current porting status. -pub(crate) const DC_STABLE_SWAP_HYLO_EXCHANGE_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcStableSwapHyloExchangeDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_stable_swap_hylo_exchange"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::STABLE_SWAP_HYLO_EXCHANGE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/stable/swap_jupiter_stable.rs b/kb-lib/src/decoder/stable/swap_jupiter_stable.rs index e219e55..d2c69ad 100644 --- a/kb-lib/src/decoder/stable/swap_jupiter_stable.rs +++ b/kb-lib/src/decoder/stable/swap_jupiter_stable.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/stable/swap_jupiter_stable.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_stable_swap_jupiter_stable`. +//! Reserved protocol decoder for `stable_swap_jupiter_stable`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_STABLE_SWAP_JUPITER_STABLE_LEGACY_CRATE: &str = - "kb_decoder_stable_swap_jupiter_stable"; +/// Reserved decoder for the `stable_swap_jupiter_stable` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcStableSwapJupiterStableDecoder; -/// Current porting status. -pub(crate) const DC_STABLE_SWAP_JUPITER_STABLE_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcStableSwapJupiterStableDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_stable_swap_jupiter_stable"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::STABLE_SWAP_JUPITER_STABLE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/stable/swap_numeraire.rs b/kb-lib/src/decoder/stable/swap_numeraire.rs index 36adc79..9f325b4 100644 --- a/kb-lib/src/decoder/stable/swap_numeraire.rs +++ b/kb-lib/src/decoder/stable/swap_numeraire.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/stable/swap_numeraire.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_stable_swap_numeraire`. +//! Reserved protocol decoder for `stable_swap_numeraire`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_STABLE_SWAP_NUMERAIRE_LEGACY_CRATE: &str = "kb_decoder_stable_swap_numeraire"; +/// Reserved decoder for the `stable_swap_numeraire` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcStableSwapNumeraireDecoder; -/// Current porting status. -pub(crate) const DC_STABLE_SWAP_NUMERAIRE_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcStableSwapNumeraireDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_stable_swap_numeraire"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::STABLE_SWAP_NUMERAIRE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/stable/swap_stabble.rs b/kb-lib/src/decoder/stable/swap_stabble.rs index 718c4e3..e42d14f 100644 --- a/kb-lib/src/decoder/stable/swap_stabble.rs +++ b/kb-lib/src/decoder/stable/swap_stabble.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/stable/swap_stabble.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_stable_swap_stabble`. +//! Reserved protocol decoder for `stable_swap_stabble`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_STABLE_SWAP_STABBLE_LEGACY_CRATE: &str = "kb_decoder_stable_swap_stabble"; +/// Reserved decoder for the `stable_swap_stabble` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcStableSwapStabbleDecoder; -/// Current porting status. -pub(crate) const DC_STABLE_SWAP_STABBLE_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcStableSwapStabbleDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_stable_swap_stabble"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::STABLE_SWAP_STABBLE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/staking.rs b/kb-lib/src/decoder/staking.rs index a2f1a22..949de38 100644 --- a/kb-lib/src/decoder/staking.rs +++ b/kb-lib/src/decoder/staking.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/staking.rs -// version: 2 +// version: 3 //! `staking` decoder family. @@ -7,18 +7,9 @@ mod kamino_farm; mod marinade_finance; mod solayer; -/// Pending `staking` decoder migration boundaries. -pub(crate) const DC_STAKING_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::kamino_farm::DC_STAKING_KAMINO_FARM_LEGACY_CRATE, - self::kamino_farm::DC_STAKING_KAMINO_FARM_MIGRATION_STATUS, - ), - ( - self::marinade_finance::DC_STAKING_MARINADE_FINANCE_LEGACY_CRATE, - self::marinade_finance::DC_STAKING_MARINADE_FINANCE_MIGRATION_STATUS, - ), - ( - self::solayer::DC_STAKING_SOLAYER_LEGACY_CRATE, - self::solayer::DC_STAKING_SOLAYER_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_staking_kamino_farm` decoder. +pub use self::kamino_farm::DcStakingKaminoFarmDecoder; +/// Reserved `kb_decoder_staking_marinade_finance` decoder. +pub use self::marinade_finance::DcStakingMarinadeFinanceDecoder; +/// Reserved `kb_decoder_staking_solayer` decoder. +pub use self::solayer::DcStakingSolayerDecoder; diff --git a/kb-lib/src/decoder/staking/kamino_farm.rs b/kb-lib/src/decoder/staking/kamino_farm.rs index 4572a18..5fafde1 100644 --- a/kb-lib/src/decoder/staking/kamino_farm.rs +++ b/kb-lib/src/decoder/staking/kamino_farm.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/staking/kamino_farm.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_staking_kamino_farm`. +//! Reserved protocol decoder for `staking_kamino_farm`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_STAKING_KAMINO_FARM_LEGACY_CRATE: &str = "kb_decoder_staking_kamino_farm"; +/// Reserved decoder for the `staking_kamino_farm` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcStakingKaminoFarmDecoder; -/// Current porting status. -pub(crate) const DC_STAKING_KAMINO_FARM_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcStakingKaminoFarmDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_staking_kamino_farm"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::STAKING_KAMINO_FARM_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/staking/marinade_finance.rs b/kb-lib/src/decoder/staking/marinade_finance.rs index bcd36bf..eb9ad23 100644 --- a/kb-lib/src/decoder/staking/marinade_finance.rs +++ b/kb-lib/src/decoder/staking/marinade_finance.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/staking/marinade_finance.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_staking_marinade_finance`. +//! Reserved protocol decoder for `staking_marinade_finance`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_STAKING_MARINADE_FINANCE_LEGACY_CRATE: &str = - "kb_decoder_staking_marinade_finance"; +/// Reserved decoder for the `staking_marinade_finance` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcStakingMarinadeFinanceDecoder; -/// Current porting status. -pub(crate) const DC_STAKING_MARINADE_FINANCE_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcStakingMarinadeFinanceDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_staking_marinade_finance"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::STAKING_MARINADE_FINANCE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/staking/solayer.rs b/kb-lib/src/decoder/staking/solayer.rs index 210fb21..9e72d2e 100644 --- a/kb-lib/src/decoder/staking/solayer.rs +++ b/kb-lib/src/decoder/staking/solayer.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/staking/solayer.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_staking_solayer`. +//! Reserved protocol decoder for `staking_solayer`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_STAKING_SOLAYER_LEGACY_CRATE: &str = "kb_decoder_staking_solayer"; +/// Reserved decoder for the `staking_solayer` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcStakingSolayerDecoder; -/// Current porting status. -pub(crate) const DC_STAKING_SOLAYER_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcStakingSolayerDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_staking_solayer"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::STAKING_SOLAYER_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/treasury.rs b/kb-lib/src/decoder/treasury.rs index 627e7fd..585fb9f 100644 --- a/kb-lib/src/decoder/treasury.rs +++ b/kb-lib/src/decoder/treasury.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/treasury.rs -// version: 2 +// version: 3 //! `treasury` decoder family. mod helium_treasury_management; -/// Pending `treasury` decoder migration boundaries. -pub(crate) const DC_TREASURY_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::helium_treasury_management::DC_TREASURY_HELIUM_TREASURY_MANAGEMENT_LEGACY_CRATE, - self::helium_treasury_management::DC_TREASURY_HELIUM_TREASURY_MANAGEMENT_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_treasury_helium_treasury_management` decoder. +pub use self::helium_treasury_management::DcTreasuryHeliumTreasuryManagementDecoder; diff --git a/kb-lib/src/decoder/treasury/helium_treasury_management.rs b/kb-lib/src/decoder/treasury/helium_treasury_management.rs index d18d8e2..b72ebd9 100644 --- a/kb-lib/src/decoder/treasury/helium_treasury_management.rs +++ b/kb-lib/src/decoder/treasury/helium_treasury_management.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/treasury/helium_treasury_management.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_treasury_helium_treasury_management`. +//! Reserved protocol decoder for `treasury_helium_treasury_management`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_TREASURY_HELIUM_TREASURY_MANAGEMENT_LEGACY_CRATE: &str = - "kb_decoder_treasury_helium_treasury_management"; +/// Reserved decoder for the `treasury_helium_treasury_management` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcTreasuryHeliumTreasuryManagementDecoder; -/// Current porting status. -pub(crate) const DC_TREASURY_HELIUM_TREASURY_MANAGEMENT_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcTreasuryHeliumTreasuryManagementDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_treasury_helium_treasury_management"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::TREASURY_HELIUM_TREASURY_MANAGEMENT_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/vault.rs b/kb-lib/src/decoder/vault.rs index 67d9134..b129b35 100644 --- a/kb-lib/src/decoder/vault.rs +++ b/kb-lib/src/decoder/vault.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/decoder/vault.rs -// version: 2 +// version: 3 //! `vault` decoder family. @@ -10,30 +10,15 @@ mod kamino_v2; mod kamino_yvaults; mod meteora; -/// Pending `vault` decoder migration boundaries. -pub(crate) const DC_VAULT_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[ - ( - self::carrot_defi::DC_VAULT_CARROT_DEFI_LEGACY_CRATE, - self::carrot_defi::DC_VAULT_CARROT_DEFI_MIGRATION_STATUS, - ), - ( - self::hylo_stability_pool::DC_VAULT_HYLO_STABILITY_POOL_LEGACY_CRATE, - self::hylo_stability_pool::DC_VAULT_HYLO_STABILITY_POOL_MIGRATION_STATUS, - ), - ( - self::kamino::DC_VAULT_KAMINO_LEGACY_CRATE, - self::kamino::DC_VAULT_KAMINO_MIGRATION_STATUS, - ), - ( - self::kamino_v2::DC_VAULT_KAMINO_V2_LEGACY_CRATE, - self::kamino_v2::DC_VAULT_KAMINO_V2_MIGRATION_STATUS, - ), - ( - self::kamino_yvaults::DC_VAULT_KAMINO_YVAULTS_LEGACY_CRATE, - self::kamino_yvaults::DC_VAULT_KAMINO_YVAULTS_MIGRATION_STATUS, - ), - ( - self::meteora::DC_VAULT_METEORA_LEGACY_CRATE, - self::meteora::DC_VAULT_METEORA_MIGRATION_STATUS, - ), -]; +/// Reserved `kb_decoder_vault_carrot_defi` decoder. +pub use self::carrot_defi::DcVaultCarrotDefiDecoder; +/// Reserved `kb_decoder_vault_hylo_stability_pool` decoder. +pub use self::hylo_stability_pool::DcVaultHyloStabilityPoolDecoder; +/// Reserved `kb_decoder_vault_kamino` decoder. +pub use self::kamino::DcVaultKaminoDecoder; +/// Reserved `kb_decoder_vault_kamino_v2` decoder. +pub use self::kamino_v2::DcVaultKaminoV2Decoder; +/// Reserved `kb_decoder_vault_kamino_yvaults` decoder. +pub use self::kamino_yvaults::DcVaultKaminoYvaultsDecoder; +/// Reserved `kb_decoder_vault_meteora` decoder. +pub use self::meteora::DcVaultMeteoraDecoder; diff --git a/kb-lib/src/decoder/vault/carrot_defi.rs b/kb-lib/src/decoder/vault/carrot_defi.rs index 807108b..1bbe076 100644 --- a/kb-lib/src/decoder/vault/carrot_defi.rs +++ b/kb-lib/src/decoder/vault/carrot_defi.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/vault/carrot_defi.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_vault_carrot_defi`. +//! Reserved protocol decoder for `vault_carrot_defi`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_VAULT_CARROT_DEFI_LEGACY_CRATE: &str = "kb_decoder_vault_carrot_defi"; +/// Reserved decoder for the `vault_carrot_defi` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcVaultCarrotDefiDecoder; -/// Current porting status. -pub(crate) const DC_VAULT_CARROT_DEFI_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcVaultCarrotDefiDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_vault_carrot_defi"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::VAULT_CARROT_DEFI_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/vault/hylo_stability_pool.rs b/kb-lib/src/decoder/vault/hylo_stability_pool.rs index ce305a6..229dc49 100644 --- a/kb-lib/src/decoder/vault/hylo_stability_pool.rs +++ b/kb-lib/src/decoder/vault/hylo_stability_pool.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/vault/hylo_stability_pool.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_vault_hylo_stability_pool`. +//! Reserved protocol decoder for `vault_hylo_stability_pool`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_VAULT_HYLO_STABILITY_POOL_LEGACY_CRATE: &str = - "kb_decoder_vault_hylo_stability_pool"; +/// Reserved decoder for the `vault_hylo_stability_pool` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcVaultHyloStabilityPoolDecoder; -/// Current porting status. -pub(crate) const DC_VAULT_HYLO_STABILITY_POOL_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcVaultHyloStabilityPoolDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_vault_hylo_stability_pool"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::VAULT_HYLO_STABILITY_POOL_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/vault/kamino.rs b/kb-lib/src/decoder/vault/kamino.rs index 533804a..1fc433b 100644 --- a/kb-lib/src/decoder/vault/kamino.rs +++ b/kb-lib/src/decoder/vault/kamino.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/vault/kamino.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_vault_kamino`. +//! Reserved protocol decoder for `vault_kamino`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_VAULT_KAMINO_LEGACY_CRATE: &str = "kb_decoder_vault_kamino"; +/// Reserved decoder for the `vault_kamino` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcVaultKaminoDecoder; -/// Current porting status. -pub(crate) const DC_VAULT_KAMINO_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcVaultKaminoDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_vault_kamino"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::VAULT_KAMINO_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/vault/kamino_v2.rs b/kb-lib/src/decoder/vault/kamino_v2.rs index 602c378..bb5ea9f 100644 --- a/kb-lib/src/decoder/vault/kamino_v2.rs +++ b/kb-lib/src/decoder/vault/kamino_v2.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/vault/kamino_v2.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_vault_kamino_v2`. +//! Reserved protocol decoder for `vault_kamino_v2`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_VAULT_KAMINO_V2_LEGACY_CRATE: &str = "kb_decoder_vault_kamino_v2"; +/// Reserved decoder for the `vault_kamino_v2` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcVaultKaminoV2Decoder; -/// Current porting status. -pub(crate) const DC_VAULT_KAMINO_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcVaultKaminoV2Decoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_vault_kamino_v2"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::VAULT_KAMINO_V2_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/vault/kamino_yvaults.rs b/kb-lib/src/decoder/vault/kamino_yvaults.rs index 16c5177..27de1e0 100644 --- a/kb-lib/src/decoder/vault/kamino_yvaults.rs +++ b/kb-lib/src/decoder/vault/kamino_yvaults.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/vault/kamino_yvaults.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_vault_kamino_yvaults`. +//! Reserved protocol decoder for `vault_kamino_yvaults`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_VAULT_KAMINO_YVAULTS_LEGACY_CRATE: &str = "kb_decoder_vault_kamino_yvaults"; +/// Reserved decoder for the `vault_kamino_yvaults` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcVaultKaminoYvaultsDecoder; -/// Current porting status. -pub(crate) const DC_VAULT_KAMINO_YVAULTS_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcVaultKaminoYvaultsDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_vault_kamino_yvaults"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::VAULT_KAMINO_YVAULTS_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/vault/meteora.rs b/kb-lib/src/decoder/vault/meteora.rs index 9591421..139ff8f 100644 --- a/kb-lib/src/decoder/vault/meteora.rs +++ b/kb-lib/src/decoder/vault/meteora.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/vault/meteora.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_vault_meteora`. +//! Reserved protocol decoder for `vault_meteora`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_VAULT_METEORA_LEGACY_CRATE: &str = "kb_decoder_vault_meteora"; +/// Reserved decoder for the `vault_meteora` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcVaultMeteoraDecoder; -/// Current porting status. -pub(crate) const DC_VAULT_METEORA_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcVaultMeteoraDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_vault_meteora"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::VAULT_METEORA_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/vesting.rs b/kb-lib/src/decoder/vesting.rs index d6fc0b1..a38eaff 100644 --- a/kb-lib/src/decoder/vesting.rs +++ b/kb-lib/src/decoder/vesting.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/vesting.rs -// version: 2 +// version: 3 //! `vesting` decoder family. mod streamflow; -/// Pending `vesting` decoder migration boundaries. -pub(crate) const DC_VESTING_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::streamflow::DC_VESTING_STREAMFLOW_LEGACY_CRATE, - self::streamflow::DC_VESTING_STREAMFLOW_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_vesting_streamflow` decoder. +pub use self::streamflow::DcVestingStreamflowDecoder; diff --git a/kb-lib/src/decoder/vesting/streamflow.rs b/kb-lib/src/decoder/vesting/streamflow.rs index 681ac4f..ca70df1 100644 --- a/kb-lib/src/decoder/vesting/streamflow.rs +++ b/kb-lib/src/decoder/vesting/streamflow.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/vesting/streamflow.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_vesting_streamflow`. +//! Reserved protocol decoder for `vesting_streamflow`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_VESTING_STREAMFLOW_LEGACY_CRATE: &str = "kb_decoder_vesting_streamflow"; +/// Reserved decoder for the `vesting_streamflow` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcVestingStreamflowDecoder; -/// Current porting status. -pub(crate) const DC_VESTING_STREAMFLOW_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcVestingStreamflowDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_vesting_streamflow"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::VESTING_STREAMFLOW_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/wallet.rs b/kb-lib/src/decoder/wallet.rs index 9a2de20..95bfcb0 100644 --- a/kb-lib/src/decoder/wallet.rs +++ b/kb-lib/src/decoder/wallet.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/wallet.rs -// version: 2 +// version: 3 //! `wallet` decoder family. mod jupiter_apepro_smart_wallet; -/// Pending `wallet` decoder migration boundaries. -pub(crate) const DC_WALLET_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::jupiter_apepro_smart_wallet::DC_WALLET_JUPITER_APEPRO_SMART_WALLET_LEGACY_CRATE, - self::jupiter_apepro_smart_wallet::DC_WALLET_JUPITER_APEPRO_SMART_WALLET_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_wallet_jupiter_apepro_smart_wallet` decoder. +pub use self::jupiter_apepro_smart_wallet::DcWalletJupiterApeproSmartWalletDecoder; 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 80d2690..548b399 100644 --- a/kb-lib/src/decoder/wallet/jupiter_apepro_smart_wallet.rs +++ b/kb-lib/src/decoder/wallet/jupiter_apepro_smart_wallet.rs @@ -1,12 +1,39 @@ // file: kb-lib/src/decoder/wallet/jupiter_apepro_smart_wallet.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_wallet_jupiter_apepro_smart_wallet`. +//! Reserved protocol decoder for `wallet_jupiter_apepro_smart_wallet`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_WALLET_JUPITER_APEPRO_SMART_WALLET_LEGACY_CRATE: &str = - "kb_decoder_wallet_jupiter_apepro_smart_wallet"; +/// Reserved decoder for the `wallet_jupiter_apepro_smart_wallet` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcWalletJupiterApeproSmartWalletDecoder; -/// Current porting status. -pub(crate) const DC_WALLET_JUPITER_APEPRO_SMART_WALLET_MIGRATION_STATUS: &str = - "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcWalletJupiterApeproSmartWalletDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_wallet_jupiter_apepro_smart_wallet"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::WALLET_JUPITER_APEPRO_SMART_WALLET_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/decoder/weighted.rs b/kb-lib/src/decoder/weighted.rs index ed2c9ea..0f215f3 100644 --- a/kb-lib/src/decoder/weighted.rs +++ b/kb-lib/src/decoder/weighted.rs @@ -1,12 +1,9 @@ // file: kb-lib/src/decoder/weighted.rs -// version: 2 +// version: 3 //! `weighted` decoder family. mod swap_stabble; -/// Pending `weighted` decoder migration boundaries. -pub(crate) const DC_WEIGHTED_MIGRATION_BOUNDARIES: &[(&str, &str)] = &[( - self::swap_stabble::DC_WEIGHTED_SWAP_STABBLE_LEGACY_CRATE, - self::swap_stabble::DC_WEIGHTED_SWAP_STABBLE_MIGRATION_STATUS, -)]; +/// Reserved `kb_decoder_weighted_swap_stabble` decoder. +pub use self::swap_stabble::DcWeightedSwapStabbleDecoder; diff --git a/kb-lib/src/decoder/weighted/swap_stabble.rs b/kb-lib/src/decoder/weighted/swap_stabble.rs index c17982d..90ccaed 100644 --- a/kb-lib/src/decoder/weighted/swap_stabble.rs +++ b/kb-lib/src/decoder/weighted/swap_stabble.rs @@ -1,10 +1,39 @@ // file: kb-lib/src/decoder/weighted/swap_stabble.rs -// version: 2 +// version: 3 -//! Migration boundary for legacy crate `kb_decoder_weighted_swap_stabble`. +//! Reserved protocol decoder for `weighted_swap_stabble`. -/// Legacy crate name retained for migration and compatibility tracking. -pub(crate) const DC_WEIGHTED_SWAP_STABBLE_LEGACY_CRATE: &str = "kb_decoder_weighted_swap_stabble"; +/// Reserved decoder for the `weighted_swap_stabble` program surface. +#[derive(Clone, Debug, Default)] +pub struct DcWeightedSwapStabbleDecoder; -/// Current porting status. -pub(crate) const DC_WEIGHTED_SWAP_STABBLE_MIGRATION_STATUS: &str = "source-preserved-pending-port"; +impl crate::DcApiProtocolDecoder for crate::DcWeightedSwapStabbleDecoder { + fn decoder_name(&self) -> &'static str { + return "kb_decoder_weighted_swap_stabble"; + } + + fn decoder_version(&self) -> &'static str { + return env!("CARGO_PKG_VERSION"); + } + + fn program_ids(&self) -> &'static [&'static str] { + return &[kb_program_ids::WEIGHTED_SWAP_STABBLE_PROGRAM_ID]; + } + + fn supports_observation( + &self, + observation: &crate::MdProgramObservation, + ) -> crate::DcApiDecoderSupport { + if crate::DcApiProtocolDecoder::handles_program_id(self, &observation.program_id) { + return crate::DcApiDecoderSupport::Maybe; + } + return crate::DcApiDecoderSupport::No; + } + + fn decode_observation( + &self, + _observation: &crate::MdProgramObservation, + ) -> kb_core::Result> { + return std::result::Result::Ok(std::vec::Vec::new()); + } +} diff --git a/kb-lib/src/lib.rs b/kb-lib/src/lib.rs index 6a45144..1cd4e62 100644 --- a/kb-lib/src/lib.rs +++ b/kb-lib/src/lib.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/lib.rs -// version: 14 +// version: 15 //! Consolidated decoder, executor, materializer and shared model library. #![warn(missing_docs)] @@ -461,6 +461,66 @@ pub use self::decoder::DC_API_CORE_INSTRUCTION_INPUT_CONTRACT_VERSION; 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; +/// Reserved `kb_decoder_adapter_saber_decimal_wrapper` decoder. +pub use self::decoder::DcAdapterSaberDecimalWrapperDecoder; +/// Reserved `kb_decoder_admin_jupiter_lock` decoder. +pub use self::decoder::DcAdminJupiterLockDecoder; +/// Reserved `kb_decoder_admin_pump_fees` decoder. +pub use self::decoder::DcAdminPumpFeesDecoder; +/// Reserved `kb_decoder_amm_aldrin_v1` decoder. +pub use self::decoder::DcAmmAldrinV1Decoder; +/// Reserved `kb_decoder_amm_aldrin_v2` decoder. +pub use self::decoder::DcAmmAldrinV2Decoder; +/// Reserved `kb_decoder_amm_alphaq` decoder. +pub use self::decoder::DcAmmAlphaqDecoder; +/// Reserved `kb_decoder_amm_believe` decoder. +pub use self::decoder::DcAmmBelieveDecoder; +/// Reserved `kb_decoder_amm_bonk_swap` decoder. +pub use self::decoder::DcAmmBonkSwapDecoder; +/// Reserved `kb_decoder_amm_fluxbeam` decoder. +pub use self::decoder::DcAmmFluxbeamDecoder; +/// Reserved `kb_decoder_amm_goon_fi` decoder. +pub use self::decoder::DcAmmGoonFiDecoder; +/// Reserved `kb_decoder_amm_goosefx_gamma` decoder. +pub use self::decoder::DcAmmGoosefxGammaDecoder; +/// Reserved `kb_decoder_amm_goosefx_v2` decoder. +pub use self::decoder::DcAmmGoosefxV2Decoder; +/// Reserved `kb_decoder_amm_guac_swap` decoder. +pub use self::decoder::DcAmmGuacSwapDecoder; +/// Reserved `kb_decoder_amm_lifinity_swap_v2` decoder. +pub use self::decoder::DcAmmLifinitySwapV2Decoder; +/// Reserved `kb_decoder_amm_metadao_futarchy_amm` decoder. +pub use self::decoder::DcAmmMetadaoFutarchyAmmDecoder; +/// Reserved `kb_decoder_amm_metadao_v0_5` decoder. +pub use self::decoder::DcAmmMetadaoV05Decoder; +/// Reserved `kb_decoder_amm_meteora_damm_v1` decoder. +pub use self::decoder::DcAmmMeteoraDammV1Decoder; +/// Reserved `kb_decoder_amm_meteora_damm_v2` decoder. +pub use self::decoder::DcAmmMeteoraDammV2Decoder; +/// Reserved `kb_decoder_amm_obric_v2` decoder. +pub use self::decoder::DcAmmObricV2Decoder; +/// Reserved `kb_decoder_amm_one_dex` decoder. +pub use self::decoder::DcAmmOneDexDecoder; +/// Reserved `kb_decoder_amm_pump_swap` decoder. +pub use self::decoder::DcAmmPumpSwapDecoder; +/// Reserved `kb_decoder_amm_raydium_lp_v4` decoder. +pub use self::decoder::DcAmmRaydiumLpV4Decoder; +/// Reserved `kb_decoder_amm_solfi` decoder. +pub use self::decoder::DcAmmSolfiDecoder; +/// Reserved `kb_decoder_amm_solfi_v2` decoder. +pub use self::decoder::DcAmmSolfiV2Decoder; +/// Reserved `kb_decoder_amm_vertigo` decoder. +pub use self::decoder::DcAmmVertigoDecoder; +/// Reserved `kb_decoder_amm_virtuals` decoder. +pub use self::decoder::DcAmmVirtualsDecoder; +/// Reserved `kb_decoder_amm_woofi` decoder. +pub use self::decoder::DcAmmWoofiDecoder; +/// Reserved `kb_decoder_amm_zero_fi` decoder. +pub use self::decoder::DcAmmZeroFiDecoder; +/// Reserved `kb_decoder_amm_zora` decoder. +pub use self::decoder::DcAmmZoraDecoder; +/// Reserved `kb_decoder_anchor` decoder. +pub use self::decoder::DcAnchorDecoder; /// Stable contextual decoded observation. pub use self::decoder::DcApiDecodedObservation; /// Machine-readable decoder coverage declaration. @@ -491,6 +551,70 @@ pub use self::decoder::DcApiInitialDecoder; pub use self::decoder::DcApiInstructionDecoder; /// Exposes the common protocol decoder trait. pub use self::decoder::DcApiProtocolDecoder; +/// Reserved `kb_decoder_bridge_circle_cctp_token_messenger_minter` decoder. +pub use self::decoder::DcBridgeCircleCctpTokenMessengerMinterDecoder; +/// Reserved `kb_decoder_bridge_circle_cctp_token_messenger_minter_v2` decoder. +pub use self::decoder::DcBridgeCircleCctpTokenMessengerMinterV2Decoder; +/// Reserved `kb_decoder_bridge_layer_zero_endpoint` decoder. +pub use self::decoder::DcBridgeLayerZeroEndpointDecoder; +/// Reserved `kb_decoder_bridge_layer_zero_executor` decoder. +pub use self::decoder::DcBridgeLayerZeroExecutorDecoder; +/// Reserved `kb_decoder_clmm_byreal` decoder. +pub use self::decoder::DcClmmByrealDecoder; +/// Reserved `kb_decoder_clmm_fusion` decoder. +pub use self::decoder::DcClmmFusionDecoder; +/// Reserved `kb_decoder_clmm_orca_whirlpool` decoder. +pub use self::decoder::DcClmmOrcaWhirlpoolDecoder; +/// Reserved `kb_decoder_clmm_pancake_swap` decoder. +pub use self::decoder::DcClmmPancakeSwapDecoder; +/// Reserved `kb_decoder_clmm_raydium` decoder. +pub use self::decoder::DcClmmRaydiumDecoder; +/// Reserved `kb_decoder_clmm_stabble` decoder. +pub use self::decoder::DcClmmStabbleDecoder; +/// Reserved `kb_decoder_cpmm_raydium` decoder. +pub use self::decoder::DcCpmmRaydiumDecoder; +/// Reserved `kb_decoder_dlmm_meteora` decoder. +pub use self::decoder::DcDlmmMeteoraDecoder; +/// Reserved `kb_decoder_fees_bags_fee_share_v1` decoder. +pub use self::decoder::DcFeesBagsFeeShareV1Decoder; +/// Reserved `kb_decoder_fees_bags_fee_share_v2` decoder. +pub use self::decoder::DcFeesBagsFeeShareV2Decoder; +/// Reserved `kb_decoder_governance_metadao_bid_wall` decoder. +pub use self::decoder::DcGovernanceMetadaoBidWallDecoder; +/// Reserved `kb_decoder_launchpad_boop_fun` decoder. +pub use self::decoder::DcLaunchpadBoopFunDecoder; +/// Reserved `kb_decoder_launchpad_metadao_ico` decoder. +pub use self::decoder::DcLaunchpadMetadaoIcoDecoder; +/// Reserved `kb_decoder_launchpad_meteora_dbc` decoder. +pub use self::decoder::DcLaunchpadMeteoraDbcDecoder; +/// Reserved `kb_decoder_launchpad_moonit` decoder. +pub use self::decoder::DcLaunchpadMoonitDecoder; +/// Reserved `kb_decoder_launchpad_orca_wavebreak` decoder. +pub use self::decoder::DcLaunchpadOrcaWavebreakDecoder; +/// Reserved `kb_decoder_launchpad_printr` decoder. +pub use self::decoder::DcLaunchpadPrintrDecoder; +/// Reserved `kb_decoder_launchpad_pump_fun` decoder. +pub use self::decoder::DcLaunchpadPumpFunDecoder; +/// Reserved `kb_decoder_launchpad_pump_pumpup_ai` decoder. +pub use self::decoder::DcLaunchpadPumpPumpupAiDecoder; +/// Reserved `kb_decoder_launchpad_raydium_launchlab` decoder. +pub use self::decoder::DcLaunchpadRaydiumLaunchlabDecoder; +/// Reserved `kb_decoder_lending_clone` decoder. +pub use self::decoder::DcLendingCloneDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_borrow` decoder. +pub use self::decoder::DcLendingJupiterLendBorrowDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_earn` decoder. +pub use self::decoder::DcLendingJupiterLendEarnDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_flash_loan` decoder. +pub use self::decoder::DcLendingJupiterLendFlashLoanDecoder; +/// Reserved `kb_decoder_lending_jupiter_lend_liquidity` decoder. +pub use self::decoder::DcLendingJupiterLendLiquidityDecoder; +/// Reserved `kb_decoder_lending_kamino` decoder. +pub use self::decoder::DcLendingKaminoDecoder; +/// Reserved `kb_decoder_lending_marginfi_v2` decoder. +pub use self::decoder::DcLendingMarginfiV2Decoder; +/// Reserved `kb_decoder_lock_raydium_lp` decoder. +pub use self::decoder::DcLockRaydiumLpDecoder; /// Exact decoder for the Metaplex Token Metadata program. /// Exact decoder for the Metaplex Token Metadata program. pub use self::decoder::DcMetadataMetaplexTokenMetadataDecoder; @@ -555,8 +679,40 @@ 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; +/// Reserved `kb_decoder_metadata_spl_name_service` decoder. +pub use self::decoder::DcMetadataSplNameServiceDecoder; +/// Reserved `kb_decoder_nft_metaplex_bubblegum` decoder. +pub use self::decoder::DcNftMetaplexBubblegumDecoder; +/// Reserved `kb_decoder_orderbook_jupiter_limit_order` decoder. +pub use self::decoder::DcOrderbookJupiterLimitOrderDecoder; +/// Reserved `kb_decoder_orderbook_jupiter_limit_order_v2` decoder. +pub use self::decoder::DcOrderbookJupiterLimitOrderV2Decoder; +/// Reserved `kb_decoder_orderbook_openbook_v2` decoder. +pub use self::decoder::DcOrderbookOpenbookV2Decoder; +/// Reserved `kb_decoder_perpetuals_drift_v2` decoder. +pub use self::decoder::DcPerpetualsDriftV2Decoder; +/// Reserved `kb_decoder_perpetuals_jupiter` decoder. +pub use self::decoder::DcPerpetualsJupiterDecoder; +/// Reserved `kb_decoder_perpetuals_zeta` decoder. +pub use self::decoder::DcPerpetualsZetaDecoder; +/// Reserved `kb_decoder_router_dflow_aggregator_v4` decoder. +pub use self::decoder::DcRouterDflowAggregatorV4Decoder; +/// Reserved `kb_decoder_router_jupiter_aggregator_v4` decoder. +pub use self::decoder::DcRouterJupiterAggregatorV4Decoder; +/// Reserved `kb_decoder_router_jupiter_aggregator_v6` decoder. +pub use self::decoder::DcRouterJupiterAggregatorV6Decoder; +/// Reserved `kb_decoder_router_jupiter_dca` decoder. +pub use self::decoder::DcRouterJupiterDcaDecoder; +/// Reserved `kb_decoder_router_okx_labs_v1` decoder. +pub use self::decoder::DcRouterOkxLabsV1Decoder; +/// Reserved `kb_decoder_router_okx_labs_v2` decoder. +pub use self::decoder::DcRouterOkxLabsV2Decoder; +/// Reserved `kb_decoder_rwa_ondo_global_markets` decoder. +pub use self::decoder::DcRwaOndoGlobalMarketsDecoder; /// Runtime-native Solana decoder with maximal native instruction coverage. pub use self::decoder::DcSolanaCoreDecoder; +/// Reserved `kb_decoder_spl_account_compression` decoder. +pub use self::decoder::DcSplAccountCompressionDecoder; /// Exact decoder for the SPL Associated Token Account program. pub use self::decoder::DcSplAssociatedTokenAccountDecoder; /// Parsed SPL ElGamal public-key registry account. @@ -565,16 +721,56 @@ pub use self::decoder::DcSplElGamalRegistryState; pub use self::decoder::DcSplElgamalRegistryDecoder; /// Exact decoder for the three registered SPL Memo generations. pub use self::decoder::DcSplMemoDecoder; +/// Reserved `kb_decoder_spl_noop` decoder. +pub use self::decoder::DcSplNoopDecoder; +/// Reserved `kb_decoder_spl_single_pool` decoder. +pub use self::decoder::DcSplSinglePoolDecoder; +/// Reserved `kb_decoder_spl_stake_pool` decoder. +pub use self::decoder::DcSplStakePoolDecoder; /// 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; +/// Reserved `kb_decoder_stable_swap_hylo_exchange` decoder. +pub use self::decoder::DcStableSwapHyloExchangeDecoder; +/// Reserved `kb_decoder_stable_swap_jupiter_stable` decoder. +pub use self::decoder::DcStableSwapJupiterStableDecoder; +/// Reserved `kb_decoder_stable_swap_numeraire` decoder. +pub use self::decoder::DcStableSwapNumeraireDecoder; +/// Reserved `kb_decoder_stable_swap_stabble` decoder. +pub use self::decoder::DcStableSwapStabbleDecoder; +/// Reserved `kb_decoder_staking_kamino_farm` decoder. +pub use self::decoder::DcStakingKaminoFarmDecoder; +/// Reserved `kb_decoder_staking_marinade_finance` decoder. +pub use self::decoder::DcStakingMarinadeFinanceDecoder; +/// Reserved `kb_decoder_staking_solayer` decoder. +pub use self::decoder::DcStakingSolayerDecoder; /// 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; +/// Reserved `kb_decoder_treasury_helium_treasury_management` decoder. +pub use self::decoder::DcTreasuryHeliumTreasuryManagementDecoder; +/// Reserved `kb_decoder_vault_carrot_defi` decoder. +pub use self::decoder::DcVaultCarrotDefiDecoder; +/// Reserved `kb_decoder_vault_hylo_stability_pool` decoder. +pub use self::decoder::DcVaultHyloStabilityPoolDecoder; +/// Reserved `kb_decoder_vault_kamino` decoder. +pub use self::decoder::DcVaultKaminoDecoder; +/// Reserved `kb_decoder_vault_kamino_v2` decoder. +pub use self::decoder::DcVaultKaminoV2Decoder; +/// Reserved `kb_decoder_vault_kamino_yvaults` decoder. +pub use self::decoder::DcVaultKaminoYvaultsDecoder; +/// Reserved `kb_decoder_vault_meteora` decoder. +pub use self::decoder::DcVaultMeteoraDecoder; +/// Reserved `kb_decoder_vesting_streamflow` decoder. +pub use self::decoder::DcVestingStreamflowDecoder; +/// Reserved `kb_decoder_wallet_jupiter_apepro_smart_wallet` decoder. +pub use self::decoder::DcWalletJupiterApeproSmartWalletDecoder; +/// Reserved `kb_decoder_weighted_swap_stabble` decoder. +pub use self::decoder::DcWeightedSwapStabbleDecoder; /// 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. diff --git a/kb-lib/src/materializer.rs b/kb-lib/src/materializer.rs index 1e49d4b..e0b76b5 100644 --- a/kb-lib/src/materializer.rs +++ b/kb-lib/src/materializer.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/materializer.rs -// version: 3 +// version: 4 //! Consolidated materializer modules. diff --git a/kb-lib/src/materializer/admin.rs b/kb-lib/src/materializer/admin.rs index d7de52c..4cfc0b1 100644 --- a/kb-lib/src/materializer/admin.rs +++ b/kb-lib/src/materializer/admin.rs @@ -1,19 +1,19 @@ // file: kb-lib/src/materializer/admin.rs -// version: 4 +// version: 5 //! `admin` materializer family. mod constants; mod core; -/// 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 self::core::MtAdminMaterializer; /// Materializes one exact SPL ElGamal registry account snapshot. pub use self::core::materializer_admin_materialize_elgamal_registry_state_snapshot; /// Materializes exact Token-2022 administration account snapshots. pub use self::core::materializer_admin_materialize_token2022_state_snapshots; + +/// 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; diff --git a/kb-lib/src/materializer/admin/constants.rs b/kb-lib/src/materializer/admin/constants.rs index c3afa35..e4e717e 100644 --- a/kb-lib/src/materializer/admin/constants.rs +++ b/kb-lib/src/materializer/admin/constants.rs @@ -5,6 +5,5 @@ /// Canonical processor name for this component. pub(crate) const MT_ADMIN_PROCESSOR_NAME: &str = "solana_native_admin"; - /// Canonical tracing target for this component. pub(crate) const MT_ADMIN_TRACING_TARGET: &str = "kb-lib.materializer.admin"; diff --git a/kb-lib/src/materializer/bridge/core.rs b/kb-lib/src/materializer/bridge/core.rs index db7aa56..0389bee 100644 --- a/kb-lib/src/materializer/bridge/core.rs +++ b/kb-lib/src/materializer/bridge/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_bridge"; - /// Current porting status. 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 0f13a53..0dc4850 100644 --- a/kb-lib/src/materializer/compliance.rs +++ b/kb-lib/src/materializer/compliance.rs @@ -6,8 +6,8 @@ mod audit; mod constants; -/// 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 self::audit::MtComplianceAuditMaterializer; + +/// Canonical tracing target for the native compliance audit materializer. +pub(crate) use self::constants::MT_COMPLIANCE_AUDIT_TRACING_TARGET; diff --git a/kb-lib/src/materializer/governance/core.rs b/kb-lib/src/materializer/governance/core.rs index e1f5591..d4d67bf 100644 --- a/kb-lib/src/materializer/governance/core.rs +++ b/kb-lib/src/materializer/governance/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_governance"; - /// Current porting status. const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/lending/core.rs b/kb-lib/src/materializer/lending/core.rs index 9741c17..f88ba17 100644 --- a/kb-lib/src/materializer/lending/core.rs +++ b/kb-lib/src/materializer/lending/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_lending"; - /// Current porting status. 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 6408034..c3e8379 100644 --- a/kb-lib/src/materializer/lifecycle.rs +++ b/kb-lib/src/materializer/lifecycle.rs @@ -6,8 +6,8 @@ mod constants; mod core; -/// Canonical tracing target for the native lifecycle materializer. -pub(crate) use self::constants::MT_LIFECYCLE_TRACING_TARGET; - /// Stable native lifecycle materializer. pub use self::core::MtLifecycleMaterializer; + +/// Canonical tracing target for the native lifecycle materializer. +pub(crate) use self::constants::MT_LIFECYCLE_TRACING_TARGET; diff --git a/kb-lib/src/materializer/liquidity/core.rs b/kb-lib/src/materializer/liquidity/core.rs index dbfb075..2f66366 100644 --- a/kb-lib/src/materializer/liquidity/core.rs +++ b/kb-lib/src/materializer/liquidity/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_liquidity"; - /// Current porting status. const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/nft/core.rs b/kb-lib/src/materializer/nft/core.rs index 31c83c8..ed017f5 100644 --- a/kb-lib/src/materializer/nft/core.rs +++ b/kb-lib/src/materializer/nft/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_nft"; - /// Current porting status. const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/oracle/core.rs b/kb-lib/src/materializer/oracle/core.rs index 7fa19ba..0967b2a 100644 --- a/kb-lib/src/materializer/oracle/core.rs +++ b/kb-lib/src/materializer/oracle/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_oracle"; - /// Current porting status. const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/orderbook/core.rs b/kb-lib/src/materializer/orderbook/core.rs index f104c91..e40ce54 100644 --- a/kb-lib/src/materializer/orderbook/core.rs +++ b/kb-lib/src/materializer/orderbook/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_orderbook"; - /// Current porting status. const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/perpetuals/core.rs b/kb-lib/src/materializer/perpetuals/core.rs index 321a421..90ee42d 100644 --- a/kb-lib/src/materializer/perpetuals/core.rs +++ b/kb-lib/src/materializer/perpetuals/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_perpetuals"; - /// Current porting status. const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/pool/state.rs b/kb-lib/src/materializer/pool/state.rs index ad2d1b4..44b7b13 100644 --- a/kb-lib/src/materializer/pool/state.rs +++ b/kb-lib/src/materializer/pool/state.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_pool_state"; - /// Current porting status. const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/rewards/core.rs b/kb-lib/src/materializer/rewards/core.rs index 27e50f3..7fbfb16 100644 --- a/kb-lib/src/materializer/rewards/core.rs +++ b/kb-lib/src/materializer/rewards/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_rewards"; - /// Current porting status. 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 937bbfd..6e20652 100644 --- a/kb-lib/src/materializer/risk.rs +++ b/kb-lib/src/materializer/risk.rs @@ -6,12 +6,12 @@ mod constants; mod core; +/// Stable SPL Token and ATA risk materializer. +pub use self::core::MtRiskMaterializer; + /// 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/routing/core.rs b/kb-lib/src/materializer/routing/core.rs index 137d00c..caa8c92 100644 --- a/kb-lib/src/materializer/routing/core.rs +++ b/kb-lib/src/materializer/routing/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_routing"; - /// Current porting status. 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 8c8f7a2..fac1669 100644 --- a/kb-lib/src/materializer/staking.rs +++ b/kb-lib/src/materializer/staking.rs @@ -6,8 +6,8 @@ mod constants; mod core; -/// 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 self::core::MtStakingMaterializer; + +/// Canonical tracing target for the native stake and vote materializer. +pub(crate) use self::constants::MT_STAKING_TRACING_TARGET; diff --git a/kb-lib/src/materializer/token.rs b/kb-lib/src/materializer/token.rs index d209082..74438e7 100644 --- a/kb-lib/src/materializer/token.rs +++ b/kb-lib/src/materializer/token.rs @@ -7,14 +7,14 @@ mod accounts; mod constants; mod metadata_risk; +/// 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::materializer_token_materialize_token2022_state_snapshot; + /// 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::materializer_token_materialize_token2022_state_snapshot; diff --git a/kb-lib/src/materializer/token/accounts.rs b/kb-lib/src/materializer/token/accounts.rs index db2e4eb..a2b9a71 100644 --- a/kb-lib/src/materializer/token/accounts.rs +++ b/kb-lib/src/materializer/token/accounts.rs @@ -9,7 +9,6 @@ const ACCEPTED_FAMILIES: &[crate::MdEventFamily] = &[ crate::MdEventFamily::TokenBurn, crate::MdEventFamily::Lifecycle, ]; - const MUTATION_ENTRIES: &[&str] = &[ "initialize_mint", "initialize_mint2", diff --git a/kb-lib/src/materializer/token/metadata_risk.rs b/kb-lib/src/materializer/token/metadata_risk.rs index e6a0278..5a10a7f 100644 --- a/kb-lib/src/materializer/token/metadata_risk.rs +++ b/kb-lib/src/materializer/token/metadata_risk.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_token_metadata_risk"; - /// Current porting status. const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/materializer/trades/core.rs b/kb-lib/src/materializer/trades/core.rs index 06a8f4d..2ebf10b 100644 --- a/kb-lib/src/materializer/trades/core.rs +++ b/kb-lib/src/materializer/trades/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_trades"; - /// Current porting status. 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 4f9831d..6356de4 100644 --- a/kb-lib/src/materializer/transaction.rs +++ b/kb-lib/src/materializer/transaction.rs @@ -6,6 +6,9 @@ mod annotations; mod constants; +/// Stable committed Memo transaction annotation materializer. +pub use self::annotations::MtTransactionAnnotationMaterializer; + /// 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. @@ -14,6 +17,3 @@ pub(crate) use self::constants::MT_TRANSACTION_ANNOTATIONS_PROCESSOR_NAME; 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/vault/core.rs b/kb-lib/src/materializer/vault/core.rs index e2f296c..37399ce 100644 --- a/kb-lib/src/materializer/vault/core.rs +++ b/kb-lib/src/materializer/vault/core.rs @@ -5,6 +5,5 @@ /// Legacy crate name retained for migration and compatibility tracking. const LEGACY_CRATE: &str = "kb_materializer_vault"; - /// Current porting status. const MIGRATION_STATUS: &str = "source-preserved-pending-port"; diff --git a/kb-lib/src/model.rs b/kb-lib/src/model.rs index e9d4dec..0b37639 100644 --- a/kb-lib/src/model.rs +++ b/kb-lib/src/model.rs @@ -1,5 +1,5 @@ // file: kb-lib/src/model.rs -// version: 2 +// version: 3 //! Shared canonical models consolidated from `kb_model`. diff --git a/kb-program-ids/README.md b/kb-program-ids/README.md index 8eb7e0c..d190f15 100644 --- a/kb-program-ids/README.md +++ b/kb-program-ids/README.md @@ -1,5 +1,5 @@ - + # kb-program-ids @@ -7,6 +7,8 @@ La tranche `0.1.0-pre.004` expose les 18 surfaces exécutables nécessaires au décodeur Solana Core, les comptes natifs associés utilisés par leurs contrats et l’identifiant SPL Token classique employé par les tests de frontière. La tranche `0.1.0-pre.005` ajoute les trois identifiants SPL Memo v1, v3 et v4 sans les classer parmi les surfaces natives. `0.1.0-pre.006` active l’identifiant SPL Token classique dans un décodeur concret tout en le maintenant hors des surfaces natives. `0.1.0-pre.007` ajoute les identifiants SPL Associated Token Account et Token‑2022 nécessaires à la frontière ATA. `0.1.0-pre.008` ajoute le Program ID indépendant du registre ElGamal de Token‑2022. `0.1.0-pre.009` ajoute le Program ID indépendant de Metaplex Token Metadata. Ces programmes restent hors des surfaces natives. +La tranche `0.1.0-pre.012` restaure 97 Program IDs supplémentaires utilisés par les squelettes réservés de `kb-lib`. Le registre contient désormais 130 codes et 130 adresses uniques. La réservation Anchor ne possède volontairement aucun Program ID statique. + `constants.rs` reste l’unique source des adresses et des tableaux statiques. `programs.rs` porte `ProgramIdEntry`, ses méthodes et toutes les fonctions de consultation. `lib.rs` se limite aux déclarations de modules et aux réexports documentés de la façade. diff --git a/kb-program-ids/src/constants.rs b/kb-program-ids/src/constants.rs index dc64733..c600e5c 100644 --- a/kb-program-ids/src/constants.rs +++ b/kb-program-ids/src/constants.rs @@ -1,8 +1,225 @@ // file: kb-program-ids/src/constants.rs -// version: 5 +// version: 6 //! Canonical Solana program and well-known account identifiers. +/// Reserved `adapter_saber_decimal_wrapper` program identifier. +pub const ADAPTER_SABER_DECIMAL_WRAPPER_PROGRAM_ID: &str = + "DecZY86MU5Gj7kppfUCEmd4LbXXuyZH1yHaP2NTqdiZB"; +/// Reserved `admin_jupiter_lock` program identifier. +pub const ADMIN_JUPITER_LOCK_PROGRAM_ID: &str = "LocpQgucEQHbqNABEYvBvwoxCPsSbG91A1QaQhQQqjn"; +/// Reserved `admin_pump_fees` program identifier. +pub const ADMIN_PUMP_FEES_PROGRAM_ID: &str = "pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ"; +/// Reserved `amm_aldrin_v1` program identifier. +pub const AMM_ALDRIN_V1_PROGRAM_ID: &str = "AMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6"; +/// Reserved `amm_aldrin_v2` program identifier. +pub const AMM_ALDRIN_V2_PROGRAM_ID: &str = "CURVGoZn8zycx6FXwwevgBTB2gVvdbGTEpvMJDbgs2t4"; +/// Reserved `amm_alphaq` program identifier. +pub const AMM_ALPHAQ_PROGRAM_ID: &str = "ALPHAQmeA7bjrVuccPsYPiCvsi428SNwte66Srvs4pHA"; +/// Reserved `amm_believe` program identifier. +pub const AMM_BELIEVE_PROGRAM_ID: &str = "5qWya6UjwWnGVhdSBL3hyZ7B45jbk6Byt1hwd7ohEGXE"; +/// Reserved `amm_bonk_swap` program identifier. +pub const AMM_BONK_SWAP_PROGRAM_ID: &str = "BSwp6bEBihVLdqJRKGgzjcGLHkcTuzmSo1TQkHepzH8p"; +/// Reserved `amm_fluxbeam` program identifier. +pub const AMM_FLUXBEAM_PROGRAM_ID: &str = "FLUXubRmkEi2q6K3Y9kBPg9248ggaZVsoSFhtJHSrm1X"; +/// Reserved `amm_goon_fi` program identifier. +pub const AMM_GOON_FI_PROGRAM_ID: &str = "goonERTdGsjnkZqWuVjs73BZ3Pb9qoCUdBUL17BnS5j"; +/// Reserved `amm_goosefx_gamma` program identifier. +pub const AMM_GOOSEFX_GAMMA_PROGRAM_ID: &str = "GAMMA7meSFWaBXF25oSUgmGRwaW6sCMFLmBNiMSdbHVT"; +/// Reserved `amm_goosefx_v2` program identifier. +pub const AMM_GOOSEFX_V2_PROGRAM_ID: &str = "GFXsSL5sSaDfNFQUYsHekbWBW1TsFdjDYzACh62tEHxn"; +/// Reserved `amm_guac_swap` program identifier. +pub const AMM_GUAC_SWAP_PROGRAM_ID: &str = "Gswppe6ERWKpUTXvRPfXdzHhiCyJvLadVvXGfdpBqcE1"; +/// Reserved `amm_lifinity_swap_v2` program identifier. +pub const AMM_LIFINITY_SWAP_V2_PROGRAM_ID: &str = "2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c"; +/// Reserved `amm_metadao_futarchy_amm` program identifier. +pub const AMM_METADAO_FUTARCHY_AMM_PROGRAM_ID: &str = + "FUTARELBfJfQ8RDGhg1wdhddq1odMAJUePHFuBYfUxKq"; +/// Reserved `amm_metadao_v0_5` program identifier. +pub const AMM_METADAO_V0_5_PROGRAM_ID: &str = "AMMJdEiCCa8mdugg6JPF7gFirmmxisTfDJoSNSUi5zDJ"; +/// Reserved `amm_meteora_damm_v1` program identifier. +pub const AMM_METEORA_DAMM_V1_PROGRAM_ID: &str = "Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB"; +/// Reserved `amm_meteora_damm_v2` program identifier. +pub const AMM_METEORA_DAMM_V2_PROGRAM_ID: &str = "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG"; +/// Reserved `amm_obric_v2` program identifier. +pub const AMM_OBRIC_V2_PROGRAM_ID: &str = "obriQD1zbpyLz95G5n7nJe6a4DPjpFwa5XYPoNm113y"; +/// Reserved `amm_one_dex` program identifier. +pub const AMM_ONE_DEX_PROGRAM_ID: &str = "DEXYosS6oEGvk8uCDayvwEZz4qEyDJRf9nFgYCaqPMTm"; +/// Reserved `amm_pump_swap` program identifier. +pub const AMM_PUMP_SWAP_PROGRAM_ID: &str = "pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA"; +/// Reserved `amm_raydium_lp_v4` program identifier. +pub const AMM_RAYDIUM_LP_V4_PROGRAM_ID: &str = "675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8"; +/// Reserved `amm_solfi` program identifier. +pub const AMM_SOLFI_PROGRAM_ID: &str = "SoLFiHG9TfgtdUXUjWAxi3LtvYuFyDLVhBWxdMZxyCe"; +/// Reserved `amm_solfi_v2` program identifier. +pub const AMM_SOLFI_V2_PROGRAM_ID: &str = "SV2EYYJyRz2YhfXwXnhNAevDEui5Q6yrfyo13WtupPF"; +/// Reserved `amm_vertigo` program identifier. +pub const AMM_VERTIGO_PROGRAM_ID: &str = "vrTGoBuy5rYSxAfV3jaRJWHH6nN9WK4NRExGxsk1bCJ"; +/// Reserved `amm_virtuals` program identifier. +pub const AMM_VIRTUALS_PROGRAM_ID: &str = "5U3EU2ubXtK84QcRjWVmYt9RaDyA8gKxdUrPFXmZyaki"; +/// Reserved `amm_woofi` program identifier. +pub const AMM_WOOFI_PROGRAM_ID: &str = "WooFif76YGRNjk1pA8wCsN67aQsD9f9iLsz4NcJ1AVb"; +/// Reserved `amm_zero_fi` program identifier. +pub const AMM_ZERO_FI_PROGRAM_ID: &str = "ZERor4xhbUycZ6gb9ntrhqscUcZmAbQDjEAtCf4hbZY"; +/// Reserved `amm_zora` program identifier. +pub const AMM_ZORA_PROGRAM_ID: &str = "zoRabwLGd5zXaV7Gxacppw8tcceXEiTrSKyNLSaSTUc"; +/// Reserved `bridge_circle_cctp_token_messenger_minter` program identifier. +pub const BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_PROGRAM_ID: &str = + "CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3"; +/// Reserved `bridge_circle_cctp_token_messenger_minter_v2` program identifier. +pub const BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_PROGRAM_ID: &str = + "CCTPV2vPZJS2u2BBsUoscuikbYjnpFmbFsvVuJdgUMQe"; +/// Reserved `bridge_layer_zero_endpoint` program identifier. +pub const BRIDGE_LAYER_ZERO_ENDPOINT_PROGRAM_ID: &str = + "76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6"; +/// Reserved `bridge_layer_zero_executor` program identifier. +pub const BRIDGE_LAYER_ZERO_EXECUTOR_PROGRAM_ID: &str = + "6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn"; +/// Reserved `clmm_byreal` program identifier. +pub const CLMM_BYREAL_PROGRAM_ID: &str = "REALQqNEomY6cQGZJUGwywTBD2UmDT32rZcNnfxQ5N2"; +/// Reserved `clmm_fusion` program identifier. +pub const CLMM_FUSION_PROGRAM_ID: &str = "fUSioN9YKKSa3CUC2YUc4tPkHJ5Y6XW1yz8y6F7qWz9"; +/// Reserved `clmm_orca_whirlpool` program identifier. +pub const CLMM_ORCA_WHIRLPOOL_PROGRAM_ID: &str = "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"; +/// Reserved `clmm_pancake_swap` program identifier. +pub const CLMM_PANCAKE_SWAP_PROGRAM_ID: &str = "HpNfyc2Saw7RKkQd8nEL4khUcuPhQ7WwY1B2qjx8jxFq"; +/// Reserved `clmm_raydium` program identifier. +pub const CLMM_RAYDIUM_PROGRAM_ID: &str = "CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK"; +/// Reserved `clmm_stabble` program identifier. +pub const CLMM_STABBLE_PROGRAM_ID: &str = "6dMXqGZ3ga2dikrYS9ovDXgHGh5RUsb2RTUj6hrQXhk6"; +/// Reserved `cpmm_raydium` program identifier. +pub const CPMM_RAYDIUM_PROGRAM_ID: &str = "CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C"; +/// Reserved `dlmm_meteora` program identifier. +pub const DLMM_METEORA_PROGRAM_ID: &str = "LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo"; +/// Reserved `fees_bags_fee_share_v1` program identifier. +pub const FEES_BAGS_FEE_SHARE_V1_PROGRAM_ID: &str = "FEEhPbKVKnco9EXnaY3i4R5rQVUx91wgVfu8qokixywi"; +/// Reserved `fees_bags_fee_share_v2` program identifier. +pub const FEES_BAGS_FEE_SHARE_V2_PROGRAM_ID: &str = "FEE2tBhCKAt7shrod19QttSVREUYPiyMzoku1mL1gqVK"; +/// Reserved `governance_metadao_bid_wall` program identifier. +pub const GOVERNANCE_METADAO_BID_WALL_PROGRAM_ID: &str = + "WALL8ucBuUyL46QYxwYJjidaFYhdvxUFrgvBxPshERx"; +/// Reserved `launchpad_boop_fun` program identifier. +pub const LAUNCHPAD_BOOP_FUN_PROGRAM_ID: &str = "boop8hVGQGqehUK2iVEMEnMrL5RbjywRzHKBmBE7ry4"; +/// Reserved `launchpad_metadao_ico` program identifier. +pub const LAUNCHPAD_METADAO_ICO_PROGRAM_ID: &str = "moontUzsdepotRGe5xsfip7vLPTJnVuafqdUWexVnPM"; +/// Reserved `launchpad_meteora_dbc` program identifier. +pub const LAUNCHPAD_METEORA_DBC_PROGRAM_ID: &str = "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN"; +/// Reserved `launchpad_moonit` program identifier. +pub const LAUNCHPAD_MOONIT_PROGRAM_ID: &str = "MoonCVVNZFSYkqNXP6bxHLPL6QQJiMagDL3qcqUQTrG"; +/// Reserved `launchpad_orca_wavebreak` program identifier. +pub const LAUNCHPAD_ORCA_WAVEBREAK_PROGRAM_ID: &str = "waveQX2yP3H1pVU8djGvEHmYg8uamQ84AuyGtpsrXTF"; +/// Reserved `launchpad_printr` program identifier. +pub const LAUNCHPAD_PRINTR_PROGRAM_ID: &str = "T8HsGYv7sMk3kTnyaRqZrbRPuntYzdh12evXBkprint"; +/// Reserved `launchpad_pump_fun` program identifier. +pub const LAUNCHPAD_PUMP_FUN_PROGRAM_ID: &str = "6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P"; +/// Reserved `launchpad_pump_pumpup_ai` program identifier. +pub const LAUNCHPAD_PUMP_PUMPUP_AI_PROGRAM_ID: &str = "PdMDrKEMaX8q7CCJb7NvUCxerBCcsFUa4LjBEynTtEd"; +/// Reserved `launchpad_raydium_launchlab` program identifier. +pub const LAUNCHPAD_RAYDIUM_LAUNCHLAB_PROGRAM_ID: &str = + "LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj"; +/// Reserved `lending_clone` program identifier. +pub const LENDING_CLONE_PROGRAM_ID: &str = "C1onEW2kPetmHmwe74YC1ESx3LnFEpVau6g2pg4fHycr"; +/// Reserved `lending_jupiter_lend_borrow` program identifier. +pub const LENDING_JUPITER_LEND_BORROW_PROGRAM_ID: &str = + "jupr81YtYssSyPt8jbnGuiWon5f6x9TcDEFxYe3Bdzi"; +/// Reserved `lending_jupiter_lend_earn` program identifier. +pub const LENDING_JUPITER_LEND_EARN_PROGRAM_ID: &str = + "jup3YeL8QhtSx1e253b2FDvsMNC87fDrgQZivbrndc9"; +/// Reserved `lending_jupiter_lend_flash_loan` program identifier. +pub const LENDING_JUPITER_LEND_FLASH_LOAN_PROGRAM_ID: &str = + "jupgfSgfuAXv4B6R2Uxu85Z1qdzgju79s6MfZekN6XS"; +/// Reserved `lending_jupiter_lend_liquidity` program identifier. +pub const LENDING_JUPITER_LEND_LIQUIDITY_PROGRAM_ID: &str = + "jupeiUmn818Jg1ekPURTpr4mFo29p46vygyykFJ3wZC"; +/// Reserved `lending_kamino` program identifier. +pub const LENDING_KAMINO_PROGRAM_ID: &str = "KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD"; +/// Reserved `lending_marginfi_v2` program identifier. +pub const LENDING_MARGINFI_V2_PROGRAM_ID: &str = "MFv2hWf31Z9kbCa1snEPYctwafyhdvnV7FZnsebVacA"; +/// Reserved `lock_raydium_lp` program identifier. +pub const LOCK_RAYDIUM_LP_PROGRAM_ID: &str = "LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE"; +/// Reserved `nft_metaplex_bubblegum` program identifier. +pub const NFT_METAPLEX_BUBBLEGUM_PROGRAM_ID: &str = "BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY"; +/// Reserved `orderbook_jupiter_limit_order` program identifier. +pub const ORDERBOOK_JUPITER_LIMIT_ORDER_PROGRAM_ID: &str = + "jupoNjAxXgZ4rjzxzPMP4oxduvQsQtZzyknqvzYNrNu"; +/// Reserved `orderbook_jupiter_limit_order_v2` program identifier. +pub const ORDERBOOK_JUPITER_LIMIT_ORDER_V2_PROGRAM_ID: &str = + "j1o2qRpjcyUwEvwtcfhEQefh773ZgjxcVRry7LDqg5X"; +/// Reserved `orderbook_openbook_v2` program identifier. +pub const ORDERBOOK_OPENBOOK_V2_PROGRAM_ID: &str = "opnb2LAfJYbRMAHHvqjCwQxanZn7ReEHp1k81EohpZb"; +/// Reserved `perpetuals_drift_v2` program identifier. +pub const PERPETUALS_DRIFT_V2_PROGRAM_ID: &str = "dRiftyHA39MWEi3m9aunc5MzRF1JYuBsbn6VPcn33UH"; +/// Reserved `perpetuals_jupiter` program identifier. +pub const PERPETUALS_JUPITER_PROGRAM_ID: &str = "PERPHjGBqRHArX4DySjwM6UJHiR3sWAatqfdBS2qQJu"; +/// Reserved `perpetuals_zeta` program identifier. +pub const PERPETUALS_ZETA_PROGRAM_ID: &str = "ZETAxsqBRek56DhiGXrn75yj2NHU3aYUnxvHXpkf3aD"; +/// Reserved `router_dflow_aggregator_v4` program identifier. +pub const ROUTER_DFLOW_AGGREGATOR_V4_PROGRAM_ID: &str = + "DF1ow4tspfHX9WJsAb9epbkA8hmpSEAtxXy1V27QBH"; +/// Reserved `router_jupiter_aggregator_v4` program identifier. +pub const ROUTER_JUPITER_AGGREGATOR_V4_PROGRAM_ID: &str = + "JUP4Fb2cqiRUcaTHdrPC8h2gNsA2ETXiPDD33WcGuJB"; +/// Reserved `router_jupiter_aggregator_v6` program identifier. +pub const ROUTER_JUPITER_AGGREGATOR_V6_PROGRAM_ID: &str = + "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4"; +/// Reserved `router_jupiter_dca` program identifier. +pub const ROUTER_JUPITER_DCA_PROGRAM_ID: &str = "DCA265Vj8a9CEuX1eb1LWRnDT7uK6q1xMipnNyatn23M"; +/// Reserved `router_okx_labs_v1` program identifier. +pub const ROUTER_OKX_LABS_V1_PROGRAM_ID: &str = "6m2CDdhRgxpH4WjvdzxAYbGxwdGUz5MziiL5jek2kBma"; +/// Reserved `router_okx_labs_v2` program identifier. +pub const ROUTER_OKX_LABS_V2_PROGRAM_ID: &str = "proVF4pMXVaYqmy4NjniPh4pqKNfMmsihgd4wdkCX3u"; +/// Reserved `rwa_ondo_global_markets` program identifier. +pub const RWA_ONDO_GLOBAL_MARKETS_PROGRAM_ID: &str = "XzTT4XB8m7sLD2xi6snefSasaswsKCxx5Tifjondogm"; +/// Reserved `spl_account_compression` program identifier. +pub const SPL_ACCOUNT_COMPRESSION_PROGRAM_ID: &str = "cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK"; +/// Reserved `metadata_spl_name_service` program identifier. +pub const METADATA_SPL_NAME_SERVICE_PROGRAM_ID: &str = + "namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX"; +/// Reserved `spl_noop` program identifier. +pub const SPL_NOOP_PROGRAM_ID: &str = "noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV"; +/// Reserved `spl_single_pool` program identifier. +pub const SPL_SINGLE_POOL_PROGRAM_ID: &str = "SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE"; +/// Reserved `spl_stake_pool` program identifier. +pub const SPL_STAKE_POOL_PROGRAM_ID: &str = "SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy"; +/// Reserved `stable_swap_hylo_exchange` program identifier. +pub const STABLE_SWAP_HYLO_EXCHANGE_PROGRAM_ID: &str = + "HYEXCHtHkBagdStcJCp3xbbb9B7sdMdWXFNj6mdsG4hn"; +/// Reserved `stable_swap_jupiter_stable` program identifier. +pub const STABLE_SWAP_JUPITER_STABLE_PROGRAM_ID: &str = + "JUPUSDecMzAVgztLe6eGhwUBj1Pn3j9WAXwmtHmfbRr"; +/// Reserved `stable_swap_numeraire` program identifier. +pub const STABLE_SWAP_NUMERAIRE_PROGRAM_ID: &str = "NUMERUNsFCP3kuNmWZuXtm1AaQCPj9uw6Guv2Ekoi5P"; +/// Reserved `stable_swap_stabble` program identifier. +pub const STABLE_SWAP_STABBLE_PROGRAM_ID: &str = "swapNyd8XiQwJ6ianp9snpu4brUqFxadzvHebnAXjJZ"; +/// Reserved `staking_kamino_farm` program identifier. +pub const STAKING_KAMINO_FARM_PROGRAM_ID: &str = "FarmsPZpWu9i7Kky8tPN37rs2TpmMrAZrC7S7vJa91Hr"; +/// Reserved `staking_marinade_finance` program identifier. +pub const STAKING_MARINADE_FINANCE_PROGRAM_ID: &str = "MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD"; +/// Reserved `staking_solayer` program identifier. +pub const STAKING_SOLAYER_PROGRAM_ID: &str = "sSo1iU21jBrU9VaJ8PJib1MtorefUV4fzC9GURa2KNn"; +/// Reserved `treasury_helium_treasury_management` program identifier. +pub const TREASURY_HELIUM_TREASURY_MANAGEMENT_PROGRAM_ID: &str = + "treaf4wWBBty3fHdyBpo35Mz84M8k3heKXmjmi9vFt5"; +/// Reserved `vault_carrot_defi` program identifier. +pub const VAULT_CARROT_DEFI_PROGRAM_ID: &str = "CarrotwivhMpDnm27EHmRLeQ683Z1PufuqEmBZvD282s"; +/// Reserved `vault_hylo_stability_pool` program identifier. +pub const VAULT_HYLO_STABILITY_POOL_PROGRAM_ID: &str = + "HysTabVUfmQBFcmzu1ctRd1Y1fxd66RBpboy1bmtDSQQ"; +/// Reserved `vault_kamino` program identifier. +pub const VAULT_KAMINO_PROGRAM_ID: &str = "kvauTFR8qm1dhniz6pYuBZkuene3Hfrs1VQhVRgCNrr"; +/// Reserved `vault_kamino_v2` program identifier. +pub const VAULT_KAMINO_V2_PROGRAM_ID: &str = "KvauGMspG5k6rtzrqqn7WNn3oZdyKqLKwK2XWQ8FLjd"; +/// Reserved `vault_kamino_yvaults` program identifier. +pub const VAULT_KAMINO_YVAULTS_PROGRAM_ID: &str = "6LtLpnUFNByNXLyCoK9wA2MykKAmQNZKBdY8s47dehDc"; +/// Reserved `vault_meteora` program identifier. +pub const VAULT_METEORA_PROGRAM_ID: &str = "24Uqj9JCLxUeoC3hGfh5W3s9FM9uCHDS2SG3LYwBpyTi"; +/// Reserved `vesting_streamflow` program identifier. +pub const VESTING_STREAMFLOW_PROGRAM_ID: &str = "strmRqUCoQUgGUan5YhzUZa6KqdzwX5L6FpUxfmKg5m"; +/// Reserved `wallet_jupiter_apepro_smart_wallet` program identifier. +pub const WALLET_JUPITER_APEPRO_SMART_WALLET_PROGRAM_ID: &str = + "JSW99DKmxNyREQM14SQLDykeBvEUG63TeohrvmofEiw"; +/// Reserved `weighted_swap_stabble` program identifier. +pub const WEIGHTED_SWAP_STABBLE_PROGRAM_ID: &str = "swapFpHZwjELNnjvThjajtiVmkz3yPQEHjLtka2fwHW"; /// SPL Associated Token Account program identifier. pub const ASSOCIATED_TOKEN_PROGRAM_ID: &str = "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"; /// Address Lookup Table program identifier. @@ -162,25 +379,181 @@ pub(crate) const NATIVE_WELL_KNOWN_ACCOUNT_ID_ENTRIES: &[crate::ProgramIdEntry] pub(crate) const PROGRAM_ID_ENTRIES: &[crate::ProgramIdEntry] = &[ crate::ProgramIdEntry { - name: "associated_token_account", - address: crate::ASSOCIATED_TOKEN_PROGRAM_ID, + name: "adapter_saber_decimal_wrapper", + address: crate::ADAPTER_SABER_DECIMAL_WRAPPER_PROGRAM_ID, }, crate::ProgramIdEntry { name: "address_lookup_table", address: crate::ADDRESS_LOOKUP_TABLE_PROGRAM_ID, }, crate::ProgramIdEntry { - name: "bpf_loader_deprecated", - address: crate::BPF_LOADER_DEPRECATED_PROGRAM_ID, + name: "admin_jupiter_lock", + address: crate::ADMIN_JUPITER_LOCK_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "admin_pump_fees", + address: crate::ADMIN_PUMP_FEES_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_aldrin_v1", + address: crate::AMM_ALDRIN_V1_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_aldrin_v2", + address: crate::AMM_ALDRIN_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_alphaq", + address: crate::AMM_ALPHAQ_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_believe", + address: crate::AMM_BELIEVE_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_bonk_swap", + address: crate::AMM_BONK_SWAP_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_fluxbeam", + address: crate::AMM_FLUXBEAM_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_goon_fi", + address: crate::AMM_GOON_FI_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_goosefx_gamma", + address: crate::AMM_GOOSEFX_GAMMA_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_goosefx_v2", + address: crate::AMM_GOOSEFX_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_guac_swap", + address: crate::AMM_GUAC_SWAP_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_lifinity_swap_v2", + address: crate::AMM_LIFINITY_SWAP_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_metadao_futarchy_amm", + address: crate::AMM_METADAO_FUTARCHY_AMM_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_metadao_v0_5", + address: crate::AMM_METADAO_V0_5_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_meteora_damm_v1", + address: crate::AMM_METEORA_DAMM_V1_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_meteora_damm_v2", + address: crate::AMM_METEORA_DAMM_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_obric_v2", + address: crate::AMM_OBRIC_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_one_dex", + address: crate::AMM_ONE_DEX_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_pump_swap", + address: crate::AMM_PUMP_SWAP_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_raydium_lp_v4", + address: crate::AMM_RAYDIUM_LP_V4_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_solfi", + address: crate::AMM_SOLFI_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_solfi_v2", + address: crate::AMM_SOLFI_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_vertigo", + address: crate::AMM_VERTIGO_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_virtuals", + address: crate::AMM_VIRTUALS_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_woofi", + address: crate::AMM_WOOFI_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_zero_fi", + address: crate::AMM_ZERO_FI_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "amm_zora", + address: crate::AMM_ZORA_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "associated_token_account", + address: crate::ASSOCIATED_TOKEN_PROGRAM_ID, }, crate::ProgramIdEntry { name: "bpf_loader", address: crate::BPF_LOADER_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "bpf_loader_deprecated", + address: crate::BPF_LOADER_DEPRECATED_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "bpf_loader_upgradeable", address: crate::BPF_LOADER_UPGRADEABLE_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "bridge_circle_cctp_token_messenger_minter", + address: crate::BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "bridge_circle_cctp_token_messenger_minter_v2", + address: crate::BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "bridge_layer_zero_endpoint", + address: crate::BRIDGE_LAYER_ZERO_ENDPOINT_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "bridge_layer_zero_executor", + address: crate::BRIDGE_LAYER_ZERO_EXECUTOR_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "clmm_byreal", + address: crate::CLMM_BYREAL_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "clmm_fusion", + address: crate::CLMM_FUSION_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "clmm_orca_whirlpool", + address: crate::CLMM_ORCA_WHIRLPOOL_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "clmm_pancake_swap", + address: crate::CLMM_PANCAKE_SWAP_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "clmm_raydium", + address: crate::CLMM_RAYDIUM_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "clmm_stabble", + address: crate::CLMM_STABBLE_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "compute_budget", address: crate::COMPUTE_BUDGET_PROGRAM_ID, @@ -189,6 +562,14 @@ pub(crate) const PROGRAM_ID_ENTRIES: &[crate::ProgramIdEntry] = &[ name: "config", address: crate::CONFIG_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "cpmm_raydium", + address: crate::CPMM_RAYDIUM_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "dlmm_meteora", + address: crate::DLMM_METEORA_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "ed25519", address: crate::ED25519_PROGRAM_ID, @@ -197,22 +578,162 @@ pub(crate) const PROGRAM_ID_ENTRIES: &[crate::ProgramIdEntry] = &[ name: "feature", address: crate::FEATURE_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "fees_bags_fee_share_v1", + address: crate::FEES_BAGS_FEE_SHARE_V1_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "fees_bags_fee_share_v2", + address: crate::FEES_BAGS_FEE_SHARE_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "governance_metadao_bid_wall", + address: crate::GOVERNANCE_METADAO_BID_WALL_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "incinerator", address: crate::INCINERATOR_PROGRAM_ID, }, crate::ProgramIdEntry { - name: "metadata_metaplex_token_metadata", - address: crate::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, + name: "launchpad_boop_fun", + address: crate::LAUNCHPAD_BOOP_FUN_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "launchpad_metadao_ico", + address: crate::LAUNCHPAD_METADAO_ICO_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "launchpad_meteora_dbc", + address: crate::LAUNCHPAD_METEORA_DBC_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "launchpad_moonit", + address: crate::LAUNCHPAD_MOONIT_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "launchpad_orca_wavebreak", + address: crate::LAUNCHPAD_ORCA_WAVEBREAK_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "launchpad_printr", + address: crate::LAUNCHPAD_PRINTR_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "launchpad_pump_fun", + address: crate::LAUNCHPAD_PUMP_FUN_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "launchpad_pump_pumpup_ai", + address: crate::LAUNCHPAD_PUMP_PUMPUP_AI_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "launchpad_raydium_launchlab", + address: crate::LAUNCHPAD_RAYDIUM_LAUNCHLAB_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "lending_clone", + address: crate::LENDING_CLONE_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "lending_jupiter_lend_borrow", + address: crate::LENDING_JUPITER_LEND_BORROW_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "lending_jupiter_lend_earn", + address: crate::LENDING_JUPITER_LEND_EARN_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "lending_jupiter_lend_flash_loan", + address: crate::LENDING_JUPITER_LEND_FLASH_LOAN_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "lending_jupiter_lend_liquidity", + address: crate::LENDING_JUPITER_LEND_LIQUIDITY_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "lending_kamino", + address: crate::LENDING_KAMINO_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "lending_marginfi_v2", + address: crate::LENDING_MARGINFI_V2_PROGRAM_ID, }, crate::ProgramIdEntry { name: "loader_v4", address: crate::LOADER_V4_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "lock_raydium_lp", + address: crate::LOCK_RAYDIUM_LP_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "metadata_metaplex_token_metadata", + address: crate::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "metadata_spl_name_service", + address: crate::METADATA_SPL_NAME_SERVICE_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "native_loader", address: crate::NATIVE_LOADER_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "nft_metaplex_bubblegum", + address: crate::NFT_METAPLEX_BUBBLEGUM_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "orderbook_jupiter_limit_order", + address: crate::ORDERBOOK_JUPITER_LIMIT_ORDER_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "orderbook_jupiter_limit_order_v2", + address: crate::ORDERBOOK_JUPITER_LIMIT_ORDER_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "orderbook_openbook_v2", + address: crate::ORDERBOOK_OPENBOOK_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "perpetuals_drift_v2", + address: crate::PERPETUALS_DRIFT_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "perpetuals_jupiter", + address: crate::PERPETUALS_JUPITER_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "perpetuals_zeta", + address: crate::PERPETUALS_ZETA_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "router_dflow_aggregator_v4", + address: crate::ROUTER_DFLOW_AGGREGATOR_V4_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "router_jupiter_aggregator_v4", + address: crate::ROUTER_JUPITER_AGGREGATOR_V4_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "router_jupiter_aggregator_v6", + address: crate::ROUTER_JUPITER_AGGREGATOR_V6_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "router_jupiter_dca", + address: crate::ROUTER_JUPITER_DCA_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "router_okx_labs_v1", + address: crate::ROUTER_OKX_LABS_V1_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "router_okx_labs_v2", + address: crate::ROUTER_OKX_LABS_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "rwa_ondo_global_markets", + address: crate::RWA_ONDO_GLOBAL_MARKETS_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "secp256k1", address: crate::SECP256K1_PROGRAM_ID, @@ -225,6 +746,10 @@ pub(crate) const PROGRAM_ID_ENTRIES: &[crate::ProgramIdEntry] = &[ name: "slashing", address: crate::SLASHING_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "spl_account_compression", + address: crate::SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "spl_memo_v1", address: crate::SPL_MEMO_V1_PROGRAM_ID, @@ -237,6 +762,18 @@ pub(crate) const PROGRAM_ID_ENTRIES: &[crate::ProgramIdEntry] = &[ name: "spl_memo_v4", address: crate::SPL_MEMO_V4_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "spl_noop", + address: crate::SPL_NOOP_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "spl_single_pool", + address: crate::SPL_SINGLE_POOL_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "spl_stake_pool", + address: crate::SPL_STAKE_POOL_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "spl_token", address: crate::SPL_TOKEN_PROGRAM_ID, @@ -250,13 +787,41 @@ pub(crate) const PROGRAM_ID_ENTRIES: &[crate::ProgramIdEntry] = &[ address: crate::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID, }, crate::ProgramIdEntry { - name: "stake_config", - address: crate::STAKE_CONFIG_ACCOUNT_ID, + name: "stable_swap_hylo_exchange", + address: crate::STABLE_SWAP_HYLO_EXCHANGE_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "stable_swap_jupiter_stable", + address: crate::STABLE_SWAP_JUPITER_STABLE_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "stable_swap_numeraire", + address: crate::STABLE_SWAP_NUMERAIRE_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "stable_swap_stabble", + address: crate::STABLE_SWAP_STABBLE_PROGRAM_ID, }, crate::ProgramIdEntry { name: "stake", address: crate::STAKE_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "stake_config", + address: crate::STAKE_CONFIG_ACCOUNT_ID, + }, + crate::ProgramIdEntry { + name: "staking_kamino_farm", + address: crate::STAKING_KAMINO_FARM_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "staking_marinade_finance", + address: crate::STAKING_MARINADE_FINANCE_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "staking_solayer", + address: crate::STAKING_SOLAYER_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "system", address: crate::SYSTEM_PROGRAM_ID, @@ -281,10 +846,50 @@ pub(crate) const PROGRAM_ID_ENTRIES: &[crate::ProgramIdEntry] = &[ name: "sysvar_stake_history", address: crate::SYSVAR_STAKE_HISTORY_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "treasury_helium_treasury_management", + address: crate::TREASURY_HELIUM_TREASURY_MANAGEMENT_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "vault_carrot_defi", + address: crate::VAULT_CARROT_DEFI_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "vault_hylo_stability_pool", + address: crate::VAULT_HYLO_STABILITY_POOL_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "vault_kamino", + address: crate::VAULT_KAMINO_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "vault_kamino_v2", + address: crate::VAULT_KAMINO_V2_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "vault_kamino_yvaults", + address: crate::VAULT_KAMINO_YVAULTS_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "vault_meteora", + address: crate::VAULT_METEORA_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "vesting_streamflow", + address: crate::VESTING_STREAMFLOW_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "vote", address: crate::VOTE_PROGRAM_ID, }, + crate::ProgramIdEntry { + name: "wallet_jupiter_apepro_smart_wallet", + address: crate::WALLET_JUPITER_APEPRO_SMART_WALLET_PROGRAM_ID, + }, + crate::ProgramIdEntry { + name: "weighted_swap_stabble", + address: crate::WEIGHTED_SWAP_STABBLE_PROGRAM_ID, + }, crate::ProgramIdEntry { name: "zk_elgamal_proof", address: crate::ZK_ELGAMAL_PROOF_PROGRAM_ID, diff --git a/kb-program-ids/src/lib.rs b/kb-program-ids/src/lib.rs index 19bd731..b463bfa 100644 --- a/kb-program-ids/src/lib.rs +++ b/kb-program-ids/src/lib.rs @@ -1,5 +1,5 @@ // file: kb-program-ids/src/lib.rs -// version: 9 +// version: 10 #![forbid(unsafe_code)] #![deny(unreachable_pub)] @@ -10,15 +10,66 @@ mod constants; mod programs; -/// Internal list of executable native programs. -pub(crate) use self::constants::NATIVE_PROGRAM_ID_ENTRIES; -/// Internal list of native well-known accounts. -pub(crate) use self::constants::NATIVE_WELL_KNOWN_ACCOUNT_ID_ENTRIES; -/// Internal list of currently registered identifiers. -pub(crate) use self::constants::PROGRAM_ID_ENTRIES; - +/// Reserved `adapter_saber_decimal_wrapper` program identifier. +pub use self::constants::ADAPTER_SABER_DECIMAL_WRAPPER_PROGRAM_ID; /// Address Lookup Table program identifier. pub use self::constants::ADDRESS_LOOKUP_TABLE_PROGRAM_ID; +/// Reserved `admin_jupiter_lock` program identifier. +pub use self::constants::ADMIN_JUPITER_LOCK_PROGRAM_ID; +/// Reserved `admin_pump_fees` program identifier. +pub use self::constants::ADMIN_PUMP_FEES_PROGRAM_ID; +/// Reserved `amm_aldrin_v1` program identifier. +pub use self::constants::AMM_ALDRIN_V1_PROGRAM_ID; +/// Reserved `amm_aldrin_v2` program identifier. +pub use self::constants::AMM_ALDRIN_V2_PROGRAM_ID; +/// Reserved `amm_alphaq` program identifier. +pub use self::constants::AMM_ALPHAQ_PROGRAM_ID; +/// Reserved `amm_believe` program identifier. +pub use self::constants::AMM_BELIEVE_PROGRAM_ID; +/// Reserved `amm_bonk_swap` program identifier. +pub use self::constants::AMM_BONK_SWAP_PROGRAM_ID; +/// Reserved `amm_fluxbeam` program identifier. +pub use self::constants::AMM_FLUXBEAM_PROGRAM_ID; +/// Reserved `amm_goon_fi` program identifier. +pub use self::constants::AMM_GOON_FI_PROGRAM_ID; +/// Reserved `amm_goosefx_gamma` program identifier. +pub use self::constants::AMM_GOOSEFX_GAMMA_PROGRAM_ID; +/// Reserved `amm_goosefx_v2` program identifier. +pub use self::constants::AMM_GOOSEFX_V2_PROGRAM_ID; +/// Reserved `amm_guac_swap` program identifier. +pub use self::constants::AMM_GUAC_SWAP_PROGRAM_ID; +/// Reserved `amm_lifinity_swap_v2` program identifier. +pub use self::constants::AMM_LIFINITY_SWAP_V2_PROGRAM_ID; +/// Reserved `amm_metadao_futarchy_amm` program identifier. +pub use self::constants::AMM_METADAO_FUTARCHY_AMM_PROGRAM_ID; +/// Reserved `amm_metadao_v0_5` program identifier. +pub use self::constants::AMM_METADAO_V0_5_PROGRAM_ID; +/// Reserved `amm_meteora_damm_v1` program identifier. +pub use self::constants::AMM_METEORA_DAMM_V1_PROGRAM_ID; +/// Reserved `amm_meteora_damm_v2` program identifier. +pub use self::constants::AMM_METEORA_DAMM_V2_PROGRAM_ID; +/// Reserved `amm_obric_v2` program identifier. +pub use self::constants::AMM_OBRIC_V2_PROGRAM_ID; +/// Reserved `amm_one_dex` program identifier. +pub use self::constants::AMM_ONE_DEX_PROGRAM_ID; +/// Reserved `amm_pump_swap` program identifier. +pub use self::constants::AMM_PUMP_SWAP_PROGRAM_ID; +/// Reserved `amm_raydium_lp_v4` program identifier. +pub use self::constants::AMM_RAYDIUM_LP_V4_PROGRAM_ID; +/// Reserved `amm_solfi` program identifier. +pub use self::constants::AMM_SOLFI_PROGRAM_ID; +/// Reserved `amm_solfi_v2` program identifier. +pub use self::constants::AMM_SOLFI_V2_PROGRAM_ID; +/// Reserved `amm_vertigo` program identifier. +pub use self::constants::AMM_VERTIGO_PROGRAM_ID; +/// Reserved `amm_virtuals` program identifier. +pub use self::constants::AMM_VIRTUALS_PROGRAM_ID; +/// Reserved `amm_woofi` program identifier. +pub use self::constants::AMM_WOOFI_PROGRAM_ID; +/// Reserved `amm_zero_fi` program identifier. +pub use self::constants::AMM_ZERO_FI_PROGRAM_ID; +/// Reserved `amm_zora` program identifier. +pub use self::constants::AMM_ZORA_PROGRAM_ID; /// SPL Associated Token Account program identifier. pub use self::constants::ASSOCIATED_TOKEN_PROGRAM_ID; /// Deprecated BPF Loader program identifier. @@ -27,46 +78,162 @@ pub use self::constants::BPF_LOADER_DEPRECATED_PROGRAM_ID; pub use self::constants::BPF_LOADER_PROGRAM_ID; /// Upgradeable BPF Loader program identifier. pub use self::constants::BPF_LOADER_UPGRADEABLE_PROGRAM_ID; +/// Reserved `bridge_circle_cctp_token_messenger_minter` program identifier. +pub use self::constants::BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_PROGRAM_ID; +/// Reserved `bridge_circle_cctp_token_messenger_minter_v2` program identifier. +pub use self::constants::BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_PROGRAM_ID; +/// Reserved `bridge_layer_zero_endpoint` program identifier. +pub use self::constants::BRIDGE_LAYER_ZERO_ENDPOINT_PROGRAM_ID; +/// Reserved `bridge_layer_zero_executor` program identifier. +pub use self::constants::BRIDGE_LAYER_ZERO_EXECUTOR_PROGRAM_ID; +/// Reserved `clmm_byreal` program identifier. +pub use self::constants::CLMM_BYREAL_PROGRAM_ID; +/// Reserved `clmm_fusion` program identifier. +pub use self::constants::CLMM_FUSION_PROGRAM_ID; +/// Reserved `clmm_orca_whirlpool` program identifier. +pub use self::constants::CLMM_ORCA_WHIRLPOOL_PROGRAM_ID; +/// Reserved `clmm_pancake_swap` program identifier. +pub use self::constants::CLMM_PANCAKE_SWAP_PROGRAM_ID; +/// Reserved `clmm_raydium` program identifier. +pub use self::constants::CLMM_RAYDIUM_PROGRAM_ID; +/// Reserved `clmm_stabble` program identifier. +pub use self::constants::CLMM_STABBLE_PROGRAM_ID; /// Compute Budget program identifier. pub use self::constants::COMPUTE_BUDGET_PROGRAM_ID; /// Config program identifier. pub use self::constants::CONFIG_PROGRAM_ID; +/// Reserved `cpmm_raydium` program identifier. +pub use self::constants::CPMM_RAYDIUM_PROGRAM_ID; +/// Reserved `dlmm_meteora` program identifier. +pub use self::constants::DLMM_METEORA_PROGRAM_ID; /// Ed25519 precompile program identifier. pub use self::constants::ED25519_PROGRAM_ID; /// Feature program identifier. pub use self::constants::FEATURE_PROGRAM_ID; +/// Reserved `fees_bags_fee_share_v1` program identifier. +pub use self::constants::FEES_BAGS_FEE_SHARE_V1_PROGRAM_ID; +/// Reserved `fees_bags_fee_share_v2` program identifier. +pub use self::constants::FEES_BAGS_FEE_SHARE_V2_PROGRAM_ID; +/// Reserved `governance_metadao_bid_wall` program identifier. +pub use self::constants::GOVERNANCE_METADAO_BID_WALL_PROGRAM_ID; /// Incinerator well-known account identifier. pub use self::constants::INCINERATOR_PROGRAM_ID; +/// Reserved `launchpad_boop_fun` program identifier. +pub use self::constants::LAUNCHPAD_BOOP_FUN_PROGRAM_ID; +/// Reserved `launchpad_metadao_ico` program identifier. +pub use self::constants::LAUNCHPAD_METADAO_ICO_PROGRAM_ID; +/// Reserved `launchpad_meteora_dbc` program identifier. +pub use self::constants::LAUNCHPAD_METEORA_DBC_PROGRAM_ID; +/// Reserved `launchpad_moonit` program identifier. +pub use self::constants::LAUNCHPAD_MOONIT_PROGRAM_ID; +/// Reserved `launchpad_orca_wavebreak` program identifier. +pub use self::constants::LAUNCHPAD_ORCA_WAVEBREAK_PROGRAM_ID; +/// Reserved `launchpad_printr` program identifier. +pub use self::constants::LAUNCHPAD_PRINTR_PROGRAM_ID; +/// Reserved `launchpad_pump_fun` program identifier. +pub use self::constants::LAUNCHPAD_PUMP_FUN_PROGRAM_ID; +/// Reserved `launchpad_pump_pumpup_ai` program identifier. +pub use self::constants::LAUNCHPAD_PUMP_PUMPUP_AI_PROGRAM_ID; +/// Reserved `launchpad_raydium_launchlab` program identifier. +pub use self::constants::LAUNCHPAD_RAYDIUM_LAUNCHLAB_PROGRAM_ID; +/// Reserved `lending_clone` program identifier. +pub use self::constants::LENDING_CLONE_PROGRAM_ID; +/// Reserved `lending_jupiter_lend_borrow` program identifier. +pub use self::constants::LENDING_JUPITER_LEND_BORROW_PROGRAM_ID; +/// Reserved `lending_jupiter_lend_earn` program identifier. +pub use self::constants::LENDING_JUPITER_LEND_EARN_PROGRAM_ID; +/// Reserved `lending_jupiter_lend_flash_loan` program identifier. +pub use self::constants::LENDING_JUPITER_LEND_FLASH_LOAN_PROGRAM_ID; +/// Reserved `lending_jupiter_lend_liquidity` program identifier. +pub use self::constants::LENDING_JUPITER_LEND_LIQUIDITY_PROGRAM_ID; +/// Reserved `lending_kamino` program identifier. +pub use self::constants::LENDING_KAMINO_PROGRAM_ID; +/// Reserved `lending_marginfi_v2` program identifier. +pub use self::constants::LENDING_MARGINFI_V2_PROGRAM_ID; /// Loader version 4 program identifier. pub use self::constants::LOADER_V4_PROGRAM_ID; +/// Reserved `lock_raydium_lp` program identifier. +pub use self::constants::LOCK_RAYDIUM_LP_PROGRAM_ID; /// Metaplex Token Metadata program identifier. pub use self::constants::METADATA_METAPLEX_TOKEN_METADATA_PROGRAM_ID; +/// Reserved `metadata_spl_name_service` program identifier. +pub use self::constants::METADATA_SPL_NAME_SERVICE_PROGRAM_ID; /// Native Loader program identifier. pub use self::constants::NATIVE_LOADER_PROGRAM_ID; +/// Reserved `nft_metaplex_bubblegum` program identifier. +pub use self::constants::NFT_METAPLEX_BUBBLEGUM_PROGRAM_ID; +/// Reserved `orderbook_jupiter_limit_order` program identifier. +pub use self::constants::ORDERBOOK_JUPITER_LIMIT_ORDER_PROGRAM_ID; +/// Reserved `orderbook_jupiter_limit_order_v2` program identifier. +pub use self::constants::ORDERBOOK_JUPITER_LIMIT_ORDER_V2_PROGRAM_ID; +/// Reserved `orderbook_openbook_v2` program identifier. +pub use self::constants::ORDERBOOK_OPENBOOK_V2_PROGRAM_ID; +/// Reserved `perpetuals_drift_v2` program identifier. +pub use self::constants::PERPETUALS_DRIFT_V2_PROGRAM_ID; +/// Reserved `perpetuals_jupiter` program identifier. +pub use self::constants::PERPETUALS_JUPITER_PROGRAM_ID; +/// Reserved `perpetuals_zeta` program identifier. +pub use self::constants::PERPETUALS_ZETA_PROGRAM_ID; +/// Reserved `router_dflow_aggregator_v4` program identifier. +pub use self::constants::ROUTER_DFLOW_AGGREGATOR_V4_PROGRAM_ID; +/// Reserved `router_jupiter_aggregator_v4` program identifier. +pub use self::constants::ROUTER_JUPITER_AGGREGATOR_V4_PROGRAM_ID; +/// Reserved `router_jupiter_aggregator_v6` program identifier. +pub use self::constants::ROUTER_JUPITER_AGGREGATOR_V6_PROGRAM_ID; +/// Reserved `router_jupiter_dca` program identifier. +pub use self::constants::ROUTER_JUPITER_DCA_PROGRAM_ID; +/// Reserved `router_okx_labs_v1` program identifier. +pub use self::constants::ROUTER_OKX_LABS_V1_PROGRAM_ID; +/// Reserved `router_okx_labs_v2` program identifier. +pub use self::constants::ROUTER_OKX_LABS_V2_PROGRAM_ID; +/// Reserved `rwa_ondo_global_markets` program identifier. +pub use self::constants::RWA_ONDO_GLOBAL_MARKETS_PROGRAM_ID; /// Secp256k1 precompile program identifier. pub use self::constants::SECP256K1_PROGRAM_ID; /// Secp256r1 precompile program identifier. pub use self::constants::SECP256R1_PROGRAM_ID; /// Enshrined stateless Slashing program identifier. pub use self::constants::SLASHING_PROGRAM_ID; +/// Reserved `spl_account_compression` program identifier. +pub use self::constants::SPL_ACCOUNT_COMPRESSION_PROGRAM_ID; /// Historical SPL Memo v1 program identifier. pub use self::constants::SPL_MEMO_V1_PROGRAM_ID; /// Historical SPL Memo v3 program identifier. pub use self::constants::SPL_MEMO_V3_PROGRAM_ID; /// Current SPL Memo v4 program identifier. pub use self::constants::SPL_MEMO_V4_PROGRAM_ID; +/// Reserved `spl_noop` program identifier. +pub use self::constants::SPL_NOOP_PROGRAM_ID; +/// Reserved `spl_single_pool` program identifier. +pub use self::constants::SPL_SINGLE_POOL_PROGRAM_ID; +/// Reserved `spl_stake_pool` program identifier. +pub use self::constants::SPL_STAKE_POOL_PROGRAM_ID; /// Classic SPL Token program identifier. pub use self::constants::SPL_TOKEN_PROGRAM_ID; /// SPL Token-2022 ElGamal public-key registry program identifier. pub use self::constants::SPL_TOKEN2022_ELGAMAL_REGISTRY_PROGRAM_ID; /// SPL Token-2022 program identifier. pub use self::constants::SPL_TOKEN2022_PROGRAM_ID; +/// Reserved `stable_swap_hylo_exchange` program identifier. +pub use self::constants::STABLE_SWAP_HYLO_EXCHANGE_PROGRAM_ID; +/// Reserved `stable_swap_jupiter_stable` program identifier. +pub use self::constants::STABLE_SWAP_JUPITER_STABLE_PROGRAM_ID; +/// Reserved `stable_swap_numeraire` program identifier. +pub use self::constants::STABLE_SWAP_NUMERAIRE_PROGRAM_ID; +/// Reserved `stable_swap_stabble` program identifier. +pub use self::constants::STABLE_SWAP_STABBLE_PROGRAM_ID; /// Historical Stake configuration account identifier. pub use self::constants::STAKE_CONFIG_ACCOUNT_ID; /// Compatibility alias for the historical Stake configuration account identifier. pub use self::constants::STAKE_CONFIG_PROGRAM_ID; /// Stake program identifier. pub use self::constants::STAKE_PROGRAM_ID; +/// Reserved `staking_kamino_farm` program identifier. +pub use self::constants::STAKING_KAMINO_FARM_PROGRAM_ID; +/// Reserved `staking_marinade_finance` program identifier. +pub use self::constants::STAKING_MARINADE_FINANCE_PROGRAM_ID; +/// Reserved `staking_solayer` program identifier. +pub use self::constants::STAKING_SOLAYER_PROGRAM_ID; /// System program identifier. pub use self::constants::SYSTEM_PROGRAM_ID; /// Clock sysvar account identifier. @@ -79,8 +246,28 @@ pub use self::constants::SYSVAR_RENT_PROGRAM_ID; pub use self::constants::SYSVAR_SLOT_HASHES_PROGRAM_ID; /// Stake History sysvar account identifier. pub use self::constants::SYSVAR_STAKE_HISTORY_PROGRAM_ID; +/// Reserved `treasury_helium_treasury_management` program identifier. +pub use self::constants::TREASURY_HELIUM_TREASURY_MANAGEMENT_PROGRAM_ID; +/// Reserved `vault_carrot_defi` program identifier. +pub use self::constants::VAULT_CARROT_DEFI_PROGRAM_ID; +/// Reserved `vault_hylo_stability_pool` program identifier. +pub use self::constants::VAULT_HYLO_STABILITY_POOL_PROGRAM_ID; +/// Reserved `vault_kamino` program identifier. +pub use self::constants::VAULT_KAMINO_PROGRAM_ID; +/// Reserved `vault_kamino_v2` program identifier. +pub use self::constants::VAULT_KAMINO_V2_PROGRAM_ID; +/// Reserved `vault_kamino_yvaults` program identifier. +pub use self::constants::VAULT_KAMINO_YVAULTS_PROGRAM_ID; +/// Reserved `vault_meteora` program identifier. +pub use self::constants::VAULT_METEORA_PROGRAM_ID; +/// Reserved `vesting_streamflow` program identifier. +pub use self::constants::VESTING_STREAMFLOW_PROGRAM_ID; /// Vote program identifier. pub use self::constants::VOTE_PROGRAM_ID; +/// Reserved `wallet_jupiter_apepro_smart_wallet` program identifier. +pub use self::constants::WALLET_JUPITER_APEPRO_SMART_WALLET_PROGRAM_ID; +/// Reserved `weighted_swap_stabble` program identifier. +pub use self::constants::WEIGHTED_SWAP_STABBLE_PROGRAM_ID; /// ZK ElGamal Proof program identifier. pub use self::constants::ZK_ELGAMAL_PROOF_PROGRAM_ID; /// ZK Token Proof program identifier. @@ -97,3 +284,10 @@ pub use self::programs::native_program_ids; pub use self::programs::native_well_known_account_ids; /// Returns every program identifier currently registered by this crate. pub use self::programs::registered_program_ids; + +/// Internal list of executable native programs. +pub(crate) use self::constants::NATIVE_PROGRAM_ID_ENTRIES; +/// Internal list of native well-known accounts. +pub(crate) use self::constants::NATIVE_WELL_KNOWN_ACCOUNT_ID_ENTRIES; +/// Internal list of currently registered identifiers. +pub(crate) use self::constants::PROGRAM_ID_ENTRIES; diff --git a/kb-program-ids/src/programs.rs b/kb-program-ids/src/programs.rs index 5baa606..365a3b7 100644 --- a/kb-program-ids/src/programs.rs +++ b/kb-program-ids/src/programs.rs @@ -1,5 +1,5 @@ // file: kb-program-ids/src/programs.rs -// version: 2 +// version: 3 //! Enumerable canonical program registry. @@ -65,7 +65,10 @@ mod tests { assert!(codes.insert(entry.code())); assert!(program_ids.insert(entry.program_id())); } - assert_eq!(crate::registered_program_ids().len(), 33); + for window in crate::registered_program_ids().windows(2) { + assert!(window[0].code() < window[1].code()); + } + assert_eq!(crate::registered_program_ids().len(), 130); } #[test] diff --git a/kb-store/src/contracts/pagination.rs b/kb-store/src/contracts/pagination.rs index 407d7a7..f27acd3 100644 --- a/kb-store/src/contracts/pagination.rs +++ b/kb-store/src/contracts/pagination.rs @@ -5,7 +5,6 @@ /// Default page size for repository list operations. pub const DEFAULT_PAGE_SIZE: u16 = 100; - /// Maximum page size for repository list operations. pub const MAX_PAGE_SIZE: u16 = 1000; diff --git a/kb-store/src/lib.rs b/kb-store/src/lib.rs index 247c3a6..4ddb3f5 100644 --- a/kb-store/src/lib.rs +++ b/kb-store/src/lib.rs @@ -1,5 +1,5 @@ // file: kb-store/src/lib.rs -// version: 3 +// version: 4 //! Backend-neutral storage contracts and PostgreSQL implementation. #![warn(missing_docs)] diff --git a/kb-store/src/postgres/migrations.rs b/kb-store/src/postgres/migrations.rs index c718b81..d7b138d 100644 --- a/kb-store/src/postgres/migrations.rs +++ b/kb-store/src/postgres/migrations.rs @@ -5,63 +5,44 @@ /// PostgreSQL schema policy used by application migrations. pub const DEFAULT_SCHEMA_POLICY: &str = "current_profile_schema"; - /// Canonical Solana table prefix. pub const SOLANA_TABLE_PREFIX: &str = "kb_sol_"; - /// Migration table name used by sqlx when migrations are enabled later. pub const MIGRATION_TABLE_NAME: &str = "_sqlx_migrations"; - /// Migration strategy used by the canonical transaction and core stores. pub const MIGRATION_STRATEGY: &str = "idempotent_canonical_transaction_observation_and_core_tables_without_application_schemas"; - /// Advisory lock id used while applying idempotent store schema statements. pub const STORE_SCHEMA_ADVISORY_LOCK_ID: i64 = 2_024_000_204; - /// Canonical raw transaction table name. pub const RAW_TRANSACTIONS_TABLE_NAME: &str = "kb_sol_raw_transactions"; - /// Lightweight transaction acquisition observation table name. pub const TRANSACTION_OBSERVATIONS_TABLE_NAME: &str = "kb_sol_obs_transaction_observations"; - /// Core transaction table name. pub const CORE_TRANSACTIONS_TABLE_NAME: &str = "kb_sol_core_transactions"; - /// Core account key table name. pub const CORE_ACCOUNT_KEYS_TABLE_NAME: &str = "kb_sol_core_account_keys"; - /// Core instruction table name. pub const CORE_INSTRUCTIONS_TABLE_NAME: &str = "kb_sol_core_instructions"; - /// Core inner instruction table name. pub const CORE_INNER_INSTRUCTIONS_TABLE_NAME: &str = "kb_sol_core_inner_instructions"; - /// Core log table name. pub const CORE_LOGS_TABLE_NAME: &str = "kb_sol_core_logs"; - /// Core balance change table name. pub const CORE_BALANCE_CHANGES_TABLE_NAME: &str = "kb_sol_core_balance_changes"; - /// Processing ledger table name. pub const PROCESSING_LEDGER_TABLE_NAME: &str = "kb_sol_ops_processing_ledger"; - /// Versioned decoded event table name. pub const DECODE_EVENTS_TABLE_NAME: &str = "kb_sol_decode_events"; - /// Machine-readable decoder coverage declaration table name. pub const DECODE_COVERAGE_DECLARATIONS_TABLE_NAME: &str = "kb_sol_decode_coverage_declarations"; - /// Observed decoder coverage classification table name. pub const DECODE_COVERAGE_OBSERVATIONS_TABLE_NAME: &str = "kb_sol_decode_coverage_observations"; - /// Versioned materialized output table name. pub const MATERIALIZED_EVENTS_TABLE_NAME: &str = "kb_sol_mat_events"; - /// Canonical transaction acquisition table names active since `0.3.1`. pub const RAW_STORE_TABLE_NAMES: &[&str] = &[crate::RAW_TRANSACTIONS_TABLE_NAME, crate::TRANSACTION_OBSERVATIONS_TABLE_NAME]; - /// Core Solana table names introduced by `0.2.4`. pub const CORE_STORE_TABLE_NAMES: &[&str] = &[ crate::CORE_TRANSACTIONS_TABLE_NAME, @@ -72,7 +53,6 @@ pub const CORE_STORE_TABLE_NAMES: &[&str] = &[ crate::CORE_BALANCE_CHANGES_TABLE_NAME, crate::PROCESSING_LEDGER_TABLE_NAME, ]; - /// Decode and materialization table names introduced by `0.4.0`. pub const DECODE_STORE_TABLE_NAMES: &[&str] = &[ crate::DECODE_EVENTS_TABLE_NAME, @@ -80,7 +60,6 @@ pub const DECODE_STORE_TABLE_NAMES: &[&str] = &[ crate::DECODE_COVERAGE_OBSERVATIONS_TABLE_NAME, crate::MATERIALIZED_EVENTS_TABLE_NAME, ]; - /// Allowed Solana table domains encoded after the `kb_sol_` prefix. pub const ALLOWED_SOLANA_TABLE_DOMAINS: &[&str] = &["raw", "core", "obs", "decode", "mat", "catalog", "agg", "ops", "wallet"]; diff --git a/restults.txt b/restults.txt deleted file mode 100644 index a4715e3..0000000 --- a/restults.txt +++ /dev/null @@ -1,9103 +0,0 @@ -[2026-07-24T14:30:30] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> cargo fmt --all -[2026-07-24T14:30:36] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> python3 scripts/audit_rust_workspace_rules.py -General Rust rule audit: clean -Rust export completeness audit: 0 candidate(s) -Khadhroony workspace rule audit: clean -[2026-07-24T14:30:48] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> cargo check -p kb-program-ids - Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.05s -[2026-07-24T14:30:55] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> cargo test -p kb-program-ids - Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s - Running unittests src/lib.rs (../target/debug/deps/kb_program_ids-56f2c6c29c7c1a78) - -running 6 tests -test programs::tests::compatibility_api_and_core_constants_are_complete ... ok -test programs::tests::protocol_primitives_are_registered_without_joining_native_surfaces ... ok -test programs::tests::native_registry_contains_exactly_every_solana_core_surface ... ok -test programs::tests::registry_lookup_finds_system_program ... ok -test programs::tests::stake_config_is_a_well_known_account_not_an_executable_program ... ok -test programs::tests::registry_entries_are_unique_and_non_empty ... ok - -test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests kb_program_ids - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - -[2026-07-24T14:31:01] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> cargo check -p kb-store -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_adapter_saber_decimal_wrapper"; - | ^^^^^^^^^^^^ - | - = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_jupiter_lock"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_pump_fees"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/alphaq.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_alphaq"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/alphaq.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/believe.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_believe"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/believe.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_bonk_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_fluxbeam"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goon_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_gamma"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_guac_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_lifinity_swap_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_futarchy_amm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_v0_5"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_obric_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/one_dex.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_one_dex"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/one_dex.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_pump_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_raydium_lp_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/vertigo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_vertigo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/vertigo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/virtuals.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_virtuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/virtuals.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/woofi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_woofi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/woofi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zero_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_endpoint"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_executor"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/byreal.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_byreal"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/byreal.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/fusion.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_fusion"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/fusion.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_orca_whirlpool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_pancake_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_cpmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_dlmm_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_governance_metadao_bid_wall"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_boop_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_metadao_ico"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_meteora_dbc"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_moonit"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_orca_wavebreak"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/printr.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_printr"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/printr.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_pumpup_ai"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_raydium_launchlab"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/clone.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_clone"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/clone.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_borrow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_earn"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_flash_loan"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_marginfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lock_raydium_lp"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_metaplex_token_metadata"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_spl_name_service"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_nft_metaplex_bubblegum"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_openbook_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_drift_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_jupiter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_zeta"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_dflow_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v6"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_dca"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_rwa_ondo_global_markets"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/solana/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_solana_core"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/solana/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/account_compression.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_account_compression"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/account_compression.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_associated_token_account"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_elgamal_registry"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/memo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_memo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/memo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/noop.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_noop"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/noop.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/single_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_single_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/single_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_stake_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token2022.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token2022"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token2022.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_hylo_exchange"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_jupiter_stable"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_numeraire"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_kamino_farm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_marinade_finance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/solayer.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_solayer"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/solayer.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_treasury_helium_treasury_management"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_carrot_defi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_hylo_stability_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_yvaults"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vesting_streamflow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_wallet_jupiter_apepro_smart_wallet"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_weighted_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/bridge/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_bridge"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/bridge/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/governance/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_governance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/governance/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/lending/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_lending"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/lending/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/liquidity/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/liquidity/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/nft/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_nft"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/nft/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/oracle/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_oracle"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/oracle/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/orderbook/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_orderbook"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/orderbook/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_perpetuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/pool/state.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_pool_state"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/pool/state.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/rewards/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_rewards"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/rewards/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/routing/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_routing"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/routing/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_token_metadata_risk"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/trades/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_trades"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/trades/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/vault/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_vault"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/vault/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: `kb-lib` (lib) generated 236 warnings - Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.27s -[2026-07-24T14:31:07] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> KB_POSTGRES_TEST_URL='postgres://solana:solana@localhost:5432/solana_test' cargo test -p kb-store -- --nocapture -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_adapter_saber_decimal_wrapper"; - | ^^^^^^^^^^^^ - | - = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_jupiter_lock"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_pump_fees"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/alphaq.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_alphaq"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/alphaq.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/believe.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_believe"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/believe.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_bonk_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_fluxbeam"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goon_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_gamma"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_guac_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_lifinity_swap_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_futarchy_amm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_v0_5"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_obric_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/one_dex.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_one_dex"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/one_dex.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_pump_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_raydium_lp_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/vertigo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_vertigo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/vertigo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/virtuals.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_virtuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/virtuals.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/woofi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_woofi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/woofi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zero_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_endpoint"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_executor"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/byreal.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_byreal"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/byreal.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/fusion.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_fusion"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/fusion.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_orca_whirlpool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_pancake_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_cpmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_dlmm_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_governance_metadao_bid_wall"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_boop_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_metadao_ico"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_meteora_dbc"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_moonit"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_orca_wavebreak"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/printr.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_printr"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/printr.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_pumpup_ai"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_raydium_launchlab"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/clone.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_clone"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/clone.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_borrow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_earn"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_flash_loan"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_marginfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lock_raydium_lp"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_metaplex_token_metadata"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_spl_name_service"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_nft_metaplex_bubblegum"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_openbook_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_drift_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_jupiter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_zeta"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_dflow_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v6"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_dca"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_rwa_ondo_global_markets"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/solana/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_solana_core"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/solana/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/account_compression.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_account_compression"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/account_compression.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_associated_token_account"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_elgamal_registry"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/memo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_memo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/memo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/noop.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_noop"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/noop.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/single_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_single_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/single_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_stake_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token2022.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token2022"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token2022.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_hylo_exchange"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_jupiter_stable"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_numeraire"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_kamino_farm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_marinade_finance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/solayer.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_solayer"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/solayer.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_treasury_helium_treasury_management"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_carrot_defi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_hylo_stability_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_yvaults"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vesting_streamflow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_wallet_jupiter_apepro_smart_wallet"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_weighted_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/bridge/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_bridge"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/bridge/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/governance/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_governance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/governance/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/lending/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_lending"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/lending/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/liquidity/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/liquidity/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/nft/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_nft"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/nft/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/oracle/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_oracle"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/oracle/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/orderbook/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_orderbook"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/orderbook/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_perpetuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/pool/state.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_pool_state"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/pool/state.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/rewards/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_rewards"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/rewards/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/routing/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_routing"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/routing/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_token_metadata_risk"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/trades/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_trades"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/trades/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/vault/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_vault"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/vault/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: `kb-lib` (lib) generated 236 warnings - Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s - Running unittests src/lib.rs (../target/debug/deps/kb_store-2a2f618da6a2e8cb) - -running 84 tests -test contracts::dto::core::tests::core_balance_change_rejects_empty_optional_mint ... ok -test contracts::dto::core::tests::replay_filter_rejects_inverted_slots ... ok -test contracts::dto::core::tests::replay_input_rejects_empty_key ... ok -test contracts::dto::core::tests::core_log_rejects_empty_text ... ok -test contracts::dto::core::tests::core_transaction_accepts_optional_raw_lineage ... ok -test contracts::dto::core::tests::replay_input_accepts_ordered_outer_instruction_array ... ok -test contracts::dto::core::tests::core_transaction_rejects_empty_signature ... ok -test contracts::dto::core::tests::replay_filter_rejects_empty_program_id ... ok -test contracts::dto::core::tests::core_account_key_rejects_empty_key ... ok -test contracts::dto::core::tests::core_instruction_rejects_empty_program_id ... ok -test contracts::dto::core::tests::core_instruction_defaults_to_pending ... ok -test contracts::dto::core::tests::lifecycle_mark_rejects_empty_path ... ok -test contracts::dto::core::tests::core_inner_instruction_rejects_empty_parent_path ... ok -test contracts::dto::core::tests::replay_input_rejects_non_array_outer_instruction_context ... ok -test contracts::dto::core_extraction::tests::ledger_identity_requires_input_hash ... ok -test contracts::dto::core_extraction::tests::pending_filter_requires_positive_limit ... ok -test contracts::dto::core_extraction::tests::selection_filter_rejects_inverted_slots ... ok -test contracts::dto::decode::tests::actionable_filter_requires_positive_limit ... ok -test contracts::dto::decode::tests::failed_decoded_observation_cannot_be_committed ... ok -test contracts::dto::decode::tests::incomplete_signature_filter_preserves_signature_limit_semantics ... ok -test contracts::dto::decode::tests::materialized_event_filter_is_bounded_and_trims_optional_text ... ok -test contracts::dto::decode::tests::selection_filter_rejects_inverted_slots ... ok -test contracts::dto::event::tests::insert_outcome_total_counts_all_buckets ... ok -test contracts::dto::event::tests::materialized_event_rejects_empty_family ... ok -test contracts::dto::ledger::tests::ledger_mark_accepts_minimal_values ... ok -test contracts::dto::ledger::tests::ledger_mark_rejects_empty_input_key ... ok -test contracts::dto::raw::tests::raw_lifecycle_rejects_empty_reason_when_present ... ok -test contracts::dto::raw::tests::raw_transaction_accepts_canonical_payload ... ok -test contracts::dto::raw::tests::raw_transaction_rejects_empty_signature ... ok -test contracts::dto::raw::tests::raw_transaction_rejects_zero_format_version ... ok -test contracts::dto::raw::tests::transaction_observation_rejects_empty_provider ... ok -test contracts::dto::raw::tests::transaction_observation_accepts_signatureless_failure_candidate ... ok -test contracts::dto::store::tests::migration_snapshot_keeps_pending_versions ... ok -test contracts::dto::store::tests::store_descriptor_rejects_empty_label ... ok -test contracts::error::tests::storage_error_falls_back_to_db_for_empty_code ... ok -test contracts::error::tests::storage_error_preserves_non_empty_code ... ok -test contracts::health::tests::health_snapshot_rejects_empty_backend ... ok -test contracts::pagination::tests::first_page_uses_default_limit ... ok -test contracts::pagination::tests::page_request_rejects_limit_above_maximum ... ok -test contracts::pagination::tests::page_request_rejects_zero_limit ... ok -test postgres::migrations::tests::core_store_table_names_are_valid ... ok -test postgres::migrations::tests::core_store_schema_uses_prefixed_constraint_and_index_names ... ok -test postgres::migrations::tests::decode_store_table_names_are_valid ... ok -test postgres::migrations::tests::decode_store_schema_contains_no_create_schema_statement ... ok -test postgres::migrations::tests::raw_store_table_names_are_valid ... ok -test postgres::migrations::tests::raw_store_schema_uses_prefixed_index_names ... ok -test postgres::migrations::tests::table_name_rejects_explicit_schema ... ok -test postgres::migrations::tests::table_name_rejects_missing_table_suffix ... ok -test postgres::migrations::tests::table_name_rejects_unknown_domain ... ok -test contracts::dto::raw::tests::raw_transaction_builds_from_canonical_model ... ok -test postgres::migrations::tests::table_name_rejects_uppercase ... ok -test postgres::migrations::tests::raw_store_schema_contains_no_create_schema_statement ... ok -test postgres::migrations::tests::core_store_schema_contains_no_create_schema_statement ... ok -test postgres::migrations::tests::valid_table_name_accepts_domain_prefix ... ok -test postgres::query::core_extraction_queries::tests::processing_state_serializes_to_expected_sql ... ok -test postgres::query::core_extraction_queries::tests::slot_rejects_values_above_bigint ... ok -test postgres::query::core_queries::tests::account_key_source_serializes_to_lower_snake_case ... ok -test postgres::query::core_queries::tests::balance_change_kind_serializes_to_lower_snake_case ... ok -test postgres::query::core_queries::tests::instruction_processing_state_serializes_to_lower_snake_case ... ok -test postgres::query::core_queries::tests::outer_instruction_context_query_is_read_only_and_numeric ... ok -test postgres::query::core_queries::tests::sql_slot_rejects_values_above_bigint ... ok -test postgres::query::raw_queries::tests::observation_status_serializes_to_lower_snake_case ... ok -test postgres::query::raw_queries::tests::processing_state_serializes_to_lower_snake_case ... ok -test postgres::query::raw_queries::tests::retention_state_serializes_to_lower_snake_case ... ok -test postgres::query::raw_queries::tests::observation_origin_serializes_to_lower_snake_case ... ok -test postgres::query::raw_queries::tests::sql_slot_rejects_values_above_bigint ... ok -test postgres::replay_candidates::tests::program_filter_rejects_limit_above_maximum ... ok -test postgres::replay_candidates::tests::transaction_filter_rejects_inverted_slots ... ok -test postgres::store::tests::mask_postgres_dsn_masks_plain_password_dsn ... ok -test postgres::store::tests::mask_postgres_dsn_masks_query_string ... ok -test postgres::replay_candidates::tests::transaction_filter_requires_complete_entity_pair ... ok -test postgres::store::tests::mask_postgres_dsn_masks_userinfo ... ok -test postgres::store::tests::options_reject_empty_database_url ... ok -test postgres::store::tests::options_reject_zero_max_connections ... ok -test postgres::store::tests::options_reject_zero_connect_timeout ... ok -test postgres::query::core_extraction_queries::tests::optional_postgres_core_extraction_rolls_back_partial_graph_from_env ... ok -test postgres::query::core_queries::tests::optional_postgres_core_store_roundtrip_from_env ... ok -test postgres::query::decode_pipeline_queries::tests::decoded_events_and_ledger_roll_back_together ... ok -test postgres::query::decode_pipeline_queries::tests::optional_postgres_coverage_declarations_report_insert_skip_and_update_from_env ... ok -test postgres::query::decode_pipeline_queries::tests::optional_postgres_materialized_event_query_is_bounded_and_typed_from_env ... ok -test postgres::query::decode_pipeline_queries::tests::optional_postgres_same_version_and_hash_is_current_from_env ... ok -test postgres::query::raw_queries::tests::optional_postgres_canonical_store_roundtrip_from_env ... ok -test postgres::query::replay_candidate_queries::tests::optional_postgres_replay_candidate_queries_from_env ... ok -test postgres::store::tests::optional_postgres_healthcheck_from_env ... ok - -test result: ok. 84 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.83s - - Doc-tests kb_store - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - -[2026-07-24T14:31:13] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> cargo check -p kb-lib -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_adapter_saber_decimal_wrapper"; - | ^^^^^^^^^^^^ - | - = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_jupiter_lock"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_pump_fees"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/alphaq.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_alphaq"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/alphaq.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/believe.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_believe"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/believe.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_bonk_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_fluxbeam"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goon_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_gamma"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_guac_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_lifinity_swap_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_futarchy_amm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_v0_5"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_obric_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/one_dex.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_one_dex"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/one_dex.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_pump_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_raydium_lp_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/vertigo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_vertigo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/vertigo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/virtuals.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_virtuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/virtuals.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/woofi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_woofi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/woofi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zero_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_endpoint"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_executor"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/byreal.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_byreal"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/byreal.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/fusion.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_fusion"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/fusion.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_orca_whirlpool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_pancake_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_cpmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_dlmm_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_governance_metadao_bid_wall"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_boop_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_metadao_ico"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_meteora_dbc"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_moonit"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_orca_wavebreak"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/printr.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_printr"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/printr.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_pumpup_ai"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_raydium_launchlab"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/clone.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_clone"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/clone.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_borrow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_earn"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_flash_loan"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_marginfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lock_raydium_lp"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_metaplex_token_metadata"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_spl_name_service"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_nft_metaplex_bubblegum"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_openbook_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_drift_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_jupiter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_zeta"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_dflow_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v6"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_dca"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_rwa_ondo_global_markets"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/solana/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_solana_core"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/solana/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/account_compression.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_account_compression"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/account_compression.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_associated_token_account"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_elgamal_registry"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/memo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_memo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/memo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/noop.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_noop"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/noop.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/single_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_single_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/single_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_stake_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token2022.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token2022"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token2022.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_hylo_exchange"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_jupiter_stable"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_numeraire"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_kamino_farm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_marinade_finance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/solayer.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_solayer"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/solayer.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_treasury_helium_treasury_management"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_carrot_defi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_hylo_stability_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_yvaults"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vesting_streamflow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_wallet_jupiter_apepro_smart_wallet"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_weighted_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/bridge/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_bridge"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/bridge/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/governance/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_governance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/governance/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/lending/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_lending"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/lending/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/liquidity/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/liquidity/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/nft/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_nft"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/nft/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/oracle/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_oracle"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/oracle/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/orderbook/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_orderbook"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/orderbook/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_perpetuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/pool/state.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_pool_state"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/pool/state.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/rewards/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_rewards"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/rewards/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/routing/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_routing"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/routing/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_token_metadata_risk"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/trades/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_trades"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/trades/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/vault/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_vault"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/vault/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: `kb-lib` (lib) generated 236 warnings - Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.50s -[2026-07-24T14:31:26] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> cargo test -p kb-lib -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_adapter_saber_decimal_wrapper"; - | ^^^^^^^^^^^^ - | - = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_jupiter_lock"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_pump_fees"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/alphaq.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_alphaq"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/alphaq.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/believe.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_believe"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/believe.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_bonk_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_fluxbeam"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goon_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_gamma"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_guac_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_lifinity_swap_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_futarchy_amm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_v0_5"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_obric_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/one_dex.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_one_dex"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/one_dex.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_pump_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_raydium_lp_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/vertigo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_vertigo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/vertigo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/virtuals.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_virtuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/virtuals.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/woofi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_woofi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/woofi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zero_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_endpoint"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_executor"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/byreal.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_byreal"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/byreal.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/fusion.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_fusion"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/fusion.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_orca_whirlpool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_pancake_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_cpmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_dlmm_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_governance_metadao_bid_wall"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_boop_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_metadao_ico"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_meteora_dbc"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_moonit"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_orca_wavebreak"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/printr.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_printr"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/printr.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_pumpup_ai"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_raydium_launchlab"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/clone.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_clone"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/clone.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_borrow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_earn"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_flash_loan"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_marginfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lock_raydium_lp"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_metaplex_token_metadata"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_spl_name_service"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_nft_metaplex_bubblegum"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_openbook_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_drift_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_jupiter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_zeta"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_dflow_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v6"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_dca"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_rwa_ondo_global_markets"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/solana/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_solana_core"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/solana/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/account_compression.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_account_compression"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/account_compression.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_associated_token_account"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_elgamal_registry"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/memo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_memo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/memo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/noop.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_noop"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/noop.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/single_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_single_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/single_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_stake_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token2022.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token2022"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token2022.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_hylo_exchange"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_jupiter_stable"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_numeraire"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_kamino_farm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_marinade_finance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/solayer.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_solayer"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/solayer.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_treasury_helium_treasury_management"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_carrot_defi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_hylo_stability_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_yvaults"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vesting_streamflow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_wallet_jupiter_apepro_smart_wallet"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_weighted_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/bridge/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_bridge"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/bridge/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/governance/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_governance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/governance/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/lending/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_lending"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/lending/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/liquidity/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/liquidity/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/nft/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_nft"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/nft/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/oracle/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_oracle"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/oracle/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/orderbook/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_orderbook"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/orderbook/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_perpetuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/pool/state.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_pool_state"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/pool/state.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/rewards/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_rewards"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/rewards/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/routing/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_routing"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/routing/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_token_metadata_risk"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/trades/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_trades"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/trades/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/vault/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_vault"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/vault/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: `kb-lib` (lib) generated 236 warnings -warning: `kb-lib` (lib test) generated 236 warnings (236 duplicates) - Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s - Running unittests src/lib.rs (../target/debug/deps/kb_lib-fe2e76c783caa3b0) - -running 415 tests -test decoder::api::contracts::tests::discriminator_uses_first_eight_bytes ... ok -test decoder::api::contracts::tests::failed_observation_cannot_be_committed ... ok -test decoder::api::contracts::tests::contextual_input_serialization_is_deterministic_with_outer_context ... ok -test decoder::api::contracts::tests::contextual_input_hash_is_stable ... ok -test decoder::api::contracts::tests::contextual_input_hash_changes_when_outer_context_changes ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::edition_and_master_edition_accounts_decode_with_exact_pda ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::historical_master_edition_v1_and_invalid_boundaries_are_explicit ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::edition_marker_v2_decodes_extensible_bitmap_and_rejects_boundaries ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::published_account_key_inventory_is_exact_and_exhaustive ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::historical_reservation_lists_reject_wrong_pda_key_bounds_and_suffix ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::historical_reservation_lists_decode_v1_and_v2_exactly ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::edition_marker_v1_decodes_group_bitmap_and_exact_pda ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::metadata_account_decodes_with_exact_owner_and_pda ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::authority_records_decode_exact_values_and_reject_invalid_boundaries ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::metadata_account_rejects_foreign_owner_wrong_pda_and_bounds ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::delegate_records_decode_exact_role_seeds_and_pdas ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::token_owned_escrow_rejects_wrong_pda_bump_key_and_length ... ok -test decoder::metadata::metaplex_token_metadata::canonical::tests::active_and_experimental_layouts_keep_distinct_policies ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::token_owned_escrow_decodes_token_owner_and_creator_authorities ... ok -test decoder::metadata::metaplex_token_metadata::canonical::tests::historical_state_is_materializable_but_never_executable ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::token_record_decodes_programmable_state_delegate_and_exact_pda ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::collection_size_variants_reject_truncated_wire_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::decoder_identity_program_boundary_and_coverage_are_exact ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::creator_signature_and_primary_sale_family_reject_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::collection_authority_administration_rejects_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::creator_signature_and_primary_sale_family_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::collection_verification_rejects_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::token_record_rejects_foreign_owner_wrong_pda_bump_key_and_length ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::create_metadata_account_v3_decodes_official_borsh_wire ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::historical_create_metadata_account_v2_rejects_truncated_wire_and_invalid_flags ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::collection_size_variants_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::collection_verification_family_decodes_exact_account_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::collection_authority_administration_decodes_exact_account_contracts ... ok -test decoder::metadata::metaplex_token_metadata::account::tests::account_audit_matrix_covers_every_key_without_duplicate_discriminants ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::historical_v1_create_and_update_decode_exact_wires ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::escrow_and_collect_family_reject_truncated_invalid_and_suffix_wires ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::legacy_delegated_freeze_and_thaw_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::metadata_normalization_and_creator_unverification_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::historical_v1_wires_reject_truncation_and_invalid_accounts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::legacy_delegated_freeze_and_thaw_reject_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::metadata_normalization_family_rejects_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_update_rejects_truncated_invalid_and_suffix_wires ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::master_edition_creation_and_conversion_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::historical_create_metadata_account_v2_decodes_bounded_data_v2 ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_print_rejects_truncated_invalid_and_suffix_wires ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::omitted_historical_discriminators_reject_invalid_wires ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_update_variants_decode_exact_contract ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_mint_decodes_exact_contract ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::legacy_nft_burn_and_printing_token_mint_reject_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::master_edition_group_rejects_truncated_wire_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_create_decodes_exact_contract ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_create_rejects_truncated_invalid_and_suffix_wires ... ok -test decoder::solana::core::address_lookup_table::tests::coverage_uses_official_encoder_discriminants ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::unknown_truncated_suffix_and_invalid_accounts_fail_closed ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::legacy_nft_burn_and_printing_token_mint_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::sized_collection_verification_rejects_non_writable_collection_and_suffix ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_mint_rejects_truncated_invalid_and_suffix_wires ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_use_verify_and_unverify_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::update_metadata_account_v2_preserves_failed_transaction_as_uncommitted ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::resize_and_migrate_reject_invalid_wires ... ok -test decoder::solana::core::address_lookup_table::tests::extend_accepts_only_absent_or_complete_funding_pair ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_use_verify_and_unverify_reject_invalid_wires ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::printed_edition_mint_variants_reject_truncated_wire_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::modern_print_v1_and_v2_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::escrow_and_collect_family_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::programmable_delegate_and_revoke_reject_truncated_invalid_and_suffix_wires ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::programmable_lifecycle_rejects_truncated_invalid_and_suffix_wires ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::printed_edition_mint_variants_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::resize_and_migrate_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::use_authority_family_rejects_truncated_wire_invalid_flags_and_suffixes ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::audit_matrix_remains_machine_readable_and_bounded ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::sized_collection_verification_family_preserves_writable_collection_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::programmable_delegate_and_revoke_decode_exact_contracts ... ok -test decoder::solana::core::address_lookup_table::tests::every_official_variant_decodes ... ok -test decoder::solana::core::address_lookup_table::tests::failed_transaction_is_decoded_as_uncommitted_lifecycle_intent ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::use_authority_family_decodes_parameters_and_exact_account_contracts ... ok -test decoder::solana::core::compute_budget::tests::coverage_declares_current_and_historical_entries ... ok -test decoder::solana::core::address_lookup_table::tests::truncated_unknown_and_trailing_payloads_are_distinguished ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::omitted_historical_discriminators_decode_exact_contracts ... ok -test decoder::metadata::metaplex_token_metadata::decoder::tests::programmable_lifecycle_transfer_lock_unlock_burn_and_close_decode_exact_contracts ... ok -test decoder::solana::core::compute_budget::tests::reserved_unused_tag_is_ignored_without_false_event ... ok -test decoder::solana::core::compute_budget::tests::current_variants_accept_and_preserve_runtime_ignored_trailing_bytes ... ok -test decoder::solana::core::compute_budget::tests::truncated_and_unknown_payloads_are_distinguished ... ok -test decoder::solana::core::config::tests::coverage_declares_one_generic_store_surface ... ok -test decoder::solana::core::compute_budget::tests::official_current_encoder_matches_documented_layout ... ok -test decoder::solana::core::compute_budget::tests::failed_transaction_event_is_not_committed ... ok -test decoder::solana::core::compute_budget::tests::historical_request_units_is_decoded ... ok -test decoder::solana::core::config::tests::valid_generic_store_is_recognized_exactly ... ok -test decoder::solana::core::config::tests::failed_config_store_is_decoded_as_uncommitted_intent ... ok -test decoder::solana::core::config::tests::malformed_compact_length_keys_and_bool_fail_safely ... ok -test decoder::solana::core::config::tests::empty_key_set_and_opaque_data_decode_without_invented_semantics ... ok -test decoder::solana::core::compute_budget::tests::all_current_variants_decode_with_exact_numeric_values ... ok -test decoder::solana::core::config::tests::encoded_signer_keys_are_resolved_in_official_account_order ... ok -test decoder::solana::core::decoder::tests::every_native_registry_program_has_one_surface ... ok -test decoder::solana::core::decoder::tests::deprecated_stake_config_account_is_not_an_instruction_surface ... ok -test decoder::solana::core::config::tests::missing_or_mismatched_signer_accounts_fail ... ok -test decoder::solana::core::compute_budget::tests::transaction_profile_aggregates_outer_compute_budget_instructions_once ... ok -test decoder::solana::core::decoder::tests::slashing_program_is_dispatched_to_exact_decoder ... ok -test decoder::solana::core::decoder::tests::unrelated_program_is_not_dispatched ... ok -test decoder::solana::core::decoder::tests::every_native_surface_has_declared_coverage_without_fallback_entries ... ok -test decoder::solana::core::decoder::tests::coverage_entries_are_unique_and_reference_declared_surfaces ... ok -test decoder::solana::core::decoder::tests::stake_program_is_dispatched_without_false_decode_for_unknown_tag ... ok -test decoder::solana::core::feature::tests::coverage_declares_the_single_official_instruction ... ok -test decoder::solana::core::decoder::tests::vote_program_is_dispatched_without_false_decode_for_unknown_tag ... ok -test decoder::solana::core::decoder::tests::zk_token_proof_program_dispatches_to_current_noop_fallback ... ok -test decoder::solana::core::loaders::tests::coverage_declares_every_loader_entry ... ok -test decoder::solana::core::feature::tests::official_payload_is_recognized_exactly ... ok -test decoder::solana::core::feature::tests::failed_feature_revoke_is_uncommitted ... ok -test decoder::solana::core::feature::tests::revoke_pending_activation_decodes_exact_official_layout ... ok -test decoder::solana::core::loaders::tests::failed_loader_lifecycle_is_uncommitted ... ok -test decoder::solana::core::feature::tests::unknown_truncated_trailing_and_wrong_fixed_accounts_are_safe ... ok -test decoder::solana::core::loaders::tests::extend_rejects_incomplete_optional_funding_pair ... ok -test decoder::solana::core::loaders::tests::native_loader_direct_invocation_is_ignored_without_false_event ... ok -test decoder::solana::core::loaders::tests::upgradeable_wincode_rejects_trailing_bytes ... ok -test decoder::solana::core::decoder::tests::native_decoder_matrix_matches_registry_surfaces_and_coverage ... ok -test decoder::solana::core::precompiles::tests::checked_slice_rejects_offset_length_addition_overflow ... ok -test decoder::solana::core::loaders::tests::malformed_lengths_unknown_tags_and_invalid_boole_are_safe ... ok -test decoder::solana::core::precompiles::tests::coverage_declares_exactly_three_signature_precompile_surfaces ... ok -test decoder::solana::core::loaders::tests::immutable_write_accepts_mainnet_u32_vector_wire ... ok -test decoder::solana::core::precompiles::tests::absent_instruction_indexes_fail_for_all_precompiles ... ok -test decoder::solana::core::precompiles::tests::ed25519_current_reference_decodes_exact_component_sizes_and_padding ... ok -test decoder::solana::core::loaders::tests::upgradeable_legacy_optional_fields_are_defaulted ... ok -test decoder::solana::core::loaders::tests::immutable_generations_decode_write_and_finalize ... ok -test decoder::solana::core::precompiles::tests::failed_transaction_is_decoded_without_commit_or_runtime_validity_claim ... ok -test decoder::solana::core::loaders::tests::loader_v4_decodes_every_official_variant ... ok -test decoder::solana::core::precompiles::tests::header_and_offsets_truncation_fail_deterministically ... ok -test decoder::solana::core::precompiles::tests::out_of_bounds_message_lengths_fail_for_all_precompiles ... ok -test decoder::solana::core::precompiles::tests::inconsistent_zero_count_and_runtime_r1_count_limit_fail ... ok -test decoder::solana::core::slashing::tests::coverage_declares_exactly_two_official_instructions ... ok -test decoder::solana::core::precompiles::tests::official_zero_signature_rules_are_preserved ... ok -test decoder::solana::core::precompiles::tests::secp256k1_treats_u8_max_as_an_explicit_outer_index_not_a_sentinel ... ok -test decoder::solana::core::precompiles::tests::secp256k1_current_reference_is_explicit_and_retains_recovery_id ... ok -test decoder::solana::core::precompiles::tests::missing_or_invalid_external_base64_fails_for_all_precompiles ... ok -test decoder::solana::core::precompiles::tests::secp256r1_current_reference_decodes_compressed_public_key ... ok -test decoder::solana::core::precompiles::tests::all_precompiles_support_mixed_component_references ... ok -test decoder::solana::core::precompiles::tests::out_of_bounds_offsets_fail_for_all_precompiles ... ok -test decoder::solana::core::slashing::tests::close_violation_report_decodes_exact_runtime_contract ... ok -test decoder::solana::core::stake::tests::coverage_declares_every_official_stake_instruction ... ok -test decoder::solana::core::loaders::tests::upgradeable_loader_decodes_every_official_variant ... ok -test decoder::solana::core::precompiles::tests::secp256k1_decodes_multiple_signatures ... ok -test decoder::solana::core::slashing::tests::wrong_fixed_accounts_fail_safely ... ok -test decoder::solana::core::stake::tests::deprecated_redelegate_is_an_uncommitted_historical_intent ... ok -test decoder::solana::core::stake::tests::truncated_unknown_trailing_and_missing_accounts_fail_safely ... ok -test decoder::solana::core::slashing::tests::failed_transaction_is_decoded_without_runtime_or_mutation_claim ... ok -test decoder::solana::core::stake::tests::wire_mirror_matches_the_official_legacy_layout ... ok -test decoder::solana::core::stake::tests::failed_stake_instruction_is_decoded_as_uncommitted_intent ... ok -test decoder::solana::core::slashing::tests::malformed_unknown_and_trailing_payloads_fail_safely ... ok -test decoder::solana::core::system::tests::coverage_declares_all_current_system_variants ... ok -test decoder::solana::core::precompiles::tests::all_precompiles_resolve_external_outer_instruction_data ... ok -test decoder::solana::core::precompiles::tests::empty_and_large_messages_are_hashed_without_full_message_retention ... ok -test decoder::solana::core::system::tests::additional_accounts_are_preserved_without_rejecting_valid_system_instructions ... ok -test decoder::solana::core::stake::tests::legacy_and_current_account_layouts_are_preserved ... ok -test decoder::solana::core::slashing::tests::duplicate_block_proof_decodes_exact_official_layout ... ok -test decoder::solana::core::system::tests::unknown_tag_is_unsupported_and_hashable_for_replay ... ok -test decoder::solana::core::slashing::tests::duplicate_block_proof_reports_preceding_ed25519_context ... ok -test decoder::solana::core::precompiles::tests::event_kind_and_serialization_are_stable ... ok -test decoder::solana::core::precompiles::tests::ed25519_and_secp256r1_decode_multiple_signatures ... ok -test decoder::solana::core::system::tests::missing_accounts_and_truncated_payload_fail_without_panic ... ok -test decoder::solana::core::vote::tests::coverage_declares_every_official_vote_instruction ... ok -test decoder::solana::core::system::tests::event_serialization_is_deterministic ... ok -test decoder::solana::core::system::tests::failed_transaction_is_decoded_as_uncommitted_intent ... ok -test decoder::solana::core::slashing::tests::serialization_is_deterministic ... ok -test decoder::solana::core::zk_elgamal::tests::coverage_declares_all_thirteen_official_instructions ... ok -test decoder::solana::core::vote::tests::initialize_account_v2_collectors_are_instruction_accounts ... ok -test decoder::solana::core::zk_elgamal::tests::invalid_inline_sizes_unknown_tags_and_empty_payload_fail_safely ... ok -test decoder::solana::core::vote::tests::voter_with_bls_arguments_are_preserved_exactly ... ok -test decoder::solana::core::vote::tests::truncated_unknown_and_trailing_payloads_are_distinguished ... ok -test decoder::solana::core::zk_elgamal::tests::close_context_state_accepts_runtime_trailing_bytes_and_rejects_same_destination ... ok -test decoder::solana::core::zk_elgamal::tests::failed_transaction_never_claims_runtime_verification_or_commit ... ok -test decoder::solana::core::vote::tests::missing_or_wrong_fixed_accounts_fail_safely ... ok -test decoder::solana::core::zk_elgamal::tests::proof_account_mode_requires_the_proof_account ... ok -test decoder::solana::core::stake::tests::current_bpf_account_layouts_decode_without_legacy_sysvars ... ok -test decoder::solana::core::vote::tests::failed_vote_instruction_is_decoded_as_uncommitted_intent ... ok -test decoder::solana::core::zk_token_proof::tests::coverage_declares_seventeen_historical_entries_and_current_noop_fallback ... ok -test decoder::solana::core::zk_elgamal::tests::proof_account_mode_decodes_offset_and_context_request ... ok -test decoder::solana::core::zk_token_proof::tests::close_context_state_preserves_historical_intent_without_claiming_mutation ... ok -test decoder::solana::core::zk_elgamal::tests::official_discriminants_map_to_stable_entry_codes ... ok -test decoder::solana::core::zk_token_proof::tests::inner_invocation_never_claims_historical_verification ... ok -test decoder::spl::associated_token_account::decoder::tests::exact_dispatch_and_coverage_are_compiled ... ok -test decoder::solana::core::zk_token_proof::tests::failed_transaction_is_non_committed_and_never_claims_verification ... ok -test decoder::solana::core::zk_elgamal::tests::serialization_is_deterministic ... ok -test decoder::solana::core::zk_token_proof::tests::proof_account_mode_is_structured_and_historical_feature_gate_is_explicit ... ok -test decoder::solana::core::zk_token_proof::tests::malformed_historical_shapes_decode_as_current_noop_instead_of_false_failure ... ok -test decoder::solana::core::system::tests::every_official_variant_decodes ... ok -test decoder::solana::core::zk_token_proof::tests::historical_account_arity_is_reported_without_overriding_current_noop_acceptance ... ok -test decoder::spl::associated_token_account::decoder::tests::official_builders_match_matrix_wire_and_account_contracts ... ok -test decoder::spl::elgamal_registry::decoder::tests::exact_program_boundary_and_interface_id_are_preserved ... ok -test decoder::spl::elgamal_registry::decoder::tests::malformed_unknown_and_suffixed_wire_fail_closed ... ok -test decoder::solana::core::zk_token_proof::tests::historical_transfer_fee_gates_are_explicit ... ok -test decoder::spl::elgamal_registry::state::tests::registry_state_rejects_every_non_exact_length ... ok -test decoder::solana::core::zk_token_proof::tests::serialization_is_deterministic ... ok -test decoder::spl::elgamal_registry::state::tests::exact_registry_state_preserves_owner_key_and_wire ... ok -test decoder::spl::elgamal_registry::decoder::tests::create_and_update_decode_exact_offsets_and_commit_state ... ok -test decoder::spl::associated_token_account::decoder::tests::unknown_and_suffixed_wire_fail_with_bounded_diagnostics ... ok -test decoder::spl::memo::decoder::tests::exact_support_and_interface_ids_cover_all_generations ... ok -test decoder::solana::core::zk_token_proof::tests::official_discriminants_map_to_stable_entry_codes ... ok -test decoder::spl::memo::decoder::tests::decodes_empty_ascii_unicode_outer_and_inner_payloads ... ok -test decoder::spl::associated_token_account::decoder::tests::token2022_inner_failed_idempotent_remains_an_uncommitted_intent ... ok -test decoder::spl::memo::decoder::tests::unknown_program_is_incompatible_and_never_emits_an_observation ... ok -test decoder::spl::memo::decoder::tests::payload_hash_is_canonical_sha256 ... ok -test decoder::spl::memo::decoder::tests::invalid_utf8_and_failed_transactions_are_explicit_uncommitted_intents ... ok -test decoder::spl::token2022::decoder::tests::classic_token_and_unknown_programs_never_emit_token2022_events ... ok -test decoder::spl::memo::decoder::tests::payload_bound_accepts_limit_and_rejects_oversize_and_malformed_base64 ... ok -test decoder::spl::token2022::decoder::tests::audited_extension_families_reject_unknown_truncated_and_suffixed_wire ... ok -test decoder::spl::memo::decoder::tests::preserves_duplicate_writable_and_multiple_signer_accounts_in_order ... ok -test decoder::spl::token2022::decoder::tests::confidential_mint_burn_and_permissioned_confidential_burn_reject_invalid_wire ... ok -test decoder::spl::memo::decoder::tests::v1_ignores_accounts_while_v3_and_v4_require_every_account_to_sign ... ok -test decoder::spl::token2022::decoder::tests::confidential_transfer_fee_leaves_reject_invalid_wire ... ok -test decoder::spl::associated_token_account::decoder::tests::wrong_address_flags_duplicates_extra_and_missing_accounts_stay_decodable ... ok -test decoder::spl::associated_token_account::decoder::tests::create_and_legacy_empty_create_decode_with_canonical_address ... ok -test decoder::spl::token2022::decoder::tests::confidential_transfer_complex_public_leaves_reject_invalid_wire ... ok -test decoder::solana::core::stake::tests::every_official_stake_variant_decodes ... ok -test decoder::spl::token2022::decoder::tests::confidential_transfer_simple_public_leaves_reject_invalid_wire ... ok -test decoder::spl::associated_token_account::decoder::tests::published_interface_and_matrix_variants_are_equal ... ok -test decoder::spl::memo::decoder::tests::matrix_is_machine_readable_and_covers_required_cases ... ok -test decoder::spl::associated_token_account::decoder::tests::recover_nested_preserves_mint_roles_and_validates_all_three_pdas ... ok -test decoder::spl::associated_token_account::decoder::tests::matrix_pda_vectors_match_the_official_helper ... ok -test decoder::spl::token2022::decoder::tests::embedded_interfaces_reject_truncation_suffix_and_unbounded_metadata_strings ... ok -test decoder::spl::associated_token_account::decoder::tests::program_ids_accounts_and_pda_seed_order_are_explicit ... ok -test decoder::spl::token2022::decoder::tests::interest_bearing_wire_rejects_unknown_truncated_and_suffixed_forms ... ok -test decoder::spl::token2022::decoder::tests::confidential_mint_burn_and_permissioned_confidential_burn_decode_exactly ... ok -test decoder::spl::token2022::decoder::tests::failed_inner_token2022_instruction_remains_uncommitted ... ok -test decoder::spl::token2022::decoder::tests::confidential_transfer_complex_public_leaves_decode_exactly ... ok -test decoder::spl::token2022::decoder::tests::compliance_extensions_decode_exact_toggle_and_state_contracts ... ok -test decoder::spl::token2022::decoder::tests::exact_token2022_dispatch_decodes_checked_transfer ... ok -test decoder::solana::core::zk_elgamal::tests::every_inline_proof_layout_is_bounded_by_official_pod_sizes ... ok -test decoder::spl::token2022::decoder::tests::confidential_transfer_fee_leaves_decode_exactly ... ok -test decoder::solana::core::vote::tests::every_official_vote_variant_decodes ... ok -test decoder::spl::token2022::decoder::tests::interest_bearing_non_transferable_permanent_delegate_and_reallocate_decode_exactly ... ok -test decoder::spl::token2022::decoder::tests::confidential_transfer_simple_public_leaves_decode_exactly ... ok -test decoder::spl::token2022::decoder::tests::embedded_metadata_and_group_interfaces_decode_as_token2022_leaves ... ok -test decoder::spl::token2022::decoder::tests::pointer_and_transfer_hook_extensions_reject_unknown_truncated_and_suffixed_wire ... ok -test decoder::spl::token2022::state::tests::audited_fixed_extension_lengths_and_values_fail_closed ... ok -test decoder::spl::token2022::decoder::tests::scaled_ui_pausable_and_permissioned_burn_reject_invalid_exact_wire ... ok -test decoder::spl::token2022::state::tests::confidential_fee_and_mint_burn_states_fail_closed ... ok -test decoder::spl::token2022::state::tests::confidential_transfer_state_extensions_reject_invalid_lengths_and_flags ... ok -test decoder::spl::token2022::state::tests::confidential_fee_and_mint_burn_states_decode_exact_public_fields ... ok -test decoder::spl::token2022::state::tests::confidential_transfer_state_extensions_decode_exact_public_fields ... ok -test decoder::spl::token2022::state::tests::extended_mint_and_account_preserve_ordered_known_and_unknown_tlv ... ok -test decoder::spl::token2022::state::tests::exact_base_mint_account_and_multisig_layouts_are_preserved ... ok -test decoder::spl::token2022::decoder::tests::scaled_ui_pausable_and_permissioned_burn_decode_exact_non_confidential_leaves ... ok -test decoder::spl::token2022::decoder::tests::transfer_fee_extension_decodes_all_six_published_subinstructions ... ok -test decoder::solana::core::zk_token_proof::tests::every_historical_inline_layout_matches_the_audited_wire_table ... ok -test decoder::spl::token2022::state::tests::fixed_extension_payloads_are_structured_and_kind_checked ... ok -test decoder::spl::token2022::state::tests::interest_scaled_ui_and_pausable_states_fail_closed ... ok -test decoder::spl::token2022::state::tests::interest_scaled_ui_and_pausable_states_decode_exact_public_fields ... ok -test decoder::spl::token2022::state::tests::malformed_padding_account_type_tlv_and_duplicates_fail_closed ... ok -test decoder::spl::token2022::decoder::tests::pointer_and_transfer_hook_extensions_decode_all_published_leaves ... ok -test decoder::spl::token2022::state::tests::token_group_and_member_states_reject_invalid_lengths_and_size ... ok -test decoder::spl::token2022::state::tests::token_group_and_member_states_decode_exact_public_fields ... ok -test decoder::spl::token2022::state::tests::token_metadata_state_rejects_truncation_invalid_utf8_duplicates_and_trailing_bytes ... ok -test decoder::spl::token2022::state::tests::state_lengths_and_tlv_count_are_bounded ... ok -test decoder::spl::token2022::state::tests::token_metadata_state_decodes_name_symbol_uri_and_additional_fields ... ok -test decoder::spl::token2022::state::tests::transfer_fee_state_extensions_reject_invalid_lengths_and_basis_points ... ok -test decoder::spl::token::decoder::tests::exact_support_program_id_and_interface_match ... ok -test decoder::spl::token::decoder::tests::suffix_unknown_empty_truncated_and_invalid_utf8_are_bounded ... ok -test decoder::spl::token::decoder::tests::batch_preserves_order_slices_paths_and_rejects_nested_batch ... ok -test decoder::spl::token2022::state::tests::transfer_fee_state_extensions_decode_exact_public_fields ... ok -test decoder::spl::token::decoder::tests::failed_transfer_is_an_exact_uncommitted_inner_intent_without_invented_mint ... ok -test decoder::spl::token::decoder::tests::authority_forms_and_multisig_threshold_diagnostics_are_explicit ... ok -test decoder::spl::token2022::decoder::tests::matrix_requires_bounded_token_metadata_string_decoding ... ok -test decoder::spl::token2022::decoder::tests::initial_matrix_has_exact_program_boundary_and_candidate_inventory ... ok -test decoder::spl::token2022::decoder::tests::matrix_partitions_every_base_tag_by_exact_processor_suffix_policy ... ok -test decoder::spl::token2022::decoder::tests::matrix_maps_every_base_tag_to_exact_official_builder_accounts ... ok -test decoder::spl::token2022::decoder::tests::matrix_records_exact_public_wire_for_all_non_extension_envelopes ... ok -test executor::api::execution::tests::mainnet_cluster_serializes_with_current_name ... ok -test decoder::spl::token2022::decoder::tests::extension_types_are_contiguous_and_external_interfaces_stay_explicit ... ok -test decoder::spl::token2022::decoder::tests::matrix_leaf_inventory_equals_compiled_decoder_coverage ... ok -test decoder::spl::token::decoder::tests::every_published_tag_decodes_and_matches_official_unpack ... ok -test materializer::admin::core::elgamal_registry_state_tests::exact_registry_snapshot_preserves_public_state_without_claiming_proof_validation ... ok -test materializer::admin::core::elgamal_registry_state_tests::registry_snapshot_is_idempotent_and_requires_account_identity ... ok -test decoder::spl::token::decoder::tests::coverage_matrix_and_compiled_entries_are_equal ... ok -test materializer::admin::core::tests::ata_instructions_do_not_create_admin_outputs ... ok -test decoder::spl::token::decoder::tests::cluster_evidence_scopes_recent_instruction_deployment_exactly ... ok -test materializer::admin::core::tests::elgamal_registry_foreign_program_and_failed_transaction_are_refused ... ok -test materializer::admin::core::tests::config_store_preserves_bounded_opaque_audit_fields ... ok -test materializer::admin::core::tests::classic_token_authority_and_multisig_create_distinct_admin_outputs ... ok -test materializer::admin::core::tests::failed_admin_mutation_is_refused ... ok -test materializer::admin::core::tests::seeded_assign_preserves_base_seed_and_owner ... ok -test materializer::admin::core::tests::system_assign_creates_owner_projection ... ok -test materializer::admin::core::tests::elgamal_registry_create_and_update_have_one_admin_owner ... ok -test materializer::admin::core::tests::token2022_authority_change_uses_the_admin_owner_once ... ok -test materializer::admin::core::tests::token2022_extension_admin_rejects_foreign_program_and_failed_transaction ... ok -test materializer::admin::core::tests::loader_authority_variants_create_exact_admin_outputs ... ok -test materializer::admin::core::tests::output_serialization_is_deterministic ... ok -test materializer::admin::core::tests::unrelated_admin_observation_is_ignored ... ok -test materializer::admin::core::token2022_admin_state_tests::admin_snapshots_reject_empty_identity_and_wrong_state_kind ... ok -test materializer::api::contracts::tests::failed_audit_cannot_emit_successful_trade_output ... ok -test materializer::admin::core::tests::token2022_pointer_and_hook_admin_events_have_one_owner ... ok -test materializer::api::contracts::tests::failed_trade_is_refused_before_materialization ... ok -test materializer::admin::core::token2022_admin_state_tests::admin_snapshots_are_owned_once_filtered_and_idempotent ... ok -test materializer::compliance::audit::tests::failed_code_mutation_is_refused ... ok -test materializer::compliance::audit::tests::compute_budget_profile_is_emitted_only_by_profile_emitter ... ok -test materializer::compliance::audit::tests::failed_compute_budget_profile_remains_audit_materializable ... ok -test materializer::compliance::audit::tests::unrelated_audit_observation_is_ignored ... ok -test materializer::compliance::audit::tests::loader_v4_copy_preserves_source_and_bounded_ranges ... ok -test materializer::fees::core::tests::classic_token_and_program_surface_mismatches_are_ignored ... ok -test decoder::spl::token2022::decoder::tests::initial_matrix_tags_are_unique_and_include_recent_surface ... ok -test materializer::fees::core::tests::committed_confidential_fee_instruction_is_projected_without_decryption ... ok -test materializer::fees::core::tests::committed_token2022_fee_instruction_creates_one_stable_output ... ok -test materializer::compliance::audit::tests::loader_write_variants_create_bounded_code_audits ... ok -test materializer::fees::core::tests::confidential_transfer_with_fee_is_instructionally_self_contained ... ok -test materializer::fees::core::tests::failed_token2022_fee_instruction_is_refused ... ok -test materializer::fees::core::tests::confidential_fee_amount_preserves_ciphertext_without_decryption_claim ... ok -test materializer::fees::core::tests::fee_state_snapshot_rejects_wrong_state_kind_and_empty_identity ... ok -test materializer::fees::core::tests::transfer_checked_with_fee_is_self_contained_but_state_mutations_are_not ... ok -test materializer::compliance::audit::tests::output_serialization_is_deterministic ... ok -test materializer::fees::core::tests::public_fee_state_snapshots_are_owned_once_and_idempotent ... ok -test materializer::lifecycle::core::tests::ata_lifecycle_is_owned_by_token_accounts_materializer_only ... ok -test materializer::lifecycle::core::tests::historical_zk_token_proof_is_not_materialized ... ok -test materializer::lifecycle::core::tests::loader_write_and_admin_events_are_not_lifecycle_projections ... ok -test materializer::lifecycle::core::tests::failed_native_lifecycle_is_refused ... ok -test materializer::lifecycle::core::tests::output_serialization_is_deterministic ... ok -test materializer::lifecycle::core::tests::nonce_withdrawal_preserves_conditional_closure_semantics ... ok -test materializer::lifecycle::core::tests::every_committed_system_account_operation_creates_a_lifecycle_projection ... ok -test materializer::lifecycle::core::tests::successful_alt_lifecycle_creates_one_stable_output ... ok -test materializer::lifecycle::core::tests::every_committed_system_nonce_operation_creates_a_lifecycle_projection ... ok -test materializer::lifecycle::core::tests::successful_feature_revoke_creates_feature_gate_projection ... ok -test decoder::spl::token2022::decoder::tests::matrix_matches_the_pinned_processor_dispatch_shape ... ok -test materializer::lifecycle::core::tests::successful_slashing_close_creates_stable_closure_projection ... ok -test materializer::lifecycle::core::tests::successful_loader_lifecycle_creates_program_projection ... ok -test materializer::lifecycle::core::tests::unrelated_lifecycle_is_ignored ... ok -test materializer::lifecycle::core::tests::system_account_creation_does_not_duplicate_balance_changes ... ok -test decoder::spl::token2022::decoder::tests::matrix_records_operator_resolution_and_keeps_elgamal_technically_separate ... ok -test materializer::lifecycle::core::tests::successful_slashing_proof_initializes_violation_report_projection ... ok -test materializer::lifecycle::core::tests::zk_context_close_creates_a_stable_lifecycle_projection ... ok -test materializer::metadata::core::tests_metaplex_account_state::programmable_delegate_authority_and_escrow_keep_unique_fact_owners ... ok -test materializer::metadata::core::tests_metaplex_account_state::historical_edition_and_reservation_are_stable_materializable_state ... ok -test materializer::lifecycle::core::tests::zk_context_is_materialized_only_when_requested ... ok -test materializer::metadata::core::tests_metaplex_account_state::uncommitted_and_metadata_snapshots_use_explicit_boundaries ... ok -test materializer::metadata::core::tests_metaplex_metadata_state::uncommitted_or_non_metadata_state_is_rejected ... ok -test materializer::metadata::core::tests_token2022_state::snapshot_is_idempotent_filters_unrelated_extensions_and_requires_mint_identity ... ok -test materializer::metadata::core::tests_token2022_state::embedded_metadata_group_and_member_have_distinct_stable_outputs ... ok -test materializer::risk::core::tests::failed_or_invalid_nested_ata_recovery_creates_no_risk_fact ... ok -test materializer::metadata::core::tests_metaplex_metadata_state::account_snapshot_is_one_stable_authoritative_metadata_projection ... ok -test materializer::risk::core::tests::approval_and_authority_revocation_are_fact_only_without_score ... ok -test materializer::risk::core::tests::failed_risk_fact_is_refused ... ok -test materializer::risk::core::tests::committed_nested_ata_recovery_creates_one_fact_without_score ... ok -test materializer::staking::core::tests::failed_staking_mutation_is_refused ... ok -test materializer::risk::core::tests::only_structurally_weak_multisig_creates_risk_fact ... ok -test materializer::risk::core::tests::token2022_revocation_is_owned_once_without_an_invented_score ... ok -test materializer::staking::core::tests::output_serialization_is_deterministic ... ok -test materializer::risk::core::tests::confidential_credit_toggles_are_fact_only_and_keep_wire_parameters ... ok -test materializer::staking::core::tests::stake_initialize_creates_instructional_staking_projection ... ok -test materializer::risk::core::tests::token2022_compliance_toggles_are_projected_as_fact_only_risk_rows ... ok -test materializer::risk::core::tests::token2022_restriction_and_pause_facts_have_unique_stable_kinds ... ok -test materializer::staking::core::tests::stake_value_projection_does_not_duplicate_lamport_changes ... ok -test materializer::staking::core::tests::stake_authority_and_lockup_events_are_projected ... ok -test materializer::staking::core::tests::unrelated_or_disabled_observations_are_ignored ... ok -test materializer::token::accounts::tests::batch_parent_admin_and_conversion_events_are_not_duplicated ... ok -test materializer::token::accounts::tests::committed_checked_transfer_preserves_exact_amount_mint_and_path ... ok -test materializer::staking::core::tests::vote_state_and_reward_outputs_are_distinguished ... ok -test materializer::staking::core::tests::vote_account_and_authority_events_are_projected ... ok -test materializer::token::accounts::tests::committed_token2022_transfer_has_the_same_single_projection_owner ... ok -test materializer::token::accounts::tests::failed_mutation_is_refused ... ok -test materializer::token::accounts::tests::ata_parent_and_classic_token_cpi_children_own_distinct_facts ... ok -test materializer::risk::core::tests::ata_matrix_declares_the_single_compiled_risk_fact ... ok -test materializer::token::accounts::tests::every_ata_variant_has_one_exact_lifecycle_projection ... ok -test materializer::token::accounts::tests::idempotent_parent_does_not_invent_created_or_reused_branch ... ok -test materializer::token::accounts::tests::token2022_state_snapshot_is_idempotent_and_rejects_missing_identity ... ok -test materializer::token::accounts::tests::token2022_state_snapshot_preserves_base_and_ordered_extensions ... ok -test materializer::transaction::annotations::tests::exact_v1_v3_and_v4_surfaces_are_accepted ... ok -test materializer::token::accounts::tests::uncommitted_or_invalid_ata_lifecycle_is_refused ... ok -test materializer::token::accounts::tests::second_ata_materialization_is_byte_for_byte_idempotent ... ok -test materializer::transaction::annotations::tests::foreign_audit_observation_is_not_accepted ... ok -test materializer::transaction::annotations::tests::failed_or_uncommitted_memo_is_refused_without_output ... ok -test materializer::transaction::annotations::tests::malformed_committed_payload_fails_closed ... ok -test materializer::transaction::annotations::tests::v1_observed_accounts_are_not_claimed_as_runtime_verified ... ok -test materializer::transaction::annotations::tests::committed_v4_memo_becomes_deterministic_transaction_annotation ... ok -test model::canonical_transaction::tests::token_decimal_amount_is_derived_without_source_ui_formatting ... ok -test model::canonical_transaction::tests::validation_rejects_inconsistent_status_and_error ... ok -test model::canonical_transaction::tests::validation_rejects_signature_with_public_key_length ... ok -test materializer::token::accounts::tests::ata_matrix_and_compiled_token_account_projection_ownership_are_equal ... ok -test materializer::transaction::annotations::tests::machine_readable_matrix_declares_transaction_annotation_policy ... ok -test model::canonical_transaction::tests::canonical_json_contains_no_provider_fields ... ok -test model::canonical_transaction::tests::canonical_hash_is_stable ... ok -test model::canonical_transaction::tests::canonical_hash_sorts_nested_error_objects ... ok -test executor::api::execution::export_bindings_exapiexecutionblockhashkind ... ok -test executor::api::execution::export_bindings_exapiexecutioncluster ... ok -test executor::api::execution::export_bindings_exapiexecutioncapability ... ok -test executor::api::execution::export_bindings_exapiexecutionconfirmationstatus ... ok -test executor::api::execution::export_bindings_exapiexecutioncostlimit ... ok -test executor::api::execution::export_bindings_exapiexecutionsimulationpolicy ... ok -test executor::api::execution::export_bindings_exapiplannedaccount ... ok -test executor::api::executor::export_bindings_exapiexecutionplan ... ok -test executor::api::executor::export_bindings_exapiexecutionsupport ... ok -test model::decoded::export_bindings_mddecoderconfidence ... ok -test model::decoded::export_bindings_mdeventsourcekind ... ok -test model::nomenclature::export_bindings_mdeventcode ... ok -test model::nomenclature::export_bindings_mdeventfamily ... ok -test model::nomenclature::export_bindings_mdeventname ... ok -test model::nomenclature::export_bindings_mdprogramcode ... ok -test model::nomenclature::export_bindings_mdprotocolcode ... ok -test model::nomenclature::export_bindings_mdsurfacecode ... ok -test executor::api::execution::export_bindings_exapiexecutionclusterpolicy ... ok -test executor::api::execution::export_bindings_exapiexecutionconfirmationresult ... ok -test model::solana::export_bindings_mdinstructionpath ... ok -test executor::api::execution::export_bindings_exapipostexecutiondiagnostic ... ok -test executor::api::execution::export_bindings_exapiexecutionsendresult ... ok -test executor::api::execution::export_bindings_exapiplannedinstruction ... ok -test executor::api::execution::export_bindings_exapipostexecutionvalidationpolicy ... ok -test model::solana::export_bindings_mdprogramid ... ok -test executor::api::execution::export_bindings_exapirequiredsigner ... ok -test model::solana::export_bindings_mdpubkey ... ok -test executor::api::executor::export_bindings_exapiexecutionrequest ... ok -test model::solana::export_bindings_mdsignature ... ok -test model::solana::export_bindings_mdslot ... ok -test model::materialized::export_bindings_mdmaterializedeventfamily ... ok -test executor::api::execution::export_bindings_exapiexecutionblockhashpolicy ... ok -test executor::api::execution::export_bindings_exapiexecutionsimulationresult ... ok -test executor::api::execution::export_bindings_exapiexecutionpolicy ... ok -test model::materialized::export_bindings_mdmaterializedevent ... ok -test model::decoded::export_bindings_mddecodedprotocolevent ... ok -test model::observation::export_bindings_mdprogramobservation ... ok -test executor::api::execution::export_bindings_exapipreparedexecutionplan ... ok - -test result: ok. 415 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.07s - - Running tests/external_decoder_api.rs (../target/debug/deps/external_decoder_api-7cdf22f25823d46a) - -running 1 test -test external_decoder_uses_only_the_public_kb_lib_contract ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/external_executor_api.rs (../target/debug/deps/external_executor_api-ff115a9a49335d58) - -running 1 test -test external_executor_uses_only_the_public_kb_lib_contract ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Running tests/external_materializer_api.rs (../target/debug/deps/external_materializer_api-8511294a1d0525a9) - -running 1 test -test external_materializer_uses_only_the_public_kb_lib_contract ... ok - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - - Doc-tests kb_lib - -running 0 tests - -test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - -[2026-07-24T14:31:33] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> cargo clippy --all-targets -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_adapter_saber_decimal_wrapper"; - | ^^^^^^^^^^^^ - | - = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_jupiter_lock"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_pump_fees"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/alphaq.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_alphaq"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/alphaq.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/believe.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_believe"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/believe.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_bonk_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_fluxbeam"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goon_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_gamma"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_guac_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_lifinity_swap_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_futarchy_amm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_v0_5"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_obric_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/one_dex.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_one_dex"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/one_dex.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_pump_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_raydium_lp_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/vertigo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_vertigo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/vertigo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/virtuals.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_virtuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/virtuals.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/woofi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_woofi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/woofi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zero_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_endpoint"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_executor"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/byreal.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_byreal"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/byreal.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/fusion.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_fusion"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/fusion.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_orca_whirlpool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_pancake_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_cpmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_dlmm_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_governance_metadao_bid_wall"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_boop_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_metadao_ico"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_meteora_dbc"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_moonit"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_orca_wavebreak"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/printr.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_printr"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/printr.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_pumpup_ai"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_raydium_launchlab"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/clone.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_clone"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/clone.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_borrow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_earn"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_flash_loan"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_marginfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lock_raydium_lp"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_metaplex_token_metadata"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_spl_name_service"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_nft_metaplex_bubblegum"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_openbook_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_drift_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_jupiter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_zeta"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_dflow_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v6"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_dca"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_rwa_ondo_global_markets"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/solana/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_solana_core"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/solana/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/account_compression.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_account_compression"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/account_compression.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_associated_token_account"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_elgamal_registry"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/memo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_memo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/memo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/noop.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_noop"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/noop.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/single_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_single_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/single_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_stake_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token2022.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token2022"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token2022.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_hylo_exchange"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_jupiter_stable"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_numeraire"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_kamino_farm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_marinade_finance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/solayer.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_solayer"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/solayer.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_treasury_helium_treasury_management"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_carrot_defi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_hylo_stability_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_yvaults"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vesting_streamflow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_wallet_jupiter_apepro_smart_wallet"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_weighted_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/bridge/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_bridge"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/bridge/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/governance/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_governance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/governance/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/lending/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_lending"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/lending/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/liquidity/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/liquidity/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/nft/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_nft"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/nft/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/oracle/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_oracle"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/oracle/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/orderbook/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_orderbook"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/orderbook/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_perpetuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/pool/state.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_pool_state"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/pool/state.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/rewards/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_rewards"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/rewards/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/routing/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_routing"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/routing/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_token_metadata_risk"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/trades/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_trades"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/trades/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/vault/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_vault"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/vault/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: `kb-lib` (lib) generated 236 warnings -warning: `kb-lib` (lib test) generated 236 warnings (236 duplicates) - Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.25s -[2026-07-24T14:31:43] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> cargo check --workspace -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_adapter_saber_decimal_wrapper"; - | ^^^^^^^^^^^^ - | - = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/adapter/saber_decimal_wrapper.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_jupiter_lock"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/jupiter_lock.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_admin_pump_fees"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/admin/pump_fees.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_aldrin_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/aldrin_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/alphaq.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_alphaq"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/alphaq.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/believe.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_believe"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/believe.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_bonk_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/bonk_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_fluxbeam"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/fluxbeam.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goon_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goon_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_gamma"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_gamma.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_goosefx_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/goosefx_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_guac_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/guac_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_lifinity_swap_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/lifinity_swap_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_futarchy_amm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_futarchy_amm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_metadao_v0_5"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/metadao_v0_5.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_meteora_damm_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/meteora_damm_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_obric_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/obric_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/one_dex.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_one_dex"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/one_dex.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_pump_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/pump_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_raydium_lp_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/raydium_lp_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_solfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/solfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/vertigo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_vertigo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/vertigo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/virtuals.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_virtuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/virtuals.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/woofi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_woofi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/woofi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zero_fi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zero_fi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/amm/zora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_amm_zora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/amm/zora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_circle_cctp_token_messenger_minter_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/circle_cctp_token_messenger_minter_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_endpoint"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_endpoint.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_bridge_layer_zero_executor"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/bridge/layer_zero_executor.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/byreal.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_byreal"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/byreal.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/fusion.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_fusion"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/fusion.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_orca_whirlpool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/orca_whirlpool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_pancake_swap"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/pancake_swap.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/clmm/stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_clmm_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/clmm/stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_cpmm_raydium"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/cpmm/raydium.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_dlmm_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/dlmm/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_fees_bags_fee_share_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/fees/bags_fee_share_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_governance_metadao_bid_wall"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/governance/metadao_bid_wall.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_boop_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/boop_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_metadao_ico"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/metadao_ico.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_meteora_dbc"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/meteora_dbc.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_moonit"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/moonit.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_orca_wavebreak"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/orca_wavebreak.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/printr.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_printr"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/printr.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_fun"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_fun.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_pump_pumpup_ai"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/pump_pumpup_ai.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_launchpad_raydium_launchlab"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/launchpad/raydium_launchlab.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/clone.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_clone"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/clone.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_borrow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_borrow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_earn"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_earn.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_flash_loan"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_flash_loan.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_jupiter_lend_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/jupiter_lend_liquidity.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lending_marginfi_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lending/marginfi_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_lock_raydium_lp"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/lock/raydium_lp.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_metaplex_token_metadata"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/metaplex_token_metadata.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_metadata_spl_name_service"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/metadata/spl_name_service.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_nft_metaplex_bubblegum"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/nft/metaplex_bubblegum.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_jupiter_limit_order_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/jupiter_limit_order_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_orderbook_openbook_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/orderbook/openbook_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_drift_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/drift_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_jupiter"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/jupiter.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_perpetuals_zeta"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/perpetuals/zeta.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_dflow_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/dflow_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v4"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v4.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_aggregator_v6"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_aggregator_v6.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_jupiter_dca"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/jupiter_dca.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v1"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v1.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_router_okx_labs_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/router/okx_labs_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_rwa_ondo_global_markets"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/rwa/ondo_global_markets.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/solana/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_solana_core"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/solana/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/account_compression.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_account_compression"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/account_compression.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_associated_token_account"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/associated_token_account.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_elgamal_registry"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/elgamal_registry.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/memo.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_memo"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/memo.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/noop.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_noop"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/noop.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/single_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_single_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/single_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_stake_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/stake_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/spl/token2022.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_spl_token2022"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/spl/token2022.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_hylo_exchange"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_hylo_exchange.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_jupiter_stable"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_jupiter_stable.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_numeraire"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_numeraire.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_stable_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/stable/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_kamino_farm"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/kamino_farm.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_marinade_finance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/marinade_finance.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/staking/solayer.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_staking_solayer"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/staking/solayer.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_treasury_helium_treasury_management"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/treasury/helium_treasury_management.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_carrot_defi"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/carrot_defi.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_hylo_stability_pool"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/hylo_stability_pool.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_v2"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_v2.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_kamino_yvaults"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/kamino_yvaults.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vault/meteora.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vault_meteora"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vault/meteora.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_vesting_streamflow"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/vesting/streamflow.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_wallet_jupiter_apepro_smart_wallet"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/wallet/jupiter_apepro_smart_wallet.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_executor_weighted_swap_stabble"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/executor/weighted/swap_stabble.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/bridge/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_bridge"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/bridge/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/governance/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_governance"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/governance/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/lending/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_lending"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/lending/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/liquidity/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_liquidity"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/liquidity/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/nft/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_nft"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/nft/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/oracle/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_oracle"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/oracle/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/orderbook/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_orderbook"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/orderbook/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_perpetuals"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/perpetuals/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/pool/state.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_pool_state"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/pool/state.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/rewards/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_rewards"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/rewards/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/routing/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_routing"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/routing/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_token_metadata_risk"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/token/metadata_risk.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/trades/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_trades"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/trades/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: constant `LEGACY_CRATE` is never used - --> kb-lib/src/materializer/vault/core.rs:7:7 - | -7 | const LEGACY_CRATE: &str = "kb_materializer_vault"; - | ^^^^^^^^^^^^ - -warning: constant `MIGRATION_STATUS` is never used - --> kb-lib/src/materializer/vault/core.rs:10:7 - | -10 | const MIGRATION_STATUS: &str = "source-preserved-pending-port"; - | ^^^^^^^^^^^^^^^^ - -warning: `kb-lib` (lib) generated 236 warnings - Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.20s -[2026-07-24T14:31:48] sinus@ideatower001@bash:1:~/Projects/khadhroony-bot3 $>> python3 scripts/audit_rust_workspace_rules.py -General Rust rule audit: clean -Rust export completeness audit: 0 candidate(s) -Khadhroony workspace rule audit: clean diff --git a/scripts/audit_khadhroony_workspace_rules.py b/scripts/audit_khadhroony_workspace_rules.py index 7af3526..8ffdcd6 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: 5 +# version: 6 """Audit mechanically verifiable rules specific to khadhroony-bot3.""" @@ -207,6 +207,77 @@ def audit_kb_lib_symbol_prefixes(root: pathlib.Path) -> list[Violation]: return violations +def audit_reserved_decoder_scaffolds(root: pathlib.Path) -> list[Violation]: + """Reject temporary decoder migration markers and incomplete reserved decoders.""" + + violations: list[Violation] = [] + decoder_root = root / "kb-lib/src/decoder" + forbidden = ( + "MIGRATION_BOUNDARIES", + "LEGACY_CRATE", + "MIGRATION_STATUS", + "source-preserved-pending-port", + ) + struct_pattern = re.compile(r"^pub struct (Dc[A-Za-z0-9]+Decoder);$", re.MULTILINE) + for path in sorted(decoder_root.rglob("*.rs")): + relative = path.relative_to(root).as_posix() + text = path.read_text(encoding="utf-8") + for marker in forbidden: + offset = text.find(marker) + if offset >= 0: + violations.append( + Violation( + "KH_DC001", + relative, + text[:offset].count("\n") + 1, + f"temporary decoder migration marker `{marker}` is forbidden", + ) + ) + if "Reserved protocol decoder for `" not in text: + continue + struct_match = struct_pattern.search(text) + if struct_match is None: + violations.append( + Violation( + "KH_DC002", + relative, + 1, + "reserved decoder must expose one `Dc*Decoder` unit struct", + ) + ) + continue + type_name = struct_match.group(1) + implementation = f"impl crate::DcApiProtocolDecoder for crate::{type_name} {{" + if implementation not in text: + violations.append( + Violation( + "KH_DC003", + relative, + text[: struct_match.start()].count("\n") + 1, + f"`{type_name}` must implement `DcApiProtocolDecoder`", + ) + ) + if "fn program_ids(&self) -> &'static [&'static str]" not in text: + violations.append( + Violation( + "KH_DC004", + relative, + 1, + "reserved decoder must declare its exact Program ID boundary", + ) + ) + if "crate::DcApiDecoderSupport::Maybe" not in text: + violations.append( + Violation( + "KH_DC005", + relative, + 1, + "reserved decoder must remain explicitly `Maybe` until implemented", + ) + ) + return violations + + def audit_token2022_naming(root: pathlib.Path) -> list[Violation]: """Reject obsolete internal Token2022 spellings while preserving legacy evidence.""" @@ -242,6 +313,38 @@ def audit_token2022_naming(root: pathlib.Path) -> list[Violation]: return violations +def audit_private_kb_lib_paths_in_active_docs(root: pathlib.Path) -> list[Violation]: + """Reject documentation that presents private kb-lib modules as public APIs.""" + + violations: list[Violation] = [] + candidates = [ + root / "README.md", + root / "ROADMAP.md", + root / "RULES.md", + root / "kb-lib/README.md", + root / "kb-program-ids/README.md", + ] + candidates.extend(sorted((root / "docs").glob("*.md"))) + candidates.extend(sorted((root / "docs").glob("*.json"))) + pattern = re.compile(r"kb_lib::(?:decoder|executor|materializer|model)::") + for path in candidates: + if not path.is_file(): + continue + relative = path.relative_to(root).as_posix() + for index, line in enumerate(path.read_text(encoding="utf-8").splitlines(), 1): + match = pattern.search(line) + if match is not None: + violations.append( + Violation( + "KH_API001", + relative, + index, + f"private kb-lib module path `{match.group(0)}` is forbidden in active documentation", + ) + ) + return violations + + def audit_wincode_resolution(root: pathlib.Path) -> list[Violation]: """Require the currently compatible Solana wincode dependency family.""" @@ -317,7 +420,9 @@ def main() -> int: audit_tracing(root) + audit_kb_lib_tracing(root) + audit_kb_lib_symbol_prefixes(root) + + audit_reserved_decoder_scaffolds(root) + audit_token2022_naming(root) + + audit_private_kb_lib_paths_in_active_docs(root) + audit_solana_types(root) + audit_wincode_resolution(root) ) diff --git a/scripts/audit_rust_general_rules.py b/scripts/audit_rust_general_rules.py index 6f05070..c113e14 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: 5 +# version: 6 """Audit mechanically verifiable Rust rules shared by all Rust projects.""" @@ -96,6 +96,7 @@ def audit_file(root: pathlib.Path, path: pathlib.Path) -> list[Violation]: violations.append(Violation("RUST016", relative, index, "re-export aliases are forbidden")) previous_export_line: int | None = None previous_export_visibility: str | None = None + previous_export_path: str | None = None blank_since_export = False for index, line in enumerate(lines, 1): if not line.strip(): @@ -119,12 +120,30 @@ def audit_file(root: pathlib.Path, path: pathlib.Path) -> list[Violation]: "re-export block contains an empty line", ) ) + export_path = line.split(" use ", 1)[1] + if ( + previous_export_line is not None + and previous_export_visibility == visibility + and not blank_since_export + and previous_export_path is not None + and export_path < previous_export_path + ): + violations.append( + Violation( + "RUST023", + relative, + index, + "re-export block is not ordered alphabetically", + ) + ) previous_export_line = index previous_export_visibility = visibility + previous_export_path = export_path blank_since_export = False continue previous_export_line = None previous_export_visibility = None + previous_export_path = None blank_since_export = False if path.name in {"lib.rs", "main.rs"}: for attribute in ("#![warn(missing_docs)]", "#![deny(unreachable_pub)]", "#![forbid(unsafe_code)]"):