v0.2.6-pre.015-fix.001
This commit is contained in:
@@ -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"]
|
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]
|
[workspace.package]
|
||||||
version = "0.2.6-pre.15"
|
version = "0.2.6-pre.15.fix.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||||
|
|||||||
@@ -511,10 +511,10 @@ impl KspWalletEnvelopeV2 {
|
|||||||
} else {
|
} else {
|
||||||
std::option::Option::None
|
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 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() {
|
&& 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"));
|
{
|
||||||
}
|
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) {
|
let owner_control = match parse_compartment(&mut reader, WalletCompartmentKindV2::OwnerControl) {
|
||||||
std::result::Result::Ok(value) => value,
|
std::result::Result::Ok(value) => value,
|
||||||
|
|||||||
80
deltas/0.2.6/pre.015-fix.001.md
Normal file
80
deltas/0.2.6/pre.015-fix.001.md
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
<!-- file: deltas/0.2.6/pre.015-fix.001.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# 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.
|
||||||
Reference in New Issue
Block a user