Files
khadhroony-solana-project/deltas/0.2.2/pre.007-fix.002.md

3.7 KiB

Delta 0.2.2-pre.007-fix.002

Base requise

  • 0.2.2-pre.007-fix.001 appliqué et commité ;
  • workspace.package.version = "0.2.2-pre.7.fix.1" avant application de ce delta.

Objectif

Corriger le deuxième échec opérateur du smoke Devnet Transport introduit en pre.007, sans modifier les wrappers HTTP typés ni la surface publique 0.2.2.

La passe pre.007-fix.001 a validé cargo fmt --all, cargo check --workspace, cargo clippy --workspace --all-targets, les tests Transport et cargo test --workspace. Le smoke historique Config -> Transport a également réussi. En revanche, le smoke Transport pur a reçu RPC -32600 sur getTokenAccountsByOwner lorsqu'il utilisait System Program comme owner, le selector { programId: SPL Token } et omettait le troisième paramètre de config.

Décision

Le wrapper conserve son contrat existant : la config Account reste optionnelle, conformément à la surface RPC auditée et aux tests déterministes.

Le scénario live adopte la forme la plus conservatrice de l'exemple RPC public Devnet :

  • owner Pubkey ordinaire de l'exemple officiel ;
  • selector { programId: SPL Token } ;
  • config explicite { commitment: "finalized", encoding: "jsonParsed" }.

Le smoke ne dépend toujours pas de l'existence d'un token account particulier : une liste vide reste un succès valide.

Fichiers modifiés

  • Cargo.toml
    • version de fichier 117 -> 118 ;
    • workspace.package.version: 0.2.2-pre.7.fix.1 -> 0.2.2-pre.7.fix.2.
  • crates/ksp-onchain-transport-lib/tests/transport_devnet_smoke.rs
    • version 2 -> 3 ;
    • remplace le scénario Token System Program + selector seul par la forme documentée owner ordinaire + selector + finalized/jsonParsed.
  • crates/ksp-onchain-transport-lib/README.md
    • version 3 -> 4 ;
    • précise la forme du smoke Token.
  • crates/ksp-onchain-transport-lib/USAGE.md
    • version 3 -> 4 ;
    • synchronise la commande et la sémantique du smoke Token.
  • docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md
    • version 5 -> 6 ;
    • consigne l'échec live -32600 et la correction du scénario.
  • docs/validation/004-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER.md
    • version 2 -> 3 ;
    • synchronise la matrice de validation avec le scénario corrigé.

Fichier ajouté

  • deltas/0.2.2/pre.007-fix.002.md.

Fichiers supprimés

Aucun.

Validations observées avant ce fix

Réussies sur le checkout opérateur 0.2.2-pre.7.fix.1 :

  • cargo fmt --all ;
  • cargo check --workspace ;
  • cargo clippy --workspace --all-targets ;
  • cargo test -p ksp-onchain-transport-lib : 127 + 13 + 7, smoke live ignoré par défaut ;
  • cargo test --workspace : succès ;
  • cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture : succès.

Échec observé :

  • cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture ;
  • getTokenAccountsByOwner a reçu onchain_transport.rpc_application_error, rpc_code = -32600.

Validations à exécuter après application

cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib
cargo test --workspace
cargo test -p ksp-onchain-transport-lib --test transport_devnet_smoke -- --ignored --nocapture
cargo test -p ksp-config-lib --test transport_devnet_smoke -- --ignored --nocapture

Questions ouvertes

Aucune question d'architecture nouvelle. Si la forme RPC publique documentée échoue encore sur Devnet, le prochain diagnostic devra capturer/Comparer le wire live ou considérer explicitement une limitation du RPC public, plutôt que remplacer une troisième fois arbitrairement le scénario Token.