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}