templar_common/
event.rs

1use near_sdk::{near, AccountId};
2
3use crate::{
4    asset::{BorrowAssetAmount, CollateralAssetAmount},
5    snapshot::Snapshot,
6};
7
8#[near(event_json(standard = "templar-market"))]
9pub enum MarketEvent {
10    #[event_version("1.0.0")]
11    SnapshotFinalized {
12        index: u32,
13        #[serde(flatten)]
14        snapshot: Snapshot,
15    },
16    #[event_version("1.0.0")]
17    YieldAccumulated {
18        account_id: AccountId,
19        borrow_asset_amount: BorrowAssetAmount,
20    },
21    #[event_version("1.0.0")]
22    InterestAccumulated {
23        account_id: AccountId,
24        borrow_asset_amount: BorrowAssetAmount,
25    },
26    #[event_version("1.0.0")]
27    SupplyDeposited {
28        account_id: AccountId,
29        borrow_asset_amount: BorrowAssetAmount,
30    },
31    #[event_version("1.0.0")]
32    SupplyWithdrawn {
33        account_id: AccountId,
34        borrow_asset_amount_to_account: BorrowAssetAmount,
35        borrow_asset_amount_to_fees: BorrowAssetAmount,
36    },
37    #[event_version("1.0.0")]
38    CollateralDeposited {
39        account_id: AccountId,
40        collateral_asset_amount: CollateralAssetAmount,
41    },
42    #[event_version("1.0.0")]
43    CollateralWithdrawn {
44        account_id: AccountId,
45        collateral_asset_amount: CollateralAssetAmount,
46    },
47    #[event_version("1.0.0")]
48    BorrowWithdrawn {
49        account_id: AccountId,
50        borrow_asset_amount: BorrowAssetAmount,
51    },
52    #[event_version("1.0.0")]
53    BorrowRepaid {
54        account_id: AccountId,
55        borrow_asset_fees_repaid: BorrowAssetAmount,
56        borrow_asset_principal_repaid: BorrowAssetAmount,
57        borrow_asset_principal_remaining: BorrowAssetAmount,
58    },
59    #[event_version("1.0.0")]
60    Liquidation {
61        liquidator_id: AccountId,
62        account_id: AccountId,
63        borrow_asset_recovered: BorrowAssetAmount,
64        collateral_asset_liquidated: CollateralAssetAmount,
65    },
66}