* token: Reassign and reallocate accounts on close
* Revert "Refactor unpack and make test more robust (#3417)"
This reverts commit c618de374e.
* Revert "check that unpack is tolerant of small sizes (#3416)"
This reverts commit 22faa05f18.
* Also revert d7f352bd78
* token-2022: limit incoming transfers for confidential transfer extension
* token-2022: add maximum pending counter for confidential extension in client
* token-2022: update tests for ct configure account
* token-2022: cargo fmt
* divide pending balance into lo and hi
* token-2022: update ct processor for lo and hi pending balances
* token-2022: limit confidential transfer deposit and transfer amount in token client
* token_2022: rename TokenError::IllegalAmount
* token-2022: compare max pending credit as u64
* token-2022: fmt
* token-2022: minor fix error from rebase
* Update token/program-2022/src/extension/confidential_transfer/processor.rs
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* token-2022: update configure account initialization comments
* token-2022: use strict comparison for max pending balance credit counter check
* token-2022: update deposit tests to check `pending_balance_hi` populated
* token-2022: update deposit tests to check that deposit and transfer fails when max pending exceeded
* token-2022: reset pending balance counter on `ApplyPendingBalance`
* token-2022: fix cargo test cases for credit counter
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
* token-2022: prevent an already configured confidential account to be configured again
* token-2022: add overwrite flag to init extension
* token-2022: clippy
* token-2022: update initialize mint for interest bearing mint
* token-2022: confidential transfer mint init allow overwrite
* token-2022: Make program and crate deployable
* Featurize the syscall usage
* Re-add GenericTokenAccount
* Rebase correctly with GenericTokenAccount
* Add updated valid_account_data implementation
* Allow anyone to burn and close token Accounts owned by the system program and the incinerator
* Require rent from incinerator/system-owned token accounts be burnt when accounts closed
* Add support to OG program
* token-2022: add fee for confidential extension
* token-2022: change receiver to dest for consistency
* token-2022: addressing readability review comments for confidential extension
* Style nits
* Initial MemoTransfer extension
* Stub in check for memo
* Add memo-transfer token-client method
* Add MemoTransfer tests
* Add immutable get_extension, and clean up mod
* Update token/program-2022/src/extension/memo_transfer/instruction.rs
Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
* Update token/rust/src/token.rs
Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
* Pass by ref
* Dedupe ExtensionTypes in length apis
* Depend on deduplication in ExtensionType::get_account_len
* Add Reallocate instruction
* Remove unneeded api
* Add set_account_type helper and remove unneeded StateWithExtensionsMut api
* Add DefaultAccountState extension
* Check DefaultAccountState in InitializeAccount
* Add rust client functionality
* Add tests
* Simplify ix variants
* Fixup freeze-auth signing state for multisig
* Add InitializeMint check to prevent freeze_authority.is_none() and default AccountState::Frozen
* Use separate freeze_authority in program_test
* Add docs for default-state instruction data
* Rebase on #2807
* Refactor transfer to use StateWithExtensionsMut
* Add basic transfer tests
* Add transfer fee calculation and use in transfer
* Add specific transfer fee tests
* Add self-transfer test + rename test
* Prep helper fn to reuse code
* Adjust error to match current _initialize_account handling
* Add new helper to initialize extension from ExtensionType
* Include required extensions in InitializeAccount processing
* Initialize native mint
* Add missing native-mint test case for get_account_data_size
* Remove superfluous mint unpack
* Limit scope of StateWithExtensionsMut method
* Update comments to be correct
* Check account length vis-a-vis required extensions in Initialize
* Noop confidential-transfer case, add comments, and make fn name more explicit
* gt -> ne