Files
khadhroony-solana-project/deltas/0.2.5/pre.003-fix.001.md

4.1 KiB

Delta 0.2.5-pre.003-fix.001 — conformité Clippy du wire Wallet V1

Base requise

livraison : 0.2.5-pre.003
workspace.package.version = "0.2.5-pre.3"

La base opérateur inclut les ajustements de présentation appliqués localement après pre.003 dans crates/ksp-wallet-lib/src/constants.rs et crates/ksp-wallet-lib/src/lib.rs. Ce fix ne touche pas ces deux fichiers et doit donc être appliqué par-dessus cet état opérateur.

Motif

La validation opérateur de pre.003 donne :

cargo fmt --all                        OK
cargo check --workspace                OK
cargo clippy --workspace --all-targets OK avec 1 warning Wallet
cargo test -p ksp-wallet-lib           OK

Clippy signale clippy::collapsible_if dans crates/ksp-wallet-lib/src/wire.rs lors de la vérification de l'unicité des slot_id OWNER/VIEW.

Même si ce lint n'est actuellement qu'un warning, KSP ne clôt pas volontairement une tranche Rust avec un warning connu dans le code introduit par la tranche lorsqu'une correction locale et sémantiquement neutre est disponible.

Correction

Le test :

if let Some(view_slot_ref) = view_slot.as_ref() {
    if owner_slot.slot_id() == view_slot_ref.slot_id() {
        // ...
    }
}

est remplacé par une let-chain Rust 2024 équivalente :

if let Some(view_slot_ref) = view_slot.as_ref()
    && owner_slot.slot_id() == view_slot_ref.slot_id()
{
    // ...
}

Aucune sémantique wire, aucun invariant .kspwallet, aucun transcript/AAD, aucune dépendance et aucune API publique ne changent.

Version Cargo

Le correctif modifie une source Rust de production. Conformément aux règles de signalement technique du workspace :

0.2.5-pre.3 -> 0.2.5-pre.3.fix.1

Fichiers modifiés

Cargo.toml
crates/ksp-wallet-lib/src/wire.rs

Fichiers ajoutés

deltas/0.2.5/pre.003-fix.001.md

Fichiers supprimés

Aucun.

Fichiers opérateur volontairement préservés

Le fix n'embarque pas et ne réécrit pas :

crates/ksp-wallet-lib/src/constants.rs
crates/ksp-wallet-lib/src/lib.rs

Les regroupements pub const / pub(crate) const et pub use / pub(crate) use effectués par l'opérateur restent donc intacts.

Validation attendue après application

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

Le checkpoint de dépendances de pre.003 doit également auditer l'arbre après l'introduction de base64 :

cargo tree -p ksp-wallet-lib
cargo tree -p ksp-wallet-lib -d
cargo tree -i base64

Objectifs du contrôle :

Wallet ne dépend toujours que de ses frontières autorisées
base64 provient de la déclaration workspace et n'introduit pas une seconde génération injustifiée
aucune dépendance Config / Transport / Tauri / tracing direct / client RPC Solana n'apparaît sous Wallet
les duplications éventuelles de l'arbre sont comprises et justifiées

cargo tree -d peut afficher des duplications appartenant à d'autres branches du workspace lorsqu'il est lancé globalement ; le contrôle ciblé -p ksp-wallet-lib constitue la vue de référence de ce fix.

Validations opérateur pré-fix enregistrées

  • cargo fmt --all : OK ;
  • cargo check --workspace : OK ;
  • cargo clippy --workspace --all-targets : terminé avec un unique warning clippy::collapsible_if dans wire.rs ;
  • cargo test -p ksp-wallet-lib : OK :
    • 18 unit tests ;
    • 2 dependency-boundary tests ;
    • 5 public API tests ;
    • 2 doctests compile_fail.

Décisions

  • corriger le warning au lieu de l'accepter ou de poser un #[allow] local ;
  • ne pas modifier les ajustements manuels constants.rs / lib.rs de l'opérateur ;
  • ajouter le contrôle cargo tree à la validation de la tranche ayant introduit base64 ;
  • ne pas élargir le périmètre fonctionnel de pre.003.

Questions ouvertes

Aucune nouvelle question fonctionnelle introduite par ce correctif.

Commit attendu

v0.2.5-pre.003-fix.001