carbon_points_decoder/instructions/
register_point_modifier.rs1use carbon_core::{CarbonDeserialize, account_utils::next_account, borsh};
2
3#[derive(
4 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0x52a34eeda53b36b2")]
7pub struct RegisterPointModifier {
8 pub can_increment: bool,
9 pub can_decrement: bool,
10 pub key_index: u16,
11}
12
13#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
14pub struct RegisterPointModifierInstructionAccounts {
15 pub key: solana_pubkey::Pubkey,
16 pub profile: solana_pubkey::Pubkey,
17 pub funder: solana_pubkey::Pubkey,
18 pub category: solana_pubkey::Pubkey,
19 pub points_modifier_account: solana_pubkey::Pubkey,
20 pub system_program: solana_pubkey::Pubkey,
21}
22
23impl carbon_core::deserialize::ArrangeAccounts for RegisterPointModifier {
24 type ArrangedAccounts = RegisterPointModifierInstructionAccounts;
25
26 fn arrange_accounts(
27 accounts: &[solana_instruction::AccountMeta],
28 ) -> Option<Self::ArrangedAccounts> {
29 let mut iter = accounts.iter();
30 let key = next_account(&mut iter)?;
31 let profile = next_account(&mut iter)?;
32 let funder = next_account(&mut iter)?;
33 let category = next_account(&mut iter)?;
34 let points_modifier_account = next_account(&mut iter)?;
35 let system_program = next_account(&mut iter)?;
36
37 Some(RegisterPointModifierInstructionAccounts {
38 key,
39 profile,
40 funder,
41 category,
42 points_modifier_account,
43 system_program,
44 })
45 }
46}