0.1.0
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
# file: kb_materializer_admin/Cargo.toml
|
||||
# version: 5
|
||||
|
||||
[package]
|
||||
name = "kb_materializer_admin"
|
||||
version.workspace = true
|
||||
edition.workspace = true
|
||||
license.workspace = true
|
||||
publish.workspace = true
|
||||
|
||||
[dependencies]
|
||||
kb_core = { path = "../kb_core" }
|
||||
kb_decoder_api = { path = "../kb_decoder_api" }
|
||||
kb_decoder_spl_elgamal_registry = { path = "../kb_decoder_spl_elgamal_registry" }
|
||||
kb_decoder_spl_token_2022 = { path = "../kb_decoder_spl_token_2022" }
|
||||
kb_model = { path = "../kb_model" }
|
||||
kb_materializer_api = { path = "../kb_materializer_api" }
|
||||
kb_program_ids = { path = "../kb_program_ids" }
|
||||
serde_json.workspace = true
|
||||
tracing.workspace = true
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
@@ -0,0 +1,25 @@
|
||||
<!-- file: kb_materializer_admin/README.md -->
|
||||
<!-- version: 4 -->
|
||||
|
||||
# kb_materializer_admin
|
||||
|
||||
Ce crate matérialise les mutations administratives exactes et commitées qui possèdent une identité stable sans nécessiter un snapshot complet du compte.
|
||||
|
||||
## Projections natives actives
|
||||
|
||||
- `system_account_ownership:<operation>:0` pour `assign` et `assign_with_seed` ;
|
||||
- `config_account_update:store:0` pour les écritures Config génériques, avec clés, signataires, longueur, SHA-256 et préfixe borné du payload opaque ;
|
||||
- `program_loader_authority:<surface>:<operation>:0` pour `set_authority`, `set_authority_checked` et `transfer_authority`.
|
||||
- `spl_token_authority:set_authority:0` pour les changements ou révocations d'autorité Token ;
|
||||
- `spl_token_multisig:<operation>:0` pour les configurations multisig classiques, avec seuil et membres ordonnés.
|
||||
|
||||
Les sorties utilisent la famille matérialisée `Admin` et la politique `SuccessfulCommittedOnly`. Une transaction échouée ou une observation non commitée ne produit aucune mutation administrative.
|
||||
|
||||
## Limites
|
||||
|
||||
Le crate conserve l'intention commitée et les paramètres observables, mais ne prétend pas reconstruire l'état final du compte. Les données Config complètes et le bytecode Loader ne sont jamais recopiés dans les sorties matérialisées.
|
||||
Les instructions ATA ne modifient aucune autorité de mint, freeze, close ou multisig et restent donc explicitement sans projection administrative.
|
||||
|
||||
## État ElGamal Registry
|
||||
|
||||
`materialize_elgamal_registry_state_snapshot` projette l’état exact lu du compte registre (`owner`, clé ElGamal publique et wire). Cette projection ne prétend pas revalider la preuve cryptographique depuis les seuls octets du compte et ne déchiffre aucune valeur.
|
||||
@@ -0,0 +1,10 @@
|
||||
// file: kb_materializer_admin/src/constants.rs
|
||||
// version: 2
|
||||
|
||||
//! Local constants for the `kb_materializer_admin` crate.
|
||||
|
||||
/// Canonical processor name for this crate.
|
||||
pub(crate) const PROCESSOR_NAME: &str = "solana_native_admin";
|
||||
|
||||
/// Canonical tracing target for this crate.
|
||||
pub(crate) const TRACING_TARGET: &str = "kb_materializer_admin";
|
||||
@@ -0,0 +1,23 @@
|
||||
// file: kb_materializer_admin/src/lib.rs
|
||||
// version: 8
|
||||
|
||||
//! Materializer crate for stable administrative projections.
|
||||
#![warn(missing_docs)]
|
||||
#![deny(unreachable_pub)]
|
||||
#![forbid(unsafe_code)]
|
||||
|
||||
mod constants;
|
||||
mod materializer;
|
||||
|
||||
/// Canonical tracing target for this crate.
|
||||
pub(crate) use crate::constants::TRACING_TARGET;
|
||||
|
||||
/// Stable administrative materializer for supported native mutations.
|
||||
pub use crate::materializer::AdminMaterializer;
|
||||
/// Materialize one authoritative SPL ElGamal registry account snapshot.
|
||||
pub use crate::materializer::materialize_elgamal_registry_state_snapshot;
|
||||
/// Materialize authoritative Token-2022 administrative extension snapshots.
|
||||
pub use crate::materializer::materialize_token_2022_admin_state_snapshots;
|
||||
|
||||
/// Canonical processor name for this crate.
|
||||
pub(crate) use crate::constants::PROCESSOR_NAME;
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user