Skip to content

fix(token-extensions/group): re-enable group anchor + quasar examples#53

Merged
mikemaccana merged 1 commit into
mainfrom
claude/token-group-fixes
Jun 5, 2026
Merged

fix(token-extensions/group): re-enable group anchor + quasar examples#53
mikemaccana merged 1 commit into
mainfrom
claude/token-group-fixes

Conversation

@mikemaccana

Copy link
Copy Markdown
Collaborator

Summary

Two Token-2022 group examples were excluded in .github/.ghaignore as "not live", but the real blockers were build/code bugs (the on-chain GroupPointer extension works fine on the current toolchain). Both are now fixed and verified.

tokens/token-extensions/group/anchorcargo build-sbf failed to resolve zeroize: a dead spl-token-group-interface = "0.2.5" dependency (never imported — the GroupPointer types come from anchor_spl::token_2022) transitively pinned an old solana-zk-token-sdk incompatible with ed25519-dalek 2. Removed the dead dep → builds, and its LiteSVM test (test_initialize_group) passes.

tokens/token-extensions/group/quasar — three bugs in src/lib.rs:

  1. Program<System>Program<SystemProgram> (compile error E0412).
  2. GroupPointer extension opcode 4140 (41 is GroupMemberPointer; the runtime log confirmed the wrong instruction was being invoked).
  3. Mint account size 250234 bytes (base 82 padded to 165 + 1 account-type byte + GroupPointer TLV of 2+2+64); the wrong size made InitializeMint2 fail with InvalidAccountData.

Both dropped from .github/.ghaignore so CI builds and tests them.

Verified locally on the CI toolchain (Solana 3.1.x / platform-tools v1.52): group/anchor builds + cargo test passes; group/quasar builds + both tests pass (logs show GroupPointerInstruction::Initialize success, InitializeMint2 success).

Note on the third investigated exclusion, compression/cnft-burn/anchor: left excluded — it no longer builds (ahash = "=0.8.7" pulls getrandom 0.2 which compile_error!s on SBF) and has no test at all; a real test needs Bubblegum + account-compression + noop .so fixtures plus Merkle-tree/proof scaffolding. Documented for a future effort.

https://claude.ai/code/session_013dpnF6uSGWXjkJJZseqzcP


Generated by Claude Code

Both were excluded as "not live", but the real blockers were build/code bugs:

- group/anchor: a dead `spl-token-group-interface = "0.2.5"` dependency (never
  imported in code — the GroupPointer types come from anchor_spl::token_2022)
  transitively pinned an old solana-zk-token-sdk that conflicts with
  ed25519-dalek 2 on `zeroize`, breaking `cargo build-sbf`. Removed the dep;
  the program now builds and its LiteSVM test passes.

- group/quasar: three bugs in src/lib.rs — `Program<System>` should be
  `Program<SystemProgram>` (compile error); the GroupPointer extension opcode
  was 41 (that's GroupMemberPointer) instead of 40; and the mint account was
  allocated 250 bytes instead of 234 (base 82 padded to 165 + 1 account-type
  byte + GroupPointer TLV of 2+2+64), which made InitializeMint2 fail with
  InvalidAccountData. Fixed all three; builds and both tests pass.

Drop both from .github/.ghaignore so CI builds and tests them.
@mikemaccana mikemaccana merged commit a9cae59 into main Jun 5, 2026
18 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.

2 participants