Skip to content

fix(token): size accounts for mint-required extensions - #442

Merged
Aursen merged 1 commit into
LiteSVM:masterfrom
snuff12:fix/token2022-account-size
Oct 20, 2026
Merged

Aursen merged 1 commit into
LiteSVM:masterfrom
snuff12:fix/token2022-account-size

Conversation

@snuff12

@snuff12 snuff12 commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

CreateAccount fails for Token-2022 mints with required account extensions because it allocates the base account size from an always-empty extension list.

Use the SPL interface's try_calculate_account_len_from_mint_data helper to derive the required account size before calculating rent and building initialize_account3. Remove the unused private extension list and preserve the explicit classic-token program path.

Missing or malformed Token-2022 mint data now returns an error before transaction submission. These invalid inputs therefore have default metadata and incur no transaction fee.

Add regressions for TransferFeeConfig, TransferHook, and NonTransferable mints; supplied account keys and separate owners; minting and checked fee transfers; explicit classic SPL use with Token-2022 enabled; and invalid/missing mints without account creation. The extended-mint regression fails on the base and passes with this fix.

Fixes #440.

Validation on local macOS:

  • cargo test -p litesvm-token --locked: 5 passed.
  • cargo test -p litesvm-token --features token-2022 --locked: 10 passed.
  • cargo test -p litesvm-token --no-default-features --features token-2022 --locked: 10 passed.
  • cargo clippy -p litesvm-token --all-targets --features token-2022 --locked -- -D warnings: passed.
  • cargo +nightly fmt --all -- --check: passed.
  • git diff --check: passed.

@Aursen
Aursen merged commit 3313d22 into LiteSVM:master Oct 20, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CreateAccount underallocates accounts for Token-2022 mints with required extensions

2 participants