Files
khadhroony-bot3/olddocs/archivekbot2
2026-07-30 17:50:29 +02:00
..
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00
2026-07-30 17:50:29 +02:00

Khadhroony Bot2

Khadhroony Bot2 est un workspace Rust modulaire pour observer, décoder, matérialiser, exécuter et analyser des transactions Solana.

Le projet poursuit deux objectifs complémentaires. À court terme, il doit fournir un trading assisté contrôlable depuis des démos live Tauri. À long terme, il doit devenir une bibliothèque d'indexation et d'analyse Solana capable de classifier un grand nombre de programmes et de surfaces.

Le socle technique doit permettre de :

  • ingérer des transactions Solana depuis RPC HTTP, WebSocket ou futures sources spécialisées ;
  • normaliser chaque source vers une transaction canonique source-indépendante ;
  • conserver la transaction canonique comme source daudit et de replay ;
  • conserver séparément les observations légères de provenance et de timing ;
  • extraire les instructions, inner instructions, logs, comptes résolus et deltas de balances ;
  • détecter les programmes impliqués dans chaque transaction ;
  • décoder les programmes Solana de base, les programmes SPL, les surfaces DEX, les orderbooks, les routers et les protocoles annexes ;
  • matérialiser les événements décodés en tables métier exploitables ;
  • rejouer uniquement les modules nécessaires grâce à un ledger de traitement par module et version ;
  • alimenter des agrégations, diagnostics, signaux de risque et futures règles de stratégie ;
  • construire des plans d'exécution séparés des décodeurs ;
  • tester les fonctionnalités live via kb_app_demo avant automatisation.

Architecture générale

Le workspace suit une chaîne de traitement en couches :

canonical transaction -> source observations -> Solana extraction -> decoding -> materialization -> aggregation -> strategy

Chaque couche doit être indépendante autant que possible. Les décodeurs ne dépendent pas du stockage, du RPC, de Tauri, du wallet ou des matérialisateurs. Les matérialisateurs travaillent sur les événements décodés et produisent des événements métier normalisés.

Rôle des dossiers principaux

  • kb_core contient les primitives partagées minimales.
  • kb_model contient les types communs du modèle interne.
  • kb_config définit le contrat JSON multi-profils, le schéma runtime, les validations typées et les exports TS-rs destinés aux applications Tauri.
  • kb_rpc contient les protocoles et clients RPC Solana HTTP, WebSocket et futurs flux Helius/Yellowstone.
  • kb_execution_solana assemble les plans communs en transactions Solana, lie la simulation au message exact et résout les signataires via linterface Solana Signer; kb_wallet fournit actuellement le backend temporaire.
  • Le projet différé dacquisition historique gratuite est décrit dans docs/HISTORICAL_DATA_ACQUISITION_PLAN.md. Il reste hors du ROADMAP actif tant que les décodeurs, matérialisateurs et exécuteurs prioritaires ne sont pas suffisamment avancés.
  • kb_store_core définit les traits de stockage.
  • kb_store_pg fournit le backend PostgreSQL cible.
  • kb_store_sqlite reste limité aux tests et imports locaux.
  • kb_decoder_api définit le contrat des décodeurs.
  • kb_materializer_api définit le contrat des matérialisateurs.
  • kb_materializer_* contient les projections métier par famille : trades, liquidité, NFT, oracle, lending, routing, compliance audit, etc.
  • kb_pipeline orchestre backfill, extraction canonique vers core, décodage, matérialisation, agrégation et validation.
  • kb_app_demo sert de démonstrateur Tauri, sans logique métier lourde. Il charge le profil actif, initialise kb_logging, rend le README en HTML et expose une fenêtre dédiée à la configuration.
  • Chaque crate opérationnelle doit émettre ses propres événements tracing avec une cible canonique égale à son nom Cargo ; kb_app_demo reste limité aux frontières UI/Tauri et aux résumés.
  • Chaque profil écrit des fichiers globaux debug.log, info.log, error.jsonl et app.log, ainsi que debug.log, info.log et error.jsonl dans un répertoire par crate utilisant tracing.
  • Les interfaces officielles Solana/SPL étroites sont privilégiées ; wincode puis Borsh sont préférés, et un parser local borné reste autorisé lorsque linterface officielle nexpose que bincode.

