diff --git a/Cargo.toml b/Cargo.toml index 91d791e..c441b60 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,12 +1,12 @@ # file: Cargo.toml -# version: 525 +# version: 526 [workspace] resolver = "3" members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-raw-transaction-lib", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api", "crates/ksp-worker-raw-transaction-ingest-lib"] [workspace.package] -version = "0.3.12-pre.5" +version = "0.3.12-pre.5.fix.1" edition = "2024" license = "MIT" repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project" diff --git a/crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs b/crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs index 153b824..5c3084f 100644 --- a/crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs +++ b/crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs @@ -1,5 +1,5 @@ // file: crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs -// version: 6 +// version: 7 #[cfg(test)] use sha2::Digest; // rust-rules: trait-import @@ -550,7 +550,7 @@ fn project_yellowstone_block_signals + + +# Delta `0.3.12-pre.005-fix.001` — correction de la conversion de signature Block + +## Base requise + +```text +0.3.12-pre.005 +workspace.package.version = 0.3.12-pre.5 +``` + +Le gate opérateur communiqué confirme : + +```text +Rust rule audit : clean +Markdown table audit : clean (340 tables, 808 fichiers) +cargo check --workspace : PASS +``` + +La compilation des tests Worker échoue ensuite sur un unique diagnostic `E0599` : l'adapter privé `Block` appelle `YellowstoneTransactionSignature::into_bytes()`, méthode absente de la façade Transport. + +## Objectif + +Corriger uniquement cette incompatibilité d'API sans changer le comportement `Block`, sans export supplémentaire et sans avancer le scope productif de `pre.006`. + +## Version + +```text +workspace.package.version = 0.3.12-pre.5.fix.1 +``` + +## Correction + +La construction de la signature source-neutral passe de : + +```text +RawTransactionSignature::new(signature.into_bytes()) +``` + +à : + +```text +RawTransactionSignature::new(*signature.as_bytes()) +``` + +`YellowstoneTransactionSignature::as_bytes()` est le contrat réel exposé par Transport. Le dereference copie le tableau canonique `[u8; 64]` attendu par `RawTransactionSignature::new`. Cette forme est déjà utilisée dans le même module pour `TransactionStatus`. + +## Fichiers ajoutés + +```text +deltas/0.3.12/pre.005-fix.001.md +``` + +## Fichiers modifiés + +```text +Cargo.toml +crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs +docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md +``` + +## Fichiers supprimés + +Aucun. + +## Non-changements + +```text +aucune API publique +aucune dépendance +aucun changement de provenance +aucun changement d'ordre Block +aucun RAW depuis BlockMeta/Slot +aucun source task Yellowstone productif +aucune coalescence productive +aucun reconnect/from_slot/ReplayInfo +aucun lint neutralisé +``` + +## Validations exécutées dans l'environnement d'assemblage + +```text +python3 scripts/audit_rust_workspace_rules.py +python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas +``` + +Les contrôles statiques vérifient également qu'il ne reste aucun appel `YellowstoneTransactionSignature::into_bytes()` dans `runtime_resources.rs` et que la conversion `*signature.as_bytes()` correspond à la forme déjà utilisée par l'adapter `TransactionStatus`. + +## Validations non exécutées dans l'environnement d'assemblage + +`cargo`, `rustc` et `rustfmt` ne sont pas disponibles dans l'environnement d'assemblage. Aucun gate Cargo local n'est revendiqué. + +## Gate opérateur requis + +```bash +cargo fmt --all +python3 scripts/audit_rust_workspace_rules.py +python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas +cargo check --workspace +cargo clippy --workspace --all-targets --all-features -- -D warnings +cargo test -p ksp-worker-raw-transaction-ingest-lib +``` + +Après gate vert, la suite reste `pre.006`. diff --git a/docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md b/docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md index ee8499e..3a06722 100644 --- a/docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md +++ b/docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md @@ -1,5 +1,5 @@ - + # Validation v0.3.12 — Yellowstone + hydration HTTP + continuité de run du Worker RawTransaction @@ -1084,3 +1084,47 @@ introduit une politique reconnect Worker ``` La tranche suivante reste `pre.006` : source task productive, session Yellowstone via Transport, hydration/admission et coalescence bornée dans le supervisor existant. + +## 46. Gate opérateur `pre.005` et fix `pre.005-fix.001` + +Le gate opérateur de `pre.005` confirme : + +```text +General Rust rule audit: clean +Rust export completeness audit: 0 candidate(s) +KSP workspace Rust rule audit: clean +Markdown table audit: clean (340 tables, 808 fichiers) +cargo check --workspace: PASS +``` + +Le gate strict échoue uniquement lors de la compilation des tests Worker avant exécution : + +```text +error[E0599]: no method named `into_bytes` found for YellowstoneTransactionSignature +``` + +La façade Transport expose `YellowstoneTransactionSignature::as_bytes()`. Le même fichier `runtime_resources.rs` utilisait déjà la conversion correcte pour les updates `TransactionStatus` : + +```text +RawTransactionSignature::new(*update.signature().as_bytes()) +``` + +`pre.005-fix.001` aligne donc l'adapter `Block` sur ce contrat exact : + +```text +RawTransactionSignature::new(*signature.as_bytes()) +``` + +Aucun changement de sémantique n'est introduit : les 64 bytes canoniques sont copiés dans le même `RawTransactionSignature`; ordre Block, slot, index, provenance et séparation RAW/continuité restent inchangés. Aucun nouvel export, aucune dépendance et aucun scope de `pre.006` n'est ajouté. + +Gate opérateur à rejouer : + +```bash +cargo fmt --all +python3 scripts/audit_rust_workspace_rules.py +python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas +cargo check --workspace +cargo clippy --workspace --all-targets --all-features -- -D warnings +cargo test -p ksp-worker-raw-transaction-ingest-lib +``` +