v0.2.2-pre.007-fix.002
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md -->
|
||||
<!-- version: 5 -->
|
||||
<!-- version: 6 -->
|
||||
|
||||
# Plan `0.2.2` — HTTP Accounts + Tokens + Cluster
|
||||
|
||||
@@ -478,10 +478,12 @@ future : 11 Transactions + 15 Blocks/Economics
|
||||
|
||||
Le réaudit final du 2026-08-18 de `https://solana.com/docs/rpc/http` confirme toujours les 52 méthodes HTTP courantes et la même répartition des familles. La navigation Deprecated conserve les 14 méthodes historiques déjà enregistrées. Aucune méthode de `0.2.2` n'est déplacée ou reclassée.
|
||||
|
||||
Un smoke Devnet opt-in **propre à Transport** est ajouté sous `crates/ksp-onchain-transport-lib/tests/transport_devnet_smoke.rs`. Il construit ses settings programmatiquement et exerce `getAccountInfo`, `getTokenAccountsByOwner`, `getEpochInfo` et `getVoteAccounts`. La branche Token utilise le programme SPL Token canonique comme selector `programId` et n'exige aucun mint/token account Devnet persistant. Le smoke historique `Config -> Transport` reste distinct et transitoirement hébergé dans Config. Les fixtures HTTP locales restent les preuves reproductibles par défaut.
|
||||
Un smoke Devnet opt-in **propre à Transport** est ajouté sous `crates/ksp-onchain-transport-lib/tests/transport_devnet_smoke.rs`. Il construit ses settings programmatiquement et exerce `getAccountInfo`, `getTokenAccountsByOwner`, `getEpochInfo` et `getVoteAccounts`. La branche Token suit la forme Devnet documentée avec un owner Pubkey ordinaire, le programme SPL Token canonique comme selector `programId`, et une config explicite `finalized/jsonParsed`; elle n'exige aucun mint/token account Devnet persistant. Le smoke historique `Config -> Transport` reste distinct et transitoirement hébergé dans Config. Les fixtures HTTP locales restent les preuves reproductibles par défaut.
|
||||
|
||||
`pre.007-fix.001` corrige la première exécution opérateur de ce smoke : le mint repris de l'exemple officiel `getTokenSupply` a renvoyé RPC `-32602` sur Devnet, et deux `expect()` dans le helper de construction violaient le gate Clippy. Le nouveau chemin Token évite cette dépendance d'état externe et le helper retourne explicitement le `Result` de construction.
|
||||
|
||||
`pre.007-fix.002` corrige la deuxième exécution opérateur : le scénario `getTokenAccountsByOwner(System Program, { programId })` sans troisième paramètre a renvoyé RPC `-32600` sur le RPC public Devnet, alors que les validations déterministes et le smoke Config -> Transport restaient verts. Le smoke adopte donc la forme complète de l'exemple RPC public (`owner` ordinaire + `{ programId }` + config `finalized/jsonParsed`) sans modifier le contrat optionnel du wrapper.
|
||||
|
||||
La matrice durable de clôture est `docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md` et le prompt suivant est `prompts/008-V0_2_3_START_PROMPT.md`. `CHANGELOG.md` reste réservé à `rel.001`.
|
||||
|
||||
## Hors périmètre
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md -->
|
||||
<!-- version: 2 -->
|
||||
<!-- version: 3 -->
|
||||
|
||||
# Validation finale `0.2.2` — HTTP Accounts + Tokens + Cluster
|
||||
|
||||
@@ -143,7 +143,7 @@ Il construit `HttpTransportSettings` programmatiquement, sans Config ni environn
|
||||
```text
|
||||
https://api.devnet.solana.com
|
||||
-> getAccountInfo(System Program)
|
||||
-> getTokenAccountsByOwner(System Program, selector programId = SPL Token)
|
||||
-> getTokenAccountsByOwner(owner ordinaire documenté, selector programId = SPL Token, finalized/jsonParsed)
|
||||
-> getEpochInfo
|
||||
-> getVoteAccounts
|
||||
```
|
||||
@@ -154,10 +154,12 @@ Exécution explicite :
|
||||
cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture
|
||||
```
|
||||
|
||||
Le test est `ignored` par défaut. Sa branche Token ne dépend plus d'un mint d'exemple : elle accepte naturellement une liste vide et vérifie seulement qu'un appel Token structurellement valide atteint Devnet. Un incident réseau/rate-limit doit être analysé séparément ; le smoke ne remplace jamais les fixtures HTTP locales.
|
||||
Le test est `ignored` par défaut. Sa branche Token ne dépend plus d'un mint d'exemple : elle utilise un owner Pubkey ordinaire de l'exemple RPC public, le selector `programId` canonique et une config explicite `finalized/jsonParsed`. Elle accepte naturellement une liste vide et vérifie seulement qu'un appel Token structurellement documenté atteint Devnet. Un incident réseau/rate-limit doit être analysé séparément ; le smoke ne remplace jamais les fixtures HTTP locales.
|
||||
|
||||
Correction `pre.007-fix.001` : lors de la première passe opérateur de `pre.007`, `getTokenSupply` sur le mint d'exemple de la documentation a échoué avec le code RPC `-32602`. Le smoke Config -> Transport, lui, a réussi. La branche Token est donc volontairement passée à `getTokenAccountsByOwner` avec selector `programId`, qui ne requiert aucun mint mutable pour prouver la traversée live du wrapper Token.
|
||||
|
||||
Correction `pre.007-fix.002` : lors de la passe suivante, `getTokenAccountsByOwner(System Program, { programId })` sans config explicite a échoué avec RPC `-32600`, tandis que `fmt`, `check`, `clippy`, les tests Transport, le workspace et le smoke Config -> Transport étaient verts. Le smoke Transport utilise désormais la forme complète documentée `owner ordinaire + { programId } + { commitment: finalized, encoding: jsonParsed }`. Ce changement reste limité au scénario live et ne redéfinit pas l'optionalité de la config dans le wrapper.
|
||||
|
||||
## Smoke de composition Config -> Transport
|
||||
|
||||
Le smoke historique `0.2.1` reste disponible :
|
||||
|
||||
Reference in New Issue
Block a user