État 0.4.1 validé

0.4.1 clôt le décodage et les matérialisations instructionnelles stables des programmes Solana natifs, historiques, loaders, précompiles et surfaces ZK du périmètre core.

kb_decoder_solana_core couvre maintenant 18 surfaces exécutables natives : System, Vote, Stake, Config, Compute Budget, Address Lookup Table, Feature, ZK ElGamal Proof, lancien ZK Token Proof historique/no-op, Native Loader, BPF Loader v1/v2/Upgradeable/v4, Ed25519, secp256k1, secp256r1 et Slashing. StakeConfig11111111111111111111111111111111 est classé comme compte historique non exécutable, sans dispatch ni plan dexécution.

Les matérialisations natives actives sont réparties par famille :

  • kb_materializer_lifecycle : Address Lookup Table, lifecycle loaders, Feature revoke, durable nonce, comptes System create/allocate, contextes ZK ElGamal et rapports Slashing ;
  • kb_materializer_admin : assignations System, écritures Config opaques, changements dautorité Loader ;
  • kb_materializer_compliance_audit : écritures/copies de bytecode Loader et profil transactionnel Compute Budget ;
  • kb_materializer_staking : projections instructionnelles Stake/Vote commitées, sans prétendre reconstruire les snapshots finaux.

Les précompiles de signature, les preuves ZK sans compte de contexte et lancien ZK Token Proof restent en decode/audit, sans duplication dans kb_sol_mat_events tant quaucun consommateur dédié ne lexige. Les transactions échouées restent décodées comme intentions ou échecs, mais les matérialiseurs mutables appliquent SuccessfulCommittedOnly.

Les validations finales de 0.4.1 couvrent les tests unitaires, PostgreSQL réel, Clippy et des replays mainnet ciblés : System, Config, Stake, Vote, Compute Budget, ALT, ZK ElGamal et Slashing synthétique. Les replays terminent sans unmatched, failedInputs ou unsupported; les archives de logs fournies ont des error.jsonl vides.

Couche d'exécution

Le workspace développe une couche d'exécution séparée du décodage. Les crates kb_executor_* sont des bibliothèques universelles : elles construisent des plans pour les applications de trading, les CLI, les workers, les outils d'administration et de futurs exécutables indépendants.

Les opérations dangereuses ne sont pas supprimées des bibliothèques. Elles doivent être encodées, testées et protégées par des politiques renforcées, tandis que kb_app_demo peut volontairement ne pas les exposer. Les exécuteurs ne dépendent ni du wallet, ni du RPC, ni des décodeurs ; l'orchestration assemble ensuite plan, sécurité, simulation, signature, envoi et validation post-exécution.

Démos live

kb_app_demo reste le shell Tauri unique pour valider les capacités du workspace : configuration, logs, DB, RPC, wallet, listeners, décodage, matérialisation, exécution et validation post-transaction.

Documentation

  • RUST_RULES.md contient les règles Rust générales réutilisables ; RULES.md contient les règles spécifiques et normatives du workspace.
  • ROADMAP.md contient les étapes futures et changements prévus.
  • CHANGELOG.md ne reçoit une entrée qu'après validation d'une version.
  • docs/ contient les notes d'architecture et de conception, notamment TRACING_CONTRACT.md, SOLANA_INTERFACE_DEPENDENCIES.md, NATIVE_SOLANA_CLOSURE_AUDIT.md, NATIVE_SOLANA_MATERIALIZATION_AUDIT.md et DEVNET_EXECUTION.md.
  • validation_sql/ contient les contrôles SQL de validation.

Jalon validé 0.4.2

0.4.2 valide linfrastructure dexécution et kb_executor_solana_core. Lexécuteur expose 109 opérations déterministes : dix-sept System, quatre Compute Budget, cinq Address Lookup Table, six formes de précompile, deux Config, deux Feature, deux Slashing, trois ZK ElGamal, vingt-quatre Stake, vingt-quatre Vote, onze Loader v3 et neuf Loader v4. La surface Vote couvre les vingt variantes wire actuelles de solana-vote-interface 6.0.3 ainsi que quatre plans composés de création legacy/V2, avec ou sans seed. Loader v3 consomme solana-loader-v3-interface 8.x et son schéma wincode; Loader v4 reproduit explicitement son wire officiel sans activer les helpers conditionnés par bincode. BPF Loader v1/v2 restent historiques decode-only, Native Loader ne possède pas de builder client et lancien ZK Token Proof reste historique. Les opérations nécessitant un état courant restent protégées par un préflight séparé et ne sont pas activées sur Mainnet par ce jalon.

