carbon_points_store_decoder/instructions/
create_redemption_config.rs1use 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}