Enum spl_token_2022::extension::ExtensionType
source · #[repr(u16)]pub enum ExtensionType {
Show 24 variants
Uninitialized = 0,
TransferFeeConfig = 1,
TransferFeeAmount = 2,
MintCloseAuthority = 3,
ConfidentialTransferMint = 4,
ConfidentialTransferAccount = 5,
DefaultAccountState = 6,
ImmutableOwner = 7,
MemoTransfer = 8,
NonTransferable = 9,
InterestBearingConfig = 10,
CpiGuard = 11,
PermanentDelegate = 12,
NonTransferableAccount = 13,
TransferHook = 14,
TransferHookAccount = 15,
ConfidentialTransferFeeConfig = 16,
ConfidentialTransferFeeAmount = 17,
MetadataPointer = 18,
TokenMetadata = 19,
GroupPointer = 20,
TokenGroup = 21,
GroupMemberPointer = 22,
TokenGroupMember = 23,
}
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 = 0
Used as padding if the account size would otherwise be 355, same as a multisig
TransferFeeConfig = 1
Includes transfer fee rate info and accompanying authorities to withdraw and set the fee
TransferFeeAmount = 2
Includes withheld transfer fees
MintCloseAuthority = 3
Includes an optional mint close authority
ConfidentialTransferMint = 4
Auditor configuration for confidential transfers
ConfidentialTransferAccount = 5
State for confidential transfers
DefaultAccountState = 6
Specifies the default Account::state for new Accounts
ImmutableOwner = 7
Indicates that the Account owner authority cannot be changed
MemoTransfer = 8
Require inbound transfers to have memo
NonTransferable = 9
Indicates that the tokens from this mint can’t be transfered
InterestBearingConfig = 10
Tokens accrue interest over time,
CpiGuard = 11
Locks privileged token operations from happening via CPI
PermanentDelegate = 12
Includes an optional permanent delegate
NonTransferableAccount = 13
Indicates that the tokens in this account belong to a non-transferable mint
TransferHook = 14
Mint requires a CPI to a program implementing the “transfer hook” interface
TransferHookAccount = 15
Indicates that the tokens in this account belong to a mint with a transfer hook
ConfidentialTransferFeeConfig = 16
Includes encrypted withheld fees and the encryption public that they are encrypted under
ConfidentialTransferFeeAmount = 17
Includes confidential withheld transfer fees
MetadataPointer = 18
Mint contains a pointer to another account (or the same account) that holds metadata
TokenMetadata = 19
Mint contains token-metadata
GroupPointer = 20
Mint contains a pointer to another account (or the same account) that holds group configurations
TokenGroup = 21
Mint contains token group configurations
GroupMemberPointer = 22
Mint contains a pointer to another account (or the same account) that holds group member configurations
TokenGroupMember = 23
Mint contains token group member configurations
Implementations§
source§impl ExtensionType
impl ExtensionType
sourcepub fn try_calculate_account_len<S: BaseState>(
extension_types: &[Self]
) -> Result<usize, ProgramError>
pub fn try_calculate_account_len<S: BaseState>( extension_types: &[Self] ) -> Result<usize, ProgramError>
Get the required account data length for the given ExtensionTypes
Fails if any of the extension types has a variable length
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
sourcepub fn check_for_invalid_mint_extension_combinations(
mint_extension_types: &[Self]
) -> Result<(), TokenError>
pub fn check_for_invalid_mint_extension_combinations( mint_extension_types: &[Self] ) -> Result<(), TokenError>
Check for invalid combination of mint extensions
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 for ExtensionType
impl PartialEq 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 ==
.