kb_pipeline fournit le préflight stateful Localnet/Devnet pour ALT, Config, Feature, Slashing et les contextes ZK ElGamal. Le rapport Ready/Blocked/NotRequired expose les contrôles et faits mesurés avant simulation. docs/NATIVE_SOLANA_EXECUTION_MATRIX.json inventorie les dix-huit surfaces et les 109 opérations appelables, avec égalité imposée par un test Rust. La matrice décodeur couvre les mêmes dix-huit surfaces et 121 déclarations de couverture.

kb_rpc possède des contrats propres et configurables pour les 52 méthodes HTTP standard et les neuf paires WebSocket standard. Les options restent composables champ par champ et aucun DTO Agave nest exposé par lAPI publique. La session WebSocket persistante gère multiplexage, unsubscribe, timeout, reconnexion et réabonnement. blockSubscribe, slotsUpdatesSubscribe et voteSubscribe sont activables par endpoint ; lorsquun nœud les rejette comme indisponibles, la capacité concernée est désactivée automatiquement pour la session et les appels suivants sont refusés localement.

kb_wallet fournit un wallet temporaire en mémoire ou persistant sous wallets/temporary/, avec fichiers non écrasés, permissions privées et secrets confinés côté Rust. kb_execution_solana assemble les transactions, lie la simulation au hash exact du message et signe seulement après autorisation de kb_execution_safety. kb_pipeline orchestre le parcours backend Devnet complet : contrôle du destinataire et du minimum rent-exempt, financement plafonné, System transfer, simulation exacte, signature, envoi, confirmation, hydratation canonique, extraction core et decode replay ciblé. Ce parcours a été validé réellement sur Devnet avec un transfert de 1 000 000 lamports et PostgreSQL réel.

La frontière Tauri/TS-rs német plus de bigint dans les payloads JSON actifs. Les identifiants WebSocket sont contrôlés contre Number.isSafeInteger, et les limites du navigateur SQL sont validées côté frontend avant lappel backend. cargo tauri dev avec Vite constitue la validation frontend retenue ; aucun npm run build séparé nest exigé pour cette clôture.

Jalon validé 0.4.3

Le prompt prompts/022_v0_4_3_spl_memo.md reste lhistorique de travail du jalon. Le décodeur contextualisé distingue v1, v3 et v4 avec payload UTF8 ou tentative invalide, comptes ordonnés, signataires, outer/inner, hash et intentions non commitées. La projection dédiée kb_materializer_transaction_annotations transforme uniquement les Memo réussis et commités en annotations consultables et idempotentes ; les faits daudit détaillés restent dans le decode. demo_decode_replay expose ces sorties comme un journal borné filtrable par signature, avec slot, instruction path, génération, texte, hash et signataires vérifiés.

kb_executor_spl_memo expose maintenant un intent typé AddMemo et appelle le builder officiel spl-memo-interface 2.1.0 avec lID explicite v1/v3/v4. Le wire reste le texte UTF8 brut et chaque signer est readonly, ordonné et visible avant signature. La bibliothèque construit les trois générations sur tout cluster ; la disponibilité effective du programme est vérifiée par la simulation obligatoire, et Mainnet reste régi par les garde-fous communs plutôt que désactivé dans lexécuteur. La démo opérateur reste volontairement limitée à Memo v4 Devnet et réutilise la fenêtre Solana existante. Elle montre la simulation, lenvoi explicitement confirmé, lhydratation, lextraction, le replay, lannotation et lidempotence avec des DTO Tauri JSON sans bigint actif.

Le parcours a été validé le 15 juillet 2026 avec une simulation seule puis trois transactions v4 Devnet confirmées. Chaque signature a produit une insertion canonique, une extraction core, un événement Memo, une annotation transaction_annotation et un second replay skipped sans nouvelle sortie. Le corpus Mainnet réel couvre séparément v1, v3 et v4 ; aucun envoi historique v1/v3 sur Devnet nest revendiqué ni requis.

