v0.4.8-pre.010

This commit is contained in:
2026-08-06 17:26:14 +02:00
parent b314bfc244
commit 3167297283
40 changed files with 2556 additions and 1125 deletions

View File

@@ -1,8 +1,16 @@
<!-- file: kb-pipeline/CHANGELOG.md -->
<!-- version: 17 -->
<!-- version: 19 -->
# CHANGELOG — kb-pipeline
## 0.4.8-pre.010
- remplace lassertion runtime sur la relation entre borne RPC et borne de décodage par une assertion `const`, afin de supprimer le dernier warning `clippy::assertions_on_constants` ;
- borne les lectures complètes Solana Program Metadata au maximum réellement accepté par ladaptateur RPC, soit `65536` octets ;
- conserve séparément la capacité du décodeur à valider des données plus grandes provenant de sources offline ou dun futur lecteur par tranches ;
- ajoute un test empêchant de réaligner par erreur la borne stateful sur la limite de décodage de `10 MiB` ;
## 0.4.8-pre.008 — orchestration Solana Program Metadata généraliste
- ajoute les lectures de comptes `Buffer` et `Metadata` bornées, avec décodage et projection autoritative délégués à `kb-lib` ;

View File

@@ -1,5 +1,5 @@
<!-- file: kb-pipeline/USAGE.md -->
<!-- version: 8 -->
<!-- version: 9 -->
# Utilisation de kb-pipeline
@@ -199,6 +199,8 @@ async fn read_program_metadata(
}
```
`MAX_SOLANA_PROGRAM_METADATA_STATEFUL_ACCOUNT_BYTES` représente la borne dune lecture RPC complète et vaut actuellement `65536`. La capacité de décodage `DC_METADATA_SPM_MAX_ACCOUNT_BYTES` reste distincte pour les données déjà disponibles offline ou pour un futur lecteur par tranches.
Le préflight reçoit lintent typé, le plan produit par `ExMetadataSolanaProgramMetadataExecutor`, les snapshots confirmés et, pour les opérations qui allouent ou agrandissent un compte, une observation explicite du minimum de rent. Il refuse un plan `Deny`, mais les opérations dangereuses restent exécutables lorsquelles sont explicitement approuvées et que lenveloppe commune de sécurité est satisfaite.
Après simulation du message exact, `validate_solana_program_metadata_execution_readiness` vérifie les signers et lautorisation de soumission. Après confirmation, `inspect_solana_program_metadata_post_execution` compare les lectures avant/après pour les neuf opérations.

View File

@@ -1,11 +1,14 @@
// file: kb-pipeline/src/metadata_solana_program_stateful.rs
// version: 2
// version: 4
//! Bounded Solana Program Metadata account reads and authoritative state projections.
/// Maximum complete Solana Program Metadata account data accepted by one RPC read.
///
/// The decoder can validate larger account byte arrays supplied by offline or chunked sources, but
/// the current execution RPC adapter intentionally bounds one complete `getAccountInfo` response.
pub const MAX_SOLANA_PROGRAM_METADATA_STATEFUL_ACCOUNT_BYTES: usize =
kb_lib::DC_METADATA_SPM_MAX_ACCOUNT_BYTES;
kb_onchain_transport::MAX_COMPLETE_ACCOUNT_DATA_BYTES;
/// Expected state of one Solana Program Metadata account read.
#[derive(Clone, Copy, Debug, Eq, PartialEq, serde::Deserialize, serde::Serialize)]
@@ -422,4 +425,18 @@ mod tests {
);
}
}
#[test]
fn stateful_complete_read_bound_matches_the_transport_contract() {
assert_eq!(
crate::MAX_SOLANA_PROGRAM_METADATA_STATEFUL_ACCOUNT_BYTES,
kb_onchain_transport::MAX_COMPLETE_ACCOUNT_DATA_BYTES
);
const {
assert!(
crate::MAX_SOLANA_PROGRAM_METADATA_STATEFUL_ACCOUNT_BYTES
< kb_lib::DC_METADATA_SPM_MAX_ACCOUNT_BYTES
);
}
}
}