carbon_points_store_decoder/instructions/
create_redemption_config.rs

1use super::super::types::*;
2
3use carbon_core::{CarbonDeserialize, account_utils::next_account, borsh};
4
5#[derive(
6    CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
7)]
8#[carbon(discriminator = "0x042b9ec1b87a527c")]
9pub struct CreateRedemptionConfig {
10    pub input: CreateRedemptionConfigInput,
11}
12
13#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
14pub struct CreateRedemptionConfigInstructionAccounts {
15    pub profile: solana_pubkey::Pubkey,
16    pub config: solana_pubkey::Pubkey,
17    pub config_signer: solana_pubkey::Pubkey,
18    pub point_category: solana_pubkey::Pubkey,
19    pub funder: solana_pubkey::Pubkey,
20    pub bank: solana_pubkey::Pubkey,
21    pub system_program: solana_pubkey::Pubkey,
22}
23
24impl carbon_core::deserialize::ArrangeAccounts for CreateRedemptionConfig {
25    type ArrangedAccounts = CreateRedemptionConfigInstructionAccounts;
26
27    fn arrange_accounts(
28        accounts: &[solana_instruction::AccountMeta],
29    ) -> Option<Self::ArrangedAccounts> {
30        let mut iter = accounts.iter();
31        let profile = next_account(&mut iter)?;
32        let config = next_account(&mut iter)?;
33        let config_signer = next_account(&mut iter)?;
34        let point_category = next_account(&mut iter)?;
35        let funder = next_account(&mut iter)?;
36        let bank = next_account(&mut iter)?;
37        let system_program = next_account(&mut iter)?;
38
39        Some(CreateRedemptionConfigInstructionAccounts {
40            profile,
41            config,
42            config_signer,
43            point_category,
44            funder,
45            bank,
46            system_program,
47        })
48    }
49}