La matrice docs/SPL_MEMO_MATRIX.json conserve les différences historiques, le corpus Mainnet réel, les preuves Devnet v4 et les limitations explicitement non revendiquées pour v1/v3. Le worker dacquisition historique reste un projet différé indépendant, sans numéro de version attribué.

La validation finale confirme 5 tests kb_program_ids, 9 tests décodeur Memo, 7 tests matérialiseur dannotations, 15 tests exécuteur Memo, 22 tests API dexécution, 15 tests safety, 12 tests Solana, 61 tests pipeline, 113 tests RPC, 96 tests démo et 46 tests PostgreSQL réels. Le test opt-in Devnet avec envoi et cargo clippy --all-targets sont propres. La version active devient 0.4.4 — SPL Token selon prompts/023_v0_4_4_spl_token.md.

Jalon validé 0.4.4

Les premières tranches SPL Token établissent la matrice machine-readable des 28 tags publiés par spl-token-interface 3.0.0 et remplacent le scaffold du décodeur classique. Le wire local borné conserve montants bruts, decimals explicites, autorités, comptes ordonnés, chemins outer/inner, transactions échouées non commitées, suffixes et diagnostics. Batch produit un parent d'audit et des enfants à identités dérivées stables sans accepter de batch imbriqué.

Les matérialiseurs actifs produisent un journal instructionnel token_account, des faits admin et des constats de risque sans score ; aucune fee classique n'est inventée. Le replay Mainnet validé de 370 instructions a produit 371 sorties, huit refus expliqués par huit transactions échouées et un second replay idempotent sans nouvelle sélection.

kb_executor_spl_token expose 24 opérations typées courantes ou récentes avec montants JSON en chaînes, autorités simples/multisig et builders officiels. Quatre initialisations Rent obsolètes restent decode-only. UnwrapLamports et Batch sont constructibles selon l'interface publiée ; leur déploiement sur le programme classique Devnet a été observé le 16 juillet 2026 par deux simulations réussies sans signature ni envoi. Localnet, Testnet et Mainnet restent non testés pour ces deux tags.

0.4.4-pre.005 ajoute le préflight stateful Localnet/Devnet dans kb_pipeline. Les lectures RPC restent hors du décodeur et de lexécuteur ; elles valident les layouts Mint/Account/Multisig, létat, les relations de mint, les soldes, les réserves wrapped SOL, les délégations, les autorités, les seuils multisig et le rent avant simulation. Les tests standards sont offline et un test Devnet read-only reste opt-in. La démo Token réutilise la fenêtre dexécution Solana existante : son panneau TransferChecked expose préflight, simulation, confirmation et validation post-exécution, tandis quun journal matérialisé borné accepte des filtres typés par signature, mint, compte, famille et opération sans créer une WebView par opération.

Le correctif fonctionnel de pre.005 ajoute lorchestration Devnet générique : simulation autonome après préflight, puis envoi explicitement confirmé lorsque le wallet du profil résout tous les signataires. Une transaction envoyée est confirmée, hydratée, extraite, décodée et matérialisée, avant un second replay idempotent. Cette couche ne restreint pas les builders universels aux seuls clusters ou signataires disponibles dans la démo.

Le parcours TransferChecked a été validé réellement sur Devnet le 15 juillet 2026 avec deux comptes Token auxiliaires du même mint et un wallet isolé correspondant exactement à lautorité. Le test opt-in impose désormais la présence de la soumission et de la confirmation, labsence déchec ou de refus au premier replay, au moins une matérialisation Token et un second replay sans nouvelle sortie ; il imprime aussi la signature afin quelle puisse rejoindre le corpus audité.

0.4.4-pre.006 ajoute un lifecycle destructif explicitement autorisé pour trois comptes classiques sans ATA. Son correctif crée d'abord les comptes bruts via trois instructions System officielles, avec keypairs éphémères, rent et tailles 82/165/165 vérifiés, puis onze transactions initialisent le mint et deux comptes Token, mintent et transfèrent un montant contrôlé, créent puis révoquent une délégation, brûlent exactement les deux soldes et ferment les comptes Token. Chaque étape est simulée, confirmée, hydratée, décodée, matérialisée et rejouée une seconde fois avant que l'étape suivante ne soit admise.

