11 KiB
11 KiB
ROADMAP — khadhroony-bot3
0.1.0 — Consolidation du workspace
- Créer les dix crates initiales du workspace avec le nom canonique
kb-wallet. - Regrouper les contrats decoder/executor/materializer dans
kb-lib. - Générer l’arborescence des modules à partir des anciennes crates.
- Conserver une copie de référence complète de
khadhroony-bot2. - Restaurer l’architecture modulaire de
kb-coreà partir dekb_core, aveclib.rslimité aux modules et réexports. - Porter exactement les contrats publics de
kb_decoder_api. - Porter exactement les contrats publics des APIs d’exécution et de matérialisation.
- Porter les modèles de
kb_modelverskb-lib. - Porter les décodeurs Solana core, SPL et Metaplex déjà implémentés dans bot2.
- Porter leurs matérialisateurs déjà implémentés dans bot2.
- Porter leurs exécuteurs.
- Fusionner
kb_store_coreetkb_store_pgdanskb-store. - Adapter
kb-pipelineaux nouveaux chemins publics. - Adapter
kb-app-demoet rétablir les validations fonctionnelles. - Créer ultérieurement une crate off-chain dédiée au fetch borné HTTP/IPFS/Arweave des URI de metadata, séparée des décodeurs, matérialisateurs et du replay canonique on-chain.
- Réorganiser les chemins d’export TS‑RS de
kb-libdans une tranche dédiée, en conservant../frontend/ts/bindings/comme préfixe de base. - Auditer rétrospectivement la couverture historique des décodeurs et matérialisateurs.
0.1.0-pre.002 — Contrats fondamentaux consolidés
- Porter les modèles partagés de
kb_modeldanskb-lib. - Porter les contrats publics de décodage dans
kb-lib::decoder::api. - Porter les contrats publics de matérialisation dans
kb-lib::materializer::api. - Porter les contrats publics d'exécution dans
kb-lib::executor::api. - Maintenir
lib.rscomme façade sans implémentation métier. - Valider le workspace avec Cargo sur la machine de développement.
0.1.0-pre.003 — Réécriture de kb-store
- Remplacer le scaffold par une architecture intégrée contrats/adaptateurs.
- Porter les DTO, entités, traits et validations store-neutral.
- Porter l’adaptateur PostgreSQL, ses requêtes, diagnostics et initialisations idempotentes.
- Conserver
MdCoreInstructionReplayInputdanskb-libet le réexporter depuiskb-store. - Supprimer la dépendance directe de
kb-storeverskb-config. - Adapter les règles bot2 devenues incompatibles avec l’architecture bot3.
- Valider
cargo check, les 84 tests et Clippy pourkb-store, puiscargo check --workspace. - Valider
cargo test --workspaceetcargo clippy --workspace --all-targets. - Valider les 84 tests PostgreSQL réels avec
KB_POSTGRES_TEST_URL.
0.1.0-pre.004 — Décodeur Solana Core dans kb-lib
- Remplacer le scaffold
kb-lib::decoder::solana::corepar le décodeur maximal validé de bot2. - Conserver les 18 surfaces natives, leurs 121 déclarations de couverture et leurs tests.
- Adapter les contrats vers les réexports de
kb-libsans dépendance verskb-store. - Préfixer les symboles internes afin d’éviter les collisions avec les futurs décodeurs fusionnés.
- Déclarer le target hiérarchique
kb-lib.decoder.solana.core. - Valider
cargo check -p kb-lib, les 169 tests dekb-libet les deux audits Rust. - Valider Clippy et l’ensemble du workspace sur la machine de développement.
- Poursuivre avec SPL Memo après validation.
0.1.0-pre.005 — Décodeur SPL Memo dans kb-lib
- Remplacer le scaffold
kb-lib::decoder::spl::memopar le décodeur validé de bot2. - Conserver les générations v1, v3 et v4, leurs règles distinctes et les 9 tests.
- Ajouter les trois Program IDs canoniques dans
kb-program-idssans les classer comme natifs. - Préserver le payload borné, le SHA-256, les comptes ordonnés et les statuts non commités.
- Porter la matrice machine-readable
docs/SPL_MEMO_MATRIX.json. - Valider
kb-program-ids,kb-libet le workspace avec Cargo sur la machine de développement. - Poursuivre avec SPL Token classique après validation.
0.1.0-pre.006 — Décodeur SPL Token classique dans kb-lib
- Remplacer le scaffold
kb-lib::decoder::spl::tokenpar le décodeur maximal validé de bot2. - Conserver les 28 tags publiés par
spl-token-interface 3.0.0et les huit tests différentiels. - Préserver montants bruts, comptes ordonnés, autorités simple/multisig, suffixes et statuts non commités.
- Conserver les bornes de
Batch, ses chemins enfants et le refus des batches imbriqués. - Porter le target de tracing vers
kb-lib.decoder.spl.token. - Rendre la contrainte
wincode 0.5.5etsolana-wincode-varint 1.0.0vérifiable par l’audit workspace. - Valider
kb-program-ids,kb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - Poursuivre avec le décodeur SPL Associated Token Account après validation.
0.1.0-pre.007 — Décodeur SPL Associated Token Account dans kb-lib
- Remplacer le scaffold
kb-lib::decoder::spl::associated_token_accountpar le décodeur exact validé de bot2. - Conserver
Create,CreateIdempotent,RecoverNestedet la forme historiqueCreateà payload vide. - Préserver l’ordre des comptes, les flags, doublons, chemins outer/inner et statuts non commités.
- Valider les PDA canoniques
[wallet, token_program, mint]sans remplacer les adresses observées. - Distinguer explicitement SPL Token classique et Token‑2022 sans décoder leurs états ni extensions.
- Conserver les dix tests différentiels et la matrice machine-readable ATA.
- Porter le target de tracing vers
kb-lib.decoder.spl.associated_token_account. - Valider
kb-program-ids, les 196 tests dekb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - Poursuivre avec les décodeurs Token‑2022 et registre ElGamal après validation.
0.1.0-pre.008 — Décodeurs Token‑2022 et registre ElGamal dans kb-lib
- Remplacer les scaffolds
token2022etelgamal_registrypar les décodeurs exacts validés de bot2. - Conserver les 48 enveloppes Token‑2022, les sous-instructions d’extensions identifiables et les interfaces Metadata/Group incorporées.
- Porter le parseur borné des états Mint, Account et Multisig avec leurs entrées TLV ordonnées.
- Maintenir le registre ElGamal comme programme indépendant avec ses deux instructions et son état de compte exact de 64 octets.
- Ajouter le Program ID du registre ElGamal à
kb-program-idssans le classer comme surface native. - Déplacer
ProgramIdEntryet les fonctions du registre danskb-program-ids/src/programs.rs, aveclib.rslimité aux réexports. - Porter les targets de tracing vers
kb-lib.decoder.spl.token_2022etkb-lib.decoder.spl.elgamal_registry. - Conserver les 55 tests Token‑2022/ElGamal et leurs matrices machine-readable.
- Valider
kb-program-ids, les 251 tests dekb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - Poursuivre avec le décodeur Metaplex Token Metadata après validation.
0.1.0-pre.009 — Décodeur Metaplex Token Metadata dans kb-lib
- Remplacer le scaffold
kb-lib::decoder::metadata::metaplex_token_metadatapar le décodeur maximal validé de bot2. - Conserver l’inventaire exhaustif des 58 discriminateurs d’instructions
0..=57, y compris les variantes historiques. - Conserver l’inventaire exhaustif des 15 variantes de comptes
Key 0..=14, avec rejet explicite deUninitialized. - Porter les parseurs bornés de Metadata, Edition, Master Edition, Edition Marker, Token Record, records d’autorité et de délégation, escrow et Reservation List.
- Préserver les validations d’owner, de PDA, de bump, de longueur, de suffixe, de comptes ordonnés et de provenance.
- Maintenir les layouts historiques matérialisables avec lifecycle explicite mais définitivement non exécutables.
- Ajouter le Program ID Metaplex Token Metadata à
kb-program-idssans le classer comme surface native. - Porter le target de tracing vers
kb-lib.decoder.metadata.metaplex_token_metadata. - Conserver les 69 tests Metaplex et la matrice machine-readable exhaustive.
- Valider
kb-program-ids, les 320 tests dekb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - Poursuivre avec les matérialisateurs après validation du port des décodeurs prioritaires.
0.1.0-pre.010 — Matérialisateurs Solana natifs dans kb-lib
- Porter
MtLifecycleMaterializer,MtAdminMaterializer,MtComplianceAuditMaterializeretMtStakingMaterializerdans les modules consolidés dekb-lib. - Conserver leurs 50 tests de projections natives, de politique de transaction et d’idempotence.
- Réexporter les types concrets et les fonctions stateful publiques depuis la façade de
kb-lib. - Ajouter un test d’intégration aval prouvant qu’un futur crate externe peut implémenter
MtApiEventMaterializeravec la seule API publique. - Porter les targets vers
kb-lib.materializer.admin,kb-lib.materializer.compliance,kb-lib.materializer.lifecycleetkb-lib.materializer.staking. - Conserver les identités de processor historiques afin de préserver les clés de replay et d’idempotence existantes.
- Ajouter la règle d’ordre et d’absence de ligne vide interne dans les blocs de réexports publics.
- Valider les 370 tests unitaires et le test d’intégration de
kb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - Poursuivre avec les matérialisateurs Memo, SPL Token, ATA, Token‑2022, registre ElGamal et Metaplex.
0.1.0-pre.011 — Matérialisateurs SPL et Metaplex dans kb-lib
- Porter
MtTransactionAnnotationMaterializer,MtTokenAccountsMaterializer,MtFeesMaterializer,MtRiskMaterializeretMtMetadataMaterializer. - Conserver leurs 45 tests historiques, en plus des 370 tests unitaires déjà validés.
- Réexporter à la racine les cinq types concrets, les fonctions de snapshots Token‑2022/Metaplex et les types canoniques Metaplex nécessaires à leurs signatures publiques.
- Rendre privée toute l’arborescence
kb-lib::materializeret interdire mécaniquement tout nouveaupub moddans cette frontière. - Étendre les tests aval aux trois contrats d’extension publics :
DcApiProtocolDecoder,MtApiEventMaterializeretExApiInstructionExecutor. - Étendre l’audit aux lignes vides internes des blocs homogènes
pub useetpub(crate) use. - Porter les targets de risque, comptes Token et annotations vers
kb-lib.materializer.risk,kb-lib.materializer.tokenetkb-lib.materializer.transactiondans les trois profils. - Maintenir le fetch HTTP/IPFS/Arweave hors de
kb-lib, dans une future crate off-chain dédiée. - Valider les 415 tests unitaires et les trois tests d’intégration de
kb-lib, Clippy et le workspace avec Cargo sur la machine de développement. - Poursuivre avec les exécuteurs déjà implémentés dans bot2.