# 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.