Le correctif de reprise du lifecycle traite explicitement les confirmations RPC interrompues : une signature prédécesseur confirmée est hydratée, extraite, décodée, rapprochée de l'opération attendue et rejouée idempotemment avant de reprendre à l'index demandé. Un délai borné sépare ensuite les étapes afin de réduire la pression sur les endpoints Devnet publics, sans masquer leurs erreurs.

Le lifecycle Devnet réel a été validé le 15 juillet 2026 après une interruption du RPC public : la reprise a récupéré l'initialisation déjà confirmée, puis achevé mint, transfer, approve/revoke, deux burn et deux close. Chaque étape récupérée ou envoyée a produit exactement une matérialisation et un second replay idempotent. La fenêtre opérateur pre.007 permet désormais de rejouer le parcours représentatif TransferChecked et de consulter ces faits token_account, admin et risk comme événements chronologiques, sans inventer un état final de compte.

L'audit pre.008 reporte dans docs/SPL_TOKEN_MATRIX.json les preuves par instruction. Le corpus Mainnet réel couvre Transfer, Approve, CloseAccount, TransferChecked, BurnChecked et SyncNative; ses trois initialisations restent volontairement référencées sous leur nom matérialisé normalisé sans inventer une variante wire. Le lifecycle Devnet prouve InitializeAccount3, MintToChecked, TransferChecked, ApproveChecked, Revoke, BurnChecked et CloseAccount. Localnet n'a pas été exécuté, et la publication p-token des tags 45/255 n'est pas assimilée à leur déploiement sur un cluster public.

La validation Tauri de pre.007 a démarré Vite et l'application, réussi le préflight et la simulation TransferChecked, puis refusé correctement l'envoi sans confirmation opérateur. Avec confirmation, un second refus a identifié que le wallet du profil et l'autorité Token étaient deux clés distinctes. La démo ne tente jamais de signer à la place d'une autorité externe ; pour envoyer, les comptes Token doivent appartenir au wallet persistant sélectionné, comme dans le scénario backend Devnet déjà confirmé et matérialisé.

La clôture du 16 juillet 2026 confirme les régressions ciblées, PostgreSQL réel, Clippy et Tauri. Les validations finales couvrent notamment 5 tests Program IDs, 8 tests décodeur Token, 15 tests exécuteur Token, 9 tests décodeur Memo, 7 tests annotations, 22 tests API d'exécution, 15 tests safety, 12 tests transaction Solana, 81 tests pipeline, 113 tests RPC, 41 tests configuration, 102 tests démo et 46 tests PostgreSQL réels. Tauri charge 77 routes de logs, simule TransferChecked, bloque l'envoi non confirmé, restitue sa matérialisation commitée exacte et simule Memo v4 sans erreur runtime.

Jalon validé 0.4.5

0.4.5 clôt la surface SPL Associated Token Account avec spl-associated-token-account-interface 2.0.0. Le décodeur reconnaît exactement Create, CreateIdempotent, RecoverNested et la forme historique vide de Create; il conserve comptes ordonnés, flags, doublons, outer/inner paths, transactions échouées non commitées et diagnostics bornés. Les PDA sont dérivés et validés explicitement avec les seeds [wallet, Token Program ID, mint], ce qui distingue les ATA classiques des ATA Token-2022 sans prétendre décoder les extensions de ce dernier.

Le lifecycle ATA est possédé par kb_materializer_token_accounts : création normale, création ou réutilisation idempotente non distinguable depuis le parent seul, et récupération nested. kb_materializer_risk possède séparément le constat factuel d'anti-pattern nested récupéré. Les matérialiseurs lifecycle général, admin et fees déclarent explicitement leur absence de projection, et les CPI SPL Token conservent seules leurs initialisations, transferts et fermetures. Les transactions échouées ou structurellement invalides ne produisent aucune mutation.

kb_executor_spl_associated_token_account construit les trois variantes actuelles avec les builders officiels, pour SPL Token classique ou Token-2022. Simulation et dry-run sont obligatoires par défaut. Le préflight Localnet/Devnet contrôle cluster, mints, Program IDs, dérivations, comptes existants, signataires, rent et plafonds ; la post-validation vérifie création/réutilisation ou les conditions de fermeture/transfert de RecoverNested.

