carbon_points_store_decoder/instructions/
close_store.rs1use carbon_core::{CarbonDeserialize, account_utils::next_account, borsh};
2
3#[derive(
4 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0x5712d5c03f8841cd")]
7pub struct CloseStore {
8 pub key_index: u16,
9}
10
11#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
12pub struct CloseStoreInstructionAccounts {
13 pub key: solana_pubkey::Pubkey,
14 pub profile: solana_pubkey::Pubkey,
15 pub store: solana_pubkey::Pubkey,
16 pub store_signer: solana_pubkey::Pubkey,
17 pub bank: solana_pubkey::Pubkey,
18 pub funds_to: solana_pubkey::Pubkey,
19 pub tokens_to: solana_pubkey::Pubkey,
20 pub token_program: solana_pubkey::Pubkey,
21 pub system_program: solana_pubkey::Pubkey,
22}
23
24impl carbon_core::deserialize::ArrangeAccounts for CloseStore {
25 type ArrangedAccounts = CloseStoreInstructionAccounts;
26
27 fn arrange_accounts(
28 accounts: &[solana_instruction::AccountMeta],
29 ) -> Option<Self::ArrangedAccounts> {
30 let mut iter = accounts.iter();
31 let key = next_account(&mut iter)?;
32 let profile = next_account(&mut iter)?;
33 let store = next_account(&mut iter)?;
34 let store_signer = next_account(&mut iter)?;
35 let bank = next_account(&mut iter)?;
36 let funds_to = next_account(&mut iter)?;
37 let tokens_to = next_account(&mut iter)?;
38 let token_program = next_account(&mut iter)?;
39 let system_program = next_account(&mut iter)?;
40
41 Some(CloseStoreInstructionAccounts {
42 key,
43 profile,
44 store,
45 store_signer,
46 bank,
47 funds_to,
48 tokens_to,
49 token_program,
50 system_program,
51 })
52 }
53}