carbon_pumpfun_decoder/instructions/
set_creator.rs1use 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}