Les preuves Devnet du 16 juillet 2026 couvrent deux parcours complets CreateIdempotent classiques, la création puis la réutilisation d'un ATA Token-2022 avec ImmutableOwner, et un RecoverNested classique transférant 1 000 000 000 unités brutes avant fermeture du nested ATA. Chaque soumission a été simulée, confirmée, hydratée, extraite, décodée et matérialisée, puis rejouée sans doublon. La fenêtre Tauri unique expose création ATA et journal lifecycle borné ; RecoverNested reste couvert hors UI par un test opt-in contrôlé.

La validation finale confirme les régressions Token/Memo, 10 tests décodeur ATA, 10 tests exécuteur ATA, 90 tests pipeline, 113 tests RPC, 41 tests configuration, 111 tests démo, 46 tests PostgreSQL réels et cargo clippy --all-targets propre. Les versions Rust, npm et Tauri sont synchronisées en 0.4.5.

Jalon validé 0.4.6

0.4.6 clôt Token-2022 et le registre ElGamal comme surfaces séparées. Token-2022 couvre les instructions de base, les extensions identifiables, les états Mint/Account/Multisig et TLV, les matérialisations propriétaires et les exécuteurs simulation-first. Le registre ElGamal conserve son propre Program ID, sa matrice, son état de 64 octets, son PDA et ses opérations administratives ; il nest pas fusionné avec Token-2022 ni avec le programme natif ZK ElGamal Proof.

La validation publique Token-2022 comprend huit opérations Devnet confirmées et 55 instructions Mainnet décodées sans échec. La validation réseau ElGamal Registry reste indisponible sur les clusters publics au 20 juillet 2026, mais ses builders, parsers, préflights, preuves et scénarios stateful sont validés synthétiquement/offline. Le bilan détaillé est publié dans docs/V0_4_6_VALIDATION.md.

Le replay contextualisé dispose désormais du mode incomplete_signatures. Il sélectionne uniquement les signatures contenant au moins une instruction pending, failed, replay_requested ou unsupported, applique la limite aux signatures avant expansion et réévalue leurs instructions compatibles sans activer le force replay global. Deux campagnes PostgreSQL réelles ont sélectionné 81 entrées chacune : 1 décodée, 4 unsupported et 76 rejets fail-closed appartenant tous à des transactions Solana échouées.

La régression finale confirme kb_store_core 41/41, kb_store_pg 46/46 avec PostgreSQL réel, kb_pipeline 124/124, kb_app_demo 118/118 et cargo clippy --all-targets propre.

Jalon actif 0.4.7

La suite active est Metaplex Token Metadata selon prompts/026_v0_4_7_metaplex_token_metadata.md. La préversion 0.4.7-pre.001 ouvre laudit avec les crates kb_decoder_metadata_metaplex_token_metadata et kb_executor_metadata_metaplex_token_metadata, ainsi que docs/METAPLEX_TOKEN_METADATA_MATRIX.json, sans activation runtime tant que le wire complet nest pas prouvé. Lexécuteur existe comme frontière audit-only parce que le SDK officiel fournit des builders, mais il nexpose encore aucune construction de transaction. Ce programme indépendant complète les metadata externes des mints SPL Token classique et Token-2022 sans être absorbé par leurs décodeurs. La priorité porte sur la frontière exacte du Program ID, les PDA et layouts versionnés, les NFT/collections/programmable assets, la provenance des metadata et le replay PostgreSQL idempotent.

Anchor nest pas requis par les programmes SPL planifiés dans 0.4.x. Son infrastructure commune est reportée à 0.4.18, immédiatement avant Meteora, afin dêtre conçue à partir des besoins réels des protocoles Anchor sans retarder Metaplex et les autres surfaces Core/SPL.

Backend de données

PostgreSQL est le backend principal prévu. SQLite reste présent uniquement pour les tests, les imports ponctuels ou les petits corpus locaux.

