carbon_drift_v2_decoder/instructions/
delete_user.rs

1use carbon_core::{borsh, CarbonDeserialize};
2
3#[derive(
4    CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0xba5511f9dbe762fb")]
7pub struct DeleteUser {}
8
9pub struct DeleteUserInstructionAccounts {
10    pub user: solana_pubkey::Pubkey,
11    pub user_stats: solana_pubkey::Pubkey,
12    pub state: solana_pubkey::Pubkey,
13    pub authority: solana_pubkey::Pubkey,
14}
15
16impl carbon_core::deserialize::ArrangeAccounts for DeleteUser {
17    type ArrangedAccounts = DeleteUserInstructionAccounts;
18
19    fn arrange_accounts(
20        accounts: &[solana_instruction::AccountMeta],
21    ) -> Option<Self::ArrangedAccounts> {
22        let [user, user_stats, state, authority, _remaining @ ..] = accounts else {
23            return None;
24        };
25
26        Some(DeleteUserInstructionAccounts {
27            user: user.pubkey,
28            user_stats: user_stats.pubkey,
29            state: state.pubkey,
30            authority: authority.pubkey,
31        })
32    }
33}