Files
khadhroony-solana-project/deltas/0.2.3/pre.006-fix.001.md

3.9 KiB

Delta 0.2.3-pre.006-fix.001 — type URL des fixtures write

Base requise

Ce correctif s'applique après :

0.2.3-pre.006
workspace.package.version = "0.2.3-pre.6"

Le commit de livraison attendu pour la base est :

v0.2.3-pre.006

Motif du fix

Les validations opérateur du 2026-08-18 ont établi :

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 :

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<String>. &&str n'implémente pas cette conversion.

Le compilateur propose correctement de déréférencer une fois la valeur :

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 :

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 :

v0.2.3-pre.006-fix.001

Correction

Dans :

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 :

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

Cargo.toml
crates/ksp-onchain-transport-lib/unit_tests/rpc_transactions.rs

Fichier ajouté

deltas/0.2.3/pre.006-fix.001.md

Dépendances

Aucune dépendance ajoutée, supprimée ou modifiée.

Validations à rejouer

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 :

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 :

v0.2.3-pre.006-fix.001

reprendre la tranche planifiée :

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.