Les tables Solana PostgreSQL utilisent le schéma courant du profil, généralement public. Le projet ne crée pas de schémas applicatifs explicites comme raw, core, obs, decode, mat, catalog, agg, ops ou wallet. La séparation logique se fait dans le nom physique de table au format kb_sol_<domain>_<name>, par exemple kb_sol_raw_transactions.

Replay des signatures incomplètes

La fenêtre de replay contextualisé de kb_app_demo expose un mode signatures_incomplete. Il sélectionne uniquement les signatures contenant au moins une instruction pending, failed, replay_requested ou un résultat unsupported, puis réévalue les instructions compatibles de ces signatures sans activer le force replay global. La limite porte sur le nombre de signatures incomplètes avant expansion. La matérialisation reste optionnelle et idempotente.

Ce mode est destiné aux backfills croissants : une correction de décodeur peut reprendre seulement les signatures incomplètes au lieu de rejouer toutes les signatures déjà réussies.

Livraison par delta

Après le squelette initial, les modifications doivent être livrées sous forme de zip delta contenant uniquement les fichiers ajoutés ou modifiés. Un delta multi-module ou racine utilise khadhroony-bot2_vX.Y.Z-pre.abc-delta.zip. Un delta limité à un module Rust utilise kb_modulename_vX.Y.Z-pre.abc-delta.zip. Un correctif conserve le même numéro pre.abc et ajoute -delta-fix-001.zip, puis -fix-002.zip, au lieu dincrémenter la préversion. Chaque archive contient un delta.md non versionné listant les fichiers ajoutés, modifiés, à supprimer manuellement, ainsi que les validations exécutées ou non exécutées.

Surfaces réservées

Le workspace réserve dès le squelette les crates de décodage pour les DEX, launchpads, orderbooks, routers, perps et surfaces candidates recensés dans idls/ et dans la documentation de conception. Ces crates restent des points d'ancrage tant que les discriminants, corpus et règles de matérialisation ne sont pas validés.

Registres de programmes

Le workspace distingue deux registres :

  • registry/program_registry_seed.toml pour les surfaces applicatives et protocolaires ;
  • registry/core_program_id_seed.toml pour les programmes primitifs, loaders, sysvars et comptes natifs Solana/SPL.

Les comptes non exécutables observés pendant la recherche restent documentés dans docs/ACCOUNT_ONLY_CANDIDATES.md. Bags dispose maintenant aussi d'une note dédiée dans docs/BAGS_FM.md pour les programmes Fee Share V1/V2 confirmés.

Classification des surfaces

La classification des IDL locales est suivie dans docs/IDL_SURFACE_CLASSIFICATION.md. Le registre machine principal reste registry/program_registry_seed.toml.

Configuration, endpoints et listeners

Le workspace utilise kb_config pour charger plusieurs profils de configuration, avec un seul profil actif. Le fichier JSON est d'abord validé par config/schema.config.json, puis désérialisé et validé par les règles métier Rust.

Le pipeline normalise toutes les sources vers une transaction canonique commune. HTTP JSON-RPC est utilisé dabord pour les backfills gratuits. Helius transactionSubscribe et Yellowstone gRPC seront ajoutés plus tard dans kb_rpc, après les décodeurs prioritaires, sans créer de crate provider séparée. La fenêtre demo_backfill permet de lancer des campagnes bornées par liste de signatures, programme, token ou pool. En direction « avant, plus anciennes », une ancre vide commence sur la page la plus récente ; la direction « après, plus récentes » exige toujours une signature dancrage.

Les listeners WebSocket doivent permettre la détection temps réel des créations de token, créations de pool, migrations, swaps, changements de liquidité et changements sur les tokens ou pools surveillés. Les exports TS-rs de kb_config servent uniquement à partager les types Rust/TypeScript avec les applications Tauri comme kb_app_demo, puis les futures applications wallet ou finales. Les payloads Tauri partagés, comme la page de configuration, doivent aussi être exportés par TS-rs depuis leur crate applicative.

Metaplex Token Metadata 0.4.7-pre.016

Linventaire officiel complet des modules dinstruction a été réaudité avant le passage aux comptes on-chain. FreezeDelegatedAccount et ThawDelegatedAccount historiques sont désormais décodés avec leurs contrats exacts ; les autres surfaces encore absentes restent planifiées avant toute déclaration de couverture exhaustive.