0.1.0
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
// 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,
|
||||
}
|
||||
Reference in New Issue
Block a user