diff --git a/Cargo.toml b/Cargo.toml index f88147a..9f9814f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 139 +# version: 140 [workspace] resolver = "3" members = ["crates/ksp-app-config-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-logging-lib", "crates/ksp-onchain-transport-lib"] [workspace.package] -version = "0.2.4-pre.8" +version = "0.2.4-pre.8.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-onchain-transport-lib/src/rpc_economics.rs b/crates/ksp-onchain-transport-lib/src/rpc_economics.rs index feb7588..f33e12e 100644 --- a/crates/ksp-onchain-transport-lib/src/rpc_economics.rs +++ b/crates/ksp-onchain-transport-lib/src/rpc_economics.rs @@ -1,5 +1,5 @@ // file: crates/ksp-onchain-transport-lib/src/rpc_economics.rs -// version: 4 +// version: 5 /// Inflation-governor values returned by `getInflationGovernor`. #[derive(Clone, Copy, Debug, PartialEq)] @@ -375,7 +375,7 @@ impl crate::HttpTransportPool { .with_context("commitment", "processed"), ); } - let address_values = addresses.iter().map(|address| serde_json::Value::String(address.to_string())).collect::>(); + let address_values = addresses.iter().map(|address| return serde_json::Value::String(address.to_string())).collect::>(); let mut params = std::vec![serde_json::Value::Array(address_values)]; if let std::option::Option::Some(config) = config && !config.is_empty() diff --git a/deltas/0.2.4/pre.008-fix.001.md b/deltas/0.2.4/pre.008-fix.001.md new file mode 100644 index 0000000..b3a866c --- /dev/null +++ b/deltas/0.2.4/pre.008-fix.001.md @@ -0,0 +1,86 @@ + + + +# 0.2.4-pre.008-fix.001 — conformité Clippy `implicit_return` + +## Base + +- Livraison corrigée : `0.2.4-pre.008` +- Version Cargo de base : `0.2.4-pre.8` +- Version Cargo après fix : `0.2.4-pre.8.fix.1` +- Le delta historique `pre.008.md` et le plan `011` ne sont pas modifiés. + +## Motif du fix + +La validation locale de `0.2.4-pre.008` a donné : + +- `cargo fmt --all` : OK ; +- `cargo check --workspace` : OK ; +- `cargo clippy --workspace --all-targets` : échec sur une unique violation de la politique workspace `-D clippy::implicit-return` ; +- `cargo test -p ksp-onchain-transport-lib` : OK avec `240` unit tests, `26` tests public API, `21` tests release-completeness et le smoke Devnet explicitement ignoré. + +La violation se trouve dans `HttpTransportPool::get_inflation_reward`, dans la closure qui transforme les `Pubkey` d'entrée en valeurs JSON : + +```rust +.map(|address| serde_json::Value::String(address.to_string())) +``` + +Le workspace impose les retours explicites, y compris dans cette closure. + +## Correction + +La closure devient : + +```rust +.map(|address| return serde_json::Value::String(address.to_string())) +``` + +Aucun comportement RPC, aucune validation, aucun DTO, aucune fixture et aucune canarie ne changent. + +## Fichiers + +Modifiés : + +- `Cargo.toml` ; +- `crates/ksp-onchain-transport-lib/src/rpc_economics.rs`. + +Ajouté : + +- `deltas/0.2.4/pre.008-fix.001.md`. + +## Validation statique de livraison + +L'environnement de construction de l'archive ne dispose pas de `cargo`, `rustc` ou `rustfmt`. Les contrôles statiques de packaging vérifient donc : + +- modification limitée à la closure concernée, aux versions de fichier/Cargo et au présent delta ; +- absence de `#[allow(dead_code)]` ajouté ; +- absence de nouveau `unsafe`, `unwrap`, `expect` ou `panic!` dans le runtime modifié ; +- archive réextraite et comparée octet par octet. + +## Validation locale attendue + +```bash +cargo fmt --all +cargo check --workspace +cargo clippy --workspace --all-targets +cargo test -p ksp-onchain-transport-lib +``` + +Résultat attendu : + +- zéro warning / erreur introduit par `pre.008` ; +- `240` unit tests OK ; +- `26` tests public API OK ; +- `21` tests release-completeness OK ; +- `1` smoke Devnet ignoré ; +- aucun échec. + +## Commit attendu + +```text +v0.2.4-pre.008-fix.001 +``` + +## Suite + +La prochaine prerelease fonctionnelle reste `0.2.4-pre.009`, consacrée au réaudit final SIMD/inventaire, à la compliance HTTP `52/52 + 14/14`, aux smokes/graphes, à la documentation finale et au prompt `0.2.5 — Wallet foundation`.