// file: kb_model/src/nomenclature.rs // version: 3 //! Shared protocol, surface, and event nomenclature types. use ts_rs::TS; // rust-rules: derive-import /// Stable internal program code. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts( export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/ProgramCode.ts" )] pub struct ProgramCode(pub std::string::String); /// Protocol family code, for example `raydium` or `meteora`. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts( export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/ProtocolCode.ts" )] pub struct ProtocolCode(pub std::string::String); /// Concrete protocol surface code, for example `raydium_amm_v4`. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts( export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/SurfaceCode.ts" )] pub struct SurfaceCode(pub std::string::String); /// Event name without surface prefix. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts(export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/EventName.ts")] pub struct EventName(pub std::string::String); /// Canonical event code in `.` format. #[derive(Clone, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts(export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/EventCode.ts")] pub struct EventCode(pub std::string::String); /// High-level event family. #[derive(Clone, Copy, Debug, Eq, PartialEq, Hash, serde::Deserialize, serde::Serialize, TS)] #[ts( export, export_to = "../frontend/ts/bindings/kb_model/nomenclature/EventFamily.ts" )] pub enum EventFamily { /// Swap or buy/sell event. Trade, /// Liquidity deposit/withdraw or equivalent. Liquidity, /// Pool, market, curve, or config lifecycle event. Lifecycle, /// Fee claim, collection, sweep, or update. Fee, /// Admin or authority event. Admin, /// Reward event. Reward, /// Orderbook event. Orderbook, /// Token account event. TokenAccount, /// Token mint event. TokenMint, /// Token burn event. TokenBurn, /// NFT event. Nft, /// Token or NFT metadata event. Metadata, /// Oracle event. Oracle, /// Lending or borrowing event. Lending, /// Staking event. Staking, /// Governance event. Governance, /// Bridge event. Bridge, /// Perpetuals or derivatives event. Perpetuals, /// Vault event. Vault, /// Router or aggregator event. Routing, /// Compliance audit event. ComplianceAudit, /// Token metadata risk event. TokenMetadataRisk, /// Risk signal. Risk, /// Audit-only event. Audit, /// Unknown family. Unknown, }