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

5.1 KiB

Delta 0.2.2-pre.002-fix.002 — restauration du décodeur de contexte utilisé par getBalance

Base requise

livraison : 0.2.2-pre.002-fix.001
workspace.package.version = "0.2.2-pre.2.fix.1"

Le correctif est ouvert après validation locale communiquée le 2026-08-18. pre.002-fix.001 a correctement réduit les warnings préparatoires, mais a classé à tort SolanaRpcContext::decode_wire comme helper exclusivement test alors que le canari de production getBalance, acquis en 0.2.1, l'utilise déjà dans rpc_canary.rs.

La conséquence est une régression de compilation E0599 sur cargo check, cargo clippy et cargo test.

Objectif

Restaurer uniquement le chemin de décodage de contexte déjà nécessaire au runtime du canari getBalance, sans annuler le nettoyage ciblé de pre.002-fix.001, sans commencer les wrappers Accounts de pre.003 et sans élargir l'API publique.

Version Cargo

Le correctif modifie du Rust de production. Conformément à VER-ID-007 et VER-ID-010 :

0.2.2-pre.2.fix.1 -> 0.2.2-pre.2.fix.2

Aucune dépendance ni feature Cargo n'est ajoutée ou retirée.

Correction

Les trois éléments nécessaires au chemin production rpc_canary::get_balance redeviennent compilés hors #[cfg(test)] :

SolanaRpcContext::decode_wire
rpc_common::decode_wire_json
WireRpcContext

SolanaRpcContext::decode_wire appelle désormais directement le helper privé de son module au lieu de dépendre du réexport crate-private crate::decode_wire_json, qui reste volontairement réservé aux tests dans lib.rs tant qu'aucun autre module de production ne le consomme.

Tous les autres serializers/décodeurs préparatoires rendus test-only par pre.002-fix.001 restent inchangés. Ce fix ne réintroduit donc pas les warnings dead_code que fix.001 cherchait à supprimer.

Fichiers ajoutés

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

Fichiers modifiés

Cargo.toml
crates/ksp-onchain-transport-lib/src/rpc_common.rs

Fichiers supprimés

Aucun.

Fichiers volontairement inchangés

deltas/0.2.2/pre.002.md
deltas/0.2.2/pre.002-fix.001.md
docs/plans/009-V0_2_2_HTTP_ACCOUNTS_TOKENS_CLUSTER_PLAN.md
ROADMAP.md
CHANGELOG.md
crates/ksp-onchain-transport-lib/src/lib.rs
crates/ksp-onchain-transport-lib/src/rpc_canary.rs
crates/ksp-onchain-transport-lib/src/rpc_accounts.rs
crates/ksp-onchain-transport-lib/src/rpc_tokens.rs
crates/ksp-onchain-transport-lib/src/rpc_cluster.rs
crates/ksp-onchain-transport-lib/unit_tests/**
crates/ksp-onchain-transport-lib/tests/**
crates/ksp-config-lib/**
config/**

Les deltas déjà publiés restent des traces historiques et ne sont pas réécrits.

Validation ayant déclenché le correctif

Les commandes suivantes ont été exécutées par l'utilisateur sur 0.2.2-pre.002-fix.001 :

cargo fmt --all                         : exécuté
cargo check --workspace                : ÉCHEC E0599
cargo clippy --workspace --all-targets : ÉCHEC E0599
cargo test -p ksp-onchain-transport-lib : ÉCHEC E0599

Erreur commune :

no function or associated item named `decode_wire` found for struct `SolanaRpcContext`
rpc_canary.rs:194:48

Contrôles statiques effectués pendant la préparation du fix

  • SolanaRpcContext::decode_wire n'est plus conditionné par #[cfg(test)] ;
  • decode_wire_json et WireRpcContext, ses dépendances directes, sont également production-live ;
  • l'appel interne n'utilise plus le réexport test-only crate::decode_wire_json ;
  • aucun autre #[cfg(test)] introduit par pre.002-fix.001 n'est retiré ;
  • aucun #[allow(dead_code)] n'est ajouté ;
  • aucune API publique, méthode RPC, dépendance, feature ou configuration n'est modifiée ;
  • workspace.package.version vaut 0.2.2-pre.2.fix.2 ;
  • les deltas pre.002.md et pre.002-fix.001.md restent inchangés.

Validations du correctif non exécutées dans le sandbox

Le sandbox de préparation ne fournit pas cargo, rustc ni rustfmt. Les validations Rust du présent fix ne sont donc pas déclarées réussies.

Après application, exécuter :

cargo fmt --all
cargo check --workspace
cargo clippy --workspace --all-targets
cargo test -p ksp-onchain-transport-lib

Le résultat attendu est le retour à une compilation réussie du canari getBalance, sans réapparition des warnings ciblés par pre.002-fix.001.

Décisions prises

  • traiter SolanaRpcContext::decode_wire comme code de production parce qu'un consommateur runtime existe déjà ;
  • conserver test-only uniquement les helpers qui n'ont réellement aucun consommateur production à cette étape ;
  • ne pas modifier rpc_canary.rs, dont l'utilisation du décodeur est correcte ;
  • ne pas élargir lib.rs avec un nouveau réexport crate-private production inutile ;
  • ne pas commencer pre.003 avant validation de ce second fix.

Questions ouvertes

Aucune question bloquante.

Suite

Après validation et commit de 0.2.2-pre.002-fix.002, poursuivre avec 0.2.2-pre.003 pour les cinq wrappers Accounts.