Enum safe_token_2022::extension::ExtensionType
source · [−]#[repr(u16)]
pub enum ExtensionType {
Uninitialized,
TransferFeeConfig,
TransferFeeAmount,
MintCloseAuthority,
ConfidentialTransferMint,
ConfidentialTransferAccount,
DefaultAccountState,
ImmutableOwner,
MemoTransfer,
NonTransferable,
InterestBearingConfig,
}
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,
Implementations
sourceimpl 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>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
pub fn get_required_init_account_extensions(
mint_extension_types: &[Self]
) -> Vec<Self>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A>where
A: Allocator,
A: Allocator,
Based on a set of AccountType::Mint ExtensionTypes, get the list of AccountType::Account ExtensionTypes required on InitializeAccount
Trait Implementations
sourceimpl Clone for ExtensionType
impl Clone for ExtensionType
sourcefn clone(&self) -> ExtensionType
fn clone(&self) -> ExtensionType
1.0.0 · sourceconst fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read more