carbon_tcomp_decoder/instructions/
edit.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 = "0x0fb72156571c9791")]
7pub struct Edit {
8 pub amount: u64,
9 pub expire_in_sec: Option<u64>,
10 pub currency: Option<solana_pubkey::Pubkey>,
11 pub private_taker: Option<solana_pubkey::Pubkey>,
12 pub maker_broker: Option<solana_pubkey::Pubkey>,
13}
14
15#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
16pub struct EditInstructionAccounts {
17 pub list_state: solana_pubkey::Pubkey,
18 pub owner: solana_pubkey::Pubkey,
19 pub tcomp_program: solana_pubkey::Pubkey,
20}
21
22impl carbon_core::deserialize::ArrangeAccounts for Edit {
23 type ArrangedAccounts = EditInstructionAccounts;
24
25 fn arrange_accounts(
26 accounts: &[solana_instruction::AccountMeta],
27 ) -> Option<Self::ArrangedAccounts> {
28 let mut iter = accounts.iter();
29 let list_state = next_account(&mut iter)?;
30 let owner = next_account(&mut iter)?;
31 let tcomp_program = next_account(&mut iter)?;
32
33 Some(EditInstructionAccounts {
34 list_state,
35 owner,
36 tcomp_program,
37 })
38 }
39}