carbon-wavebreak-decoder 0.11.0

Wavebreak Program Decoder
Documentation
use super::*;

use carbon_core::{borsh, CarbonDeserialize};

#[derive(
    CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
)]
pub enum Event {
    BondingCurveCreated {
        creation_type: BondingCurveCreationType,
        base_mint: solana_pubkey::Pubkey,
        quote_mint: solana_pubkey::Pubkey,
        creator: solana_pubkey::Pubkey,
        start_price: u128,
        end_price: u128,
        control_points: [u16; 4],
        swap_fee_bps: u16,
        quote_fee_bps: u16,
        base_fee_bps: u16,
        base_allocation_bps: u16,
        launch_slot: u64,
        creator_reward: u64,
        graduation_methods: Box<[GraduationMethodData; 8]>,
        graduation_target: u64,
        graduation_slot: u64,
        graduation_reward: u64,
        retain_mint_authority: bool,
        min_reserve_bps: u16,
        buy_requires_permission: bool,
        buy_permission_bitmap: [u8; 32],
        max_buy_amount: u64,
        sell_requires_permission: bool,
        sell_permission_bitmap: [u8; 32],
        max_sell_amount: u64,
        quote_token_program: solana_pubkey::Pubkey,
        base_token_program: solana_pubkey::Pubkey,
        quote_token_decimals: u8,
        base_token_decimals: u8,
    },
    TokenBought {
        buyer: solana_pubkey::Pubkey,
        base_mint: solana_pubkey::Pubkey,
        quote_mint: solana_pubkey::Pubkey,
        amount_in: u64,
        amount_out: u64,
        price_before: u128,
        price_after: u128,
        quote_amount_before: u64,
        quote_amount_after: u64,
        base_amount_before: u64,
        base_amount_after: u64,
        protocol_fee: u64,
    },
    TokenSold {
        seller: solana_pubkey::Pubkey,
        base_mint: solana_pubkey::Pubkey,
        quote_mint: solana_pubkey::Pubkey,
        amount_in: u64,
        amount_out: u64,
        price_before: u128,
        price_after: u128,
        quote_amount_before: u64,
        quote_amount_after: u64,
        base_amount_before: u64,
        base_amount_after: u64,
        protocol_fee: u64,
    },
    TokenRefunded {
        signer: solana_pubkey::Pubkey,
        base_mint: solana_pubkey::Pubkey,
        quote_mint: solana_pubkey::Pubkey,
        price: u128,
        quote_amount: u64,
        base_amount: u64,
    },
    BondingCurveGraduated {
        graduator: solana_pubkey::Pubkey,
        base_mint: solana_pubkey::Pubkey,
        quote_mint: solana_pubkey::Pubkey,
        final_price: u128,
        graduation_methods: Box<[GraduationMethodData; 8]>,
    },
    BondingCurveClosed {
        bonding_curve: solana_pubkey::Pubkey,
    },
}