carbon_claim_stake_decoder/instructions/
mod.rs

1//! This code was AUTOGENERATED using the Codama library.
2use crate::ClaimStakeDecoder;
3use crate::PROGRAM_ID;
4
5pub mod process_harvest;
6pub mod process_initial_deposit;
7pub mod process_initialize;
8pub mod process_partial_deposit;
9pub mod process_register_claim_stake;
10pub mod process_settle;
11pub mod process_update_claim_stake_vars;
12pub mod process_withdraw_claim_stakes;
13
14pub use self::process_harvest::*;
15pub use self::process_initial_deposit::*;
16pub use self::process_initialize::*;
17pub use self::process_partial_deposit::*;
18pub use self::process_register_claim_stake::*;
19pub use self::process_settle::*;
20pub use self::process_update_claim_stake_vars::*;
21pub use self::process_withdraw_claim_stakes::*;
22
23#[derive(Debug, Clone, PartialEq, Eq, Hash)]
24#[cfg_attr(
25    feature = "serde",
26    derive(carbon_core::InstructionType, serde::Serialize, serde::Deserialize)
27)]
28#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
29pub enum ClaimStakeInstruction {
30    ProcessHarvest(ProcessHarvest),
31    ProcessInitialDeposit(ProcessInitialDeposit),
32    ProcessInitialize(ProcessInitialize),
33    ProcessPartialDeposit(ProcessPartialDeposit),
34    ProcessRegisterClaimStake(ProcessRegisterClaimStake),
35    ProcessSettle(ProcessSettle),
36    ProcessUpdateClaimStakeVars(ProcessUpdateClaimStakeVars),
37    ProcessWithdrawClaimStakes(ProcessWithdrawClaimStakes),
38}
39
40impl carbon_core::instruction::InstructionDecoder<'_> for ClaimStakeDecoder {
41    type InstructionType = ClaimStakeInstruction;
42
43    fn decode_instruction(
44        &self,
45        instruction: &solana_instruction::Instruction,
46    ) -> Option<carbon_core::instruction::DecodedInstruction<Self::InstructionType>> {
47        if !instruction.program_id.eq(&PROGRAM_ID) {
48            return None;
49        }
50
51        let data = instruction.data.as_slice();
52
53        {
54            if let Some(decoded) = process_harvest::ProcessHarvest::decode(data) {
55                return Some(carbon_core::instruction::DecodedInstruction {
56                    program_id: instruction.program_id,
57                    data: ClaimStakeInstruction::ProcessHarvest(decoded),
58                    accounts: instruction.accounts.clone(),
59                });
60            }
61        }
62        {
63            if let Some(decoded) = process_initial_deposit::ProcessInitialDeposit::decode(data) {
64                return Some(carbon_core::instruction::DecodedInstruction {
65                    program_id: instruction.program_id,
66                    data: ClaimStakeInstruction::ProcessInitialDeposit(decoded),
67                    accounts: instruction.accounts.clone(),
68                });
69            }
70        }
71        {
72            if let Some(decoded) = process_initialize::ProcessInitialize::decode(data) {
73                return Some(carbon_core::instruction::DecodedInstruction {
74                    program_id: instruction.program_id,
75                    data: ClaimStakeInstruction::ProcessInitialize(decoded),
76                    accounts: instruction.accounts.clone(),
77                });
78            }
79        }
80        {
81            if let Some(decoded) = process_partial_deposit::ProcessPartialDeposit::decode(data) {
82                return Some(carbon_core::instruction::DecodedInstruction {
83                    program_id: instruction.program_id,
84                    data: ClaimStakeInstruction::ProcessPartialDeposit(decoded),
85                    accounts: instruction.accounts.clone(),
86                });
87            }
88        }
89        {
90            if let Some(decoded) =
91                process_register_claim_stake::ProcessRegisterClaimStake::decode(data)
92            {
93                return Some(carbon_core::instruction::DecodedInstruction {
94                    program_id: instruction.program_id,
95                    data: ClaimStakeInstruction::ProcessRegisterClaimStake(decoded),
96                    accounts: instruction.accounts.clone(),
97                });
98            }
99        }
100        {
101            if let Some(decoded) = process_settle::ProcessSettle::decode(data) {
102                return Some(carbon_core::instruction::DecodedInstruction {
103                    program_id: instruction.program_id,
104                    data: ClaimStakeInstruction::ProcessSettle(decoded),
105                    accounts: instruction.accounts.clone(),
106                });
107            }
108        }
109        {
110            if let Some(decoded) =
111                process_update_claim_stake_vars::ProcessUpdateClaimStakeVars::decode(data)
112            {
113                return Some(carbon_core::instruction::DecodedInstruction {
114                    program_id: instruction.program_id,
115                    data: ClaimStakeInstruction::ProcessUpdateClaimStakeVars(decoded),
116                    accounts: instruction.accounts.clone(),
117                });
118            }
119        }
120        {
121            if let Some(decoded) =
122                process_withdraw_claim_stakes::ProcessWithdrawClaimStakes::decode(data)
123            {
124                return Some(carbon_core::instruction::DecodedInstruction {
125                    program_id: instruction.program_id,
126                    data: ClaimStakeInstruction::ProcessWithdrawClaimStakes(decoded),
127                    accounts: instruction.accounts.clone(),
128                });
129            }
130        }
131
132        None
133    }
134}