carbon_wavebreak_decoder/accounts/
bonding_curve.rs

1use super::super::types::*;
2
3use carbon_core::{borsh, CarbonDeserialize};
4
5#[derive(
6    CarbonDeserialize, Debug, serde::Deserialize, serde::Serialize, PartialEq, Eq, Clone, Hash,
7)]
8#[carbon(discriminator = "0x02")]
9pub struct BondingCurve {
10    pub discriminator: AccountDiscriminator,
11    pub base_mint: solana_pubkey::Pubkey,
12    pub quote_mint: solana_pubkey::Pubkey,
13    pub creator: solana_pubkey::Pubkey,
14    pub retain_mint_authority: bool,
15    pub buy_requires_permission: bool,
16    pub buy_permission_bitmap: [u8; 32],
17    pub sell_requires_permission: bool,
18    pub sell_permission_bitmap: [u8; 32],
19    pub quote_fee_bps: u16,
20    pub base_fee_bps: u16,
21    pub control_points: [u16; 4],
22    pub start_price: u128,
23    pub end_price: u128,
24    pub quote_amount: u64,
25    pub base_amount: u64,
26    pub launch_slot: u64,
27    pub creator_reward: u64,
28    pub graduation_target: u64,
29    pub graduation_slot: u64,
30    pub graduation_reward: u64,
31    pub max_buy_amount: u64,
32    pub max_sell_amount: u64,
33    pub swap_fee_bps: u16,
34    pub base_allocation_bps: u16,
35    pub graduation_methods: [GraduationMethodData; 8],
36    pub min_reserve_bps: u16,
37    pub padding1: [u8; 2],
38    pub preminted_supply: u64,
39    #[serde(with = "serde_big_array::BigArray")]
40    pub padding2: [u8; 728],
41}