This commit is contained in:
2026-07-23 16:37:12 +02:00
parent 99c345f2f2
commit 0da75c1311
2159 changed files with 230833 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
# file: kb_materializer_token_metadata_risk/Cargo.toml
# version: 1
[package]
name = "kb_materializer_token_metadata_risk"
version.workspace = true
edition.workspace = true
license.workspace = true
publish.workspace = true
[dependencies]
kb_core = { path = "../kb_core" }
kb_materializer_api = { path = "../kb_materializer_api" }
kb_model = { path = "../kb_model" }
[lints]
workspace = true

View File

@@ -0,0 +1,14 @@
<!-- file: kb_materializer_token_metadata_risk/README.md -->
<!-- version: 1 -->
# kb_materializer_token_metadata_risk
Ce crate matérialise les événements décodés de la famille `token_metadata_risk` dans les tables métier correspondantes.
## Rôle dans l'écosystème
Ce module travaille sur les événements décodés et produit des projections métier. Il ne doit pas accéder directement au RPC, au wallet, à Tauri ou aux décodeurs spécifiques.
## État initial
Le crate est créé comme point d'ancrage. Les règles de promotion métier, les tables PostgreSQL et les contrôles SQL seront ajoutés dans des deltas dédiés.

View File

@@ -0,0 +1,12 @@
// file: kb_materializer_token_metadata_risk/src/lib.rs
// version: 1
//! Materializer crate for `token_metadata_risk`.
#![warn(missing_docs)]
#![deny(unreachable_pub)]
#![forbid(unsafe_code)]
mod materializer;
/// Exposes the materializer type implemented by this crate.
pub use crate::materializer::TokenMetadataRiskMaterializer;

View File

@@ -0,0 +1,35 @@
// file: kb_materializer_token_metadata_risk/src/materializer.rs
// version: 5
//! Materializer scaffold for the `kb_materializer_token_metadata_risk` crate.
/// Initial materializer implementation placeholder.
#[derive(Clone, Debug, Default)]
pub struct TokenMetadataRiskMaterializer;
impl kb_materializer_api::Materializer for crate::TokenMetadataRiskMaterializer {
fn materializer_name(&self) -> &'static str {
return "kb_materializer_token_metadata_risk";
}
fn materializer_version(&self) -> &'static str {
return env!("CARGO_PKG_VERSION");
}
fn accepts_event(&self, _event: &kb_model::DecodedProtocolEvent) -> bool {
return false;
}
fn materialize_event(
&self,
event: &kb_model::DecodedProtocolEvent,
) -> kb_core::Result<std::vec::Vec<kb_model::MaterializedEvent>> {
let materialized = kb_model::MaterializedEvent {
signature: event.signature.clone(),
slot: event.slot,
decoded_family: event.event_family,
materialized_family: kb_model::MaterializedEventFamily::TokenMetadataRisk,
};
return std::result::Result::Ok(std::vec![materialized]);
}
}