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}