carbon_wavebreak_decoder/instructions/
bonding_curve_close.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 = "0x33")]
7pub struct BondingCurveClose {}
8
9#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
10pub struct BondingCurveCloseInstructionAccounts {
11 pub authority: solana_pubkey::Pubkey,
12 pub creator: solana_pubkey::Pubkey,
13 pub fee_authority: solana_pubkey::Pubkey,
14 pub bonding_curve: solana_pubkey::Pubkey,
15 pub quote_mint: solana_pubkey::Pubkey,
16 pub quote_vault: solana_pubkey::Pubkey,
17 pub fee_authority_quote_ata: solana_pubkey::Pubkey,
18 pub base_mint: solana_pubkey::Pubkey,
19 pub authority_config: solana_pubkey::Pubkey,
20 pub quote_token_program: solana_pubkey::Pubkey,
21 pub base_token_program: solana_pubkey::Pubkey,
22 pub system_program: solana_pubkey::Pubkey,
23 pub ata_program: solana_pubkey::Pubkey,
24}
25
26impl carbon_core::deserialize::ArrangeAccounts for BondingCurveClose {
27 type ArrangedAccounts = BondingCurveCloseInstructionAccounts;
28
29 fn arrange_accounts(
30 accounts: &[solana_instruction::AccountMeta],
31 ) -> Option<Self::ArrangedAccounts> {
32 let mut iter = accounts.iter();
33 let authority = next_account(&mut iter)?;
34 let creator = next_account(&mut iter)?;
35 let fee_authority = next_account(&mut iter)?;
36 let bonding_curve = next_account(&mut iter)?;
37 let quote_mint = next_account(&mut iter)?;
38 let quote_vault = next_account(&mut iter)?;
39 let fee_authority_quote_ata = next_account(&mut iter)?;
40 let base_mint = next_account(&mut iter)?;
41 let authority_config = next_account(&mut iter)?;
42 let quote_token_program = next_account(&mut iter)?;
43 let base_token_program = next_account(&mut iter)?;
44 let system_program = next_account(&mut iter)?;
45 let ata_program = next_account(&mut iter)?;
46
47 Some(BondingCurveCloseInstructionAccounts {
48 authority,
49 creator,
50 fee_authority,
51 bonding_curve,
52 quote_mint,
53 quote_vault,
54 fee_authority_quote_ata,
55 base_mint,
56 authority_config,
57 quote_token_program,
58 base_token_program,
59 system_program,
60 ata_program,
61 })
62 }
63}