carbon_pumpfun_decoder/instructions/
admin_update_token_incentives.rs

1use 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 = "0xd10b7357d5177ccc")]
7pub struct AdminUpdateTokenIncentives {
8    pub start_time: i64,
9    pub end_time: i64,
10    pub seconds_in_a_day: i64,
11    pub day_number: u64,
12    pub pump_token_supply_per_day: u64,
13}
14
15#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
16pub struct AdminUpdateTokenIncentivesInstructionAccounts {
17    pub authority: solana_pubkey::Pubkey,
18    pub global: solana_pubkey::Pubkey,
19    pub global_volume_accumulator: solana_pubkey::Pubkey,
20    pub mint: solana_pubkey::Pubkey,
21    pub global_incentive_token_account: solana_pubkey::Pubkey,
22    pub associated_token_program: solana_pubkey::Pubkey,
23    pub system_program: solana_pubkey::Pubkey,
24    pub token_program: solana_pubkey::Pubkey,
25    pub event_authority: solana_pubkey::Pubkey,
26    pub program: solana_pubkey::Pubkey,
27}
28
29impl carbon_core::deserialize::ArrangeAccounts for AdminUpdateTokenIncentives {
30    type ArrangedAccounts = AdminUpdateTokenIncentivesInstructionAccounts;
31
32    fn arrange_accounts(
33        accounts: &[solana_instruction::AccountMeta],
34    ) -> Option<Self::ArrangedAccounts> {
35        let mut iter = accounts.iter();
36        let authority = next_account(&mut iter)?;
37        let global = next_account(&mut iter)?;
38        let global_volume_accumulator = next_account(&mut iter)?;
39        let mint = next_account(&mut iter)?;
40        let global_incentive_token_account = next_account(&mut iter)?;
41        let associated_token_program = next_account(&mut iter)?;
42        let system_program = next_account(&mut iter)?;
43        let token_program = next_account(&mut iter)?;
44        let event_authority = next_account(&mut iter)?;
45        let program = next_account(&mut iter)?;
46
47        Some(AdminUpdateTokenIncentivesInstructionAccounts {
48            authority,
49            global,
50            global_volume_accumulator,
51            mint,
52            global_incentive_token_account,
53            associated_token_program,
54            system_program,
55            token_program,
56            event_authority,
57            program,
58        })
59    }
60}