Modules

Default Account State extension
Immutable Owner extension
Interest-Bearing Mint extension
Memo Transfer extension
Mint Close Authority extension
Non Transferable extension
Utility to reallocate token accounts

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, and Multisig 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 to be implemented by all extension states, specifying which extension and account type they are associated with

Functions

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.