v0.1.0-pre.074
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<!-- file: docs/README.md -->
|
<!-- file: docs/README.md -->
|
||||||
<!-- version: 6 -->
|
<!-- version: 7 -->
|
||||||
|
|
||||||
# Documentation active de Khadhroony Bot3
|
# Documentation active de Khadhroony Bot3
|
||||||
|
|
||||||
@@ -36,14 +36,13 @@ Modèles documentaires non génératifs :
|
|||||||
- [`templates/CRATE_USAGE_TEMPLATE.md`](templates/CRATE_USAGE_TEMPLATE.md) ;
|
- [`templates/CRATE_USAGE_TEMPLATE.md`](templates/CRATE_USAGE_TEMPLATE.md) ;
|
||||||
- [`templates/CRATE_CHANGELOG_TEMPLATE.md`](templates/CRATE_CHANGELOG_TEMPLATE.md).
|
- [`templates/CRATE_CHANGELOG_TEMPLATE.md`](templates/CRATE_CHANGELOG_TEMPLATE.md).
|
||||||
|
|
||||||
## 4. Audits et décisions en cours
|
## 4. Audits et décisions actifs
|
||||||
|
|
||||||
- [`DOCUMENTATION_REFACTOR_AUDIT.md`](DOCUMENTATION_REFACTOR_AUDIT.md) ;
|
- [`audits/V0_4_6_ALIGNMENT_AUDIT.md`](audits/V0_4_6_ALIGNMENT_AUDIT.md) ;
|
||||||
- [`DOCUMENTATION_REFACTOR_PLAN.md`](DOCUMENTATION_REFACTOR_PLAN.md) ;
|
|
||||||
- [`decisions/DOCUMENT_ARCHIVE_SELECTION_POLICY.md`](decisions/DOCUMENT_ARCHIVE_SELECTION_POLICY.md) ;
|
- [`decisions/DOCUMENT_ARCHIVE_SELECTION_POLICY.md`](decisions/DOCUMENT_ARCHIVE_SELECTION_POLICY.md) ;
|
||||||
- [`decisions/WINCODE_COMPATIBILITY_POLICY.md`](decisions/WINCODE_COMPATIBILITY_POLICY.md).
|
- [`decisions/WINCODE_COMPATIBILITY_POLICY.md`](decisions/WINCODE_COMPATIBILITY_POLICY.md).
|
||||||
|
|
||||||
Ces audits seront archivés sous `olddocs/archivekbot3/` lorsqu’ils auront été remplacés par des documents normatifs ou des rapports de clôture.
|
Les audits et prompts de migration remplacés sont conservés sous `olddocs/archivekbot3/`.
|
||||||
|
|
||||||
## 5. Documents techniques actifs à reclasser
|
## 5. Documents techniques actifs à reclasser
|
||||||
|
|
||||||
@@ -71,29 +70,19 @@ Elles peuvent être chargées directement par les tests unitaires ou d’intégr
|
|||||||
|
|
||||||
## 7. Documentation par crate
|
## 7. Documentation par crate
|
||||||
|
|
||||||
Chaque crate devra posséder :
|
Les onze crates possèdent désormais `README.md`, `TODO.md`, `USAGE.md` et `CHANGELOG.md` :
|
||||||
|
|
||||||
```text
|
- [`kb-core`](../kb-core/README.md) ;
|
||||||
README.md
|
|
||||||
TODO.md
|
|
||||||
USAGE.md
|
|
||||||
CHANGELOG.md
|
|
||||||
```
|
|
||||||
|
|
||||||
Leur création commencera après stabilisation des documents transversaux, par lots de crates. `USAGE.md` documentera les APIs publiques réelles et pourra signaler les tests particulièrement instructifs.
|
|
||||||
|
|
||||||
## Documentation des crates
|
|
||||||
|
|
||||||
Le premier lot documenté comprend :
|
|
||||||
|
|
||||||
- [`kb-lib`](../kb-lib/README.md) ;
|
|
||||||
- [`kb-store`](../kb-store/README.md) ;
|
|
||||||
- [`kb-config`](../kb-config/README.md) ;
|
- [`kb-config`](../kb-config/README.md) ;
|
||||||
- [`kb-logging`](../kb-logging/README.md).
|
- [`kb-lib`](../kb-lib/README.md) ;
|
||||||
|
- [`kb-logging`](../kb-logging/README.md) ;
|
||||||
## Audits
|
- [`kb-program-ids`](../kb-program-ids/README.md) ;
|
||||||
|
- [`kb-pipeline`](../kb-pipeline/README.md) ;
|
||||||
- [Audit d’alignement des TODO par crate](audits/CRATE_TODO_VERSION_ALIGNMENT_AUDIT.md)
|
- [`kb-pipeline-demo-scenarios`](../kb-pipeline-demo-scenarios/README.md) ;
|
||||||
|
- [`kb-onchain-transport`](../kb-onchain-transport/README.md) ;
|
||||||
|
- [`kb-store`](../kb-store/README.md) ;
|
||||||
|
- [`kb-wallet`](../kb-wallet/README.md) ;
|
||||||
|
- [`kb-app-demo-desktop`](../kb-app-demo-desktop/README.md).
|
||||||
|
|
||||||
## Guides
|
## Guides
|
||||||
|
|
||||||
|
|||||||
314
docs/audits/V0_4_6_ALIGNMENT_AUDIT.md
Normal file
314
docs/audits/V0_4_6_ALIGNMENT_AUDIT.md
Normal file
@@ -0,0 +1,314 @@
|
|||||||
|
<!-- file: docs/audits/V0_4_6_ALIGNMENT_AUDIT.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Audit ciblé d’alignement `0.4.6`
|
||||||
|
|
||||||
|
## 1. Objet
|
||||||
|
|
||||||
|
Cet audit détermine si `khadhroony-bot3` peut être officiellement aligné sur le périmètre fonctionnel de `khadhroony-bot2 0.4.6`.
|
||||||
|
|
||||||
|
Il ne refait pas les audits protocolaires complets déjà réalisés pour Solana Core, SPL Memo, SPL Token, SPL Associated Token Account, Token-2022 et le registre SPL ElGamal. Il synthétise leur migration, les tests disponibles, les validations Devnet connues et les écarts résiduels démontrés.
|
||||||
|
|
||||||
|
## 2. Base examinée
|
||||||
|
|
||||||
|
Base documentaire et source :
|
||||||
|
|
||||||
|
```text
|
||||||
|
khadhroony-bot3 v0.1.0-pre.073
|
||||||
|
```
|
||||||
|
|
||||||
|
Le workspace contient onze crates :
|
||||||
|
|
||||||
|
1. `kb-core` ;
|
||||||
|
2. `kb-config` ;
|
||||||
|
3. `kb-lib` ;
|
||||||
|
4. `kb-logging` ;
|
||||||
|
5. `kb-program-ids` ;
|
||||||
|
6. `kb-pipeline` ;
|
||||||
|
7. `kb-pipeline-demo-scenarios` ;
|
||||||
|
8. `kb-onchain-transport` ;
|
||||||
|
9. `kb-store` ;
|
||||||
|
10. `kb-wallet` ;
|
||||||
|
11. `kb-app-demo-desktop`.
|
||||||
|
|
||||||
|
Toutes utilisent actuellement la version workspace `0.1.0`. Aucun changement vers `0.4.6` ne doit être effectué avant clôture des blocants de la section 9.
|
||||||
|
|
||||||
|
## 3. Architecture migrée
|
||||||
|
|
||||||
|
### 3.1 Consolidations principales
|
||||||
|
|
||||||
|
| Bot2 | Bot3 | Statut |
|
||||||
|
|------------------------------------|------------------------------|-------------------------------------|
|
||||||
|
| modèles et contrats répartis | `kb-core` et `kb-lib` | migré et consolidé |
|
||||||
|
| décodeurs séparés | modules de `kb-lib` | migré |
|
||||||
|
| exécuteurs séparés | modules de `kb-lib` | migré |
|
||||||
|
| matérialisateurs séparés | modules de `kb-lib` | migré |
|
||||||
|
| stockage core et PostgreSQL séparé | `kb-store` | migré et consolidé |
|
||||||
|
| crates RPC et transports | `kb-onchain-transport` | migré et renommé |
|
||||||
|
| pipeline historique | `kb-pipeline` | migré |
|
||||||
|
| scénarios dépendants du desktop | `kb-pipeline-demo-scenarios` | extraits partiellement |
|
||||||
|
| application de démonstration | `kb-app-demo-desktop` | migrée et renommée |
|
||||||
|
| wallet temporaire | `kb-wallet` | migré, capacités avancées reportées |
|
||||||
|
|
||||||
|
La consolidation modifie la structure des crates, mais ne constitue pas en elle-même un écart fonctionnel.
|
||||||
|
|
||||||
|
### 3.2 Binaires et crates mixtes
|
||||||
|
|
||||||
|
- `kb-app-demo-desktop` reste une crate mixte bibliothèque et binaire ;
|
||||||
|
- `kb-pipeline-demo-scenarios` reste une crate mixte ;
|
||||||
|
- sa bibliothèque s’appelle `kb_pipeline_demo_scenarios` ;
|
||||||
|
- son binaire explicite s’appelle `kb-pipeline-demo-scenarios-cli` ;
|
||||||
|
- `autobins = false` empêche la création d’une cible implicite concurrente.
|
||||||
|
|
||||||
|
## 4. Documentation et règles
|
||||||
|
|
||||||
|
### 4.1 Contrat par crate
|
||||||
|
|
||||||
|
Les onze crates disposent désormais de :
|
||||||
|
|
||||||
|
```text
|
||||||
|
README.md
|
||||||
|
TODO.md
|
||||||
|
USAGE.md
|
||||||
|
CHANGELOG.md
|
||||||
|
```
|
||||||
|
|
||||||
|
Les TODO sont classés par échéance :
|
||||||
|
|
||||||
|
- blocants avant `0.4.6` ;
|
||||||
|
- travaux entre `0.4.6` et `0.4.7` ;
|
||||||
|
- versions ultérieures ;
|
||||||
|
- reports conditionnels.
|
||||||
|
|
||||||
|
### 4.2 Documentation transversale
|
||||||
|
|
||||||
|
Les documents actifs couvrent :
|
||||||
|
|
||||||
|
- architecture générale et carte des crates ;
|
||||||
|
- pipeline et stockage ;
|
||||||
|
- configuration et logging ;
|
||||||
|
- RPC, backfill et WebSocket ;
|
||||||
|
- extraction Core, replay et matérialisation ;
|
||||||
|
- PostgreSQL ;
|
||||||
|
- validation Devnet ;
|
||||||
|
- règles documentaires.
|
||||||
|
|
||||||
|
Les anciens plans et prompts de migration ont été archivés sous `olddocs/archivekbot3/`.
|
||||||
|
|
||||||
|
## 5. Capacités fonctionnelles alignées sur bot2 `0.4.6`
|
||||||
|
|
||||||
|
### 5.1 Fondation et stockage
|
||||||
|
|
||||||
|
- contrats d’erreur et identités de modules ;
|
||||||
|
- configuration typée JSON et schéma embarqué ;
|
||||||
|
- logging structuré ;
|
||||||
|
- stockage canonique, observations, tables Core et decode/materialization ;
|
||||||
|
- migrations PostgreSQL et diagnostics ;
|
||||||
|
- pagination et requêtes de replay bornées.
|
||||||
|
|
||||||
|
### 5.2 Transports et acquisition
|
||||||
|
|
||||||
|
- JSON-RPC HTTP standard ;
|
||||||
|
- WebSocket standard ;
|
||||||
|
- pools et rôles d’endpoints ;
|
||||||
|
- acquisition de signatures et transactions ;
|
||||||
|
- adaptation canonique ;
|
||||||
|
- simulation, soumission et confirmation ;
|
||||||
|
- backfill HTTP, reprise et annulation coopérative.
|
||||||
|
|
||||||
|
### 5.3 Pipeline
|
||||||
|
|
||||||
|
- extraction Core ;
|
||||||
|
- decode replay contextualisé ;
|
||||||
|
- matérialisation optionnelle et idempotente ;
|
||||||
|
- inspections stateful ;
|
||||||
|
- corrélations et préflights Token-2022 ;
|
||||||
|
- orchestration de preuves et postconditions.
|
||||||
|
|
||||||
|
### 5.4 Solana Core et SPL
|
||||||
|
|
||||||
|
Sont migrés jusqu’au périmètre historique de bot2 `0.4.6` :
|
||||||
|
|
||||||
|
- Solana Core et programmes natifs ;
|
||||||
|
- SPL Memo v1, v3 et v4 ;
|
||||||
|
- SPL Token classique ;
|
||||||
|
- SPL Associated Token Account ;
|
||||||
|
- Token-2022 et extensions couvertes ;
|
||||||
|
- registre SPL ElGamal dans les couches effectivement implémentées.
|
||||||
|
|
||||||
|
Memo v1 et v3 restent non exécutables. Memo v4 reste la génération exécutable.
|
||||||
|
|
||||||
|
## 6. Validations connues
|
||||||
|
|
||||||
|
### 6.1 Base `pre.062`
|
||||||
|
|
||||||
|
La base de migration a été déclarée validée avec :
|
||||||
|
|
||||||
|
```text
|
||||||
|
kb-pipeline-demo-scenarios :
|
||||||
|
- 39 tests de bibliothèque
|
||||||
|
- 1 test de binaire
|
||||||
|
|
||||||
|
kb-app-demo-desktop :
|
||||||
|
- 117 tests
|
||||||
|
```
|
||||||
|
|
||||||
|
Audits connus :
|
||||||
|
|
||||||
|
```text
|
||||||
|
General Rust rule audit: clean
|
||||||
|
Rust export completeness audit: 0 candidate(s)
|
||||||
|
Khadhroony workspace rule audit: clean
|
||||||
|
```
|
||||||
|
|
||||||
|
### 6.2 Devnet
|
||||||
|
|
||||||
|
Ont été validés sur Solana Devnet :
|
||||||
|
|
||||||
|
- System Transfer ;
|
||||||
|
- Memo v4 ;
|
||||||
|
- ATA classique ;
|
||||||
|
- ATA Token-2022 ;
|
||||||
|
- SPL Token `TransferChecked` ;
|
||||||
|
- Token-2022 :
|
||||||
|
- `MintToChecked` ;
|
||||||
|
- `TransferChecked` ;
|
||||||
|
- `ApproveChecked` ;
|
||||||
|
- `Revoke` ;
|
||||||
|
- `BurnChecked` ;
|
||||||
|
- `FreezeAccount` ;
|
||||||
|
- `ThawAccount` ;
|
||||||
|
- `CloseAccount`.
|
||||||
|
|
||||||
|
Les parcours couverts incluent simulation, confirmation opérateur, envoi, confirmation, insertion canonique, extraction Core, replay, matérialisation et idempotence.
|
||||||
|
|
||||||
|
### 6.3 Validation exécutée pendant cet audit
|
||||||
|
|
||||||
|
Avec le `Cargo.lock` de référence fourni séparément :
|
||||||
|
|
||||||
|
```text
|
||||||
|
General Rust rule audit: clean
|
||||||
|
Rust export completeness audit: 0 candidate(s)
|
||||||
|
Khadhroony workspace rule audit: clean
|
||||||
|
```
|
||||||
|
|
||||||
|
Les commandes Cargo n’ont pas pu être réexécutées dans l’environnement de production du delta, car le binaire `cargo` n’y est pas disponible. Les résultats historiques ne sont donc pas présentés comme nouvellement exécutés.
|
||||||
|
|
||||||
|
## 7. Éléments non bloquants pour `0.4.6`
|
||||||
|
|
||||||
|
### 7.1 Metaplex Token Metadata
|
||||||
|
|
||||||
|
Le décodeur a été commencé dans bot2 `0.4.7`, puis migré dans bot3. La matérialisation historique doit être vérifiée et les éléments suivants restent à terminer après l’alignement `0.4.6` :
|
||||||
|
|
||||||
|
- exécuteur ;
|
||||||
|
- complément éventuel de matérialisation ;
|
||||||
|
- orchestration pipeline ;
|
||||||
|
- scénarios de démonstration ;
|
||||||
|
- panneaux desktop ;
|
||||||
|
- validations finales.
|
||||||
|
|
||||||
|
Ces travaux appartiennent à la future version fonctionnelle `0.4.7`.
|
||||||
|
|
||||||
|
### 7.2 Registre SPL ElGamal
|
||||||
|
|
||||||
|
Le registre est implémenté dans certaines couches, mais n’est pas déclaré validé sur Devnet ou Mainnet.
|
||||||
|
|
||||||
|
La validation dépend notamment :
|
||||||
|
|
||||||
|
- de la confirmation du déploiement réseau ;
|
||||||
|
- d’un générateur de preuve `PubkeyValidity` ;
|
||||||
|
- d’un compte `Proof Context State` valide ;
|
||||||
|
- d’un scénario opérateur fonctionnel.
|
||||||
|
|
||||||
|
Cette absence de validation réseau ne bloque pas l’alignement sur bot2 `0.4.6`, car bot2 ne disposait pas non plus de cette validation réelle. Elle doit rester explicitement documentée.
|
||||||
|
|
||||||
|
### 7.3 Capacités planifiées après `0.4.7`
|
||||||
|
|
||||||
|
Ne bloquent pas `0.4.6` :
|
||||||
|
|
||||||
|
- split de `kb-config` et configuration logging dédiée en `0.5.x` ;
|
||||||
|
- complétion de `kb-wallet` en `0.5.x` ;
|
||||||
|
- décodeur générique Anchor et surfaces complémentaires en `0.6.x` ;
|
||||||
|
- protocoles Meteora, Raydium, Pump, Orca, Jupiter et autres ;
|
||||||
|
- transports streaming avancés en `0.13.x`.
|
||||||
|
|
||||||
|
## 8. Écarts architecturaux acceptés
|
||||||
|
|
||||||
|
Les différences suivantes sont des choix bot3 validés, pas des régressions :
|
||||||
|
|
||||||
|
- fusion des décodeurs, exécuteurs et matérialisateurs dans `kb-lib` ;
|
||||||
|
- fusion des contrats et implémentations de stockage dans `kb-store` ;
|
||||||
|
- renommage de `kb-rpc` en `kb-onchain-transport` ;
|
||||||
|
- séparation des scénarios réutilisables dans `kb-pipeline-demo-scenarios` ;
|
||||||
|
- maintien de `kb-app-demo-desktop` comme package mixte ;
|
||||||
|
- maintien d’un wallet minimal avant sa complétion en `0.5.x`.
|
||||||
|
|
||||||
|
## 9. Blocants démontrés avant passage officiel à `0.4.6`
|
||||||
|
|
||||||
|
### 9.1 Desktop et contrat Tauri
|
||||||
|
|
||||||
|
Il reste à obtenir une validation explicite et complète de :
|
||||||
|
|
||||||
|
1. la synchronisation des adaptateurs Tauri et des payloads TS-RS avec les APIs réutilisables ;
|
||||||
|
2. la couverture des cycles d’ouverture, fermeture et réouverture des fenêtres concernées.
|
||||||
|
|
||||||
|
### 9.2 Cycle de vie WebSocket
|
||||||
|
|
||||||
|
Le code place la session WebSocket dans `AppState`, distinctement de la fenêtre, et expose des commandes explicites de statut, connexion, désabonnement et déconnexion.
|
||||||
|
|
||||||
|
Il reste néanmoins à valider explicitement :
|
||||||
|
|
||||||
|
1. que fermer `demo_ws` ne ferme pas une session active ;
|
||||||
|
2. que rouvrir `demo_ws` récupère l’état courant ;
|
||||||
|
3. que l’arrêt intervient uniquement sur déconnexion explicite, fermeture de l’application ou timeout prévu.
|
||||||
|
|
||||||
|
Ces validations doivent être couvertes par des tests ou une campagne reproductible avant retrait des tâches du TODO.
|
||||||
|
|
||||||
|
### 9.3 Validation complète dans le workspace réel
|
||||||
|
|
||||||
|
Avant le changement de version, exécuter :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo fmt --all
|
||||||
|
cargo check --workspace
|
||||||
|
cargo clippy --all-targets
|
||||||
|
python3 scripts/audit_rust_workspace_rules.py
|
||||||
|
cargo test -p kb-pipeline-demo-scenarios
|
||||||
|
cargo test -p kb-app-demo-desktop
|
||||||
|
```
|
||||||
|
|
||||||
|
Exécuter également les tests ciblés de toute crate modifiée par les correctifs issus de cet audit.
|
||||||
|
|
||||||
|
La validation frontend doit utiliser :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo tauri dev -c kb-app-demo-desktop/tauri.conf.json
|
||||||
|
```
|
||||||
|
|
||||||
|
## 10. Liste fermée des écarts à traiter
|
||||||
|
|
||||||
|
Avant `0.4.6`, traiter uniquement :
|
||||||
|
|
||||||
|
- validation Tauri/TS-RS ;
|
||||||
|
- validation des cycles de fenêtres ;
|
||||||
|
- validation du cycle de vie persistant de `demo_ws` ;
|
||||||
|
- éventuelles corrections directement révélées par ces validations ;
|
||||||
|
- exécution finale des commandes de validation du workspace.
|
||||||
|
|
||||||
|
Aucun nouvel audit complet des protocoles déjà validés n’est requis.
|
||||||
|
|
||||||
|
## 11. Conclusion
|
||||||
|
|
||||||
|
```text
|
||||||
|
NOT_READY_FOR_0_4_6
|
||||||
|
```
|
||||||
|
|
||||||
|
Le périmètre fonctionnel historique de bot2 `0.4.6` est largement migré et les différences architecturales sont documentées. Le passage officiel reste bloqué par des validations desktop/WebSocket explicites et par la validation finale du workspace réel.
|
||||||
|
|
||||||
|
Après clôture de ces points, la conclusion pourra devenir :
|
||||||
|
|
||||||
|
```text
|
||||||
|
READY_WITH_DOCUMENTED_EXCEPTIONS
|
||||||
|
```
|
||||||
|
|
||||||
|
Les exceptions documentées attendues sont le registre ElGamal non validé sur réseau et les travaux Metaplex Token Metadata réservés à `0.4.7`.
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
<!-- file: kb-onchain-transport/CHANGELOG.md -->
|
<!-- file: kb-onchain-transport/CHANGELOG.md -->
|
||||||
<!-- version: 4 -->
|
<!-- version: 5 -->
|
||||||
|
|
||||||
# CHANGELOG — kb-onchain-transport
|
# CHANGELOG — kb-onchain-transport
|
||||||
|
|
||||||
|
## 0.1.0-pre.074
|
||||||
|
|
||||||
|
- clôture de la tâche documentaire préalable à `0.4.6` après publication du guide transversal RPC/backfill/WebSocket ;
|
||||||
|
|
||||||
## 0.1.0-pre.073
|
## 0.1.0-pre.073
|
||||||
|
|
||||||
- ajout du guide transversal [`docs/guides/RPC_BACKFILL_AND_WEBSOCKET.md`](../docs/guides/RPC_BACKFILL_AND_WEBSOCKET.md) ;
|
- ajout du guide transversal [`docs/guides/RPC_BACKFILL_AND_WEBSOCKET.md`](../docs/guides/RPC_BACKFILL_AND_WEBSOCKET.md) ;
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
<!-- file: kb-onchain-transport/TODO.md -->
|
<!-- file: kb-onchain-transport/TODO.md -->
|
||||||
<!-- version: 3 -->
|
<!-- version: 4 -->
|
||||||
|
|
||||||
# TODO — kb-onchain-transport
|
# TODO — kb-onchain-transport
|
||||||
|
|
||||||
## Avant alignement `0.4.6`
|
|
||||||
|
|
||||||
## Série `0.13.x`
|
## Série `0.13.x`
|
||||||
|
|
||||||
- [ ] WebSocket - étendre le support Helius selon les contrats retenus.
|
- [ ] WebSocket - étendre le support Helius selon les contrats retenus.
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
<!-- file: kb-pipeline/CHANGELOG.md -->
|
<!-- file: kb-pipeline/CHANGELOG.md -->
|
||||||
<!-- version: 4 -->
|
<!-- version: 5 -->
|
||||||
|
|
||||||
# CHANGELOG — kb-pipeline
|
# CHANGELOG — kb-pipeline
|
||||||
|
|
||||||
|
## 0.1.0-pre.074
|
||||||
|
|
||||||
|
- suppression du blocant d’audit générique après production de [`V0_4_6_ALIGNMENT_AUDIT.md`](../docs/audits/V0_4_6_ALIGNMENT_AUDIT.md), aucun écart pipeline concret supplémentaire n’ayant été démontré ;
|
||||||
|
|
||||||
## 0.1.0-pre.073
|
## 0.1.0-pre.073
|
||||||
|
|
||||||
- ajout du guide transversal [`docs/guides/REPLAY_CORE_EXTRACTION_AND_MATERIALIZATION.md`](../docs/guides/REPLAY_CORE_EXTRACTION_AND_MATERIALIZATION.md) ;
|
- ajout du guide transversal [`docs/guides/REPLAY_CORE_EXTRACTION_AND_MATERIALIZATION.md`](../docs/guides/REPLAY_CORE_EXTRACTION_AND_MATERIALIZATION.md) ;
|
||||||
|
|||||||
@@ -1,12 +1,8 @@
|
|||||||
<!-- file: kb-pipeline/TODO.md -->
|
<!-- file: kb-pipeline/TODO.md -->
|
||||||
<!-- version: 3 -->
|
<!-- version: 4 -->
|
||||||
|
|
||||||
# TODO — kb-pipeline
|
# TODO — kb-pipeline
|
||||||
|
|
||||||
## Bloquants avant alignement `0.4.6`
|
|
||||||
|
|
||||||
- [ ] Audit - traiter les écarts pipeline réellement démontrés par `V0_4_6_ALIGNMENT_AUDIT.md`.
|
|
||||||
|
|
||||||
## Entre `0.4.6` et `0.4.7`
|
## Entre `0.4.6` et `0.4.7`
|
||||||
|
|
||||||
- [ ] Metaplex Token Metadata - intégrer la matérialisation migrée et les étapes restantes au replay bot3.
|
- [ ] Metaplex Token Metadata - intégrer la matérialisation migrée et les étapes restantes au replay bot3.
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
<!-- file: kb-store/CHANGELOG.md -->
|
<!-- file: kb-store/CHANGELOG.md -->
|
||||||
<!-- version: 7 -->
|
<!-- version: 8 -->
|
||||||
|
|
||||||
# CHANGELOG — kb-store
|
# CHANGELOG — kb-store
|
||||||
|
|
||||||
|
## 0.1.0-pre.074
|
||||||
|
|
||||||
|
- clôture de la tâche documentaire préalable à `0.4.6` après publication du guide PostgreSQL et stockage ;
|
||||||
|
|
||||||
## 0.1.0-pre.073
|
## 0.1.0-pre.073
|
||||||
|
|
||||||
- ajout du guide transversal [`docs/guides/POSTGRES_STORAGE.md`](../docs/guides/POSTGRES_STORAGE.md) ;
|
- ajout du guide transversal [`docs/guides/POSTGRES_STORAGE.md`](../docs/guides/POSTGRES_STORAGE.md) ;
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
<!-- file: kb-store/TODO.md -->
|
<!-- file: kb-store/TODO.md -->
|
||||||
<!-- version: 4 -->
|
<!-- version: 5 -->
|
||||||
|
|
||||||
# TODO — kb-store
|
# TODO — kb-store
|
||||||
|
|
||||||
## Avant alignement `0.4.6`
|
|
||||||
|
|
||||||
## Versions ultérieures
|
## Versions ultérieures
|
||||||
|
|
||||||
- [ ] Administration - définir les outils supplémentaires prévus par le ROADMAP avant leur implémentation.
|
- [ ] Administration - définir les outils supplémentaires prévus par le ROADMAP avant leur implémentation.
|
||||||
|
|||||||
@@ -474,7 +474,7 @@ Les sources externes ci-dessous sont des **indices de décodage**, pas des preuv
|
|||||||
Sources prioritaires :
|
Sources prioritaires :
|
||||||
|
|
||||||
| Source | Usage attendu |
|
| Source | Usage attendu |
|
||||||
|---|---|
|
|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `idls/` | Corpus local d’IDL téléchargés depuis Solscan ; source de savoir locale à comparer aux sources Git avant promotion métier. |
|
| `idls/` | Corpus local d’IDL téléchargés depuis Solscan ; source de savoir locale à comparer aux sources Git avant promotion métier. |
|
||||||
| `https://github.com/sevenlabs-hq/carbon/tree/main/decoders` | Source principale de discriminants, instructions et events multi-protocoles. |
|
| `https://github.com/sevenlabs-hq/carbon/tree/main/decoders` | Source principale de discriminants, instructions et events multi-protocoles. |
|
||||||
| `https://github.com/0xfnzero/solana-streamer` | Source complémentaire pour PumpFun, PumpSwap, Bonk et Raydium CPMM. |
|
| `https://github.com/0xfnzero/solana-streamer` | Source complémentaire pour PumpFun, PumpSwap, Bonk et Raydium CPMM. |
|
||||||
@@ -505,7 +505,7 @@ Le but court terme n’est pas encore le live trading. Le but court terme est de
|
|||||||
Le workspace contient deux crates principales.
|
Le workspace contient deux crates principales.
|
||||||
|
|
||||||
| Crate | Rôle |
|
| Crate | Rôle |
|
||||||
|---|---|
|
|---------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `kb_lib` | Bibliothèque métier : configuration, tracing, clients réseau, pool HTTP, manager WS, résolution transactionnelle, décodage DEX, détection métier, persistance SQLite, backfill, metadata, candles, signaux analytiques, validation et diagnostics. |
|
| `kb_lib` | Bibliothèque métier : configuration, tracing, clients réseau, pool HTTP, manager WS, résolution transactionnelle, décodage DEX, détection métier, persistance SQLite, backfill, metadata, candles, signaux analytiques, validation et diagnostics. |
|
||||||
| `kb_demo_app` | Application Tauri V2 de démonstration et d’inspection : fenêtres `Demo Ws`, `Demo Ws Manager`, `Demo Http`, `Demo Pipeline`, `Demo Pipeline 2`, `Demo3`, graphiques candles et commandes de backfill/replay. |
|
| `kb_demo_app` | Application Tauri V2 de démonstration et d’inspection : fenêtres `Demo Ws`, `Demo Ws Manager`, `Demo Http`, `Demo Pipeline`, `Demo Pipeline 2`, `Demo3`, graphiques candles et commandes de backfill/replay. |
|
||||||
|
|
||||||
@@ -547,7 +547,7 @@ Le pipeline `0.7.x` couvre déjà les étapes suivantes :
|
|||||||
Un corpus local de reprise contient notamment :
|
Un corpus local de reprise contient notamment :
|
||||||
|
|
||||||
| Indicateur | Valeur observée |
|
| Indicateur | Valeur observée |
|
||||||
|---|---:|
|
|-----------------------|----------------:|
|
||||||
| transactions chain | `2956` |
|
| transactions chain | `2956` |
|
||||||
| decoded events | `7159` |
|
| decoded events | `7159` |
|
||||||
| trade events | `2738` |
|
| trade events | `2738` |
|
||||||
@@ -564,7 +564,7 @@ Cette distribution montre que les swaps sont déjà fortement présents, mais qu
|
|||||||
Les surfaces suivantes existent dans le code, dans la matrice ou dans le corpus local. Leur niveau de preuve doit rester explicite.
|
Les surfaces suivantes existent dans le code, dans la matrice ou dans le corpus local. Leur niveau de preuve doit rester explicite.
|
||||||
|
|
||||||
| Code | Statut de travail | Commentaire |
|
| Code | Statut de travail | Commentaire |
|
||||||
|---|---|---|
|
|-------------------|--------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `pump_fun` | launch surface | Surface de launch / mint initial. À traiter après les DEX effectifs sauf besoin de migration. |
|
| `pump_fun` | launch surface | Surface de launch / mint initial. À traiter après les DEX effectifs sauf besoin de migration. |
|
||||||
| `pump_swap` | DEX effectif | Swaps `buy` / `sell` observés. Non-trade à étendre plus tard. |
|
| `pump_swap` | DEX effectif | Swaps `buy` / `sell` observés. Non-trade à étendre plus tard. |
|
||||||
| `raydium_cpmm` | DEX effectif consolidé partiellement | Swaps et premiers events non-trade prouvés sur corpus antérieur. |
|
| `raydium_cpmm` | DEX effectif consolidé partiellement | Swaps et premiers events non-trade prouvés sur corpus antérieur. |
|
||||||
@@ -585,7 +585,7 @@ Les surfaces suivantes existent dans le code, dans la matrice ou dans le corpus
|
|||||||
Aucun `program_id`, DEX ou event ne doit être documenté comme vérifié sans preuve reproductible.
|
Aucun `program_id`, DEX ou event ne doit être documenté comme vérifié sans preuve reproductible.
|
||||||
|
|
||||||
| Statut | Sens |
|
| Statut | Sens |
|
||||||
|---|---|
|
|----------------------|-------------------------------------------------------------------------------------------------------------|
|
||||||
| `known` | Connu/listé dans le code, une doc, une source externe ou la matrice. |
|
| `known` | Connu/listé dans le code, une doc, une source externe ou la matrice. |
|
||||||
| `observed` | Vu dans une transaction, une instruction, une base locale ou un corpus on-chain. |
|
| `observed` | Vu dans une transaction, une instruction, une base locale ou un corpus on-chain. |
|
||||||
| `decoded` | Un decoder produit un event structuré ou un `instruction_audit` classé. |
|
| `decoded` | Un decoder produit un event structuré ou un `instruction_audit` classé. |
|
||||||
@@ -599,7 +599,7 @@ La tranche `0.7.45` clôt la normalisation séparée de `meteora_dlmm` sur le co
|
|||||||
Éléments validés :
|
Éléments validés :
|
||||||
|
|
||||||
| Famille | Events DLMM couverts |
|
| Famille | Events DLMM couverts |
|
||||||
|---|---|
|
|----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| Swaps | `swap`, `swap2`, `swap_exact_out` lorsque présents, avec enrichissement `anchorSwapEvent` pour `Swap` / `Swap2Evt`. |
|
| Swaps | `swap`, `swap2`, `swap_exact_out` lorsque présents, avec enrichissement `anchorSwapEvent` pour `Swap` / `Swap2Evt`. |
|
||||||
| Création / lifecycle | `create_pool`, `lb_pair_create_event`, `initialize_bin_array`, `initialize_position`. |
|
| Création / lifecycle | `create_pool`, `lb_pair_create_event`, `initialize_bin_array`, `initialize_position`. |
|
||||||
| Positions | `position_create_event`, `position_close_event`, `close_position_if_empty`. |
|
| Positions | `position_create_event`, `position_close_event`, `close_position_if_empty`. |
|
||||||
@@ -610,7 +610,7 @@ La tranche `0.7.45` clôt la normalisation séparée de `meteora_dlmm` sur le co
|
|||||||
Validation locale finale sur la base DLMM dédiée :
|
Validation locale finale sur la base DLMM dédiée :
|
||||||
|
|
||||||
| Indicateur | Valeur observée |
|
| Indicateur | Valeur observée |
|
||||||
|---|---:|
|
|-------------------------------|----------------:|
|
||||||
| transactions rejouées | `3027` |
|
| transactions rejouées | `3027` |
|
||||||
| trades matérialisés | `530` |
|
| trades matérialisés | `530` |
|
||||||
| liquidity events matérialisés | `15` |
|
| liquidity events matérialisés | `15` |
|
||||||
@@ -644,7 +644,7 @@ Chaque DEX ou variante de DEX doit avoir sa propre étape de validation. Les fam
|
|||||||
### 4.1. Ordre de travail DEX effectifs
|
### 4.1. Ordre de travail DEX effectifs
|
||||||
|
|
||||||
| Priorité | Code cible | Rôle | Action prochaine |
|
| Priorité | Code cible | Rôle | Action prochaine |
|
||||||
|---:|---|---|---|
|
|---------:|-------------------|--------------------------------|----------------------------------------------------------------------------------------|
|
||||||
| 1 | `pump_swap` | AMM / swap | Maintenir les invariants swaps et chercher les non-trade prouvés. |
|
| 1 | `pump_swap` | AMM / swap | Maintenir les invariants swaps et chercher les non-trade prouvés. |
|
||||||
| 2 | `raydium_cpmm` | AMM | Garder consolidé ; ne rouvrir que sur nouveaux discriminators/corpus. |
|
| 2 | `raydium_cpmm` | AMM | Garder consolidé ; ne rouvrir que sur nouveaux discriminators/corpus. |
|
||||||
| 3 | `raydium_clmm` | CLMM | Garder consolidé ; ne rouvrir que sur nouveaux discriminators/corpus. |
|
| 3 | `raydium_clmm` | CLMM | Garder consolidé ; ne rouvrir que sur nouveaux discriminators/corpus. |
|
||||||
@@ -739,7 +739,7 @@ Table actuelle :
|
|||||||
Champs principaux :
|
Champs principaux :
|
||||||
|
|
||||||
| Champ conceptuel | Rôle |
|
| Champ conceptuel | Rôle |
|
||||||
|---|---|
|
|--------------------------------|------------------------------------------------------------------------|
|
||||||
| `transaction_id` / `signature` | rattachement transactionnel stable |
|
| `transaction_id` / `signature` | rattachement transactionnel stable |
|
||||||
| `decoder_scope` | périmètre logique du decoder, actuellement `dex_decode.local_pipeline` |
|
| `decoder_scope` | périmètre logique du decoder, actuellement `dex_decode.local_pipeline` |
|
||||||
| `decoder_version` | version logique du decoder |
|
| `decoder_version` | version logique du decoder |
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ La suite ajoute d'abord le binaire de fusion SQLite en `0.7.58`, puis `demo4` en
|
|||||||
### Prochaines tranches recommandées
|
### Prochaines tranches recommandées
|
||||||
|
|
||||||
| Priorité | Tranche | Surface | Objectif |
|
| Priorité | Tranche | Surface | Objectif |
|
||||||
|---:|---|---|---|
|
|---------:|----------|-----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| 1 | `0.7.58` | `sqlite_db_transaction_merger` | Binaire de fusion de bases SQLite transactionnelles vers `final.db` / `final.next.db`, sans RPC/backfill/décodage pendant le merge, puis replay anti-régression cross-DEX Pump/Raydium/Meteora. |
|
| 1 | `0.7.58` | `sqlite_db_transaction_merger` | Binaire de fusion de bases SQLite transactionnelles vers `final.db` / `final.next.db`, sans RPC/backfill/décodage pendant le merge, puis replay anti-régression cross-DEX Pump/Raydium/Meteora. |
|
||||||
| 2 | `0.7.59` | `demo4_program_surface_discovery` | UI/queries de découverte des contenus non pris en compte depuis la base consolidée : aucun auto-decode métier, aucune auto-materialization, aucune auto-promotion. |
|
| 2 | `0.7.59` | `demo4_program_surface_discovery` | UI/queries de découverte des contenus non pris en compte depuis la base consolidée : aucun auto-decode métier, aucune auto-materialization, aucune auto-promotion. |
|
||||||
| 3 | `0.7.60` | `meteora_damm_v1` | Clôture séparée DAMM v1 : pools, swaps, liquidity, lock, fees/admin, coverage et matérialisation complète. |
|
| 3 | `0.7.60` | `meteora_damm_v1` | Clôture séparée DAMM v1 : pools, swaps, liquidity, lock, fees/admin, coverage et matérialisation complète. |
|
||||||
@@ -60,7 +60,7 @@ Règles de planification :
|
|||||||
### Sources upstream obligatoires à vérifier
|
### Sources upstream obligatoires à vérifier
|
||||||
|
|
||||||
| Source | Usage |
|
| Source | Usage |
|
||||||
|---|---|
|
|-------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `idls/` | Corpus local d’IDL Solscan téléchargés et versionnés dans le workspace ; source locale obligatoire à comparer aux liens Git avant décision de decoder. |
|
| `idls/` | Corpus local d’IDL Solscan téléchargés et versionnés dans le workspace ; source locale obligatoire à comparer aux liens Git avant décision de decoder. |
|
||||||
| `https://github.com/sevenlabs-hq/carbon/tree/main/decoders` | Source principale des decoders multi-protocoles. |
|
| `https://github.com/sevenlabs-hq/carbon/tree/main/decoders` | Source principale des decoders multi-protocoles. |
|
||||||
| `https://github.com/0xfnzero/solana-streamer` | Source complémentaire PumpFun/PumpSwap/Bonk/Raydium CPMM. |
|
| `https://github.com/0xfnzero/solana-streamer` | Source complémentaire PumpFun/PumpSwap/Bonk/Raydium CPMM. |
|
||||||
@@ -78,7 +78,7 @@ Règle active après la clôture DLMM : les tranches `0.7.58` et `0.7.59` sont d
|
|||||||
Les comptes non-programmes (`platform_config`, token authority, comptes de configuration, comptes de pool, accounts de programme) ne créent pas de version decoder autonome. `SOLSCAN_ACCOUNT_SOURCES` reste un inventaire de découverte, pas une preuve de support local.
|
Les comptes non-programmes (`platform_config`, token authority, comptes de configuration, comptes de pool, accounts de programme) ne créent pas de version decoder autonome. `SOLSCAN_ACCOUNT_SOURCES` reste un inventaire de découverte, pas une preuve de support local.
|
||||||
|
|
||||||
| Version cible | Decoder / surface | Program id | Famille | Objectif de clôture |
|
| Version cible | Decoder / surface | Program id | Famille | Objectif de clôture |
|
||||||
|---|---|---|---|---|
|
|---------------|-----------------------------------|------------------------------------------------|------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `0.7.53` | `pump_swap` | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` | Pump / AMM | **Clos** : `buy/sell/buy_exact_quote_in` matérialisés seulement depuis sources exactes ; events Anchor audit-only ; tests synthétiques IDL ; SQL global. |
|
| `0.7.53` | `pump_swap` | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` | Pump / AMM | **Clos** : `buy/sell/buy_exact_quote_in` matérialisés seulement depuis sources exactes ; events Anchor audit-only ; tests synthétiques IDL ; SQL global. |
|
||||||
| `0.7.54` | `pump_fun` | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` | Pump / launch-bonding | **Clos** : decoder maximal IDL/local, trades directs `buy/sell/buy_exact_sol_in`, v2/exact via `trade_event`, non-trades matérialisés selon contexte, validations Pump.fun propres. |
|
| `0.7.54` | `pump_fun` | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` | Pump / launch-bonding | **Clos** : decoder maximal IDL/local, trades directs `buy/sell/buy_exact_sol_in`, v2/exact via `trade_event`, non-trades matérialisés selon contexte, validations Pump.fun propres. |
|
||||||
| `0.7.55` | `pump_fees` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | Pump / fee | **Clos** : `29` instructions, `20` events Anchor, fee/reward/admin/lifecycle, `get_fees` decoded-only, failed tx audit-only, aucun trade/candle direct. |
|
| `0.7.55` | `pump_fees` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | Pump / fee | **Clos** : `29` instructions, `20` events Anchor, fee/reward/admin/lifecycle, `get_fees` decoded-only, failed tx audit-only, aucun trade/candle direct. |
|
||||||
@@ -965,7 +965,7 @@ Réalisé :
|
|||||||
Matrice cible initiale :
|
Matrice cible initiale :
|
||||||
|
|
||||||
| Code cible | Type | Statut `0.7.29` | Objectif immédiat |
|
| Code cible | Type | Statut `0.7.29` | Objectif immédiat |
|
||||||
|---|---:|---|---|
|
|-----------------------|-----------------------:|----------------------------------|-----------------------------------------------------------|
|
||||||
| `pump_fun` | launch + bonding curve | partiel | rattacher mint initial, bonding curve et migration |
|
| `pump_fun` | launch + bonding curve | partiel | rattacher mint initial, bonding curve et migration |
|
||||||
| `pump_swap` | AMM / swap | supporté | conserver trades/candles |
|
| `pump_swap` | AMM / swap | supporté | conserver trades/candles |
|
||||||
| `raydium_cpmm` | AMM | supporté | conserver trades/candles |
|
| `raydium_cpmm` | AMM | supporté | conserver trades/candles |
|
||||||
@@ -1250,7 +1250,7 @@ Fait :
|
|||||||
Validation locale finale observée sur la base DLMM dédiée :
|
Validation locale finale observée sur la base DLMM dédiée :
|
||||||
|
|
||||||
| Indicateur | Valeur |
|
| Indicateur | Valeur |
|
||||||
|---|---:|
|
|-------------------------------|-------:|
|
||||||
| transactions rejouées | `3027` |
|
| transactions rejouées | `3027` |
|
||||||
| trades matérialisés | `530` |
|
| trades matérialisés | `530` |
|
||||||
| liquidity events matérialisés | `15` |
|
| liquidity events matérialisés | `15` |
|
||||||
@@ -1299,7 +1299,7 @@ Events DAMM v1 ajoutés côté decoder :
|
|||||||
Discriminants DAMM v1 traités dans cette tranche :
|
Discriminants DAMM v1 traités dans cette tranche :
|
||||||
|
|
||||||
| Discriminant | Mapping upstream Git | Event local | Statut |
|
| Discriminant | Mapping upstream Git | Event local | Statut |
|
||||||
|---|---|---|---|
|
|--------------------|----------------------------------------------------------|--------------------------------------|---------------------------|
|
||||||
| `07a68aabceabecf4` | `InitializePermissionlessConstantProductPoolWithConfig` | `meteora_damm_v1.create_pool` | observé dans corpus local |
|
| `07a68aabceabecf4` | `InitializePermissionlessConstantProductPoolWithConfig` | `meteora_damm_v1.create_pool` | observé dans corpus local |
|
||||||
| `3095dc823d0b09b2` | `InitializePermissionlessConstantProductPoolWithConfig2` | `meteora_damm_v1.create_pool` | observé dans corpus local |
|
| `3095dc823d0b09b2` | `InitializePermissionlessConstantProductPoolWithConfig2` | `meteora_damm_v1.create_pool` | observé dans corpus local |
|
||||||
| `856d2cb338ee7221` | `RemoveBalanceLiquidity` | `meteora_damm_v1.remove_liquidity` | observé dans corpus local |
|
| `856d2cb338ee7221` | `RemoveBalanceLiquidity` | `meteora_damm_v1.remove_liquidity` | observé dans corpus local |
|
||||||
@@ -1447,7 +1447,7 @@ Décisions actives :
|
|||||||
- Après `0.7.62`, le décalage de deux versions est assumé et documenté.
|
- Après `0.7.62`, le décalage de deux versions est assumé et documenté.
|
||||||
|
|
||||||
| Version cible | Decoder / surface | Program id | Famille | Objectif de clôture |
|
| Version cible | Decoder / surface | Program id | Famille | Objectif de clôture |
|
||||||
|---|---|---|---|---|
|
|---------------|-----------------------------------|------------------------------------------------|------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `0.7.53` | `pump_swap` | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` | Pump / AMM | **Clos** : `buy/sell/buy_exact_quote_in` matérialisés seulement depuis sources exactes ; events Anchor audit-only ; tests synthétiques IDL ; SQL global. |
|
| `0.7.53` | `pump_swap` | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` | Pump / AMM | **Clos** : `buy/sell/buy_exact_quote_in` matérialisés seulement depuis sources exactes ; events Anchor audit-only ; tests synthétiques IDL ; SQL global. |
|
||||||
| `0.7.54` | `pump_fun` | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` | Pump / launch-bonding | **Clos** : decoder maximal IDL/local, trades directs `buy/sell/buy_exact_sol_in`, v2/exact via `trade_event`, non-trades matérialisés selon contexte, validations Pump.fun propres. |
|
| `0.7.54` | `pump_fun` | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` | Pump / launch-bonding | **Clos** : decoder maximal IDL/local, trades directs `buy/sell/buy_exact_sol_in`, v2/exact via `trade_event`, non-trades matérialisés selon contexte, validations Pump.fun propres. |
|
||||||
| `0.7.55` | `pump_fees` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | Pump / fee | **Clos** : `29` instructions, `20` events Anchor, fee/reward/admin/lifecycle, `get_fees` decoded-only, failed tx audit-only, aucun trade/candle direct. |
|
| `0.7.55` | `pump_fees` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | Pump / fee | **Clos** : `29` instructions, `20` events Anchor, fee/reward/admin/lifecycle, `get_fees` decoded-only, failed tx audit-only, aucun trade/candle direct. |
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ D’après le README, le modèle contient déjà notamment :
|
|||||||
Ces tables couvrent déjà les besoins principaux :
|
Ces tables couvrent déjà les besoins principaux :
|
||||||
|
|
||||||
| Besoin | Couverture actuelle |
|
| Besoin | Couverture actuelle |
|
||||||
|---|---|
|
|------------------------------------------|---------------------------------------------------|
|
||||||
| Stockage brut/audit de tout event décodé | Oui, via `k_sol_dex_decoded_events.payload_json`. |
|
| Stockage brut/audit de tout event décodé | Oui, via `k_sol_dex_decoded_events.payload_json`. |
|
||||||
| Trades/candles | Oui. |
|
| Trades/candles | Oui. |
|
||||||
| Liquidity/lifecycle/fee/reward/admin | Oui, au moins structurellement. |
|
| Liquidity/lifecycle/fee/reward/admin | Oui, au moins structurellement. |
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ Cette matrice complète `kb_lib/src/dex_support_matrix.rs`. Elle documente **ce
|
|||||||
## Règle de lecture
|
## Règle de lecture
|
||||||
|
|
||||||
| Statut | Sens |
|
| Statut | Sens |
|
||||||
|---|---|
|
|----------------------|----------------------------------------------------------------------------------------------------|
|
||||||
| `supported` | Decoder local actif et matérialisation métier possible sur corpus validé. |
|
| `supported` | Decoder local actif et matérialisation métier possible sur corpus validé. |
|
||||||
| `partial` | Decoder partiel ou surface partielle : des events existent, mais la couverture n’est pas complète. |
|
| `partial` | Decoder partiel ou surface partielle : des events existent, mais la couverture n’est pas complète. |
|
||||||
| `audit-only` | Decoder local spécialisé, mais aucun trade/candle/matérialisation marché. |
|
| `audit-only` | Decoder local spécialisé, mais aucun trade/candle/matérialisation marché. |
|
||||||
@@ -76,7 +76,7 @@ Cette matrice complète `kb_lib/src/dex_support_matrix.rs`. Elle documente **ce
|
|||||||
## Matrice prioritaire DEX/version
|
## Matrice prioritaire DEX/version
|
||||||
|
|
||||||
| Ordre | DEX/version | État actuel | Fait | Reste à faire |
|
| Ordre | DEX/version | État actuel | Fait | Reste à faire |
|
||||||
|---:|---|---|---|---|
|
|------:|-------------------------------------------------|---------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| 1 | `raydium_cpmm` | `supported / 0.7.50-pre-r2 closure recheck` | Couverture CPMM clôturée : swaps, lifecycle, fees, admin/config, deposit/withdraw, `lp_change_event`, `swap_event` decoded-only, `cpi_event` transport Carbon et `anchor_idl_instruction` Solscan/manual pour `40f4bc78a7e9690a`. | Ne pas promouvoir `anchor_idl_instruction` : c'est de la gestion Anchor IDL, pas un événement AMM métier. |
|
| 1 | `raydium_cpmm` | `supported / 0.7.50-pre-r2 closure recheck` | Couverture CPMM clôturée : swaps, lifecycle, fees, admin/config, deposit/withdraw, `lp_change_event`, `swap_event` decoded-only, `cpi_event` transport Carbon et `anchor_idl_instruction` Solscan/manual pour `40f4bc78a7e9690a`. | Ne pas promouvoir `anchor_idl_instruction` : c'est de la gestion Anchor IDL, pas un événement AMM métier. |
|
||||||
| 2 | `raydium_clmm` | `supported / 0.7.50-pre-r2 closure recheck` | Couverture CLMM complétée : `cpi_event`, `update_dynamic_fee_config`, Program-data events locaux, `create_support_mint_associated` vers `k_sol_token_account_events`, familles sans `unknown`, router/swap Program-data en decoded-only. | Rejouer la base CLMM et confirmer que les seuls résidus sont `decoded_events_only`, transactions failed ou absence prouvée de contexte pool/pair. |
|
| 2 | `raydium_clmm` | `supported / 0.7.50-pre-r2 closure recheck` | Couverture CLMM complétée : `cpi_event`, `update_dynamic_fee_config`, Program-data events locaux, `create_support_mint_associated` vers `k_sol_token_account_events`, familles sans `unknown`, router/swap Program-data en decoded-only. | Rejouer la base CLMM et confirmer que les seuls résidus sont `decoded_events_only`, transactions failed ou absence prouvée de contexte pool/pair. |
|
||||||
| 3 | `raydium_launchpad` | `bootstrap / 0.7.50` | Surface canonique normalisée, 1 entrée programme + 26 discriminants Carbon/IDL listés, fallback audit/mapped decoder, SQL dédié. | Créer DB neuve, backfill par discriminant, replay forcé, promouvoir seulement après corpus local. |
|
| 3 | `raydium_launchpad` | `bootstrap / 0.7.50` | Surface canonique normalisée, 1 entrée programme + 26 discriminants Carbon/IDL listés, fallback audit/mapped decoder, SQL dédié. | Créer DB neuve, backfill par discriminant, replay forcé, promouvoir seulement après corpus local. |
|
||||||
@@ -140,7 +140,7 @@ Un event peut devenir `materialized` uniquement si :
|
|||||||
## Annexe — snapshot de `kb_lib/src/dex_support_matrix.rs` (`1FE5`)
|
## Annexe — snapshot de `kb_lib/src/dex_support_matrix.rs` (`1FE5`)
|
||||||
|
|
||||||
| Code | Rôle | Surface | Program id status | Observed | Decoded | Materialized | Status | Skip reason |
|
| Code | Rôle | Surface | Program id status | Observed | Decoded | Materialized | Status | Skip reason |
|
||||||
|---|---|---|---|---:|---:|---:|---|---|
|
|-----------------------------|---------------------|---------------------|-----------------------------------------------|---------:|--------:|-------------:|-----------------|------------------------------------------------------------------------------------------------------------|
|
||||||
| `pump_fun` | `launch_surface` | `launch/bonding` | `known` | oui | oui | oui | `0.7.54_closed` | Decoder maximal IDL/local ; v2/exact matérialisés via `trade_event` canonique ; non-trades selon contexte. |
|
| `pump_fun` | `launch_surface` | `launch/bonding` | `known` | oui | oui | oui | `0.7.54_closed` | Decoder maximal IDL/local ; v2/exact matérialisés via `trade_event` canonique ; non-trades selon contexte. |
|
||||||
| `pump_swap` | `dex_effective` | `AMM` | `known` | oui | oui | oui | `supported` | |
|
| `pump_swap` | `dex_effective` | `AMM` | `known` | oui | oui | oui | `supported` | |
|
||||||
| `raydium_cpmm` | `dex_effective` | `AMM` | `known` | oui | oui | oui | `supported` | |
|
| `raydium_cpmm` | `dex_effective` | `AMM` | `known` | oui | oui | oui | `supported` | |
|
||||||
@@ -302,7 +302,7 @@ La clôture `0.7.50-pre-r2` complète les tranches `0.7.48` et `0.7.49` sans rou
|
|||||||
## Note `0.7.51` — `raydium_amm_v4`
|
## Note `0.7.51` — `raydium_amm_v4`
|
||||||
|
|
||||||
| Champ | Décision `0.7.51` |
|
| Champ | Décision `0.7.51` |
|
||||||
|---|---|
|
|-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| Code local | `raydium_amm_v4` |
|
| Code local | `raydium_amm_v4` |
|
||||||
| Program id canonique | `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8` |
|
| Program id canonique | `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8` |
|
||||||
| Statut | `supported / 0.7.51 closed` ; max-decoder local `00..11` validé |
|
| Statut | `supported / 0.7.51 closed` ; max-decoder local `00..11` validé |
|
||||||
@@ -320,34 +320,34 @@ La tranche a été validée sur base SQLite dédiée : tous les discriminants `0
|
|||||||
## 0.7.52 — Raydium Stable Swap
|
## 0.7.52 — Raydium Stable Swap
|
||||||
|
|
||||||
| decoder_code | program id | status | layout | notes |
|
| decoder_code | program id | status | layout | notes |
|
||||||
|---|---|---|---|---|
|
|-----------------------|------------------------------------------------|--------------------|----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `raydium_stable_swap` | `5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h` | supported / closed | legacy 1 octet | Surface locale `00..0d` couverte ; swaps `swap_base_in/out` matérialisés uniquement depuis deltas vault exacts ; instruction bounds et failed tx restent decoded-only. |
|
| `raydium_stable_swap` | `5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h` | supported / closed | legacy 1 octet | Surface locale `00..0d` couverte ; swaps `swap_base_in/out` matérialisés uniquement depuis deltas vault exacts ; instruction bounds et failed tx restent decoded-only. |
|
||||||
|
|
||||||
|
|
||||||
## 0.7.54 — Pump.fun
|
## 0.7.54 — Pump.fun
|
||||||
|
|
||||||
| Decoder | Program id | Statut | Source discriminants | Couverture locale initiale | Règles métier |
|
| Decoder | Program id | Statut | Source discriminants | Couverture locale initiale | Règles métier |
|
||||||
|---|---|---:|---|---|---|
|
|------------|-----------------------------------------------|--------------------------:|-------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `pump_fun` | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` | supported / 0.7.54 closed | upstream registry + `idls/pump_fun.6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P.json` + corpus SQLite validé | `40` instructions et `23` events Anchor connus couverts ; `buy/sell/buy_exact_sol_in` matérialisés ; `buy_v2/sell_v2/buy_exact_quote_in_v2` audit/routing ; `trade_event` matérialise les montants exécutés v2/exact | `k_sol_trade_events` uniquement avec montants exacts ; `create/migrate` vers `k_sol_launch_events` ; creator fees vers `k_sol_fee_events` ; cashback/incentives vers `k_sol_reward_events` ; admin/config vers `k_sol_pool_admin_events` ; decoded-only/audit-only avec skip reason sinon |
|
| `pump_fun` | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` | supported / 0.7.54 closed | upstream registry + `idls/pump_fun.6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P.json` + corpus SQLite validé | `40` instructions et `23` events Anchor connus couverts ; `buy/sell/buy_exact_sol_in` matérialisés ; `buy_v2/sell_v2/buy_exact_quote_in_v2` audit/routing ; `trade_event` matérialise les montants exécutés v2/exact | `k_sol_trade_events` uniquement avec montants exacts ; `create/migrate` vers `k_sol_launch_events` ; creator fees vers `k_sol_fee_events` ; cashback/incentives vers `k_sol_reward_events` ; admin/config vers `k_sol_pool_admin_events` ; decoded-only/audit-only avec skip reason sinon |
|
||||||
|
|
||||||
## 0.7.53 — PumpSwap
|
## 0.7.53 — PumpSwap
|
||||||
|
|
||||||
| Decoder | Program id | Statut | Source discriminants | Couverture locale | Règles métier |
|
| Decoder | Program id | Statut | Source discriminants | Couverture locale | Règles métier |
|
||||||
|---|---|---:|---|---|---|
|
|-------------|-----------------------------------------------|--------------------------:|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `pump_swap` | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` | supported / 0.7.53 closed | upstream registry + `idls/pump_swap.pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA.json` + corpus Demo3/replay | instructions : `buy`, `sell`, `buy_exact_quote_in`, `deposit`, `withdraw`, `create_pool`, `create_config`, `update_fee_config`, creator-fee, cashback, token incentives, volume accumulator, admin/config ; events Anchor autonomes audit-only | `buy_exact_quote_in` trade uniquement avec `pump_swap_anchor_buy_event`; aucun non-swap en trade/candle ; failed tx decoded-only ; `buy_event`/`sell_event` Program-data audit-only ; `transfer_creator_fees_to_pump_v2` et `update_buyback_config` confirmés par Solscan IDL ; `set_reserved_fee_recipient` conservé sur preuve log locale |
|
| `pump_swap` | `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA` | supported / 0.7.53 closed | upstream registry + `idls/pump_swap.pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA.json` + corpus Demo3/replay | instructions : `buy`, `sell`, `buy_exact_quote_in`, `deposit`, `withdraw`, `create_pool`, `create_config`, `update_fee_config`, creator-fee, cashback, token incentives, volume accumulator, admin/config ; events Anchor autonomes audit-only | `buy_exact_quote_in` trade uniquement avec `pump_swap_anchor_buy_event`; aucun non-swap en trade/candle ; failed tx decoded-only ; `buy_event`/`sell_event` Program-data audit-only ; `transfer_creator_fees_to_pump_v2` et `update_buyback_config` confirmés par Solscan IDL ; `set_reserved_fee_recipient` conservé sur preuve log locale |
|
||||||
|
|
||||||
|
|
||||||
## 0.7.55 — Pump Fees
|
## 0.7.55 — Pump Fees
|
||||||
|
|
||||||
| Decoder | Program id | Statut | Source discriminants | Couverture locale | Règles métier |
|
| Decoder | Program id | Statut | Source discriminants | Couverture locale | Règles métier |
|
||||||
|---|---|---:|---|---|---|
|
|-------------|-----------------------------------------------|----------------------------:|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `pump_fees` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | supported / `0.7.55 closed` | `idls/pump_fees.pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ.json` + Carbon partiel + Solscan discriminators | `29` instructions et `20` events Anchor couverts ; tests synthétiques pour les Anchor events IDL non observés ; replay final propre ; watchlist `pump_fees` vide | Aucun trade/candle direct ; `get_fees` decoded-only ; social claim vers reward ; donation/buyback vers fee ; config/authority/tier/admin vers admin/lifecycle ; failed tx audit-only ; deux events Solscan hors IDL conservés non observés. |
|
| `pump_fees` | `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ` | supported / `0.7.55 closed` | `idls/pump_fees.pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ.json` + Carbon partiel + Solscan discriminators | `29` instructions et `20` events Anchor couverts ; tests synthétiques pour les Anchor events IDL non observés ; replay final propre ; watchlist `pump_fees` vide | Aucun trade/candle direct ; `get_fees` decoded-only ; social claim vers reward ; donation/buyback vers fee ; config/authority/tier/admin vers admin/lifecycle ; failed tx audit-only ; deux events Solscan hors IDL conservés non observés. |
|
||||||
|
|
||||||
|
|
||||||
## 0.7.56 — Meteora DBC clôturé
|
## 0.7.56 — Meteora DBC clôturé
|
||||||
|
|
||||||
| Decoder | Program id | Statut | Source locale | Couverture | Décision métier |
|
| Decoder | Program id | Statut | Source locale | Couverture | Décision métier |
|
||||||
|---|---|---|---|---|---|
|
|---------------|-----------------------------------------------|-----------------------------|---------------------------------------------------------------------|---------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `meteora_dbc` | `dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN` | `supported / closed 0.7.56` | `idls/meteora_dbc.dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN.json` | `28` instructions IDL + `23` events Anchor IDL, tests synthétiques et validation SQL dédiée | `swap`/`swap2` seuls vers trade/candle direct ; lifecycle/admin/fee selon contexte ; fees parent+legs ; failed tx audit-only. |
|
| `meteora_dbc` | `dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN` | `supported / closed 0.7.56` | `idls/meteora_dbc.dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN.json` | `28` instructions IDL + `23` events Anchor IDL, tests synthétiques et validation SQL dédiée | `swap`/`swap2` seuls vers trade/candle direct ; lifecycle/admin/fee selon contexte ; fees parent+legs ; failed tx audit-only. |
|
||||||
|
|
||||||
Validation finale : `446` tests, clippy OK, `480 replayed`, `264 trades`, `1 liquidity`, `122 lifecycle`, `1056 candles`, `89` parents fee DBC, `96` fee amount legs, invariants SQL propres.
|
Validation finale : `446` tests, clippy OK, `480 replayed`, `264 trades`, `1 liquidity`, `122 lifecycle`, `1056 candles`, `89` parents fee DBC, `96` fee amount legs, invariants SQL propres.
|
||||||
@@ -355,7 +355,7 @@ Validation finale : `446` tests, clippy OK, `480 replayed`, `264 trades`, `1 liq
|
|||||||
## 0.7.57 — Meteora DLMM clôturé
|
## 0.7.57 — Meteora DLMM clôturé
|
||||||
|
|
||||||
| Decoder | Program id | Statut | Source locale | Couverture finale | Décision métier |
|
| Decoder | Program id | Statut | Source locale | Couverture finale | Décision métier |
|
||||||
|---|---|---|---|---|---|
|
|----------------|-----------------------------------------------|-----------------------------|----------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `meteora_dlmm` | `LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo` | `supported / closed 0.7.57` | `idls/meteora_dlmm.LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo.json` | `76` instructions IDL, `30` events Anchor, `12` accounts, `initialize_preset_parameter_v2` ajouté depuis corpus local | Les 6 swaps instructionnels produisent seuls les trades/candles ; Anchor `swap_event/swap2_evt` = lifecycle `swap_log`; liquidity/bin/position/lifecycle/admin/orderbook/fee/reward matérialisés selon cible ; failed tx audit-only. |
|
| `meteora_dlmm` | `LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo` | `supported / closed 0.7.57` | `idls/meteora_dlmm.LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo.json` | `76` instructions IDL, `30` events Anchor, `12` accounts, `initialize_preset_parameter_v2` ajouté depuis corpus local | Les 6 swaps instructionnels produisent seuls les trades/candles ; Anchor `swap_event/swap2_evt` = lifecycle `swap_log`; liquidity/bin/position/lifecycle/admin/orderbook/fee/reward matérialisés selon cible ; failed tx audit-only. |
|
||||||
|
|
||||||
Validation finale : `460` tests, clippy OK, `769 replayed`, `106 trades`, `664 liquidity`, `1107 lifecycle`, `424 candles`, `8062` instruction observations, catalogue `169/218/218`. Checks SQL bloquants propres.
|
Validation finale : `460` tests, clippy OK, `769 replayed`, `106 trades`, `664 liquidity`, `1107 lifecycle`, `424 candles`, `8062` instruction observations, catalogue `169/218/218`. Checks SQL bloquants propres.
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Cette matrice complète `docs/DEX_DECODER_MATRIX.md` avec une lecture par famill
|
|||||||
## Règles de statut
|
## Règles de statut
|
||||||
|
|
||||||
| Statut | Sens |
|
| Statut | Sens |
|
||||||
|---|---|
|
|----------------------------------|----------------------------------------------------------------------------------|
|
||||||
| `decoded` | Un decoder local produit un event spécialisé ou un event audit-only classé. |
|
| `decoded` | Un decoder local produit un event spécialisé ou un event audit-only classé. |
|
||||||
| `materialized` | L'event alimente une table métier existante validée par corpus. |
|
| `materialized` | L'event alimente une table métier existante validée par corpus. |
|
||||||
| `audit-only` | L'event reste dans `k_sol_dex_decoded_events` et ne produit jamais trade/candle. |
|
| `audit-only` | L'event reste dans `k_sol_dex_decoded_events` et ne produit jamais trade/candle. |
|
||||||
@@ -19,7 +19,7 @@ Cette matrice complète `docs/DEX_DECODER_MATRIX.md` avec une lecture par famill
|
|||||||
Sources inventoriées : Carbon `carbon-raydium-cpmm-decoder`, fnzero `solana-streamer` / `sol-parser-sdk` IDL `raydium_cpmm.json`.
|
Sources inventoriées : Carbon `carbon-raydium-cpmm-decoder`, fnzero `solana-streamer` / `sol-parser-sdk` IDL `raydium_cpmm.json`.
|
||||||
|
|
||||||
| Famille | Entrées Raydium CPMM | Statut `0.7.48` | Cible DB | Justification / règle |
|
| Famille | Entrées Raydium CPMM | Statut `0.7.48` | Cible DB | Justification / règle |
|
||||||
|---|---|---|---|---|
|
|--------------------------|-----------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `swap` | `swap_base_input`, `swap_base_output`, `swap_event` | `materialized` pour `swap_base_*`; `swap_event` audit-only | `k_sol_trade_events` seulement pour `swap_base_*`; `k_sol_dex_decoded_events_only` pour `swap_event` | `swap_event` est décodé mais ne produit jamais trade/candle afin d'éviter les doublons. |
|
| `swap` | `swap_base_input`, `swap_base_output`, `swap_event` | `materialized` pour `swap_base_*`; `swap_event` audit-only | `k_sol_trade_events` seulement pour `swap_base_*`; `k_sol_dex_decoded_events_only` pour `swap_event` | `swap_event` est décodé mais ne produit jamais trade/candle afin d'éviter les doublons. |
|
||||||
| `pool_create` | `initialize`, `initialize_with_permission` | `materialized` | `k_sol_pool_lifecycle_events` | `initialize_with_permission` est lifecycle-only et ne crée plus d'admin row. |
|
| `pool_create` | `initialize`, `initialize_with_permission` | `materialized` | `k_sol_pool_lifecycle_events` | `initialize_with_permission` est lifecycle-only et ne crée plus d'admin row. |
|
||||||
| `add_liquidity` | `deposit`, `lp_change_event(changeType=0)` | `materialized` | `k_sol_liquidity_events` | `deposit` et `lp_change_event(changeType=0)` matérialisent liquidity, sans trade/candle. |
|
| `add_liquidity` | `deposit`, `lp_change_event(changeType=0)` | `materialized` | `k_sol_liquidity_events` | `deposit` et `lp_change_event(changeType=0)` matérialisent liquidity, sans trade/candle. |
|
||||||
@@ -79,7 +79,7 @@ Sources inventoriées : Carbon `raydium-clmm-decoder`, fnzero `sol-parser-sdk`,
|
|||||||
État final validé : `45` entrées listées, `33` instructions locales observées/décodées, `25` entrées matérialisées, `1186` trades, `raydium_clmm.instruction_audit = 0`, fallback `upstream_git.instruction_match` localement couvert = `0`.
|
État final validé : `45` entrées listées, `33` instructions locales observées/décodées, `25` entrées matérialisées, `1186` trades, `raydium_clmm.instruction_audit = 0`, fallback `upstream_git.instruction_match` localement couvert = `0`.
|
||||||
|
|
||||||
| Famille | Entrées Raydium CLMM | Statut `0.7.49` | Cible DB | Justification / règle |
|
| Famille | Entrées Raydium CLMM | Statut `0.7.49` | Cible DB | Justification / règle |
|
||||||
|---|---|---|---|---|
|
|----------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------|----------------------------------------------------------------|-----------------------------------------------------------------------------------|
|
||||||
| `swap` | `swap`, `swap_v2` | `materialized` | `k_sol_trade_events` | Seuls ces swaps produisent trades/candles lorsque les montants sont exploitables. |
|
| `swap` | `swap`, `swap_v2` | `materialized` | `k_sol_trade_events` | Seuls ces swaps produisent trades/candles lorsque les montants sont exploitables. |
|
||||||
| `swap audit` | `swap_event`, `swap_router_base_in` | `observed/audit` ou `upstream_git_unverified` selon corpus | `k_sol_dex_decoded_events_only` | Pas de double trade/candle. |
|
| `swap audit` | `swap_event`, `swap_router_base_in` | `observed/audit` ou `upstream_git_unverified` selon corpus | `k_sol_dex_decoded_events_only` | Pas de double trade/candle. |
|
||||||
| `pool_create` | `create_pool`, `create_customizable_pool` | `decoded`; `create_pool` matérialisé quand prouvé | `k_sol_pool_lifecycle_events` | Création de pool = lifecycle, pas admin. |
|
| `pool_create` | `create_pool`, `create_customizable_pool` | `decoded`; `create_pool` matérialisé quand prouvé | `k_sol_pool_lifecycle_events` | Création de pool = lifecycle, pas admin. |
|
||||||
@@ -105,7 +105,7 @@ Sources inventoriées : Carbon `raydium-launchpad-decoder`, Solscan Program IDL
|
|||||||
État de départ préparé : `1` entrée programme et `26` entrées discriminées listées depuis Carbon/IDL. Toutes les entrées Launchpad sont gardées `decoded_events_only` en bootstrap, même si leur famille inférée est `swap`, `pool_create`, `fee`, `admin_config`, `launch` ou `migration`. La matérialisation métier est volontairement différée jusqu'au corpus local.
|
État de départ préparé : `1` entrée programme et `26` entrées discriminées listées depuis Carbon/IDL. Toutes les entrées Launchpad sont gardées `decoded_events_only` en bootstrap, même si leur famille inférée est `swap`, `pool_create`, `fee`, `admin_config`, `launch` ou `migration`. La matérialisation métier est volontairement différée jusqu'au corpus local.
|
||||||
|
|
||||||
| Famille | Entrées Raydium Launchpad | Statut `0.7.50` bootstrap | Cible DB initiale | Justification / règle |
|
| Famille | Entrées Raydium Launchpad | Statut `0.7.50` bootstrap | Cible DB initiale | Justification / règle |
|
||||||
|---|---|---|---|---|
|
|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------|---------------------------------|------------------------------------------------------------------------------------------------------------------|
|
||||||
| `swap` | `buy_exact_in`, `buy_exact_out`, `sell_exact_in`, `sell_exact_out`, `trade_event` | `upstream_git_mapped_unverified` puis `decoded/audit-only` si observé | `k_sol_dex_decoded_events_only` | Aucun trade/candle avant preuve locale de montants, sens et absence de doublon avec la surface DEX de migration. |
|
| `swap` | `buy_exact_in`, `buy_exact_out`, `sell_exact_in`, `sell_exact_out`, `trade_event` | `upstream_git_mapped_unverified` puis `decoded/audit-only` si observé | `k_sol_dex_decoded_events_only` | Aucun trade/candle avant preuve locale de montants, sens et absence de doublon avec la surface DEX de migration. |
|
||||||
| `pool_create` | `initialize`, `initialize_v2`, `initialize_with_token_2022`, `pool_create_event` | `upstream_git_mapped_unverified` | `decoded_events_only` | Lifecycle launch/pool non promu tant que le compte pool/mint/quote n'est pas validé localement. |
|
| `pool_create` | `initialize`, `initialize_v2`, `initialize_with_token_2022`, `pool_create_event` | `upstream_git_mapped_unverified` | `decoded_events_only` | Lifecycle launch/pool non promu tant que le compte pool/mint/quote n'est pas validé localement. |
|
||||||
| `add_liquidity` | `-` direct confirmé | `not_applicable` | `-` | Peut apparaître via DEX de destination ou SPL side effects, pas comme instruction Launchpad directe prouvée. |
|
| `add_liquidity` | `-` direct confirmé | `not_applicable` | `-` | Peut apparaître via DEX de destination ou SPL side effects, pas comme instruction Launchpad directe prouvée. |
|
||||||
@@ -179,7 +179,7 @@ Sources inventoriées : Carbon `raydium-amm-v4-decoder`, Pinax `src/raydium/amm`
|
|||||||
Validation locale finale : tous les discriminants AMM v4 officiels `00..11` sont observés ; `instruction_audit`, fallback upstream, decoded sans coverage, observations 8 octets, non-swap trade, failed tx trade, gaps inexpliqués et multi-target materialization sont vides.
|
Validation locale finale : tous les discriminants AMM v4 officiels `00..11` sont observés ; `instruction_audit`, fallback upstream, decoded sans coverage, observations 8 octets, non-swap trade, failed tx trade, gaps inexpliqués et multi-target materialization sont vides.
|
||||||
|
|
||||||
| Famille | Entrées AMM v4 | Statut `0.7.51-final` | Cible DB | Règle |
|
| Famille | Entrées AMM v4 | Statut `0.7.51-final` | Cible DB | Règle |
|
||||||
|---|---|---|---|---|
|
|--------------------------|------------------------------------------------------------------------|----------------------------------------|---------------------------------|---------------------------------------------------------------------------------------------|
|
||||||
| `swap` | `swap_base_in`, `swap_base_out`, `swap_base_in_v2`, `swap_base_out_v2` | observed/materialized partiel expliqué | `k_sol_trade_events` | Trade/candle seulement si tx successful + montants vault fiables ; sinon `skipTradeReason`. |
|
| `swap` | `swap_base_in`, `swap_base_out`, `swap_base_in_v2`, `swap_base_out_v2` | observed/materialized partiel expliqué | `k_sol_trade_events` | Trade/candle seulement si tx successful + montants vault fiables ; sinon `skipTradeReason`. |
|
||||||
| `pool_create` | `initialize`, `initialize2_pool` | observed/materialized | `k_sol_pool_lifecycle_events` | Alimente lifecycle et catalogue seulement quand les mints/pool sont prouvés. |
|
| `pool_create` | `initialize`, `initialize2_pool` | observed/materialized | `k_sol_pool_lifecycle_events` | Alimente lifecycle et catalogue seulement quand les mints/pool sont prouvés. |
|
||||||
| `pool_create` deprecated | `pre_initialize` | observed/materialized audit minimal | `k_sol_pool_lifecycle_events` | Lifecycle deprecated/partial ; ne crée pas de pair exploitable sans mints. |
|
| `pool_create` deprecated | `pre_initialize` | observed/materialized audit minimal | `k_sol_pool_lifecycle_events` | Lifecycle deprecated/partial ; ne crée pas de pair exploitable sans mints. |
|
||||||
@@ -197,7 +197,7 @@ Validation locale finale : tous les discriminants AMM v4 officiels `00..11` sont
|
|||||||
Status: **closed on local corpus**.
|
Status: **closed on local corpus**.
|
||||||
|
|
||||||
| entry | discriminator | family | expected target | local event kind | status |
|
| entry | discriminator | family | expected target | local event kind | status |
|
||||||
|---|---:|---|---|---|---|
|
|-----------------------|-------------------:|--------------------|---------------------------------------------|-------------------------------------------|-------------------------------------------------------|
|
||||||
| `initialize` | `00` | `pool_create` | `k_sol_pool_lifecycle_events` | `raydium_stable_swap.initialize` | observed/materialized when context complete |
|
| `initialize` | `00` | `pool_create` | `k_sol_pool_lifecycle_events` | `raydium_stable_swap.initialize` | observed/materialized when context complete |
|
||||||
| `init_model_data` | `01` | `model_setup` | decoded-only | `raydium_stable_swap.init_model_data` | observed decoded-only / explained |
|
| `init_model_data` | `01` | `model_setup` | decoded-only | `raydium_stable_swap.init_model_data` | observed decoded-only / explained |
|
||||||
| `update_model_data` | `02` | `admin_config` | `k_sol_pool_admin_events` | `raydium_stable_swap.update_model_data` | observed/materialized |
|
| `update_model_data` | `02` | `admin_config` | `k_sol_pool_admin_events` | `raydium_stable_swap.update_model_data` | observed/materialized |
|
||||||
@@ -226,7 +226,7 @@ Source locale prioritaire : `idls/pump_fun.6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5u
|
|||||||
Replay final rapporté : `1679 replayed`, `89 trades`, `10 lifecycle`, `348 candle upserts`, catalogue `52 tokens / 50 pools / 50 pairs`.
|
Replay final rapporté : `1679 replayed`, `89 trades`, `10 lifecycle`, `348 candle upserts`, catalogue `52 tokens / 50 pools / 50 pairs`.
|
||||||
|
|
||||||
| Entry / groupe | Discriminator | Family | Expected DB target | Local event kind cible | Status final |
|
| Entry / groupe | Discriminator | Family | Expected DB target | Local event kind cible | Status final |
|
||||||
|---|---:|---|---|---|---|
|
|--------------------------------------------------------------------|-------------------------------------------------------------:|----------------|-------------------------------------------|------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `create` / `create_v2` / `create_event` | `181ec828051c0777` / `d6904cec5f8b31b4` / `1b72a94ddeeb6376` | `launch` | `k_sol_launch_events` ou decoded-only | `pump_fun.create*` | couvert ; launch matérialisé quand mint/bonding/creator sont fiables |
|
| `create` / `create_v2` / `create_event` | `181ec828051c0777` / `d6904cec5f8b31b4` / `1b72a94ddeeb6376` | `launch` | `k_sol_launch_events` ou decoded-only | `pump_fun.create*` | couvert ; launch matérialisé quand mint/bonding/creator sont fiables |
|
||||||
| `migrate` / `migrate_v2` / migration events | `9beae792ec9ea21e` / `bbcb121fceedfe29` / voir IDL | `migration` | `k_sol_launch_events` ou decoded-only | `pump_fun.migrate*` | couvert ; migration matérialisée quand contexte fiable |
|
| `migrate` / `migrate_v2` / migration events | `9beae792ec9ea21e` / `bbcb121fceedfe29` / voir IDL | `migration` | `k_sol_launch_events` ou decoded-only | `pump_fun.migrate*` | couvert ; migration matérialisée quand contexte fiable |
|
||||||
| `buy` / `sell` | `66063d1201daebea` / `33e685a4017f83ad` | `swap` | `k_sol_trade_events` | `pump_fun.buy` / `pump_fun.sell` | matérialisés directement avec montants fiables : `17` buy, `25` sell |
|
| `buy` / `sell` | `66063d1201daebea` / `33e685a4017f83ad` | `swap` | `k_sol_trade_events` | `pump_fun.buy` / `pump_fun.sell` | matérialisés directement avec montants fiables : `17` buy, `25` sell |
|
||||||
@@ -252,7 +252,7 @@ Replay final rapporté : `1679 replayed`, `89 trades`, `10 lifecycle`, `348 cand
|
|||||||
Program id unique : `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA`.
|
Program id unique : `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA`.
|
||||||
|
|
||||||
| Entry | Discriminator | Family | Expected DB target | Local event kind | Status |
|
| Entry | Discriminator | Family | Expected DB target | Local event kind | Status |
|
||||||
|---|---:|---|---|---|---|
|
|------------------------------------|----------------------------------------:|----------------------------|--------------------------------------------------------------------------------------------|----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `buy` | `66063d1201daebea` | `swap` | `k_sol_trade_events` | `pump_swap.buy` | local specialized decoder ; materialize only from exact transfer/vault deltas |
|
| `buy` | `66063d1201daebea` | `swap` | `k_sol_trade_events` | `pump_swap.buy` | local specialized decoder ; materialize only from exact transfer/vault deltas |
|
||||||
| `sell` | `33e685a4017f83ad` | `swap` | `k_sol_trade_events` | `pump_swap.sell` | local specialized decoder ; materialize only from exact transfer/vault deltas |
|
| `sell` | `33e685a4017f83ad` | `swap` | `k_sol_trade_events` | `pump_swap.sell` | local specialized decoder ; materialize only from exact transfer/vault deltas |
|
||||||
| `buy_exact_quote_in` | `c62e1552b4d9e870` | `swap` | `k_sol_trade_events` only when exact Anchor `BuyEvent` is present ; otherwise decoded-only | `pump_swap.buy_exact_quote_in` | local specialized decoder ; `amountSource=pump_swap_anchor_buy_event` materializes trades ; `instruction_bounds_only` rows keep explicit `skipTradeReason` |
|
| `buy_exact_quote_in` | `c62e1552b4d9e870` | `swap` | `k_sol_trade_events` only when exact Anchor `BuyEvent` is present ; otherwise decoded-only | `pump_swap.buy_exact_quote_in` | local specialized decoder ; `amountSource=pump_swap_anchor_buy_event` materializes trades ; `instruction_bounds_only` rows keep explicit `skipTradeReason` |
|
||||||
@@ -286,7 +286,7 @@ Program id unique : `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA`.
|
|||||||
## 0.7.55 — Pump Fees
|
## 0.7.55 — Pump Fees
|
||||||
|
|
||||||
| Entry group | Discriminants | Famille | Target attendu | Local event kind | Notes |
|
| Entry group | Discriminants | Famille | Target attendu | Local event kind | Notes |
|
||||||
|---|---:|---|---|---|---|
|
|-----------------------------------|----------------------------:|--------------------------|------------------------------------------------------------|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------|
|
||||||
| `get_fees` | `e7257e55cf5b3f34` | audit | decoded-only | `pump_fees.get_fees` | Calcul/preview de fees ; ne pas matérialiser comme fee payé sans transfert réalisé. |
|
| `get_fees` | `e7257e55cf5b3f34` | audit | decoded-only | `pump_fees.get_fees` | Calcul/preview de fees ; ne pas matérialiser comme fee payé sans transfert réalisé. |
|
||||||
| social fee claim/create | IDL locale | reward / lifecycle | `k_sol_reward_events` ou `k_sol_pool_lifecycle_events` | `pump_fees.claim_social_fee_pda*`, `pump_fees.social_fee_pda_*` | Claim matérialisable seulement avec montant/acteur/mint fiables et transaction OK. |
|
| social fee claim/create | IDL locale | reward / lifecycle | `k_sol_reward_events` ou `k_sol_pool_lifecycle_events` | `pump_fees.claim_social_fee_pda*`, `pump_fees.social_fee_pda_*` | Claim matérialisable seulement avec montant/acteur/mint fiables et transaction OK. |
|
||||||
| donation fee PDA | IDL locale | fee / lifecycle | `k_sol_fee_events` ou `k_sol_pool_lifecycle_events` | `pump_fees.*donation_fee_pda*` | Crank avec montant fiable vers fee ; création de PDA vers lifecycle. |
|
| donation fee PDA | IDL locale | fee / lifecycle | `k_sol_fee_events` ou `k_sol_pool_lifecycle_events` | `pump_fees.*donation_fee_pda*` | Crank avec montant fiable vers fee ; création de PDA vers lifecycle. |
|
||||||
@@ -298,7 +298,7 @@ Program id unique : `pAMMBay6oceH9fJKBRHGP5D4bD4sWpmSwMn52FMfXEA`.
|
|||||||
Programme : `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ`. Source locale prioritaire : `idls/pump_fees.pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ.json`.
|
Programme : `pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ`. Source locale prioritaire : `idls/pump_fees.pfeeUxB6jkeY1Hxd7CsFCAjcbHA9rWtchMGdZ6VojVZ.json`.
|
||||||
|
|
||||||
| Famille | Entrées | Target | Statut | Notes |
|
| Famille | Entrées | Target | Statut | Notes |
|
||||||
|---|---|---|---|---|
|
|-----------------------------------|-------------------------------------------------------------------------------------------------------|----------------------------------------|----------------------|-----------------------------------------------------------------------------------------|
|
||||||
| fee calculation | `get_fees` / `e7257e55cf5b3f34` | `k_sol_dex_decoded_events_only` | decoded-only validé | Calcul/preview ; ne représente pas une fee payée. |
|
| fee calculation | `get_fees` / `e7257e55cf5b3f34` | `k_sol_dex_decoded_events_only` | decoded-only validé | Calcul/preview ; ne représente pas une fee payée. |
|
||||||
| reward/social fee | `claim_social_fee_pda`, `claim_social_fee_pda_v2`, `social_fee_pda_claimed` | `k_sol_reward_events` | matérialisé si tx OK | Écarts expliqués par failed tx. |
|
| reward/social fee | `claim_social_fee_pda`, `claim_social_fee_pda_v2`, `social_fee_pda_claimed` | `k_sol_reward_events` | matérialisé si tx OK | Écarts expliqués par failed tx. |
|
||||||
| donation fee | `create_donation_fee_pda`, `crank_donation_fee_pda`, events associés | lifecycle / `k_sol_fee_events` | matérialisé si tx OK | Création PDA vers lifecycle ; crank vers fee. |
|
| donation fee | `create_donation_fee_pda`, `crank_donation_fee_pda`, events associés | lifecycle / `k_sol_fee_events` | matérialisé si tx OK | Création PDA vers lifecycle ; crank vers fee. |
|
||||||
@@ -316,7 +316,7 @@ Invariants propres : fallback `pump_fees` vide, decoded sans coverage vide, succ
|
|||||||
Programme : `dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN`. Source locale prioritaire : `idls/meteora_dbc.dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN.json`.
|
Programme : `dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN`. Source locale prioritaire : `idls/meteora_dbc.dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN.json`.
|
||||||
|
|
||||||
| Groupe | Entrées | Famille | Cible DB | Local event kind | Décision finale |
|
| Groupe | Entrées | Famille | Cible DB | Local event kind | Décision finale |
|
||||||
|---|---|---|---|---|---|
|
|--------------------------------|---------------------------------------------------------------------------------------------------------------------------|-----------------------|-------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| swaps | `swap`, `swap2` | swap | `k_sol_trade_events` + candles | `meteora_dbc.swap`, `meteora_dbc.swap2` | Matérialisés seulement avec montants et mints base/quote fiables ; `swap2` validé via transferts CPI/amount inference. |
|
| swaps | `swap`, `swap2` | swap | `k_sol_trade_events` + candles | `meteora_dbc.swap`, `meteora_dbc.swap2` | Matérialisés seulement avec montants et mints base/quote fiables ; `swap2` validé via transferts CPI/amount inference. |
|
||||||
| virtual pool init | `initialize_virtual_pool_with_spl_token`, `initialize_virtual_pool_with_token2022`, `EvtInitializePool` | pool_create | `k_sol_pool_lifecycle_events` + catalog si contexte complet | `meteora_dbc.initialize_virtual_pool_with_*`, `meteora_dbc.evt_initialize_pool_event` | Lifecycle/catalog prudent ; failed tx audit-only. |
|
| virtual pool init | `initialize_virtual_pool_with_spl_token`, `initialize_virtual_pool_with_token2022`, `EvtInitializePool` | pool_create | `k_sol_pool_lifecycle_events` + catalog si contexte complet | `meteora_dbc.initialize_virtual_pool_with_*`, `meteora_dbc.evt_initialize_pool_event` | Lifecycle/catalog prudent ; failed tx audit-only. |
|
||||||
| migration / lockers | `migrate_meteora_damm*`, `migration_damm_v2*`, `create_locker`, `EvtCurveComplete` | migration / lifecycle | `k_sol_pool_lifecycle_events` | `meteora_dbc.migrate_*`, `meteora_dbc.migration_*`, `meteora_dbc.create_locker` | Lifecycle, pas liquidity artificielle pour LP claim/lock ; metadata-only decoded-only si contexte insuffisant. |
|
| migration / lockers | `migrate_meteora_damm*`, `migration_damm_v2*`, `create_locker`, `EvtCurveComplete` | migration / lifecycle | `k_sol_pool_lifecycle_events` | `meteora_dbc.migrate_*`, `meteora_dbc.migration_*`, `meteora_dbc.create_locker` | Lifecycle, pas liquidity artificielle pour LP claim/lock ; metadata-only decoded-only si contexte insuffisant. |
|
||||||
@@ -333,7 +333,7 @@ Programme : `LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo`. Source locale : `idls
|
|||||||
Validation finale : `460` tests, clippy OK, `769` replayed, `106` trades, `664` liquidity, `1107` lifecycle, `424` candle upserts, `8062` instruction observations. Les checks decoded sans coverage, successful non-materialized, failed tx materialized, multi-target, non-swap trade/candle, fee scalar sans leg, orphan fee legs et coverage duplicates sont vides.
|
Validation finale : `460` tests, clippy OK, `769` replayed, `106` trades, `664` liquidity, `1107` lifecycle, `424` candle upserts, `8062` instruction observations. Les checks decoded sans coverage, successful non-materialized, failed tx materialized, multi-target, non-swap trade/candle, fee scalar sans leg, orphan fee legs et coverage duplicates sont vides.
|
||||||
|
|
||||||
| Famille | Entrées DLMM | Statut `0.7.57` | Cible DB | Justification / règle |
|
| Famille | Entrées DLMM | Statut `0.7.57` | Cible DB | Justification / règle |
|
||||||
|---|---|---|---|---|
|
|------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------|------------------------------------------------|---------------------------------------------------------------------------------------------------------------|
|
||||||
| `swap` | `swap`, `swap2`, `swap_exact_out`, `swap_exact_out2`, `swap_with_price_impact`, `swap_with_price_impact2` | `materialized` | `k_sol_trade_events` + candles | Seules ces instructions produisent trade/candle direct quand montants/mints/pool sont fiables. |
|
| `swap` | `swap`, `swap2`, `swap_exact_out`, `swap_exact_out2`, `swap_with_price_impact`, `swap_with_price_impact2` | `materialized` | `k_sol_trade_events` + candles | Seules ces instructions produisent trade/candle direct quand montants/mints/pool sont fiables. |
|
||||||
| `swap_log` | `swap_event`, `swap2_evt` | `materialized` | `k_sol_pool_lifecycle_events` | Logs Anchor informatifs matérialisés sans double-count trade/candle. |
|
| `swap_log` | `swap_event`, `swap2_evt` | `materialized` | `k_sol_pool_lifecycle_events` | Logs Anchor informatifs matérialisés sans double-count trade/candle. |
|
||||||
| `pool_create` | `create_pool`, `lb_pair_create_event`, `initialize_*_lb_pair*`, `initialize_permission_lb_pair` | `materialized` si observé, sinon `upstream_git_mapped_unverified` | `k_sol_pool_lifecycle_events` | Pool lifecycle ; pas de trade direct. |
|
| `pool_create` | `create_pool`, `lb_pair_create_event`, `initialize_*_lb_pair*`, `initialize_permission_lb_pair` | `materialized` si observé, sinon `upstream_git_mapped_unverified` | `k_sol_pool_lifecycle_events` | Pool lifecycle ; pas de trade direct. |
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ Implemented in this delta:
|
|||||||
The local upstream registry now lists one program entry plus the following 26 discriminator entries.
|
The local upstream registry now lists one program entry plus the following 26 discriminator entries.
|
||||||
|
|
||||||
| Entry kind | Entry name | Discriminator | Initial family | Initial DB target |
|
| Entry kind | Entry name | Discriminator | Initial family | Initial DB target |
|
||||||
|---|---:|---:|---|---|
|
|-------------|--------------------------------:|-------------------:|------------------------------|---------------------|
|
||||||
| instruction | `buy_exact_in` | `faea0d7bd59c13ec` | swap | decoded_events_only |
|
| instruction | `buy_exact_in` | `faea0d7bd59c13ec` | swap | decoded_events_only |
|
||||||
| instruction | `buy_exact_out` | `18d3742869039938` | swap | decoded_events_only |
|
| instruction | `buy_exact_out` | `18d3742869039938` | swap | decoded_events_only |
|
||||||
| instruction | `claim_creator_fee` | `1a618acb84ab8dfc` | fee | decoded_events_only |
|
| instruction | `claim_creator_fee` | `1a618acb84ab8dfc` | fee | decoded_events_only |
|
||||||
@@ -86,7 +86,7 @@ Notes:
|
|||||||
## Family audit matrix
|
## Family audit matrix
|
||||||
|
|
||||||
| Family | Launchpad status in `0.7.50` final | Decision |
|
| Family | Launchpad status in `0.7.50` final | Decision |
|
||||||
|---|---|---|
|
|--------------------------|---------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
||||||
| swap | `trade_event` materialized as trades/candles; buy/sell instructions materialized as launch breadcrumbs. | No duplicate trades from instruction breadcrumbs. |
|
| swap | `trade_event` materialized as trades/candles; buy/sell instructions materialized as launch breadcrumbs. | No duplicate trades from instruction breadcrumbs. |
|
||||||
| pool_create | `initialize`, `initialize_v2`, `initialize_with_token_2022`, `pool_create_event`. | Pool lifecycle/catalogue materialized when transaction succeeded. |
|
| pool_create | `initialize`, `initialize_v2`, `initialize_with_token_2022`, `pool_create_event`. | Pool lifecycle/catalogue materialized when transaction succeeded. |
|
||||||
| add_liquidity | No direct Launchpad entry confirmed. | Non-applicable unless local corpus proves direct Launchpad liquidity instruction. |
|
| add_liquidity | No direct Launchpad entry confirmed. | Non-applicable unless local corpus proves direct Launchpad liquidity instruction. |
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
This file records the manual Solscan account inventory added during the `0.7.50` Raydium Launchpad closure. It is a source catalogue, not a support guarantee. Entries with `solscan_program_idl` can be used as IDL candidates; entries with `no_idl` require source/corpus work before decoder promotion.
|
This file records the manual Solscan account inventory added during the `0.7.50` Raydium Launchpad closure. It is a source catalogue, not a support guarantee. Entries with `solscan_program_idl` can be used as IDL candidates; entries with `no_idl` require source/corpus work before decoder promotion.
|
||||||
|
|
||||||
| Label | Account id | IDL status | Source |
|
| Label | Account id | IDL status | Source |
|
||||||
|---|---|---|---|
|
|---------------------------------------------------|------------------------------------------------|-----------------------|------------------------------------------------------------------------------------|
|
||||||
| `1Dex Program` | `DEXYosS6oEGvk8uCDayvwEZz4qEyDJRf9nFgYCaqPMTm` | `no_idl` | https://solscan.io/account/DEXYosS6oEGvk8uCDayvwEZz4qEyDJRf9nFgYCaqPMTm |
|
| `1Dex Program` | `DEXYosS6oEGvk8uCDayvwEZz4qEyDJRf9nFgYCaqPMTm` | `no_idl` | https://solscan.io/account/DEXYosS6oEGvk8uCDayvwEZz4qEyDJRf9nFgYCaqPMTm |
|
||||||
| `AlphaQ` | `ALPHAQmeA7bjrVuccPsYPiCvsi428SNwte66Srvs4pHA` | `no_idl` | https://solscan.io/account/ALPHAQmeA7bjrVuccPsYPiCvsi428SNwte66Srvs4pHA |
|
| `AlphaQ` | `ALPHAQmeA7bjrVuccPsYPiCvsi428SNwte66Srvs4pHA` | `no_idl` | https://solscan.io/account/ALPHAQmeA7bjrVuccPsYPiCvsi428SNwte66Srvs4pHA |
|
||||||
| `Aldrin AMM` | `AMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6` | `no_idl` | https://solscan.io/account/AMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6 |
|
| `Aldrin AMM` | `AMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6` | `no_idl` | https://solscan.io/account/AMM55ShdkoGRB5jVYPjWziwk8m5MpwyDgsMWHaMSQWH6 |
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ No successful Stable Swap swap remains without trade or skip reason.
|
|||||||
## Invariants
|
## Invariants
|
||||||
|
|
||||||
| invariant | status |
|
| invariant | status |
|
||||||
|---|---|
|
|---------------------------------------------------------------|-------------------------------|
|
||||||
| residual local `instruction_audit` | empty |
|
| residual local `instruction_audit` | empty |
|
||||||
| residual `upstream_git.instruction_match` for covered entries | empty |
|
| residual `upstream_git.instruction_match` for covered entries | empty |
|
||||||
| decoded without coverage | empty |
|
| decoded without coverage | empty |
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ allowlisted recovery on DBC = empty by design
|
|||||||
## Cross-base fee recovery checks
|
## Cross-base fee recovery checks
|
||||||
|
|
||||||
| Base | Result |
|
| Base | Result |
|
||||||
|---|---|
|
|---------------------|--------------------------------------------------------------------------------------------|
|
||||||
| `meteora_dbc` | stable, no regression, 89/96 fee parent/legs. |
|
| `meteora_dbc` | stable, no regression, 89/96 fee parent/legs. |
|
||||||
| `raydium_launchpad` | allowlisted CPI recovery enriched all observed claim/collect fee parents in tested corpus. |
|
| `raydium_launchpad` | allowlisted CPI recovery enriched all observed claim/collect fee parents in tested corpus. |
|
||||||
| `raydium_cpmm` | creator fee recovered; fund/protocol fee explicit no-transfer in tested corpus. |
|
| `raydium_cpmm` | creator fee recovered; fund/protocol fee explicit no-transfer in tested corpus. |
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ catalog = 169 tokens / 218 pools / 218 pairs
|
|||||||
## Final SQL gates
|
## Final SQL gates
|
||||||
|
|
||||||
| Gate | Result |
|
| Gate | Result |
|
||||||
|---|---:|
|
|----------------------------------------------------------|-----------------:|
|
||||||
| Upstream fallback for local DLMM coverage | empty |
|
| Upstream fallback for local DLMM coverage | empty |
|
||||||
| Local `instruction_audit` observed | `0` |
|
| Local `instruction_audit` observed | `0` |
|
||||||
| Decoded DLMM without coverage | empty |
|
| Decoded DLMM without coverage | empty |
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ Décision : ne pas les corriger dans `0.7.53`. Ils seront repris dans les tranch
|
|||||||
La file `upstream_git.instruction_match` indique les prochaines surfaces à prioriser. Au moment de la clôture :
|
La file `upstream_git.instruction_match` indique les prochaines surfaces à prioriser. Au moment de la clôture :
|
||||||
|
|
||||||
| Priorité | Surface | Indice principal | Décision |
|
| Priorité | Surface | Indice principal | Décision |
|
||||||
|---:|---|---|---|
|
|---------:|----------------------------------------------|---------------------------------------------|--------------------------------------------------------------------|
|
||||||
| 1 | `pump_fees` | `get_fees` très fréquent | Prochaine tranche recommandée ; aucun trade/candle direct attendu. |
|
| 1 | `pump_fees` | `get_fees` très fréquent | Prochaine tranche recommandée ; aucun trade/candle direct attendu. |
|
||||||
| 2 | `pump_fun` | creator fees, migrate, set/admin creator | Tranche launch/bonding séparée. |
|
| 2 | `pump_fun` | creator fees, migrate, set/admin creator | Tranche launch/bonding séparée. |
|
||||||
| 3 | `jupiter_swap` | `route_v2`, `create_token_account`, `route` | Agrégateur/router ; éviter double-count DEX effectifs. |
|
| 3 | `jupiter_swap` | `route_v2`, `create_token_account`, `route` | Agrégateur/router ; éviter double-count DEX effectifs. |
|
||||||
@@ -113,7 +113,7 @@ Constats :
|
|||||||
Table locale :
|
Table locale :
|
||||||
|
|
||||||
| Fichier local | Name IDL | Address IDL | Taille | SHA-256 |
|
| Fichier local | Name IDL | Address IDL | Taille | SHA-256 |
|
||||||
|---|---|---|---:|---|
|
|---------------------------------------------------------------------------|-----------------------------|------------------------------------------------|-------:|--------------------------------------------------------------------|
|
||||||
| `idls/raydium_clmm.CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK.json` | `raydium_clmm` | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` | 86240 | `d3f265adc9e4d7b1a28641444800a60bcdeb921ef136855fe8dea4532afa18bd` |
|
| `idls/raydium_clmm.CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK.json` | `raydium_clmm` | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` | 86240 | `d3f265adc9e4d7b1a28641444800a60bcdeb921ef136855fe8dea4532afa18bd` |
|
||||||
| `idls/raydium_cpmm.CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C.json` | `raydium_cp_swap` | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` | 32066 | `5b709dfe7b0df67c9e29655307ae877244d3bb8022056ee01c754f0e36264d9c` |
|
| `idls/raydium_cpmm.CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C.json` | `raydium_cp_swap` | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` | 32066 | `5b709dfe7b0df67c9e29655307ae877244d3bb8022056ee01c754f0e36264d9c` |
|
||||||
| `idls/raydium_launchlab.LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj.json` | `raydium_launchpad` | `LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj` | 68052 | `c1465a10f38912413f55f04a68536c989992add1b3d48cba86dca97212a482da` |
|
| `idls/raydium_launchlab.LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj.json` | `raydium_launchpad` | `LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj` | 68052 | `c1465a10f38912413f55f04a68536c989992add1b3d48cba86dca97212a482da` |
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ k_sol_fee_event_amounts
|
|||||||
## Sources de montant acceptées
|
## Sources de montant acceptées
|
||||||
|
|
||||||
| `amount_source` | Usage |
|
| `amount_source` | Usage |
|
||||||
|---|---|
|
|----------------------------------|--------------------------------------------------------------------------------|
|
||||||
| `parent_fee_event_amount` | Leg généré automatiquement depuis un parent scalaire déjà fiable. |
|
| `parent_fee_event_amount` | Leg généré automatiquement depuis un parent scalaire déjà fiable. |
|
||||||
| `fee_event_amounts` | Source explicite reconstruite par un matérialisateur spécialisé. |
|
| `fee_event_amounts` | Source explicite reconstruite par un matérialisateur spécialisé. |
|
||||||
| `inner_spl_transfer` | CPI SPL vérifié dans un matérialisateur spécialisé. |
|
| `inner_spl_transfer` | CPI SPL vérifié dans un matérialisateur spécialisé. |
|
||||||
@@ -58,7 +58,7 @@ La recovery `allowlisted_inner_spl_transfer` n'est pas une règle globale. Elle
|
|||||||
Résultats de validation croisée en `0.7.56` :
|
Résultats de validation croisée en `0.7.56` :
|
||||||
|
|
||||||
| Base / surface | Effet observé |
|
| Base / surface | Effet observé |
|
||||||
|---|---|
|
|---------------------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `meteora_dbc` | Aucun usage de l'allowlist générique ; chemins spécialisés DBC conservés. |
|
| `meteora_dbc` | Aucun usage de l'allowlist générique ; chemins spécialisés DBC conservés. |
|
||||||
| `raydium_launchpad` | `212` parents enrichis en legs : `claim_creator_fee`, `claim_platform_fee`, `claim_platform_fee_from_vault`, `collect_fee`. |
|
| `raydium_launchpad` | `212` parents enrichis en legs : `claim_creator_fee`, `claim_platform_fee`, `claim_platform_fee_from_vault`, `collect_fee`. |
|
||||||
| `raydium_cpmm` | `collect_creator_fee` enrichi ; `collect_fund_fee` / `collect_protocol_fee` explicités sans transfert exploitable. |
|
| `raydium_cpmm` | `collect_creator_fee` enrichi ; `collect_fund_fee` / `collect_protocol_fee` explicités sans transfert exploitable. |
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ Les events Anchor sont reconnus depuis `Program data:` et depuis le transport An
|
|||||||
### Trades
|
### Trades
|
||||||
|
|
||||||
| Source locale | Matérialisation | Règle |
|
| Source locale | Matérialisation | Règle |
|
||||||
|---|---|---|
|
|----------------------------------|----------------------|-------------------------------------------------------------------------------------------------------|
|
||||||
| `pump_fun.buy` | `k_sol_trade_events` | directe si montants fiables |
|
| `pump_fun.buy` | `k_sol_trade_events` | directe si montants fiables |
|
||||||
| `pump_fun.sell` | `k_sol_trade_events` | directe si montants fiables |
|
| `pump_fun.sell` | `k_sol_trade_events` | directe si montants fiables |
|
||||||
| `pump_fun.buy_exact_sol_in` | `k_sol_trade_events` | directe ; les logs `Program data` tronqués sont exploités quand les montants exacts sont extractibles |
|
| `pump_fun.buy_exact_sol_in` | `k_sol_trade_events` | directe ; les logs `Program data` tronqués sont exploités quand les montants exacts sont extractibles |
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ Les sources Git/IDL/Solscan sont des indices. La fermeture métier exige corpus
|
|||||||
Le decoder local `kb_lib/src/dex/pump_swap.rs` ne se limite plus à `buy`/`sell`. Il reconnaît maintenant les discriminants d’instruction suivants et produit un event spécialisé `pump_swap.<entry_name>`.
|
Le decoder local `kb_lib/src/dex/pump_swap.rs` ne se limite plus à `buy`/`sell`. Il reconnaît maintenant les discriminants d’instruction suivants et produit un event spécialisé `pump_swap.<entry_name>`.
|
||||||
|
|
||||||
| Entry | Kind | Discriminator | Target attendu | Matérialisation |
|
| Entry | Kind | Discriminator | Target attendu | Matérialisation |
|
||||||
|---|---|---:|---|---|
|
|------------------------------------|-------------|-------------------:|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
| `admin_set_coin_creator` | instruction | `f228759149606968` | admin/config | decoded specialized non-trade |
|
| `admin_set_coin_creator` | instruction | `f228759149606968` | admin/config | decoded specialized non-trade |
|
||||||
| `admin_update_token_incentives` | instruction | `d10b7357d5177ccc` | reward/admin | decoded specialized non-trade |
|
| `admin_update_token_incentives` | instruction | `d10b7357d5177ccc` | reward/admin | decoded specialized non-trade |
|
||||||
| `buy` | instruction | `66063d1201daebea` | trade | trade/candle seulement depuis montants exacts |
|
| `buy` | instruction | `66063d1201daebea` | trade | trade/candle seulement depuis montants exacts |
|
||||||
@@ -62,7 +62,7 @@ Le decoder local `kb_lib/src/dex/pump_swap.rs` ne se limite plus à `buy`/`sell`
|
|||||||
Ces events sont listés dans le registre upstream. Ils doivent apparaître avec un statut explicite dans la coverage DB après sync/replay. Ils ne doivent pas créer de doublons trade/candle tant que l’instruction locale spécialisée couvre déjà le DEX effectif.
|
Ces events sont listés dans le registre upstream. Ils doivent apparaître avec un statut explicite dans la coverage DB après sync/replay. Ils ne doivent pas créer de doublons trade/candle tant que l’instruction locale spécialisée couvre déjà le DEX effectif.
|
||||||
|
|
||||||
| Event | Discriminator | Statut `0.7.53` |
|
| Event | Discriminator | Statut `0.7.53` |
|
||||||
|---|---:|---|
|
|----------------------------------------|-------------------:|---------------------------------------------------------------|
|
||||||
| `admin_set_coin_creator_event` | `2ddc5d181961ac68` | upstream listed ; decoded-only/status explicite après replay |
|
| `admin_set_coin_creator_event` | `2ddc5d181961ac68` | upstream listed ; decoded-only/status explicite après replay |
|
||||||
| `admin_update_token_incentives_event` | `93fa6c78f71d43de` | upstream listed ; decoded-only/status explicite après replay |
|
| `admin_update_token_incentives_event` | `93fa6c78f71d43de` | upstream listed ; decoded-only/status explicite après replay |
|
||||||
| `buy_event` | `67f4521f2cf57777` | upstream listed ; audit/decoded-only to avoid duplicate trade |
|
| `buy_event` | `67f4521f2cf57777` | upstream listed ; audit/decoded-only to avoid duplicate trade |
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ catalog = 61 tokens / 65 pools / 65 pairs
|
|||||||
## Coverage finale par discriminant
|
## Coverage finale par discriminant
|
||||||
|
|
||||||
| Discriminant | Entrée | Famille | Local event kind | Cible DB | Observed | Materialized | Trade |
|
| Discriminant | Entrée | Famille | Local event kind | Cible DB | Observed | Materialized | Trade |
|
||||||
|---|---|---|---|---|---:|---:|---:|
|
|--------------|-------------------------|--------------------|----------------------------------------|---------------------------------|---------:|-------------:|------:|
|
||||||
| `00` | `initialize` | `pool_create` | `raydium_amm_v4.initialize` | `k_sol_pool_lifecycle_events` | 4 | 4 | 0 |
|
| `00` | `initialize` | `pool_create` | `raydium_amm_v4.initialize` | `k_sol_pool_lifecycle_events` | 4 | 4 | 0 |
|
||||||
| `01` | `initialize2` | `pool_create` | `raydium_amm_v4.initialize2_pool` | `k_sol_pool_lifecycle_events` | 8 | 8 | 0 |
|
| `01` | `initialize2` | `pool_create` | `raydium_amm_v4.initialize2_pool` | `k_sol_pool_lifecycle_events` | 8 | 8 | 0 |
|
||||||
| `02` | `monitor_step` | `order_place` | `raydium_amm_v4.monitor_step` | `k_sol_orderbook_events` | 20 | 20 | 0 |
|
| `02` | `monitor_step` | `order_place` | `raydium_amm_v4.monitor_step` | `k_sol_orderbook_events` | 20 | 20 | 0 |
|
||||||
@@ -84,7 +84,7 @@ Toutes les entrées ont `proof_status=upstream_git_local_corpus_materialized`, s
|
|||||||
## Matérialisation métier finale
|
## Matérialisation métier finale
|
||||||
|
|
||||||
| Event kind | Decoded | Trade | Liquidity | Lifecycle | Fee | Admin | Orderbook |
|
| Event kind | Decoded | Trade | Liquidity | Lifecycle | Fee | Admin | Orderbook |
|
||||||
|---|---:|---:|---:|---:|---:|---:|---:|
|
|----------------------------------------|--------:|------:|----------:|----------:|----:|------:|----------:|
|
||||||
| `raydium_amm_v4.admin_cancel_orders` | 22 | 0 | 0 | 0 | 0 | 0 | 22 |
|
| `raydium_amm_v4.admin_cancel_orders` | 22 | 0 | 0 | 0 | 0 | 0 | 22 |
|
||||||
| `raydium_amm_v4.create_config_account` | 50 | 0 | 0 | 0 | 0 | 50 | 0 |
|
| `raydium_amm_v4.create_config_account` | 50 | 0 | 0 | 0 | 0 | 50 | 0 |
|
||||||
| `raydium_amm_v4.deposit` | 10 | 0 | 5 | 0 | 0 | 0 | 0 |
|
| `raydium_amm_v4.deposit` | 10 | 0 | 5 | 0 | 0 | 0 | 0 |
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ settle_limit_order
|
|||||||
Les matérialisations sont limitées aux transactions réussies et aux familles déjà supportées par le modèle DB :
|
Les matérialisations sont limitées aux transactions réussies et aux familles déjà supportées par le modèle DB :
|
||||||
|
|
||||||
| Famille | Table | Règle |
|
| Famille | Table | Règle |
|
||||||
|---|---|---|
|
|-----------------------|--------------------------------|-----------------------------------------------------------------------------------------------|
|
||||||
| Swaps | `k_sol_trade_events` + candles | Uniquement `raydium_clmm.swap` / `raydium_clmm.swap_v2` quand les montants sont exploitables. |
|
| Swaps | `k_sol_trade_events` + candles | Uniquement `raydium_clmm.swap` / `raydium_clmm.swap_v2` quand les montants sont exploitables. |
|
||||||
| Liquidity / positions | `k_sol_liquidity_events` | Positions/liquidity prouvées par corpus, sans trade/candle. |
|
| Liquidity / positions | `k_sol_liquidity_events` | Positions/liquidity prouvées par corpus, sans trade/candle. |
|
||||||
| Fees | `k_sol_fee_events` | Fees prouvées par corpus, sans trade/candle. |
|
| Fees | `k_sol_fee_events` | Fees prouvées par corpus, sans trade/candle. |
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ The 11 event entries are listed as upstream facts and stay `upstream_git_unverif
|
|||||||
## Instruction coverage matrix
|
## Instruction coverage matrix
|
||||||
|
|
||||||
| Entry | Discriminator | Family | Local event kind | Expected target | Status |
|
| Entry | Discriminator | Family | Local event kind | Expected target | Status |
|
||||||
|---|---|---|---|---|---|
|
|--------------------------------|--------------------|------------------|-----------------------------------------------|---------------------------------|------------------------------------------------------------------------|
|
||||||
| close_limit_order | `4c7c800fd55725fa` | order_cancel | `raydium_clmm.close_limit_order` | `k_sol_orderbook_events` | decoded/materializable |
|
| close_limit_order | `4c7c800fd55725fa` | order_cancel | `raydium_clmm.close_limit_order` | `k_sol_orderbook_events` | decoded/materializable |
|
||||||
| open_limit_order | `9d20dab7471d1293` | order_place | `raydium_clmm.open_limit_order` | `k_sol_orderbook_events` | decoded/materializable |
|
| open_limit_order | `9d20dab7471d1293` | order_place | `raydium_clmm.open_limit_order` | `k_sol_orderbook_events` | decoded/materializable |
|
||||||
| increase_limit_order | `b19059ecfaba7d63` | order_place | `raydium_clmm.increase_limit_order` | `k_sol_orderbook_events` | decoded/materializable |
|
| increase_limit_order | `b19059ecfaba7d63` | order_place | `raydium_clmm.increase_limit_order` | `k_sol_orderbook_events` | decoded/materializable |
|
||||||
@@ -85,7 +85,7 @@ The 11 event entries are listed as upstream facts and stay `upstream_git_unverif
|
|||||||
These entries remain listed, but no local corpus row has observed them as direct CLMM decoded events in the current replay corpus:
|
These entries remain listed, but no local corpus row has observed them as direct CLMM decoded events in the current replay corpus:
|
||||||
|
|
||||||
| Event entry | Discriminator | Family | Expected target | Status |
|
| Event entry | Discriminator | Family | Expected target | Status |
|
||||||
|---|---|---|---|---|
|
|--------------------------------|--------------------|------------------|---------------------------------|------------------------------------------|
|
||||||
| collect_personal_fee_event | `a6ae69c051a15369` | fee | `k_sol_fee_events` | upstream listed, local corpus unobserved |
|
| collect_personal_fee_event | `a6ae69c051a15369` | fee | `k_sol_fee_events` | upstream listed, local corpus unobserved |
|
||||||
| collect_protocol_fee_event | `ce57114f2d29d53d` | fee | `k_sol_fee_events` | upstream listed, local corpus unobserved |
|
| collect_protocol_fee_event | `ce57114f2d29d53d` | fee | `k_sol_fee_events` | upstream listed, local corpus unobserved |
|
||||||
| config_change_event | `f7bd07776a705f97` | admin_config | `k_sol_pool_admin_events` | upstream listed, local corpus unobserved |
|
| config_change_event | `f7bd07776a705f97` | admin_config | `k_sol_pool_admin_events` | upstream listed, local corpus unobserved |
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ Règle retenue : Git/IDL/Solscan sont des indices de recherche. La preuve métie
|
|||||||
## Entrées CPMM inventoriées
|
## Entrées CPMM inventoriées
|
||||||
|
|
||||||
| Kind | Entrée | Discriminant | État final `0.7.48` |
|
| Kind | Entrée | Discriminant | État final `0.7.48` |
|
||||||
|---|---|---|---|
|
|-------------|------------------------------|--------------------|-------------------------------------------------|
|
||||||
| instruction | `close_permission_pda` | `9c5420764587467b` | connu upstream, non observé localement |
|
| instruction | `close_permission_pda` | `9c5420764587467b` | connu upstream, non observé localement |
|
||||||
| instruction | `collect_creator_fee` | `1416567bc61cdb84` | décodé + matérialisé fee |
|
| instruction | `collect_creator_fee` | `1416567bc61cdb84` | décodé + matérialisé fee |
|
||||||
| instruction | `collect_fund_fee` | `a78a4e95dfc2067e` | décodé + matérialisé fee |
|
| instruction | `collect_fund_fee` | `a78a4e95dfc2067e` | décodé + matérialisé fee |
|
||||||
@@ -61,7 +61,7 @@ Le fallback `upstream_git.instruction_match` ne doit plus apparaître pour les i
|
|||||||
Rejeu local validé après backfills ciblés Solscan + Demo Pipeline 2 :
|
Rejeu local validé après backfills ciblés Solscan + Demo Pipeline 2 :
|
||||||
|
|
||||||
| Event kind | Decoded | Table métier | Materialized | Trade count | Statut |
|
| Event kind | Decoded | Table métier | Materialized | Trade count | Statut |
|
||||||
|---|---:|---|---:|---:|---|
|
|-------------------------------------------|--------:|---------------------------------|-------------:|------------:|-----------------------------------------------------|
|
||||||
| `raydium_cpmm.collect_creator_fee` | 4 | `k_sol_fee_events` | 4 | 0 | fee materialized |
|
| `raydium_cpmm.collect_creator_fee` | 4 | `k_sol_fee_events` | 4 | 0 | fee materialized |
|
||||||
| `raydium_cpmm.collect_fund_fee` | 7 | `k_sol_fee_events` | 7 | 0 | fee materialized |
|
| `raydium_cpmm.collect_fund_fee` | 7 | `k_sol_fee_events` | 7 | 0 | fee materialized |
|
||||||
| `raydium_cpmm.collect_protocol_fee` | 15 | `k_sol_fee_events` | 15 | 0 | fee materialized |
|
| `raydium_cpmm.collect_protocol_fee` | 15 | `k_sol_fee_events` | 15 | 0 | fee materialized |
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ Implemented in this delta:
|
|||||||
The local upstream registry now lists one program entry plus the following 26 discriminator entries.
|
The local upstream registry now lists one program entry plus the following 26 discriminator entries.
|
||||||
|
|
||||||
| Entry kind | Entry name | Discriminator | Initial family | Initial DB target |
|
| Entry kind | Entry name | Discriminator | Initial family | Initial DB target |
|
||||||
|---|---:|---:|---|---|
|
|-------------|--------------------------------:|-------------------:|------------------------------|---------------------|
|
||||||
| instruction | `buy_exact_in` | `faea0d7bd59c13ec` | swap | decoded_events_only |
|
| instruction | `buy_exact_in` | `faea0d7bd59c13ec` | swap | decoded_events_only |
|
||||||
| instruction | `buy_exact_out` | `18d3742869039938` | swap | decoded_events_only |
|
| instruction | `buy_exact_out` | `18d3742869039938` | swap | decoded_events_only |
|
||||||
| instruction | `claim_creator_fee` | `1a618acb84ab8dfc` | fee | decoded_events_only |
|
| instruction | `claim_creator_fee` | `1a618acb84ab8dfc` | fee | decoded_events_only |
|
||||||
@@ -86,7 +86,7 @@ Notes:
|
|||||||
## Family audit matrix
|
## Family audit matrix
|
||||||
|
|
||||||
| Family | Launchpad status in `0.7.50` final | Decision |
|
| Family | Launchpad status in `0.7.50` final | Decision |
|
||||||
|---|---|---|
|
|--------------------------|---------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|
|
||||||
| swap | `trade_event` materialized as trades/candles; buy/sell instructions materialized as launch breadcrumbs. | No duplicate trades from instruction breadcrumbs. |
|
| swap | `trade_event` materialized as trades/candles; buy/sell instructions materialized as launch breadcrumbs. | No duplicate trades from instruction breadcrumbs. |
|
||||||
| pool_create | `initialize`, `initialize_v2`, `initialize_with_token_2022`, `pool_create_event`. | Pool lifecycle/catalogue materialized when transaction succeeded. |
|
| pool_create | `initialize`, `initialize_v2`, `initialize_with_token_2022`, `pool_create_event`. | Pool lifecycle/catalogue materialized when transaction succeeded. |
|
||||||
| add_liquidity | No direct Launchpad entry confirmed. | Non-applicable unless local corpus proves direct Launchpad liquidity instruction. |
|
| add_liquidity | No direct Launchpad entry confirmed. | Non-applicable unless local corpus proves direct Launchpad liquidity instruction. |
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ Conséquence : `raydium_pool_v4` reste une source d'audit/comparaison pour `rayd
|
|||||||
## Comparaison synthétique
|
## Comparaison synthétique
|
||||||
|
|
||||||
| Source | Nom / rôle constaté | Indices structurants | Décision locale |
|
| Source | Nom / rôle constaté | Indices structurants | Décision locale |
|
||||||
|---|---|---|---|
|
|-----------------------------|-----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------|
|
||||||
| `idl/raydium_amm_v4.json` | `raydium_amm` | Instructions AMM v4 legacy : `initialize`, `initialize2`, `deposit`, `withdraw`, `swapBaseIn`, `swapBaseOut`, `monitorStep`, `setParams`. | Source principale pour `raydium_amm_v4`. |
|
| `idl/raydium_amm_v4.json` | `raydium_amm` | Instructions AMM v4 legacy : `initialize`, `initialize2`, `deposit`, `withdraw`, `swapBaseIn`, `swapBaseOut`, `monitorStep`, `setParams`. | Source principale pour `raydium_amm_v4`. |
|
||||||
| `idls/raydium_amm_v4.json` | `raydium_amm` | Variante parallèle à comparer ligne à ligne avec `idl/`. | Source principale complémentaire. |
|
| `idls/raydium_amm_v4.json` | `raydium_amm` | Variante parallèle à comparer ligne à ligne avec `idl/`. | Source principale complémentaire. |
|
||||||
| `idl/raydium_pool_v4.json` | `Raydium Liquidity Pool V4` | Entrées orientées stratégie/pool wrapper : `initializeStrategy`, comptes `strategyState`, `strategyAuthority`, `lendingProgramId`; contient aussi des noms comme `swapBaseIn`. | Audit uniquement. Ne pas promouvoir. |
|
| `idl/raydium_pool_v4.json` | `Raydium Liquidity Pool V4` | Entrées orientées stratégie/pool wrapper : `initializeStrategy`, comptes `strategyState`, `strategyAuthority`, `lendingProgramId`; contient aussi des noms comme `swapBaseIn`. | Audit uniquement. Ne pas promouvoir. |
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ Implemented and locally validated:
|
|||||||
## Instruction surface
|
## Instruction surface
|
||||||
|
|
||||||
| entry | discriminator | family | final target | local event kind | final status |
|
| entry | discriminator | family | final target | local event kind | final status |
|
||||||
|---|---:|---|---|---|---|
|
|-----------------------|-------------------:|--------------------|---------------------------------------------|-------------------------------------------|---------------------------------------------------------------|
|
||||||
| `initialize` | `00` | `pool_create` | `k_sol_pool_lifecycle_events` | `raydium_stable_swap.initialize` | observed/materialized when context complete |
|
| `initialize` | `00` | `pool_create` | `k_sol_pool_lifecycle_events` | `raydium_stable_swap.initialize` | observed/materialized when context complete |
|
||||||
| `init_model_data` | `01` | `model_setup` | decoded-only | `raydium_stable_swap.init_model_data` | observed decoded-only / explained |
|
| `init_model_data` | `01` | `model_setup` | decoded-only | `raydium_stable_swap.init_model_data` | observed decoded-only / explained |
|
||||||
| `update_model_data` | `02` | `admin_config` | `k_sol_pool_admin_events` | `raydium_stable_swap.update_model_data` | observed/materialized |
|
| `update_model_data` | `02` | `admin_config` | `k_sol_pool_admin_events` | `raydium_stable_swap.update_model_data` | observed/materialized |
|
||||||
@@ -128,7 +128,7 @@ catalog=40 tokens / 59 pools / 59 pairs
|
|||||||
Stable Swap swap closure:
|
Stable Swap swap closure:
|
||||||
|
|
||||||
| event kind | amount source | tx status | decoded | trades |
|
| event kind | amount source | tx status | decoded | trades |
|
||||||
|---|---|---|---:|---:|
|
|-------------------------------------|---------------------------------------|-----------|--------:|-------:|
|
||||||
| `raydium_stable_swap.swap_base_in` | `stable_swap_instruction_bounds_only` | failed | 27 | 0 |
|
| `raydium_stable_swap.swap_base_in` | `stable_swap_instruction_bounds_only` | failed | 27 | 0 |
|
||||||
| `raydium_stable_swap.swap_base_in` | `stable_swap_vault_balance_delta` | success | 171 | 171 |
|
| `raydium_stable_swap.swap_base_in` | `stable_swap_vault_balance_delta` | success | 171 | 171 |
|
||||||
| `raydium_stable_swap.swap_base_out` | `stable_swap_instruction_bounds_only` | failed | 2 | 0 |
|
| `raydium_stable_swap.swap_base_out` | `stable_swap_instruction_bounds_only` | failed | 2 | 0 |
|
||||||
|
|||||||
22
olddocs/archivekbot3/001.README.md
Normal file
22
olddocs/archivekbot3/001.README.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<!-- file: olddocs/archivekbot3/001.README.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Archive documentaire de khadhroony-bot3
|
||||||
|
|
||||||
|
Ce répertoire conserve les documents bot3 remplacés, temporaires ou liés à une phase historique terminée.
|
||||||
|
|
||||||
|
## Statut
|
||||||
|
|
||||||
|
Les documents archivés :
|
||||||
|
|
||||||
|
- ne sont plus normatifs ;
|
||||||
|
- ne doivent pas être utilisés seuls pour décrire l’état actuel du workspace ;
|
||||||
|
- restent disponibles pour la traçabilité des décisions et de la migration ;
|
||||||
|
- conservent autant que possible leur nom et leur contenu d’origine.
|
||||||
|
|
||||||
|
## Arborescence
|
||||||
|
|
||||||
|
- `docs/` : audits, plans et rapports bot3 remplacés ;
|
||||||
|
- `prompts/` : prompts utilisés pendant la migration architecturale.
|
||||||
|
|
||||||
|
La documentation active reste sous `docs/`. Le point d’entrée normatif reste `RULES.md`.
|
||||||
Reference in New Issue
Block a user