rustkernel_compliance/
lib.rs1#![warn(missing_docs)]
27
28pub mod aml;
29pub mod kyc;
30pub mod messages;
31pub mod monitoring;
32pub mod ring_messages;
33pub mod sanctions;
34pub mod types;
35
36pub mod prelude {
38 pub use crate::aml::*;
39 pub use crate::kyc::*;
40 pub use crate::messages::*;
41 pub use crate::monitoring::*;
42 pub use crate::ring_messages::*;
43 pub use crate::sanctions::*;
44 pub use crate::types::*;
45}
46
47pub use aml::{
49 AMLPatternDetection, CircularFlowRatio, FlowReversalConfig, FlowReversalPattern,
50 FlowSplitConfig, FlowSplitRatio, RapidMovement, ReciprocityFlowRatio,
51};
52pub use kyc::{EntityResolution, KYCScoring};
53pub use monitoring::TransactionMonitoring;
54pub use sanctions::{PEPScreening, SanctionsScreening};
55
56pub fn register_all(
58 registry: &rustkernel_core::registry::KernelRegistry,
59) -> rustkernel_core::error::Result<()> {
60 use rustkernel_core::traits::GpuKernel;
61
62 tracing::info!("Registering compliance kernels");
63
64 registry.register_metadata(aml::CircularFlowRatio::new().metadata().clone())?;
66 registry.register_metadata(aml::ReciprocityFlowRatio::new().metadata().clone())?;
67 registry.register_metadata(aml::RapidMovement::new().metadata().clone())?;
68 registry.register_metadata(aml::AMLPatternDetection::new().metadata().clone())?;
69 registry.register_metadata(aml::FlowReversalPattern::new().metadata().clone())?;
70 registry.register_metadata(aml::FlowSplitRatio::new().metadata().clone())?;
71
72 registry.register_metadata(kyc::KYCScoring::new().metadata().clone())?;
74 registry.register_metadata(kyc::EntityResolution::new().metadata().clone())?;
75
76 registry.register_metadata(sanctions::SanctionsScreening::new().metadata().clone())?;
78 registry.register_metadata(sanctions::PEPScreening::new().metadata().clone())?;
79
80 registry.register_metadata(monitoring::TransactionMonitoring::new().metadata().clone())?;
82
83 tracing::info!("Registered 11 compliance kernels");
84 Ok(())
85}
86
87#[cfg(test)]
88mod tests {
89 use super::*;
90 use rustkernel_core::registry::KernelRegistry;
91
92 #[test]
93 fn test_register_all() {
94 let registry = KernelRegistry::new();
95 register_all(®istry).expect("Failed to register compliance kernels");
96 assert_eq!(registry.total_count(), 11);
97 }
98}