Skip to main content

carbon_sage_starbased_decoder/instructions/
close_crafting_process.rs

1//! This code was AUTOGENERATED using the Codama library.
2use crate::types::KeyIndexInput;
3use carbon_core::CarbonDeserialize;
4use carbon_core::account_utils::next_account;
5use carbon_core::borsh;
6use carbon_core::deserialize::ArrangeAccounts;
7use carbon_core::deserialize::CarbonDeserialize;
8
9#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
10#[derive(Debug, Clone, borsh::BorshSerialize, CarbonDeserialize, PartialEq, Eq, Hash)]
11pub struct CloseCraftingProcess {
12    pub input: KeyIndexInput,
13}
14
15#[derive(Debug, Clone, PartialEq)]
16#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
17pub struct CloseCraftingProcessInstructionAccounts {
18    pub funds_to: solana_pubkey::Pubkey,
19    pub starbase: solana_pubkey::Pubkey,
20    pub starbase_player: solana_pubkey::Pubkey,
21    pub crafting_instance: solana_pubkey::Pubkey,
22    pub crafting_process: solana_pubkey::Pubkey,
23    pub crafting_recipe: solana_pubkey::Pubkey,
24    pub crafting_facility: solana_pubkey::Pubkey,
25    pub key: solana_pubkey::Pubkey,
26    pub profile: solana_pubkey::Pubkey,
27    pub profile_faction: solana_pubkey::Pubkey,
28    pub game_id: solana_pubkey::Pubkey,
29    pub game_state: solana_pubkey::Pubkey,
30    pub user_points_account: solana_pubkey::Pubkey,
31    pub points_category: solana_pubkey::Pubkey,
32    pub points_modifier_account: solana_pubkey::Pubkey,
33    pub progression_config: solana_pubkey::Pubkey,
34    pub points_program: solana_pubkey::Pubkey,
35    pub crafting_program: solana_pubkey::Pubkey,
36    pub remaining: Vec<solana_instruction::AccountMeta>,
37}
38
39impl CloseCraftingProcess {
40    pub fn decode(data: &[u8]) -> Option<Self> {
41        if data.len() < 8 {
42            return None;
43        }
44        let discriminator = &data[0..8];
45        if discriminator != &[202, 21, 225, 156, 15, 4, 106, 93] {
46            return None;
47        }
48
49        let data_slice = data;
50
51        let data_slice = &data_slice[8..];
52
53        Self::deserialize(data_slice)
54    }
55}
56
57impl ArrangeAccounts for CloseCraftingProcess {
58    type ArrangedAccounts = CloseCraftingProcessInstructionAccounts;
59
60    fn arrange_accounts(
61        accounts: &[solana_instruction::AccountMeta],
62    ) -> Option<Self::ArrangedAccounts> {
63        let mut iter = accounts.iter();
64
65        let funds_to = next_account(&mut iter)?;
66        let starbase = next_account(&mut iter)?;
67        let starbase_player = next_account(&mut iter)?;
68        let crafting_instance = next_account(&mut iter)?;
69        let crafting_process = next_account(&mut iter)?;
70        let crafting_recipe = next_account(&mut iter)?;
71        let crafting_facility = next_account(&mut iter)?;
72        let key = next_account(&mut iter)?;
73        let profile = next_account(&mut iter)?;
74        let profile_faction = next_account(&mut iter)?;
75        let game_id = next_account(&mut iter)?;
76        let game_state = next_account(&mut iter)?;
77        let user_points_account = next_account(&mut iter)?;
78        let points_category = next_account(&mut iter)?;
79        let points_modifier_account = next_account(&mut iter)?;
80        let progression_config = next_account(&mut iter)?;
81        let points_program = next_account(&mut iter)?;
82        let crafting_program = next_account(&mut iter)?;
83
84        let remaining = iter.as_slice();
85
86        Some(CloseCraftingProcessInstructionAccounts {
87            funds_to,
88            starbase,
89            starbase_player,
90            crafting_instance,
91            crafting_process,
92            crafting_recipe,
93            crafting_facility,
94            key,
95            profile,
96            profile_faction,
97            game_id,
98            game_state,
99            user_points_account,
100            points_category,
101            points_modifier_account,
102            progression_config,
103            points_program,
104            crafting_program,
105            remaining: remaining.to_vec(),
106        })
107    }
108}