carbon_points_store_decoder/instructions/
mod.rs

1use 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}