carbon_pumpfun_decoder/instructions/
set_creator.rs1use carbon_core::{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 [set_creator_authority, global, mint, metadata, bonding_curve, event_authority, program, _remaining @ ..] =
29 accounts
30 else {
31 return None;
32 };
33
34 Some(SetCreatorInstructionAccounts {
35 set_creator_authority: set_creator_authority.pubkey,
36 global: global.pubkey,
37 mint: mint.pubkey,
38 metadata: metadata.pubkey,
39 bonding_curve: bonding_curve.pubkey,
40 event_authority: event_authority.pubkey,
41 program: program.pubkey,
42 })
43 }
44}