Enum safe_token_2022::extension::ExtensionType
source · #[repr(u16)]
pub enum ExtensionType {
Show 14 variants
Uninitialized,
TransferFeeConfig,
TransferFeeAmount,
MintCloseAuthority,
ConfidentialTransferMint,
ConfidentialTransferAccount,
DefaultAccountState,
ImmutableOwner,
MemoTransfer,
NonTransferable,
InterestBearingConfig,
CpiGuard,
PermanentDelegate,
NonTransferableAccount,
}
Expand description
Extensions that can be applied to mints or accounts. Mint extensions must only be applied to mint accounts, and account extensions must only be applied to token holding accounts.
Variants§
Uninitialized
Used as padding if the account size would otherwise be 355, same as a multisig
TransferFeeConfig
Includes transfer fee rate info and accompanying authorities to withdraw and set the fee
TransferFeeAmount
Includes withheld transfer fees
MintCloseAuthority
Includes an optional mint close authority
ConfidentialTransferMint
Auditor configuration for confidential transfers
ConfidentialTransferAccount
State for confidential transfers
DefaultAccountState
Specifies the default Account::state for new Accounts
ImmutableOwner
Indicates that the Account owner authority cannot be changed
MemoTransfer
Require inbound transfers to have memo
NonTransferable
Indicates that the tokens from this mint can’t be transfered
InterestBearingConfig
Tokens accrue interest over time,
CpiGuard
Locks privileged token operations from happening via CPI
PermanentDelegate
Includes an optional permanent delegate
NonTransferableAccount
Indicates that the tokens in this account belong to a non-transferable mint
Implementations§
source§impl ExtensionType
impl ExtensionType
sourcepub fn get_type_len(&self) -> usize
pub fn get_type_len(&self) -> usize
Get the data length of the type associated with the enum
sourcepub fn get_account_len<S: BaseState>(extension_types: &[Self]) -> usize
pub fn get_account_len<S: BaseState>(extension_types: &[Self]) -> usize
Get the required account data length for the given ExtensionTypes
sourcepub fn get_account_type(&self) -> AccountType
pub fn get_account_type(&self) -> AccountType
Get the associated account type
sourcepub fn get_required_init_account_extensions(
mint_extension_types: &[Self]
) -> Vec<Self> ⓘ
pub fn get_required_init_account_extensions( mint_extension_types: &[Self] ) -> Vec<Self> ⓘ
Based on a set of AccountType::Mint ExtensionTypes, get the list of AccountType::Account ExtensionTypes required on InitializeAccount
Trait Implementations§
source§impl Clone for ExtensionType
impl Clone for ExtensionType
source§fn clone(&self) -> ExtensionType
fn clone(&self) -> ExtensionType
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ExtensionType
impl Debug for ExtensionType
source§impl From<ExtensionType> for [u8; 2]
impl From<ExtensionType> for [u8; 2]
source§fn from(a: ExtensionType) -> Self
fn from(a: ExtensionType) -> Self
source§impl From<ExtensionType> for u16
impl From<ExtensionType> for u16
source§fn from(enum_value: ExtensionType) -> Self
fn from(enum_value: ExtensionType) -> Self
source§impl PartialEq<ExtensionType> for ExtensionType
impl PartialEq<ExtensionType> for ExtensionType
source§fn eq(&self, other: &ExtensionType) -> bool
fn eq(&self, other: &ExtensionType) -> bool
self
and other
values to be equal, and is used
by ==
.