carbon_points_store_decoder/instructions/
mod.rs1use super::PointsStoreDecoder;
2pub mod add_redemption_epoch;
3pub mod buy;
4pub mod change_store_price;
5pub mod claim_tokens;
6pub mod close_redemption_config;
7pub mod close_store;
8pub mod contribute_to_redemption;
9pub mod create_points_store;
10pub mod create_redemption_config;
11pub mod remove_redemption_epoch;
12pub mod remove_store_items;
13pub mod start_redemption;
14pub mod update_redemption_epoch;
15
16#[derive(
17 carbon_core::InstructionType,
18 serde::Serialize,
19 serde::Deserialize,
20 PartialEq,
21 Eq,
22 Debug,
23 Clone,
24 Hash,
25)]
26pub enum PointsStoreInstruction {
27 AddRedemptionEpoch(add_redemption_epoch::AddRedemptionEpoch),
28 Buy(buy::Buy),
29 ChangeStorePrice(change_store_price::ChangeStorePrice),
30 ClaimTokens(claim_tokens::ClaimTokens),
31 CloseRedemptionConfig(close_redemption_config::CloseRedemptionConfig),
32 CloseStore(close_store::CloseStore),
33 ContributeToRedemption(contribute_to_redemption::ContributeToRedemption),
34 CreatePointsStore(create_points_store::CreatePointsStore),
35 CreateRedemptionConfig(create_redemption_config::CreateRedemptionConfig),
36 RemoveRedemptionEpoch(remove_redemption_epoch::RemoveRedemptionEpoch),
37 RemoveStoreItems(remove_store_items::RemoveStoreItems),
38 StartRedemption(start_redemption::StartRedemption),
39 UpdateRedemptionEpoch(update_redemption_epoch::UpdateRedemptionEpoch),
40}
41
42impl<'a> carbon_core::instruction::InstructionDecoder<'a> for PointsStoreDecoder {
43 type InstructionType = PointsStoreInstruction;
44
45 fn decode_instruction(
46 &self,
47 instruction: &solana_instruction::Instruction,
48 ) -> Option<carbon_core::instruction::DecodedInstruction<Self::InstructionType>> {
49 carbon_core::try_decode_instructions!(instruction,
50 PointsStoreInstruction::AddRedemptionEpoch => add_redemption_epoch::AddRedemptionEpoch,
51 PointsStoreInstruction::Buy => buy::Buy,
52 PointsStoreInstruction::ChangeStorePrice => change_store_price::ChangeStorePrice,
53 PointsStoreInstruction::ClaimTokens => claim_tokens::ClaimTokens,
54 PointsStoreInstruction::CloseRedemptionConfig => close_redemption_config::CloseRedemptionConfig,
55 PointsStoreInstruction::CloseStore => close_store::CloseStore,
56 PointsStoreInstruction::ContributeToRedemption => contribute_to_redemption::ContributeToRedemption,
57 PointsStoreInstruction::CreatePointsStore => create_points_store::CreatePointsStore,
58 PointsStoreInstruction::CreateRedemptionConfig => create_redemption_config::CreateRedemptionConfig,
59 PointsStoreInstruction::RemoveRedemptionEpoch => remove_redemption_epoch::RemoveRedemptionEpoch,
60 PointsStoreInstruction::RemoveStoreItems => remove_store_items::RemoveStoreItems,
61 PointsStoreInstruction::StartRedemption => start_redemption::StartRedemption,
62 PointsStoreInstruction::UpdateRedemptionEpoch => update_redemption_epoch::UpdateRedemptionEpoch,
63 )
64 }
65}