Skip to main content

TransferFeeConfig

Struct TransferFeeConfig 

Source
pub struct TransferFeeConfig {
    pub older: TransferFeeRate,
    pub newer: TransferFeeRate,
}
Expand description

Two-rate fee schedule.

Fields§

§older: TransferFeeRate§newer: TransferFeeRate

Implementations§

Source§

impl TransferFeeConfig

Source

pub fn rate_for_epoch(&self, current_epoch: u64) -> &TransferFeeRate

Pick the rate that will be applied at current_epoch.

Token-2022 activates newer once current_epoch >= newer.epoch, otherwise it keeps using older.

Source

pub fn calculate_fee( &self, amount: u64, current_epoch: u64, ) -> Result<u64, CoreError>

Fee that the Token-2022 program will withhold when transferring amount raw units of this mint at current_epoch.

Source

pub fn calculate_pre_fee_amount( &self, post_fee_amount: u64, current_epoch: u64, ) -> Result<Option<u64>, CoreError>

Inverse of [calculate_fee]: given the net amount the recipient should observe, return the smallest gross amount that, after fee deduction, yields at least post_fee_amount.

Returns None only when no finite gross amount can deliver the requested net without overflowing u64.

Trait Implementations§

Source§

impl Clone for TransferFeeConfig

Source§

fn clone(&self) -> TransferFeeConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TransferFeeConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for TransferFeeConfig

Source§

fn eq(&self, other: &TransferFeeConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for TransferFeeConfig

Source§

impl Eq for TransferFeeConfig

Source§

impl StructuralPartialEq for TransferFeeConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.