use near_sdk::{near, AccountId};
use crate::{
asset::{BorrowAssetAmount, CollateralAssetAmount},
snapshot::Snapshot,
};
#[near(event_json(standard = "templar-market"))]
pub enum MarketEvent {
#[event_version("1.0.0")]
SnapshotFinalized {
index: u32,
#[serde(flatten)]
snapshot: Snapshot,
},
#[event_version("1.0.0")]
YieldAccumulated {
account_id: AccountId,
borrow_asset_amount: BorrowAssetAmount,
},
#[event_version("1.0.0")]
InterestAccumulated {
account_id: AccountId,
borrow_asset_amount: BorrowAssetAmount,
},
#[event_version("1.0.0")]
SupplyDeposited {
account_id: AccountId,
borrow_asset_amount: BorrowAssetAmount,
},
#[event_version("1.0.0")]
SupplyWithdrawn {
account_id: AccountId,
borrow_asset_amount_to_account: BorrowAssetAmount,
borrow_asset_amount_to_fees: BorrowAssetAmount,
},
#[event_version("1.0.0")]
CollateralDeposited {
account_id: AccountId,
collateral_asset_amount: CollateralAssetAmount,
},
#[event_version("1.0.0")]
CollateralWithdrawn {
account_id: AccountId,
collateral_asset_amount: CollateralAssetAmount,
},
#[event_version("1.0.0")]
BorrowWithdrawn {
account_id: AccountId,
borrow_asset_amount: BorrowAssetAmount,
},
#[event_version("1.0.0")]
BorrowRepaid {
account_id: AccountId,
borrow_asset_fees_repaid: BorrowAssetAmount,
borrow_asset_principal_repaid: BorrowAssetAmount,
borrow_asset_principal_remaining: BorrowAssetAmount,
},
#[event_version("1.0.0")]
Liquidation {
liquidator_id: AccountId,
account_id: AccountId,
borrow_asset_recovered: BorrowAssetAmount,
collateral_asset_liquidated: CollateralAssetAmount,
},
}