v0.1.0-pre.011-fix-01

This commit is contained in:
2026-07-24 15:06:27 +02:00
parent 42e8a203ec
commit 60660ca555
161 changed files with 10665 additions and 977 deletions

View File

@@ -1,5 +1,5 @@
<!-- file: ROADMAP.md -->
<!-- version: 9 -->
<!-- version: 10 -->
# ROADMAP — khadhroony-bot3
@@ -96,7 +96,7 @@
- [x] Maintenir le registre ElGamal comme programme indépendant avec ses deux instructions et son état de compte exact de 64 octets.
- [x] Ajouter le Program ID du registre ElGamal à `kb-program-ids` sans le classer comme surface native.
- [x] Déplacer `ProgramIdEntry` et les fonctions du registre dans `kb-program-ids/src/programs.rs`, avec `lib.rs` limité aux réexports.
- [x] Porter les targets de tracing vers `kb-lib.decoder.spl.token_2022` et `kb-lib.decoder.spl.elgamal_registry`.
- [x] Porter les targets de tracing vers `kb-lib.decoder.spl.token2022` et `kb-lib.decoder.spl.elgamal_registry`.
- [x] Conserver les 55 tests Token2022/ElGamal et leurs matrices machine-readable.
- [x] Valider `kb-program-ids`, les 251 tests de `kb-lib`, Clippy et le workspace avec Cargo sur la machine de développement.
- [x] Poursuivre avec le décodeur Metaplex Token Metadata après validation.
@@ -137,5 +137,8 @@
- [x] Étendre laudit aux lignes vides internes des blocs homogènes `pub use` et `pub(crate) use`.
- [x] Porter les targets de risque, comptes Token et annotations vers `kb-lib.materializer.risk`, `kb-lib.materializer.token` et `kb-lib.materializer.transaction` dans les trois profils.
- [x] Maintenir le fetch HTTP/IPFS/Arweave hors de `kb-lib`, dans une future crate off-chain dédiée.
- [x] Normaliser les symboles fusionnés avec les préfixes `DC`, `MT`, `EX` et `MD`, sans alias de réexport.
- [x] Restaurer les 98 scaffolds de décodeurs avec des constantes `DC_*` uniques et réellement référencées.
- [x] Étendre laudit 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 dinté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.

View File

@@ -1,5 +1,5 @@
<!-- file: RULES.md -->
<!-- version: 19 -->
<!-- version: 20 -->
# Règles spécifiques à `khadhroony-bot3`
@@ -18,6 +18,8 @@ Toute livraison doit exécuter l'audit `python3 scripts/audit_rust_workspace_rul
- Les décodeurs, matérialisateurs et exécuteurs sont des modules de `kb-lib`, pas des crates séparées.
- Le crate de journalisation s'appelle `kb-logging`.
- 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 sappliquent aux constantes, types, traits et fonctions libres exposés à la crate ou hors de la crate.
## Règles Tauri et TypeScript
@@ -113,7 +115,7 @@ Aucun renommage massif de modules n'est autorisé sans étape de contrôle dédi
- Les identifiants Solana/SPL primitifs doivent être tenus à jour dans `registry/core_program_id_seed.toml`.
- Les sysvars et comptes natifs connus ne doivent pas être classés comme surfaces DEX/router.
- `spl_token`, `spl_token_2022` et `associated_token_account` restent dans leurs crates spécialisées.
- `spl_token`, `spl_token2022` et `associated_token_account` restent des surfaces spécialisées ; les noms historiques de crates externes conservent leur graphie officielle.
- `stake_pool` doit être réservé à un futur crate spécialisé plutôt que mélangé avec le programme `stake`.
## Index court de programme

View File

@@ -1,5 +1,5 @@
<!-- file: RUST_RULES.md -->
<!-- version: 3 -->
<!-- version: 4 -->
# Règles Rust générales
@@ -85,10 +85,13 @@ implicit_saturating_sub = "allow"
- Un élément strictement privé à un module n'est pas réexporté et est appelé par son nom local uniquement. Il est interdit d'utiliser un chemin long comme `crate::module::helper` ou `owner_crate::module::helper` pour un helper privé du module courant.
- Dans un sous-module de tests, un élément privé du module parent est appelé via `super::Item`. Un élément `pub` ou `pub(crate)` continue dêtre appelé via le point dentrée de crate le plus court, par exemple `crate::Item`.
- Les exports ne sont jamais groupés avec des accolades. Un type, une fonction, une constante ou un alias correspond à une ligne de réexport distincte.
- Un réexport dun module interne commence par `self::`, y compris dans `lib.rs` ; `use crate::...` est réservé aux références qualifiées dans le code et ne sert pas à construire une façade.
- Les alias `as` sont interdits dans les réexports : le symbole reçoit son nom canonique dans son module propriétaire avant dêtre réexporté sans transformation.
- Un bloc homogène de `pub use` ou `pub(crate) use` ne contient aucune ligne vide et reste ordonné alphabétiquement par symbole réexporté lorsque `rustfmt` ne le réordonne pas.
## Visibilité et API de crate
- Aucun `pub mod` n'est autorisé. Les modules restent privés et l'API est constituée par des réexports explicites.
- Aucun `pub mod` n'est autorisé. Les modules restent privés et l'API est constituée exclusivement par des réexports explicites depuis le point dentrée de la crate.
- Un élément `pub` inaccessible depuis le point d'entrée de sa crate est une erreur de conception, pas un simple avertissement.
- Un élément `pub(crate)` utilisé hors de son module est réexporté au niveau du point d'entrée de la crate.
- Les chemins internes de modules ne font pas partie de l'API stable.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/CORE_PROGRAM_IDS.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Identifiants core Solana et SPL
@@ -58,6 +58,6 @@ Ce fichier sépare les identifiants primitifs Solana/SPL du registre des surface
| `core_spl_single_pool_v1` | `SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE` | `spl_single_pool` | `program` | `kb_decoder_spl_single_pool` | `core_specialized_reserved_current` |
| `core_spl_name_service_v1` | `namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX` | `spl_name_service` | `program` | `kb_decoder_metadata_spl_name_service` | `core_specialized_reserved_current` |
| `core_spl_stake_pool_v1` | `SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy` | `stake_pool` | `program` | `kb_decoder_spl_stake_pool` | `core_specialized_reserved_current` |
| `core_spl_token_2022_v2022` | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | `token2022` | `program` | `kb_decoder_spl_token_2022` | `core_handled` |
| `core_spl_token_2022_elgamal_registry_v1` | `regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg` | `spl_token2022_elgamal_registry` | `program` | `kb_decoder_spl_token_2022` | `core_specialized_reserved_current` |
| `core_spl_token2022_v2022` | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | `token2022` | `program` | `kb_decoder_spl_token_2022` | `core_handled` |
| `core_spl_token2022_elgamal_registry_v1` | `regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg` | `spl_token2022_elgamal_registry` | `program` | `kb_decoder_spl_token_2022` | `core_specialized_reserved_current` |
| `core_spl_token_v1` | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA` | `token` | `program` | `kb_decoder_spl_token` | `core_handled` |

View File

@@ -1,5 +1,5 @@
<!-- file: docs/PROGRAM_REGISTRY_CONTROL.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Contrôle du registre des programmes
@@ -97,8 +97,8 @@ Ces identifiants sont détaillés dans `docs/CORE_PROGRAM_IDS.md`. Ils sont couv
| `core_spl_single_pool_v1` | `SVSPxpvHdN29nkVg9rPapPNDddN5DipNLRUFhyjFThE` | `spl_single_pool` | `program` | `kb_decoder_spl_single_pool` | `core_specialized_reserved_current` |
| `core_spl_name_service_v1` | `namesLPneVptA9Z5rqUDD9tMTWEJwofgaYwp8cawRkX` | `spl_name_service` | `program` | `kb_decoder_metadata_spl_name_service` | `core_specialized_reserved_current` |
| `core_spl_stake_pool_v1` | `SPoo1Ku8WFXoNDMHPsrGSTSG1Y47rzgn41SLUNakuHy` | `stake_pool` | `program` | `kb_decoder_spl_stake_pool` | `core_specialized_reserved_current` |
| `core_spl_token_2022_v2022` | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | `token2022` | `program` | `kb_decoder_spl_token_2022` | `core_handled` |
| `core_spl_token_2022_elgamal_registry_v1` | `regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg` | `spl_token2022_elgamal_registry` | `program` | `kb_decoder_spl_token_2022` | `core_specialized_reserved_current` |
| `core_spl_token2022_v2022` | `TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb` | `token2022` | `program` | `kb_decoder_spl_token_2022` | `core_handled` |
| `core_spl_token2022_elgamal_registry_v1` | `regVYJW7tcT8zipN5YiBvHsvR5jXW1uLFxaHSbugABg` | `spl_token2022_elgamal_registry` | `program` | `kb_decoder_spl_token_2022` | `core_specialized_reserved_current` |
| `core_spl_token_v1` | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA` | `token` | `program` | `kb_decoder_spl_token` | `core_handled` |

