v0.4.8-pre.010
This commit is contained in:
@@ -1,8 +1,16 @@
|
||||
<!-- file: kb-pipeline/CHANGELOG.md -->
|
||||
<!-- version: 17 -->
|
||||
<!-- version: 19 -->
|
||||
|
||||
# CHANGELOG — kb-pipeline
|
||||
|
||||
## 0.4.8-pre.010
|
||||
|
||||
- remplace l’assertion 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 l’adaptateur RPC, soit `65536` octets ;
|
||||
- conserve séparément la capacité du décodeur à valider des données plus grandes provenant de sources offline ou d’un 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` ;
|
||||
|
||||
@@ -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 d’une 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 l’intent 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 lorsqu’elles sont explicitement approuvées et que l’enveloppe commune de sécurité est satisfaite.
|
||||
|
||||
Après simulation du message exact, `validate_solana_program_metadata_execution_readiness` vérifie les signers et l’autorisation de soumission. Après confirmation, `inspect_solana_program_metadata_post_execution` compare les lectures avant/après pour les neuf opérations.
|
||||
|
||||
@@ -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
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user