Module spl_token_2022::extension
source · Expand description
Extensions available to token mints and accounts
Modules
- Confidential Transfer extension
- Confidential Transfer Fee extension
- CPI Guard extension
- Default Account State extension
- Group Member Pointer extension
- Group Pointer extension
- Immutable Owner extension
- Interest-Bearing Mint extension
- Memo Transfer extension
- Metadata Pointer extension
- Mint Close Authority extension
- Non Transferable extension
- Permanent Delegate extension
- Utility to reallocate token accounts
- Token-group extension
- Token-metadata extension
- Transfer Fee extension
- Transfer Hook extension
Structs
- Length in TLV structure
- Encapsulates immutable base state data (mint or account) with possible extensions
- Encapsulates mutable base state data (mint or account) with possible extensions
- Encapsulates owned immutable base state data (mint or account) with possible extensions
Enums
- Different kinds of accounts. Note that
Mint
,Account
, andMultisig
types are determined exclusively by the size of the account, and are not included in the account data.AccountType
is only included if extensions have been initialized. - 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.
Traits
- Trait for base states, specifying the associated enum
- Trait for base state with extension
- Trait to be implemented by all extension states, specifying which extension and account type they are associated with
Functions
- Packs a fixed-length extension into a TLV space
- Packs a variable-length extension into a TLV space
- If AccountType is uninitialized, set it to the BaseState’s ACCOUNT_TYPE; if AccountType is already set, check is set correctly for BaseState This method assumes that the
base_data
has already been packed with data of the desired type.