templar_common/
event.rs

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