From fb32ed03f866968fe5f3b04cb1d7e6f65f24e85d Mon Sep 17 00:00:00 2001 From: SinuS Von SifriduS Date: Tue, 18 Aug 2026 12:40:24 +0200 Subject: [PATCH] v0.2.3-pre.006-fix.001 --- Cargo.toml | 4 +- .../unit_tests/rpc_transactions.rs | 4 +- deltas/0.2.3/pre.006-fix.001.md | 159 ++++++++++++++++++ 3 files changed, 163 insertions(+), 4 deletions(-) create mode 100644 deltas/0.2.3/pre.006-fix.001.md diff --git a/Cargo.toml b/Cargo.toml index db3b2d2..e8da392 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 126 +# version: 127 [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.3-pre.6" +version = "0.2.3-pre.6.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs b/crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs index 065d711..2f1e95a 100644 --- a/crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs +++ b/crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs @@ -1,5 +1,5 @@ // file: crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs -// version: 6 +// version: 7 #[test] fn transaction_encoding_strings_match_current_and_legacy_wire_labels() { @@ -308,7 +308,7 @@ fn transaction_pool_for_urls(urls: &[(&str, u32)], request_timeout: std::time::D true, crate::HttpProviderName::new("fixture"), crate::HttpClusterName::new("local"), - crate::HttpEndpointUrl::parse(url).expect("fixture URL must parse"), + crate::HttpEndpointUrl::parse(*url).expect("fixture URL must parse"), std::time::Duration::from_millis(100), request_timeout, std::option::Option::Some(1), diff --git a/deltas/0.2.3/pre.006-fix.001.md b/deltas/0.2.3/pre.006-fix.001.md new file mode 100644 index 0000000..086576e --- /dev/null +++ b/deltas/0.2.3/pre.006-fix.001.md @@ -0,0 +1,159 @@ + + + +# Delta `0.2.3-pre.006-fix.001` — type URL des fixtures write + +## Base requise + +Ce correctif s'applique après : + +```text +0.2.3-pre.006 +workspace.package.version = "0.2.3-pre.6" +``` + +Le commit de livraison attendu pour la base est : + +```text +v0.2.3-pre.006 +``` + +## Motif du fix + +Les validations opérateur du 2026-08-18 ont établi : + +```text +cargo fmt --all OK +cargo check --workspace OK +cargo clippy --workspace --all-targets ÉCHEC dans lib test +cargo test -p ksp-onchain-transport-lib ÉCHEC à la compilation de lib test +``` + +Le défaut est strictement situé dans le helper de fixtures HTTP multi-endpoints ajouté par `pre.006` : + +```rust +for (index, (url, priority)) in urls.iter().enumerate() { + // ... + HttpEndpointUrl::parse(url) +} +``` + +`urls` est de type `&[(&str, u32)]`. L'itération par référence produit donc `url: &&str`, alors que `HttpEndpointUrl::parse` attend une valeur implémentant `Into`. `&&str` n'implémente pas cette conversion. + +Le compilateur propose correctement de déréférencer une fois la valeur : + +```rust +HttpEndpointUrl::parse(*url) +``` + +Aucun défaut de production, de policy write ou de no-resend n'est mis en évidence par cette erreur ; la compilation échoue avant l'exécution des nouveaux tests de `pre.006`. + +## Version technique + +Le correctif modifie une source Rust de test. Conformément au signal technique KSP : + +```text +0.2.3-pre.6 -> 0.2.3-pre.6.fix.1 +``` + +Le header du `Cargo.toml` passe de `version: 126` à `version: 127`. + +Le commit de livraison attendu est : + +```text +v0.2.3-pre.006-fix.001 +``` + +## Correction + +Dans : + +```text +crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs +``` + +la construction des endpoints de fixture passe désormais la chaîne référencée elle-même : + +```rust +crate::HttpEndpointUrl::parse(*url).expect("fixture URL must parse") +``` + +Le header du fichier passe de `version: 6` à `version: 7`. + +Cette modification ne change ni l'URL, ni l'ordre des endpoints, ni leurs priorités, ni les paramètres de retry. Elle corrige uniquement le niveau de référence transmis au constructeur typé. + +## Contrats inchangés + +Le correctif ne change pas : + +- `requestAirdrop` ; +- `sendTransaction` ; +- leurs configs publiques ; +- les encodings `base58` / `base64` ; +- la distinction `sendTransaction.maxRetries` / retry HTTP KSP ; +- les descriptors `WriteSubmission / NeverAfterDispatch` ; +- la policy centrale no-resend après dispatch ambigu ; +- les fixtures JSON de `pre.006` ; +- le plan `010` ; +- `KSP-TRANSPORT-007` ; +- les dépendances ; +- le nombre ou le contenu fonctionnel des tests ajoutés par `pre.006`. + +Aucun fichier de production de `ksp-onchain-transport-lib` n'est modifié. + +## Fichiers modifiés + +```text +Cargo.toml +crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs +``` + +## Fichier ajouté + +```text +deltas/0.2.3/pre.006-fix.001.md +``` + +## Dépendances + +Aucune dépendance ajoutée, supprimée ou modifiée. + +## Validations à rejouer + +```bash +cargo fmt --all +cargo check --workspace +cargo clippy --workspace --all-targets +cargo test -p ksp-onchain-transport-lib +``` + +Résultat attendu après compilation du test : + +```text +175 unit tests +18 public API tests +12 release completeness tests +1 smoke Devnet ignored / opt-in +0 échec +``` + +Les tests write de `pre.006` doivent notamment pouvoir s'exécuter et démontrer les scénarios no-resend 429 / 503 / timeout ainsi que le fallback autorisé après `NotDispatched`. + +Aucune validation du fix lui-même n'est déclarée réussie sans exécution réelle sur le dépôt opérateur. + +## Suite + +Après validation et commit de : + +```text +v0.2.3-pre.006-fix.001 +``` + +reprendre la tranche planifiée : + +```text +0.2.3-pre.007 +simulateTransaction complet +``` + +Le réaudit rétroactif `KSP-TRANSPORT-007` reste planifié dans une prerelease dédiée avant la tranche finale de clôture.