From 946d88322baac35305912ac61a8961c7462f9350 Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Sat, 22 Aug 2026 03:29:10 +0200 Subject: [PATCH] v0.2.6-pre.015-fix.001 --- Cargo.toml | 2 +- crates/ksp-wallet-lib/src/wire_v2.rs | 8 +-- deltas/0.2.6/pre.015-fix.001.md | 80 ++++++++++++++++++++++++++++ 3 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 deltas/0.2.6/pre.015-fix.001.md diff --git a/Cargo.toml b/Cargo.toml index c3d545f..9026d84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,7 @@ resolver = "3" members = ["crates/ksp-app-config-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-wallet-lib"] [workspace.package] -version = "0.2.6-pre.15" +version = "0.2.6-pre.15.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-wallet-lib/src/wire_v2.rs b/crates/ksp-wallet-lib/src/wire_v2.rs index a9eb506..26b3702 100644 --- a/crates/ksp-wallet-lib/src/wire_v2.rs +++ b/crates/ksp-wallet-lib/src/wire_v2.rs @@ -511,10 +511,10 @@ impl KspWalletEnvelopeV2 { } else { std::option::Option::None }; - if let (std::option::Option::Some(descriptor_slot_id), std::option::Option::Some(parsed_view_slot)) = (view_descriptor.slot_id(), view_slot.as_ref()) { - if descriptor_slot_id != parsed_view_slot.slot_id() { - return std::result::Result::Err(format_error("VIEW descriptor slot_id does not match the VIEW key slot", "view_descriptor.slot_id")); - } + if let (std::option::Option::Some(descriptor_slot_id), std::option::Option::Some(parsed_view_slot)) = (view_descriptor.slot_id(), view_slot.as_ref()) + && descriptor_slot_id != parsed_view_slot.slot_id() + { + return std::result::Result::Err(format_error("VIEW descriptor slot_id does not match the VIEW key slot", "view_descriptor.slot_id")); } let owner_control = match parse_compartment(&mut reader, WalletCompartmentKindV2::OwnerControl) { std::result::Result::Ok(value) => value, diff --git a/deltas/0.2.6/pre.015-fix.001.md b/deltas/0.2.6/pre.015-fix.001.md new file mode 100644 index 0000000..befd3aa --- /dev/null +++ b/deltas/0.2.6/pre.015-fix.001.md @@ -0,0 +1,80 @@ + + + +# Delta `0.2.6-pre.015-fix.001` — nettoyage Clippy du parser `.kspwallet` V2 + +## Base requise + +```text +0.2.6-pre.015 appliquée +workspace.package.version = 0.2.6-pre.15 +``` + +Le checkpoint opérateur fourni confirme : + +```text +cargo fmt --all OK +python3 scripts/audit_rust_workspace_rules.py clean +cargo check --workspace OK +cargo test -p ksp-app-config-desk OK +cargo test -p ksp-app-wallet-desk OK +cargo test --workspace OK +``` + +`cargo clippy --workspace --all-targets` termine avec un unique warning `clippy::collapsible_if` dans `ksp-wallet-lib/src/wire_v2.rs` sur la vérification de cohérence entre le `slot_id` du descripteur VIEW et celui du key slot VIEW parsé. + +## Signal technique + +```text +workspace.package.version = 0.2.6-pre.15.fix.1 +commit = v0.2.6-pre.015-fix.001 +``` + +Aucun tag prerelease. Aucun changement npm/Tauri : le correctif ne touche ni frontend, ni configuration Tauri, ni packaging. + +## Correction + +Le contrôle : + +```rust +if let (...) = (...) { + if descriptor_slot_id != parsed_view_slot.slot_id() { + return Err(...); + } +} +``` + +est remplacé par la forme Rust équivalente utilisant une let-chain : + +```rust +if let (...) = (...) + && descriptor_slot_id != parsed_view_slot.slot_id() +{ + return Err(...); +} +``` + +La sémantique reste strictement identique : + +- aucun changement du wire V2 ; +- aucun changement de parsing, framing, limites ou canonicalité ; +- aucun changement cryptographique ; +- aucun changement des APIs publiques ; +- aucun changement de fixture ; +- aucun changement de Wallet Desk. + +## Validation opérateur requise + +Le correctif étant Rust-only et local au parser V2 : + +```bash +cargo fmt --all +python3 scripts/audit_rust_workspace_rules.py +cargo check --workspace +cargo clippy --workspace --all-targets +cargo test -p ksp-wallet-lib +``` + +Si ce checkpoint est vert, `0.2.6-pre.015-fix.001` peut être commitée. Le prochain travail fonctionnel reste `0.2.6-pre.016` : APIs génériques/versionnées, création/open V2 et bascule de Wallet Desk sur l'API non versionnée. + +Ne pas exécuter `cargo tauri build` à ce stade.