carbon_wavebreak_decoder/instructions/
permission_refund.rs1use carbon_core::{account_utils::next_account, borsh, CarbonDeserialize};
2
3#[derive(
4 CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
5)]
6#[carbon(discriminator = "0x06")]
7pub struct PermissionRefund {}
8
9#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
10pub struct PermissionRefundInstructionAccounts {
11 pub consumed_permission: solana_pubkey::Pubkey,
12 pub refund_destination: solana_pubkey::Pubkey,
13}
14
15impl carbon_core::deserialize::ArrangeAccounts for PermissionRefund {
16 type ArrangedAccounts = PermissionRefundInstructionAccounts;
17
18 fn arrange_accounts(
19 accounts: &[solana_instruction::AccountMeta],
20 ) -> Option<Self::ArrangedAccounts> {
21 let mut iter = accounts.iter();
22 let consumed_permission = next_account(&mut iter)?;
23 let refund_destination = next_account(&mut iter)?;
24
25 Some(PermissionRefundInstructionAccounts {
26 consumed_permission,
27 refund_destination,
28 })
29 }
30}