carbon_pumpfun_decoder/instructions/
admin_set_creator.rs

1use carbon_core::{account_utils::next_account, borsh, CarbonDeserialize};
2
3#[derive(
4    CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0x4519ab8e39ef0d04")]
7pub struct AdminSetCreator {
8    pub creator: solana_pubkey::Pubkey,
9}
10
11#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
12pub struct AdminSetCreatorInstructionAccounts {
13    pub admin_set_creator_authority: solana_pubkey::Pubkey,
14    pub global: solana_pubkey::Pubkey,
15    pub mint: solana_pubkey::Pubkey,
16    pub bonding_curve: solana_pubkey::Pubkey,
17    pub event_authority: solana_pubkey::Pubkey,
18    pub program: solana_pubkey::Pubkey,
19}
20
21impl carbon_core::deserialize::ArrangeAccounts for AdminSetCreator {
22    type ArrangedAccounts = AdminSetCreatorInstructionAccounts;
23
24    fn arrange_accounts(
25        accounts: &[solana_instruction::AccountMeta],
26    ) -> Option<Self::ArrangedAccounts> {
27        let mut iter = accounts.iter();
28        let admin_set_creator_authority = next_account(&mut iter)?;
29        let global = next_account(&mut iter)?;
30        let mint = next_account(&mut iter)?;
31        let bonding_curve = next_account(&mut iter)?;
32        let event_authority = next_account(&mut iter)?;
33        let program = next_account(&mut iter)?;
34
35        Some(AdminSetCreatorInstructionAccounts {
36            admin_set_creator_authority,
37            global,
38            mint,
39            bonding_curve,
40            event_authority,
41            program,
42        })
43    }
44}