v0.3.12-pre.005-fix.001
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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<T: RawTransactionIngestYellowstoneBlockView
|
||||
matched_filter_id: matched_filter_id.clone(),
|
||||
network: source.network.clone(),
|
||||
route: source.route.clone(),
|
||||
signature: ksp_store_lib::RawTransactionSignature::new(signature.into_bytes()),
|
||||
signature: ksp_store_lib::RawTransactionSignature::new(*signature.as_bytes()),
|
||||
slot: update.slot(),
|
||||
transaction_index: std::option::Option::Some(transaction_index),
|
||||
});
|
||||
|
||||
105
deltas/0.3.12/pre.005-fix.001.md
Normal file
105
deltas/0.3.12/pre.005-fix.001.md
Normal file
@@ -0,0 +1,105 @@
|
||||
<!-- file: deltas/0.3.12/pre.005-fix.001.md -->
|
||||
<!-- version: 1 -->
|
||||
|
||||
# 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`.
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- file: docs/validation/029-V0_3_12_YELLOWSTONE_HYDRATION_CONTINUITY.md -->
|
||||
<!-- version: 9 -->
|
||||
<!-- version: 10 -->
|
||||
|
||||
# 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
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user