1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use borsh::BorshSerialize;
use solana_program::{
instruction::{AccountMeta, Instruction},
pubkey::Pubkey,
};
use crate::instruction::{MetadataInstruction, SetCollectionSizeArgs};
pub fn bubblegum_set_collection_size(
program_id: Pubkey,
metadata_account: Pubkey,
update_authority: Pubkey,
mint: Pubkey,
bubblegum_signer: Pubkey,
collection_authority_record: Option<Pubkey>,
size: u64,
) -> Instruction {
let mut accounts = vec![
AccountMeta::new(metadata_account, false),
AccountMeta::new_readonly(update_authority, true),
AccountMeta::new_readonly(mint, false),
AccountMeta::new_readonly(bubblegum_signer, true),
];
if let Some(record) = collection_authority_record {
accounts.push(AccountMeta::new_readonly(record, false));
}
Instruction {
program_id,
accounts,
data: MetadataInstruction::BubblegumSetCollectionSize(SetCollectionSizeArgs { size })
.try_to_vec()
.unwrap(),
}
}