carbon_pumpfun_decoder/instructions/
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 = "0xfe94ff70cf8eaaa5")]
7pub struct SetCreator {
8    pub creator: solana_pubkey::Pubkey,
9}
10
11#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
12pub struct SetCreatorInstructionAccounts {
13    pub set_creator_authority: solana_pubkey::Pubkey,
14    pub global: solana_pubkey::Pubkey,
15    pub mint: solana_pubkey::Pubkey,
16    pub metadata: solana_pubkey::Pubkey,
17    pub bonding_curve: solana_pubkey::Pubkey,
18    pub event_authority: solana_pubkey::Pubkey,
19    pub program: solana_pubkey::Pubkey,
20}
21
22impl carbon_core::deserialize::ArrangeAccounts for SetCreator {
23    type ArrangedAccounts = SetCreatorInstructionAccounts;
24
25    fn arrange_accounts(
26        accounts: &[solana_instruction::AccountMeta],
27    ) -> Option<Self::ArrangedAccounts> {
28        let mut iter = accounts.iter();
29        let set_creator_authority = next_account(&mut iter)?;
30        let global = next_account(&mut iter)?;
31        let mint = next_account(&mut iter)?;
32        let metadata = next_account(&mut iter)?;
33        let bonding_curve = next_account(&mut iter)?;
34        let event_authority = next_account(&mut iter)?;
35        let program = next_account(&mut iter)?;
36
37        Some(SetCreatorInstructionAccounts {
38            set_creator_authority,
39            global,
40            mint,
41            metadata,
42            bonding_curve,
43            event_authority,
44            program,
45        })
46    }
47}