100 lines
2.9 KiB
Rust
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,
|
|
}
|