1use std::borrow::Cow;
2
3use borsh::{BorshDeserialize, BorshSerialize};
4pub use defuse_fees::{Pips, PipsOutOfRange};
5use near_sdk::{AccountId, AccountIdRef};
6use serde::{Deserialize, Serialize};
7
8#[cfg_attr(feature = "abi", derive(::schemars::JsonSchema, ::borsh::BorshSchema))]
9#[derive(Debug, Clone, Serialize, Deserialize, BorshSerialize, BorshDeserialize)]
10pub struct FeesConfig {
11 pub fee: Pips,
12 pub fee_collector: AccountId,
13}
14
15#[must_use = "make sure to `.emit()` this event"]
16#[cfg_attr(feature = "abi", derive(::schemars::JsonSchema))]
17#[derive(Debug, Clone, Serialize, Deserialize)]
18pub struct FeeChangedEvent {
19 pub old_fee: Pips,
20 pub new_fee: Pips,
21}
22
23#[must_use = "make sure to `.emit()` this event"]
24#[cfg_attr(feature = "abi", derive(::schemars::JsonSchema))]
25#[derive(Debug, Clone, Serialize, Deserialize)]
26pub struct FeeCollectorChangedEvent<'a> {
27 pub old_fee_collector: Cow<'a, AccountIdRef>,
28 pub new_fee_collector: Cow<'a, AccountIdRef>,
29}