Skip to main content

carbon_virtual_curve_decoder/instructions/
create_claim_fee_operator.rs

1use carbon_core::{borsh, CarbonDeserialize};
2
3#[derive(
4    CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0xa93ecf6b3abba26d")]
7pub struct CreateClaimFeeOperator {}
8
9#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
10pub struct CreateClaimFeeOperatorInstructionAccounts {
11    pub claim_fee_operator: solana_pubkey::Pubkey,
12    pub operator: solana_pubkey::Pubkey,
13    pub admin: solana_pubkey::Pubkey,
14    pub system_program: solana_pubkey::Pubkey,
15    pub event_authority: solana_pubkey::Pubkey,
16    pub program: solana_pubkey::Pubkey,
17}
18
19impl carbon_core::deserialize::ArrangeAccounts for CreateClaimFeeOperator {
20    type ArrangedAccounts = CreateClaimFeeOperatorInstructionAccounts;
21
22    fn arrange_accounts(
23        accounts: &[solana_instruction::AccountMeta],
24    ) -> Option<Self::ArrangedAccounts> {
25        let [claim_fee_operator, operator, admin, system_program, event_authority, program, _remaining @ ..] =
26            accounts
27        else {
28            return None;
29        };
30
31        Some(CreateClaimFeeOperatorInstructionAccounts {
32            claim_fee_operator: claim_fee_operator.pubkey,
33            operator: operator.pubkey,
34            admin: admin.pubkey,
35            system_program: system_program.pubkey,
36            event_authority: event_authority.pubkey,
37            program: program.pubkey,
38        })
39    }
40}