Description
When attempting to create ATAs for a Token2022 mint, Trident fails with incorrect program id for instruction at GetAccountDataSize.
Observed logs (ATA β Token-2022 β GetAccountDataSize β IncorrectProgramId):
Program ATokenGPvbd... invoke [2]
Program log: Create
Program TokenzQdBNbL... invoke [3]
Program log: Instruction: GetAccountDataSize
Program log: Error: IncorrectProgramId
Program TokenzQdBNbL... failed: incorrect program id for instruction
Program ATokenGPvbd... failed: incorrect program id for instruction
This happens when the ATA is created with associated_token::token_program = Token2022 (program id TokenzQdBNbL...). The ATokenGPvbd CPI appears to use classic SPL Token ix encoding against the Token2022 program id, which rejects it.
Note: creating a regular SPL ATA works as expected.
Why this matters
Many programs need to interoperate with both SPL and Token2022.
Fuzzing and local execution environments should accurately emulate both to catch real integration issues.
Reproduction steps
1. Before running a Fuzzing flow, create a Token2022 token mint via `...get_or_create_mint_account()`
2. Then, in the `set_accounts` `InstructionHook`, try to create a Token2022 ATA via `...get_or_create_token_account()`
3. Observe the aforementioned issue
OS
Mac
Description
When attempting to create ATAs for a Token2022 mint, Trident fails with
incorrect program id for instructionatGetAccountDataSize.Observed logs (ATA β Token-2022 β GetAccountDataSize β IncorrectProgramId):
This happens when the ATA is created with associated_token::token_program = Token2022 (program id
TokenzQdBNbL...). TheATokenGPvbdCPI appears to use classic SPL Token ix encoding against the Token2022 program id, which rejects it.Note: creating a regular SPL ATA works as expected.
Why this matters
Many programs need to interoperate with both SPL and Token2022.
Fuzzing and local execution environments should accurately emulate both to catch real integration issues.
Reproduction steps
OS
Mac