Files
khadhroony-bot3/migration/khadhroony-bot2-reference/kb_model/src/nomenclature.rs
2026-07-23 16:37:12 +02:00

100 lines
2.9 KiB
Rust

// 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 `<surface_code>.<event_name>` 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,
}