carbon_virtuals_decoder/instructions/
update_pool_creator.rs1use carbon_core::{borsh, CarbonDeserialize};
2
3#[derive(
4 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0x71e1a6b95ee7601c")]
7pub struct UpdatePoolCreator {}
8
9pub struct UpdatePoolCreatorInstructionAccounts {
10 pub creator: solana_pubkey::Pubkey,
11 pub new_creator: solana_pubkey::Pubkey,
12 pub virtuals_mint: solana_pubkey::Pubkey,
13 pub token_mint: solana_pubkey::Pubkey,
14 pub new_creator_virtuals_ata: solana_pubkey::Pubkey,
15 pub new_creator_token_ata: solana_pubkey::Pubkey,
16 pub vpool: solana_pubkey::Pubkey,
17 pub token_program: solana_pubkey::Pubkey,
18 pub associated_token_program: solana_pubkey::Pubkey,
19 pub system_program: solana_pubkey::Pubkey,
20}
21
22impl carbon_core::deserialize::ArrangeAccounts for UpdatePoolCreator {
23 type ArrangedAccounts = UpdatePoolCreatorInstructionAccounts;
24
25 fn arrange_accounts(
26 accounts: &[solana_instruction::AccountMeta],
27 ) -> Option<Self::ArrangedAccounts> {
28 let [creator, new_creator, virtuals_mint, token_mint, new_creator_virtuals_ata, new_creator_token_ata, vpool, token_program, associated_token_program, system_program, _remaining @ ..] =
29 accounts
30 else {
31 return None;
32 };
33
34 Some(UpdatePoolCreatorInstructionAccounts {
35 creator: creator.pubkey,
36 new_creator: new_creator.pubkey,
37 virtuals_mint: virtuals_mint.pubkey,
38 token_mint: token_mint.pubkey,
39 new_creator_virtuals_ata: new_creator_virtuals_ata.pubkey,
40 new_creator_token_ata: new_creator_token_ata.pubkey,
41 vpool: vpool.pubkey,
42 token_program: token_program.pubkey,
43 associated_token_program: associated_token_program.pubkey,
44 system_program: system_program.pubkey,
45 })
46 }
47}