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_wiren'est plus conditionné par#[cfg(test)];decode_wire_jsonetWireRpcContext, 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 parpre.002-fix.001n'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.versionvaut0.2.2-pre.2.fix.2;- les deltas
pre.002.mdetpre.002-fix.001.mdrestent 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_wirecomme 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.rsavec un nouveau réexport crate-private production inutile ; - ne pas commencer
pre.003avant 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.