View File

@@ -1,236 +1,85 @@
<!-- file: docs/RUST_WORKSPACE_RULE_AUDIT.md -->
<!-- version: 1 -->
<!-- version: 2 -->
# Audit des règles Rust du workspace
Violations détectées : **616**.
Lentrée unique est :
## Synthèse
```bash
python3 scripts/audit_rust_workspace_rules.py
```
| Code | Nombre |
|------------|-------:|
| `RUST010` | 156 |
| `RUST011` | 16 |
| `RUST013` | 19 |
| `RUST021` | 1 |
| `TRACE002` | 32 |
| `TRACE003` | 202 |
| `TRACE004` | 190 |
Elle exécute trois contrôles obligatoires :
## Premiers écarts
1. `audit_rust_general_rules.py` pour les règles Rust réutilisables ;
2. `audit_rust_export_completeness.py` pour la fermeture des façades ;
3. `audit_khadhroony_workspace_rules.py` pour les contrats propres au projet.
- `RUST010` `kb_app_demo/src/demo_backfill.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_backfill.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_backfill.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_config.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_config.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_core_extraction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_core_extraction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_core_extraction.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_decode_replay.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_decode_replay.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_decode_replay.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_execution_solana_core.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_execution_solana_core.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_execution_solana_core.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_execution_spl.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_http.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_http.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_spl_ata.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_spl_token.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_spl_token_2022.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_common.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_common.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_diag.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_pg_core.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_pg_raw.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_sql_replay_candidates.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_ws.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_ws.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_ws.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/demo_ws.rs:993` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/frontend_log.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/lib.rs:13` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/lib.rs:14` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/main.rs:12` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/splash.rs:9` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_app_demo/src/splash.rs:10` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_config/src/settings.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_config/src/settings.rs:1223` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_api/src/contracts.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_metadata_metaplex_token_metadata/src/canonical.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_metadata_metaplex_token_metadata/src/decoder.rs:144` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_metadata_metaplex_token_metadata/src/instruction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_metadata_metaplex_token_metadata/src/instruction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/address_lookup_table.rs:326` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/compute_budget.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/compute_budget.rs:673` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/config.rs:322` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/feature.rs:167` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/loaders.rs:992` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/payload.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/payload.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/slashing.rs:461` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/stake.rs:805` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/system.rs:438` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/vote.rs:707` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/zk_elgamal.rs:522` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_solana_core/src/zk_token_proof.rs:693` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_associated_token_account/src/decoder.rs:335` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_associated_token_account/src/instruction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_associated_token_account/src/instruction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/decoder.rs:95` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/decoder.rs:162` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/registry.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/registry.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/state.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_elgamal_registry/src/state.rs:49` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_memo/src/decoder.rs:160` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_memo/src/memo.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_memo/src/memo.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token/src/decoder.rs:144` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token/src/token.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token/src/token.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/decoder.rs:144` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/state.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/state.rs:916` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/token.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_decoder_spl_token_2022/src/token.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_api/src/execution.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_api/src/executor.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_safety/src/safety.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/nonce.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/transaction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/transaction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/transaction.rs:654` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_execution_solana/src/transaction.rs:655` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/address_lookup_table.rs:321` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/builder.rs:1374` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/native_admin.rs:381` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/precompiles.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/slashing.rs:346` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/stake.rs:1497` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/validation.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/validation.rs:108` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/vote.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_solana_core/src/vote.rs:1846` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_associated_token_account/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_elgamal_registry/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_elgamal_registry/src/builder.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_elgamal_registry/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_memo/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_memo/src/builder.rs:194` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_memo/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token_2022/src/builder.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token_2022/src/confidential.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token_2022/src/confidential.rs:425` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_executor_spl_token_2022/src/intent.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:676` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_logging/src/tracing_runtime.rs:677` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/canonical_transaction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/canonical_transaction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/decoded.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/materialized.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/nomenclature.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/observation.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_model/src/solana.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/backfill.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/backfill.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/backfill.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/core_extraction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/core_extraction.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/core_extraction.rs:8` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/decode_replay.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/decode_replay.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_elgamal_registry_stateful.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_elgamal_registry_stateful.rs:227` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_stateful.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_token_stateful.rs:392` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_pipeline/src/solana_token_stateful.rs:470` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/execution_rpc.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/execution_rpc.rs:2251` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/get_transaction.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/standard_http.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_client.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_client.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_session.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_session.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_session.rs:1219` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_rpc/src/ws_session.rs:1220` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_store_pg/src/queries/core_extraction_queries.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_store_pg/src/queries/core_queries.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_store_pg/src/queries/decode_pipeline_queries.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_store_pg/src/queries/table_diagnostics_queries.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:6` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:7` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:261` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:294` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:299` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:411` — ordinary `use` requires a trait-import justification marker
- `RUST010` `kb_wallet/src/wallet.rs:524` — ordinary `use` requires a trait-import justification marker
- `RUST011` `kb_executor_solana_core/src/lib.rs:129` — grouped re-export is forbidden
- `RUST011` `kb_executor_solana_core/src/lib.rs:137` — grouped re-export is forbidden
- `RUST011` `kb_executor_solana_core/src/lib.rs:145` — grouped re-export is forbidden
- `RUST011` `kb_executor_solana_core/src/lib.rs:159` — grouped re-export is forbidden
- `RUST011` `kb_executor_spl_token/src/lib.rs:29` — grouped re-export is forbidden
- `RUST011` `kb_executor_spl_token_2022/src/lib.rs:16` — grouped re-export is forbidden
- `RUST011` `kb_executor_spl_token_2022/src/lib.rs:47` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:167` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:175` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:180` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:188` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:198` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:204` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:209` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:232` — grouped re-export is forbidden
- `RUST011` `kb_rpc/src/lib.rs:257` — grouped re-export is forbidden
- `RUST013` `kb_decoder_metadata_metaplex_token_metadata/src/canonical.rs:6` — grouped imports are forbidden
- `RUST013` `kb_decoder_spl_token_2022/src/state.rs:916` — grouped imports are forbidden
- `RUST013` `kb_executor_solana_core/src/lib.rs:129` — grouped imports are forbidden
- `RUST013` `kb_executor_solana_core/src/lib.rs:137` — grouped imports are forbidden
- `RUST013` `kb_executor_solana_core/src/lib.rs:145` — grouped imports are forbidden
- `RUST013` `kb_executor_solana_core/src/lib.rs:159` — grouped imports are forbidden
- `RUST013` `kb_executor_spl_token/src/lib.rs:29` — grouped imports are forbidden
- `RUST013` `kb_executor_spl_token_2022/src/confidential.rs:425` — grouped imports are forbidden
- `RUST013` `kb_executor_spl_token_2022/src/lib.rs:16` — grouped imports are forbidden
- `RUST013` `kb_executor_spl_token_2022/src/lib.rs:47` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:167` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:175` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:180` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:188` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:198` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:204` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:209` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:232` — grouped imports are forbidden
- `RUST013` `kb_rpc/src/lib.rs:257` — grouped imports are forbidden
- `RUST021` `kb_app_demo/src/lib.rs:42` — crate-root re-export requires adjacent rustdoc
- `TRACE002` `kb_app_demo/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_metadata_metaplex_token_metadata/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_solana_core/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_associated_token_account/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_elgamal_registry/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_memo/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_token/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
- `TRACE002` `kb_decoder_spl_token_2022/src/lib.rs:1` — TRACING_TARGET must be re-exported with `pub(crate) use`
## Façades et réexports
Le rapport est tronqué aux 200 premiers écarts sur 616.
Tous les modules sont privés avec `mod`. Une API de crate est formée uniquement par des
réexports explicites depuis `lib.rs` ou `main.rs`.
## Stratégie de correction
Les réexports dun module interne utilisent `self::`, ne sont jamais groupés, ne changent
jamais le nom du symbole avec `as` et possèdent une rustdoc adjacente. Un bloc homogène de
`pub use` ou `pub(crate) use` ne contient aucune ligne vide.
La mise en conformité est découpée avant toute nouvelle prérelease :
Laudit de complétude suit les réexports transitifs à travers les façades privées. Il vérifie
donc quun type déclaré dans un sous-module atteint réellement la racine de sa crate sans
exiger un faux accès public au module qui le contient. Les constantes de suivi des scaffolds
de migration restent internes à leur inventaire et ne font pas partie de lAPI publique.
1. `pre.035-delta-fix-002` : séparation des règles et audit automatisé reproductible ;
2. correctifs suivants : points d'entrée de crates, réexports `pub`/`pub(crate)`, rustdocs et chemins `crate::...` ;
3. correctifs suivants : imports de traits et suppression des imports ordinaires/groupés ;
4. correctifs suivants : `DC_METADATA_MTM_TRACING_TARGET`, dépendances `tracing`, macros et matrice de routes ;
5. correctifs suivants : helpers dupliqués et mutualisation inter-crates ;
6. fermeture : `cargo fmt --all`, audit strict, tests workspace et Clippy global.
## Nomenclature de `kb-lib`
| Famille | Constante | Type ou trait | Fonction libre |
|---|---|---|---|
| Décodeur | `DC_` | `Dc` | `decoder_` |
| Matérialiseur | `MT_` | `Mt` | `materializer_` |
| Exécuteur | `EX_` | `Ex` | `executor_` |
| Modèle | `MD_` | `Md` | `model_` |
Les méthodes inhérentes et les helpers strictement privés ne sont pas soumis à un préfixe
global. Les symboles `pub` et `pub(crate)` le sont, car ils peuvent entrer en collision après
la fusion des anciennes crates dans `kb-lib`.
Les 98 frontières de décodeurs encore en attente utilisent des constantes uniques
`DC_<FAMILLE>_<SURFACE>_LEGACY_CRATE` et
`DC_<FAMILLE>_<SURFACE>_MIGRATION_STATUS`. Elles sont référencées par un inventaire interne
pour que `cargo check` ne produise pas davertissements de code mort.
## Tracing
Une crate opérationnelle autonome garde un unique `TRACING_TARGET` dans `constants.rs` et le
réexporte avec :
```rust
pub(crate) use self::constants::TRACING_TARGET;
```
Un composant opérationnel de `kb-lib` utilise un nom préfixé, par exemple
`DC_SPL_TOKEN2022_TRACING_TARGET` ou `MT_TOKEN_ACCOUNTS_TRACING_TARGET`, réexporté
transitivement jusquà `kb-lib/src/lib.rs`. Sa valeur suit exactement le chemin hiérarchique
du composant, par exemple `kb-lib.decoder.spl.token2022`.
## Validation
Laudit strict exige le `Cargo.lock` versionné de lapplication et vérifie exclusivement :
```text
wincode 0.5.5
solana-wincode-varint 1.0.0
```
Une livraison sans `Cargo.lock` peut contrôler le reste avec `--report-only`, mais elle ne
doit pas annoncer laudit strict comme propre tant que le lock réel na pas été utilisé.
La fermeture dune tranche demande ensuite :
```bash
cargo fmt --all
python3 scripts/audit_rust_workspace_rules.py
cargo check --workspace
cargo test --workspace
cargo clippy --workspace --all-targets
```
Aucune nouvelle prérelease ne doit être créée tant que cette séquence n'est pas terminée et validée localement.

View File

@@ -1,5 +1,5 @@
<!-- file: docs/SURFACE_CRATE_MATRIX.md -->
<!-- version: 5 -->
<!-- version: 6 -->
# Matrice des modules réservés
@@ -29,7 +29,7 @@ Ce document liste les crates actuellement présents dans le workspace. Un crate
| `spl_single_pool` | `kb_decoder_spl_single_pool` | `kb_executor_spl_single_pool` |
| `spl_stake_pool` | `kb_decoder_spl_stake_pool` | `kb_executor_spl_stake_pool` |
| `spl_token` | `kb_decoder_spl_token` | `kb_executor_spl_token` |
| `spl_token_2022` | `kb_decoder_spl_token_2022` | `kb_executor_spl_token_2022` |
| `spl_token2022` | `kb_decoder_spl_token_2022` | `kb_executor_spl_token_2022` |
## Amm

View File

@@ -1,5 +1,5 @@
<!-- file: docs/TRACING_CONTRACT.md -->
<!-- version: 20 -->
<!-- version: 21 -->
# Contrat de tracing par crate et composant
@@ -29,7 +29,7 @@ Toute crate opérationnelle hors `kb-lib` qui déclare `tracing.workspace = true
- réexporter la constante depuis sa façade puis appeler les macros avec `target: crate::TRACING_TARGET` ;
- déplacer la granularité interne dans des champs structurés.
`kb-lib` constitue une exception architecturale volontaire : chaque décodeur, matérialiseur ou exécuteur opérationnel possède son propre `constants.rs` et un target hiérarchique `kb-lib.<famille>.<surface>`. La façade de `kb-lib` réexporte chaque target sous un alias interne préfixé afin que plusieurs composants puissent coexister sans collision.
`kb-lib` constitue une exception architecturale volontaire : chaque décodeur, matérialiseur ou exécuteur opérationnel possède son propre `constants.rs` et un target hiérarchique `kb-lib.<famille>.<surface>`. Le target reçoit son nom préfixé canonique dans son module propriétaire, puis la façade de `kb-lib` le réexporte sans alias afin que plusieurs composants puissent coexister sans collision.
Exemple :
@@ -74,7 +74,7 @@ kb-logging
kb-store
```
Laudit `audit_khadhroony_workspace_rules.py` vérifie les targets de crates et les targets hiérarchiques de `kb-lib`. Il interdit également les faux usages `let _target` et impose que chaque macro de `kb-lib` utilise un alias réexporté par la façade.
Laudit `audit_khadhroony_workspace_rules.py` vérifie les targets de crates et les targets hiérarchiques de `kb-lib`. Il interdit également les faux usages `let _target` et impose que chaque macro de `kb-lib` utilise le nom préfixé réexporté sans transformation par la façade.
Les routes sont filtrées au niveau de leur writer plutôt que par un `Filtered` layer distinct. Un seul filtre dadmission agrégé empêche en amont le formatage des événements refusés par toutes les routes. Cette architecture préserve toutes les sorties globales et par crate au-delà de la limite interne de 64 identifiants de filtres de `tracing-subscriber`. Le test `more_than_64_routes_compose_without_filtered_layer_ids` protège explicitement ce contrat.
@@ -161,4 +161,4 @@ Lajout ou la suppression de `tracing.workspace = true` impose dans le même d
4. la mise à jour des tests de contrat ;
5. la mise à jour de la liste ci-dessus.
Pour un composant de `kb-lib`, les mêmes obligations sappliquent au target hiérarchique, à son alias de façade et à ses routes dédiées.
Pour un composant de `kb-lib`, les mêmes obligations sappliquent au target hiérarchique, à son nom préfixé de façade et à ses routes dédiées.

View File

@@ -1,5 +1,5 @@
<!-- file: kb-lib/README.md -->
<!-- version: 7 -->
<!-- version: 8 -->
# kb-lib
@@ -69,7 +69,7 @@ cumulés. Les comptes, autorités, offsets de preuve, suffixes et chemins outer/
ordonnés et exacts. Une transaction échouée produit une intention non commitée. Le parseur public
`decoder_spl_token2022_parse_token2022_state()` distingue Mint, Account et Multisig, conserve la base exacte et expose
les entrées TLV ordonnées sans inventer létat dun programme externe pointé. La matrice normative
est `docs/SPL_TOKEN_2022_MATRIX.json`.
est `docs/SPL_TOKEN2022_MATRIX.json`.
## Décodeur du registre ElGamal
@@ -102,7 +102,7 @@ politique dexécution définitivement interdite. La matrice normative est
- `MtApiEventMaterializer`, `MtApiMaterializerIdentity`, `MtApiMaterializationTransactionPolicy`, `MtApiMaterializerExecutionResult` et `MtApiMaterializedOutput` : contrat complet utilisable par un matérialiseur interne ou externe ;
- `MtLifecycleMaterializer`, `MtAdminMaterializer`, `MtComplianceAuditMaterializer` et `MtStakingMaterializer` : matérialisateurs Solana natifs concrets ;
- `materialize_token2022_admin_state_snapshots()` et `materialize_elgamal_registry_state_snapshot()` : projections stateful dadministration déjà exposées ;
- `materializer_admin_materialize_token2022_state_snapshots()` et `materializer_admin_materialize_elgamal_registry_state_snapshot()` : projections stateful dadministration déjà exposées ;
- `DcSolanaCoreDecoder` : décodeur concret natif ;
- `DcSplMemoDecoder` : décodeur exact des trois générations SPL Memo ;
- `DcSplTokenDecoder` : décodeur exact du programme SPL Token classique ;

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/decoder.rs
// version: 6
// version: 7
//! Consolidated decoder modules.
@@ -33,6 +33,38 @@ 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,
];
/// Approve Collection Authority discriminator.
pub(crate) use self::metadata::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR;
/// Approve Use Authority discriminator.
@@ -95,7 +127,6 @@ pub(crate) use self::metadata::DC_METADATA_MTM_LOCK_DISCRIMINATOR;
pub(crate) use self::metadata::DC_METADATA_MTM_MAX_BASE64_BYTES;
/// Maximum number of instruction accounts accepted by this decoder.
pub(crate) use self::metadata::DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS;
/// Tracing target for this decoder.
/// Maximum retained instruction payload size.
pub(crate) use self::metadata::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES;
/// Migrate discriminator.

View File

@@ -1,6 +1,12 @@
// file: kb-lib/src/decoder/adapter.rs
// version: 1
// version: 2
//! `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,
)];

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/adapter/saber_decimal_wrapper.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_adapter_saber_decimal_wrapper`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_adapter_saber_decimal_wrapper";
pub(crate) const DC_ADAPTER_SABER_DECIMAL_WRAPPER_LEGACY_CRATE: &str =
"kb_decoder_adapter_saber_decimal_wrapper";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_ADAPTER_SABER_DECIMAL_WRAPPER_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,7 +1,19 @@
// file: kb-lib/src/decoder/admin.rs
// version: 1
// version: 2
//! `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,
),
];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/admin/jupiter_lock.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_admin_jupiter_lock`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_admin_jupiter_lock";
pub(crate) const DC_ADMIN_JUPITER_LOCK_LEGACY_CRATE: &str = "kb_decoder_admin_jupiter_lock";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_ADMIN_JUPITER_LOCK_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/admin/pump_fees.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_admin_pump_fees`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_admin_pump_fees";
pub(crate) const DC_ADMIN_PUMP_FEES_LEGACY_CRATE: &str = "kb_decoder_admin_pump_fees";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_ADMIN_PUMP_FEES_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/decoder/amm.rs
// version: 1
// version: 2
//! `amm` decoder family.
@@ -29,3 +29,108 @@ mod virtuals;
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),
];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/aldrin_v1.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_aldrin_v1`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v1";
pub(crate) const DC_AMM_ALDRIN_V1_LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v1";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_ALDRIN_V1_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/aldrin_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_aldrin_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v2";
pub(crate) const DC_AMM_ALDRIN_V2_LEGACY_CRATE: &str = "kb_decoder_amm_aldrin_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_ALDRIN_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/alphaq.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_alphaq`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_alphaq";
pub(crate) const DC_AMM_ALPHAQ_LEGACY_CRATE: &str = "kb_decoder_amm_alphaq";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_ALPHAQ_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/believe.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_believe`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_believe";
pub(crate) const DC_AMM_BELIEVE_LEGACY_CRATE: &str = "kb_decoder_amm_believe";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_BELIEVE_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/bonk_swap.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_bonk_swap`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_bonk_swap";
pub(crate) const DC_AMM_BONK_SWAP_LEGACY_CRATE: &str = "kb_decoder_amm_bonk_swap";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_BONK_SWAP_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/fluxbeam.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_fluxbeam`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_fluxbeam";
pub(crate) const DC_AMM_FLUXBEAM_LEGACY_CRATE: &str = "kb_decoder_amm_fluxbeam";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_FLUXBEAM_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/goon_fi.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_goon_fi`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_goon_fi";
pub(crate) const DC_AMM_GOON_FI_LEGACY_CRATE: &str = "kb_decoder_amm_goon_fi";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_GOON_FI_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/goosefx_gamma.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_goosefx_gamma`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_gamma";
pub(crate) const DC_AMM_GOOSEFX_GAMMA_LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_gamma";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_GOOSEFX_GAMMA_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/goosefx_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_goosefx_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_v2";
pub(crate) const DC_AMM_GOOSEFX_V2_LEGACY_CRATE: &str = "kb_decoder_amm_goosefx_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_GOOSEFX_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/guac_swap.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_guac_swap`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_guac_swap";
pub(crate) const DC_AMM_GUAC_SWAP_LEGACY_CRATE: &str = "kb_decoder_amm_guac_swap";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_GUAC_SWAP_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/lifinity_swap_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_lifinity_swap_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_lifinity_swap_v2";
pub(crate) const DC_AMM_LIFINITY_SWAP_V2_LEGACY_CRATE: &str = "kb_decoder_amm_lifinity_swap_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_LIFINITY_SWAP_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/amm/metadao_futarchy_amm.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_metadao_futarchy_amm`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_metadao_futarchy_amm";
pub(crate) const DC_AMM_METADAO_FUTARCHY_AMM_LEGACY_CRATE: &str =
"kb_decoder_amm_metadao_futarchy_amm";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_METADAO_FUTARCHY_AMM_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/metadao_v0_5.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_metadao_v0_5`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_metadao_v0_5";
pub(crate) const DC_AMM_METADAO_V0_5_LEGACY_CRATE: &str = "kb_decoder_amm_metadao_v0_5";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_METADAO_V0_5_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/meteora_damm_v1.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_meteora_damm_v1`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v1";
pub(crate) const DC_AMM_METEORA_DAMM_V1_LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v1";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_METEORA_DAMM_V1_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/meteora_damm_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_meteora_damm_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v2";
pub(crate) const DC_AMM_METEORA_DAMM_V2_LEGACY_CRATE: &str = "kb_decoder_amm_meteora_damm_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_METEORA_DAMM_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/obric_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_obric_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_obric_v2";
pub(crate) const DC_AMM_OBRIC_V2_LEGACY_CRATE: &str = "kb_decoder_amm_obric_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_OBRIC_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/one_dex.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_one_dex`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_one_dex";
pub(crate) const DC_AMM_ONE_DEX_LEGACY_CRATE: &str = "kb_decoder_amm_one_dex";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_ONE_DEX_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/pump_swap.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_pump_swap`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_pump_swap";
pub(crate) const DC_AMM_PUMP_SWAP_LEGACY_CRATE: &str = "kb_decoder_amm_pump_swap";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_PUMP_SWAP_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/raydium_lp_v4.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_raydium_lp_v4`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_raydium_lp_v4";
pub(crate) const DC_AMM_RAYDIUM_LP_V4_LEGACY_CRATE: &str = "kb_decoder_amm_raydium_lp_v4";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_RAYDIUM_LP_V4_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/solfi.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_solfi`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_solfi";
pub(crate) const DC_AMM_SOLFI_LEGACY_CRATE: &str = "kb_decoder_amm_solfi";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_SOLFI_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/solfi_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_solfi_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_solfi_v2";
pub(crate) const DC_AMM_SOLFI_V2_LEGACY_CRATE: &str = "kb_decoder_amm_solfi_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_SOLFI_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/vertigo.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_vertigo`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_vertigo";
pub(crate) const DC_AMM_VERTIGO_LEGACY_CRATE: &str = "kb_decoder_amm_vertigo";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_VERTIGO_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/virtuals.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_virtuals`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_virtuals";
pub(crate) const DC_AMM_VIRTUALS_LEGACY_CRATE: &str = "kb_decoder_amm_virtuals";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_VIRTUALS_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/woofi.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_woofi`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_woofi";
pub(crate) const DC_AMM_WOOFI_LEGACY_CRATE: &str = "kb_decoder_amm_woofi";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_WOOFI_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/zero_fi.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_zero_fi`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_zero_fi";
pub(crate) const DC_AMM_ZERO_FI_LEGACY_CRATE: &str = "kb_decoder_amm_zero_fi";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_ZERO_FI_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/amm/zora.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_amm_zora`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_amm_zora";
pub(crate) const DC_AMM_ZORA_LEGACY_CRATE: &str = "kb_decoder_amm_zora";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_AMM_ZORA_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,6 +1,12 @@
// file: kb-lib/src/decoder/anchor.rs
// version: 1
// version: 2
//! `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,
)];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/anchor/core.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_anchor`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_anchor";
pub(crate) const DC_ANCHOR_CORE_LEGACY_CRATE: &str = "kb_decoder_anchor";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_ANCHOR_CORE_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/decoder/bridge.rs
// version: 1
// version: 2
//! `bridge` decoder family.
@@ -7,3 +7,23 @@ mod circle_cctp_token_messenger_minter;
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,
),
];

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_bridge_circle_cctp_token_messenger_minter`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_bridge_circle_cctp_token_messenger_minter";
pub(crate) const DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_LEGACY_CRATE: &str =
"kb_decoder_bridge_circle_cctp_token_messenger_minter";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/bridge/circle_cctp_token_messenger_minter_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_bridge_circle_cctp_token_messenger_minter_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_bridge_circle_cctp_token_messenger_minter_v2";
pub(crate) const DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_LEGACY_CRATE: &str =
"kb_decoder_bridge_circle_cctp_token_messenger_minter_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_BRIDGE_CIRCLE_CCTP_TOKEN_MESSENGER_MINTER_V2_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/bridge/layer_zero_endpoint.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_bridge_layer_zero_endpoint`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_bridge_layer_zero_endpoint";
pub(crate) const DC_BRIDGE_LAYER_ZERO_ENDPOINT_LEGACY_CRATE: &str =
"kb_decoder_bridge_layer_zero_endpoint";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_BRIDGE_LAYER_ZERO_ENDPOINT_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/bridge/layer_zero_executor.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_bridge_layer_zero_executor`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_bridge_layer_zero_executor";
pub(crate) const DC_BRIDGE_LAYER_ZERO_EXECUTOR_LEGACY_CRATE: &str =
"kb_decoder_bridge_layer_zero_executor";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_BRIDGE_LAYER_ZERO_EXECUTOR_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/decoder/clmm.rs
// version: 1
// version: 2
//! `clmm` decoder family.
@@ -9,3 +9,31 @@ mod orca_whirlpool;
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,
),
];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/clmm/byreal.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_clmm_byreal`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_clmm_byreal";
pub(crate) const DC_CLMM_BYREAL_LEGACY_CRATE: &str = "kb_decoder_clmm_byreal";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_CLMM_BYREAL_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/clmm/fusion.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_clmm_fusion`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_clmm_fusion";
pub(crate) const DC_CLMM_FUSION_LEGACY_CRATE: &str = "kb_decoder_clmm_fusion";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_CLMM_FUSION_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/clmm/orca_whirlpool.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_clmm_orca_whirlpool`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_clmm_orca_whirlpool";
pub(crate) const DC_CLMM_ORCA_WHIRLPOOL_LEGACY_CRATE: &str = "kb_decoder_clmm_orca_whirlpool";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_CLMM_ORCA_WHIRLPOOL_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/clmm/pancake_swap.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_clmm_pancake_swap`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_clmm_pancake_swap";
pub(crate) const DC_CLMM_PANCAKE_SWAP_LEGACY_CRATE: &str = "kb_decoder_clmm_pancake_swap";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_CLMM_PANCAKE_SWAP_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/clmm/raydium.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_clmm_raydium`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_clmm_raydium";
pub(crate) const DC_CLMM_RAYDIUM_LEGACY_CRATE: &str = "kb_decoder_clmm_raydium";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_CLMM_RAYDIUM_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/clmm/stabble.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_clmm_stabble`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_clmm_stabble";
pub(crate) const DC_CLMM_STABBLE_LEGACY_CRATE: &str = "kb_decoder_clmm_stabble";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_CLMM_STABBLE_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,6 +1,12 @@
// file: kb-lib/src/decoder/cpmm.rs
// version: 1
// version: 2
//! `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,
)];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/cpmm/raydium.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_cpmm_raydium`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_cpmm_raydium";
pub(crate) const DC_CPMM_RAYDIUM_LEGACY_CRATE: &str = "kb_decoder_cpmm_raydium";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_CPMM_RAYDIUM_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,6 +1,12 @@
// file: kb-lib/src/decoder/dlmm.rs
// version: 1
// version: 2
//! `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,
)];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/dlmm/meteora.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_dlmm_meteora`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_dlmm_meteora";
pub(crate) const DC_DLMM_METEORA_LEGACY_CRATE: &str = "kb_decoder_dlmm_meteora";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_DLMM_METEORA_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,7 +1,19 @@
// file: kb-lib/src/decoder/fees.rs
// version: 1
// version: 2
//! `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,
),
];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/fees/bags_fee_share_v1.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_fees_bags_fee_share_v1`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v1";
pub(crate) const DC_FEES_BAGS_FEE_SHARE_V1_LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v1";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_FEES_BAGS_FEE_SHARE_V1_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/fees/bags_fee_share_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_fees_bags_fee_share_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v2";
pub(crate) const DC_FEES_BAGS_FEE_SHARE_V2_LEGACY_CRATE: &str = "kb_decoder_fees_bags_fee_share_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_FEES_BAGS_FEE_SHARE_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,6 +1,12 @@
// file: kb-lib/src/decoder/governance.rs
// version: 1
// version: 2
//! `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,
)];

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/governance/metadao_bid_wall.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_governance_metadao_bid_wall`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_governance_metadao_bid_wall";
pub(crate) const DC_GOVERNANCE_METADAO_BID_WALL_LEGACY_CRATE: &str =
"kb_decoder_governance_metadao_bid_wall";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_GOVERNANCE_METADAO_BID_WALL_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/decoder/launchpad.rs
// version: 1
// version: 2
//! `launchpad` decoder family.
@@ -12,3 +12,43 @@ mod printr;
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,
),
];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/launchpad/boop_fun.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_launchpad_boop_fun`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_launchpad_boop_fun";
pub(crate) const DC_LAUNCHPAD_BOOP_FUN_LEGACY_CRATE: &str = "kb_decoder_launchpad_boop_fun";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LAUNCHPAD_BOOP_FUN_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/launchpad/metadao_ico.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_launchpad_metadao_ico`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_launchpad_metadao_ico";
pub(crate) const DC_LAUNCHPAD_METADAO_ICO_LEGACY_CRATE: &str = "kb_decoder_launchpad_metadao_ico";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LAUNCHPAD_METADAO_ICO_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/launchpad/meteora_dbc.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_launchpad_meteora_dbc`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_launchpad_meteora_dbc";
pub(crate) const DC_LAUNCHPAD_METEORA_DBC_LEGACY_CRATE: &str = "kb_decoder_launchpad_meteora_dbc";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LAUNCHPAD_METEORA_DBC_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/launchpad/moonit.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_launchpad_moonit`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_launchpad_moonit";
pub(crate) const DC_LAUNCHPAD_MOONIT_LEGACY_CRATE: &str = "kb_decoder_launchpad_moonit";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LAUNCHPAD_MOONIT_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/launchpad/orca_wavebreak.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_launchpad_orca_wavebreak`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_launchpad_orca_wavebreak";
pub(crate) const DC_LAUNCHPAD_ORCA_WAVEBREAK_LEGACY_CRATE: &str =
"kb_decoder_launchpad_orca_wavebreak";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LAUNCHPAD_ORCA_WAVEBREAK_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/launchpad/printr.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_launchpad_printr`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_launchpad_printr";
pub(crate) const DC_LAUNCHPAD_PRINTR_LEGACY_CRATE: &str = "kb_decoder_launchpad_printr";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LAUNCHPAD_PRINTR_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/launchpad/pump_fun.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_launchpad_pump_fun`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_launchpad_pump_fun";
pub(crate) const DC_LAUNCHPAD_PUMP_FUN_LEGACY_CRATE: &str = "kb_decoder_launchpad_pump_fun";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LAUNCHPAD_PUMP_FUN_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/launchpad/pump_pumpup_ai.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_launchpad_pump_pumpup_ai`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_launchpad_pump_pumpup_ai";
pub(crate) const DC_LAUNCHPAD_PUMP_PUMPUP_AI_LEGACY_CRATE: &str =
"kb_decoder_launchpad_pump_pumpup_ai";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LAUNCHPAD_PUMP_PUMPUP_AI_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/launchpad/raydium_launchlab.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_launchpad_raydium_launchlab`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_launchpad_raydium_launchlab";
pub(crate) const DC_LAUNCHPAD_RAYDIUM_LAUNCHLAB_LEGACY_CRATE: &str =
"kb_decoder_launchpad_raydium_launchlab";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LAUNCHPAD_RAYDIUM_LAUNCHLAB_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/decoder/lending.rs
// version: 1
// version: 2
//! `lending` decoder family.
@@ -10,3 +10,35 @@ mod jupiter_lend_flash_loan;
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,
),
];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/lending/clone.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_lending_clone`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_lending_clone";
pub(crate) const DC_LENDING_CLONE_LEGACY_CRATE: &str = "kb_decoder_lending_clone";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LENDING_CLONE_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/lending/jupiter_lend_borrow.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_borrow`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_borrow";
pub(crate) const DC_LENDING_JUPITER_LEND_BORROW_LEGACY_CRATE: &str =
"kb_decoder_lending_jupiter_lend_borrow";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LENDING_JUPITER_LEND_BORROW_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/lending/jupiter_lend_earn.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_earn`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_earn";
pub(crate) const DC_LENDING_JUPITER_LEND_EARN_LEGACY_CRATE: &str =
"kb_decoder_lending_jupiter_lend_earn";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LENDING_JUPITER_LEND_EARN_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/lending/jupiter_lend_flash_loan.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_flash_loan`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_flash_loan";
pub(crate) const DC_LENDING_JUPITER_LEND_FLASH_LOAN_LEGACY_CRATE: &str =
"kb_decoder_lending_jupiter_lend_flash_loan";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LENDING_JUPITER_LEND_FLASH_LOAN_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/lending/jupiter_lend_liquidity.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_lending_jupiter_lend_liquidity`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_lending_jupiter_lend_liquidity";
pub(crate) const DC_LENDING_JUPITER_LEND_LIQUIDITY_LEGACY_CRATE: &str =
"kb_decoder_lending_jupiter_lend_liquidity";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LENDING_JUPITER_LEND_LIQUIDITY_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/lending/kamino.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_lending_kamino`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_lending_kamino";
pub(crate) const DC_LENDING_KAMINO_LEGACY_CRATE: &str = "kb_decoder_lending_kamino";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LENDING_KAMINO_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/lending/marginfi_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_lending_marginfi_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_lending_marginfi_v2";
pub(crate) const DC_LENDING_MARGINFI_V2_LEGACY_CRATE: &str = "kb_decoder_lending_marginfi_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LENDING_MARGINFI_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,6 +1,12 @@
// file: kb-lib/src/decoder/lock.rs
// version: 1
// version: 2
//! `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,
)];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/lock/raydium_lp.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_lock_raydium_lp`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_lock_raydium_lp";
pub(crate) const DC_LOCK_RAYDIUM_LP_LEGACY_CRATE: &str = "kb_decoder_lock_raydium_lp";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_LOCK_RAYDIUM_LP_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,11 +1,17 @@
// file: kb-lib/src/decoder/metadata.rs
// version: 2
// version: 3
//! `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,
)];
/// Approve Collection Authority discriminator.
pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_APPROVE_COLLECTION_AUTHORITY_DISCRIMINATOR;
/// Approve Use Authority discriminator.
@@ -68,7 +74,6 @@ pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_LOCK_DISCRIMINATOR
pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_MAX_BASE64_BYTES;
/// Maximum number of instruction accounts accepted by this decoder.
pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS;
/// Tracing target for this decoder.
/// Maximum retained instruction payload size.
pub(crate) use self::metaplex_token_metadata::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES;
/// Migrate discriminator.

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/decoder/metadata/metaplex_token_metadata.rs
// version: 2
// version: 3
//! Contextual instruction and bounded account decoder for Metaplex Token Metadata.
@@ -71,7 +71,6 @@ pub(crate) use self::constants::DC_METADATA_MTM_LOCK_DISCRIMINATOR;
pub(crate) use self::constants::DC_METADATA_MTM_MAX_BASE64_BYTES;
/// Maximum number of instruction accounts accepted by this decoder.
pub(crate) use self::constants::DC_METADATA_MTM_MAX_INSTRUCTION_ACCOUNTS;
/// Tracing target for this decoder.
/// Maximum retained instruction payload size.
pub(crate) use self::constants::DC_METADATA_MTM_MAX_INSTRUCTION_BYTES;
/// Migrate discriminator.

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/metadata/spl_name_service.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_metadata_spl_name_service`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_metadata_spl_name_service";
pub(crate) const DC_METADATA_SPL_NAME_SERVICE_LEGACY_CRATE: &str =
"kb_decoder_metadata_spl_name_service";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_METADATA_SPL_NAME_SERVICE_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,6 +1,12 @@
// file: kb-lib/src/decoder/nft.rs
// version: 1
// version: 2
//! `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,
)];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/nft/metaplex_bubblegum.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_nft_metaplex_bubblegum`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_nft_metaplex_bubblegum";
pub(crate) const DC_NFT_METAPLEX_BUBBLEGUM_LEGACY_CRATE: &str = "kb_decoder_nft_metaplex_bubblegum";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_NFT_METAPLEX_BUBBLEGUM_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,8 +1,24 @@
// file: kb-lib/src/decoder/orderbook.rs
// version: 1
// version: 2
//! `orderbook` decoder family.
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,
),
];

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/orderbook/jupiter_limit_order.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_orderbook_jupiter_limit_order`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_orderbook_jupiter_limit_order";
pub(crate) const DC_ORDERBOOK_JUPITER_LIMIT_ORDER_LEGACY_CRATE: &str =
"kb_decoder_orderbook_jupiter_limit_order";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_ORDERBOOK_JUPITER_LIMIT_ORDER_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/orderbook/jupiter_limit_order_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_orderbook_jupiter_limit_order_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_orderbook_jupiter_limit_order_v2";
pub(crate) const DC_ORDERBOOK_JUPITER_LIMIT_ORDER_V2_LEGACY_CRATE: &str =
"kb_decoder_orderbook_jupiter_limit_order_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_ORDERBOOK_JUPITER_LIMIT_ORDER_V2_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/orderbook/openbook_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_orderbook_openbook_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_orderbook_openbook_v2";
pub(crate) const DC_ORDERBOOK_OPENBOOK_V2_LEGACY_CRATE: &str = "kb_decoder_orderbook_openbook_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_ORDERBOOK_OPENBOOK_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,8 +1,24 @@
// file: kb-lib/src/decoder/perpetuals.rs
// version: 1
// version: 2
//! `perpetuals` decoder family.
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,
),
];

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/perpetuals/drift_v2.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_perpetuals_drift_v2`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_perpetuals_drift_v2";
pub(crate) const DC_PERPETUALS_DRIFT_V2_LEGACY_CRATE: &str = "kb_decoder_perpetuals_drift_v2";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_PERPETUALS_DRIFT_V2_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/perpetuals/jupiter.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_perpetuals_jupiter`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_perpetuals_jupiter";
pub(crate) const DC_PERPETUALS_JUPITER_LEGACY_CRATE: &str = "kb_decoder_perpetuals_jupiter";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_PERPETUALS_JUPITER_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,10 +1,10 @@
// file: kb-lib/src/decoder/perpetuals/zeta.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_perpetuals_zeta`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_perpetuals_zeta";
pub(crate) const DC_PERPETUALS_ZETA_LEGACY_CRATE: &str = "kb_decoder_perpetuals_zeta";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_PERPETUALS_ZETA_MIGRATION_STATUS: &str = "source-preserved-pending-port";

View File

@@ -1,5 +1,5 @@
// file: kb-lib/src/decoder/router.rs
// version: 1
// version: 2
//! `router` decoder family.
@@ -9,3 +9,31 @@ mod jupiter_aggregator_v6;
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,
),
];

View File

@@ -1,10 +1,12 @@
// file: kb-lib/src/decoder/router/dflow_aggregator_v4.rs
// version: 1
// version: 2
//! Migration boundary for legacy crate `kb_decoder_router_dflow_aggregator_v4`.
/// Legacy crate name retained for migration and compatibility tracking.
const LEGACY_CRATE: &str = "kb_decoder_router_dflow_aggregator_v4";
pub(crate) const DC_ROUTER_DFLOW_AGGREGATOR_V4_LEGACY_CRATE: &str =
"kb_decoder_router_dflow_aggregator_v4";
/// Current porting status.
const MIGRATION_STATUS: &str = "source-preserved-pending-port";
pub(crate) const DC_ROUTER_DFLOW_AGGREGATOR_V4_MIGRATION_STATUS: &str =
"source-preserved-pending-port";

Some files were not shown because too many files have changed in this diff Show More