Skip to content

Commit a9cae59

Browse files
authored
Merge pull request #53 from quicknode/claude/token-group-fixes
fix(token-extensions/group): re-enable group anchor + quasar examples
2 parents 8325ed7 + 21b7d7c commit a9cae59

3 files changed

Lines changed: 8 additions & 11 deletions

File tree

.github/.ghaignore

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,6 @@ compression/cnft-vault/anchor
1919
# builds but need to test on localhost
2020
compression/cnft-burn/anchor
2121

22-
# not live
23-
tokens/token-extensions/group/anchor
24-
tokens/token-extensions/group/quasar
25-
2622
# CPI quasar project uses subdirectories (hand/ and lever/) instead of a root Quasar.toml
2723
basics/cross-program-invocation/quasar
2824

tokens/token-extensions/group/anchor/programs/group/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ custom-panic = []
2222
[dependencies]
2323
anchor-lang = "1.0.0"
2424
anchor-spl = "1.0.0"
25-
spl-token-group-interface = "0.2.5"
2625

2726
[dev-dependencies]
2827
litesvm = "0.11.0"

tokens/token-extensions/group/quasar/src/lib.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,14 @@ pub struct InitializeGroup {
4242
#[account(mut)]
4343
pub mint_account: Signer,
4444
pub token_program: Program<Token2022Program>,
45-
pub system_program: Program<System>,
45+
pub system_program: Program<SystemProgram>,
4646
}
4747

4848
#[inline(always)]
4949
fn handle_initialize_group(accounts: &mut InitializeGroup) -> Result<(), ProgramError> {
50-
// Mint + GroupPointer extension = 250 bytes
51-
let mint_size: u64 = 250;
50+
// Mint + GroupPointer extension = 234 bytes
51+
// (base mint padded to 165 + account_type byte + GroupPointer TLV [2 type + 2 len + 64 data])
52+
let mint_size: u64 = 234;
5253
let lamports = Rent::get()?.try_minimum_balance(mint_size as usize)?;
5354

5455
accounts
@@ -62,10 +63,11 @@ fn handle_initialize_group(accounts: &mut InitializeGroup) -> Result<(), Program
6263
)
6364
.invoke()?;
6465

65-
// InitializeGroupPointer: opcode 41, sub-opcode 0
66-
// Data: [41, 0, authority (32 bytes), group_address (32 bytes)]
66+
// InitializeGroupPointer: opcode 40, sub-opcode 0
67+
// (opcode 41 is GroupMemberPointer, not GroupPointer)
68+
// Data: [40, 0, authority (32 bytes), group_address (32 bytes)]
6769
let mut ext_data = [0u8; 66];
68-
ext_data[0] = 41;
70+
ext_data[0] = 40;
6971
ext_data[1] = 0;
7072
// authority = mint itself (self-referential PDA pattern)
7173
ext_data[2..34].copy_from_slice(accounts.mint_account.to_account_view().address().as_ref());

0 commit comments

Comments
 (0)