Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
use super::super::types::*;

use alloc::vec::Vec;
use carbon_core::{borsh, CarbonDeserialize};

#[derive(
Expand All @@ -18,6 +21,10 @@ pub struct PlatformConfig {
pub web: [u8; 256],
#[serde(with = "serde_big_array::BigArray")]
pub img: [u8; 256],
pub cpswap_config: solana_pubkey::Pubkey,
pub creator_fee_rate: u64,
pub transfer_fee_extension_auth: solana_pubkey::Pubkey,
#[serde(with = "serde_big_array::BigArray")]
pub padding: [u8; 256],
pub padding: [u8; 180],
pub curve_params: Vec<PlatformCurveParam>,
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,8 @@ pub struct PoolState {
pub base_vault: solana_pubkey::Pubkey,
pub quote_vault: solana_pubkey::Pubkey,
pub creator: solana_pubkey::Pubkey,
pub padding: [u64; 8],
pub token_program_flag: u8,
pub amm_creator_fee_on: AmmCreatorFeeOn,
#[serde(with = "serde_big_array::BigArray")]
pub padding: [u8; 62],
}
53 changes: 32 additions & 21 deletions decoders/raydium-launchpad-decoder/src/instructions/buy_exact_in.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use carbon_core::{borsh, CarbonDeserialize};
use carbon_core::{account_utils::next_account, borsh, CarbonDeserialize};

#[derive(
CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
Expand Down Expand Up @@ -35,28 +35,39 @@ impl carbon_core::deserialize::ArrangeAccounts for BuyExactIn {
fn arrange_accounts(
accounts: &[solana_instruction::AccountMeta],
) -> Option<Self::ArrangedAccounts> {
let [payer, authority, global_config, platform_config, pool_state, user_base_token, user_quote_token, base_vault, quote_vault, base_token_mint, quote_token_mint, base_token_program, quote_token_program, event_authority, program, _remaining @ ..] =
accounts
else {
return None;
};
let mut iter = accounts.iter();
let payer = next_account(&mut iter)?;
let authority = next_account(&mut iter)?;
let global_config = next_account(&mut iter)?;
let platform_config = next_account(&mut iter)?;
let pool_state = next_account(&mut iter)?;
let user_base_token = next_account(&mut iter)?;
let user_quote_token = next_account(&mut iter)?;
let base_vault = next_account(&mut iter)?;
let quote_vault = next_account(&mut iter)?;
let base_token_mint = next_account(&mut iter)?;
let quote_token_mint = next_account(&mut iter)?;
let base_token_program = next_account(&mut iter)?;
let quote_token_program = next_account(&mut iter)?;
let event_authority = next_account(&mut iter)?;
let program = next_account(&mut iter)?;

Some(BuyExactInInstructionAccounts {
payer: payer.pubkey,
authority: authority.pubkey,
global_config: global_config.pubkey,
platform_config: platform_config.pubkey,
pool_state: pool_state.pubkey,
user_base_token: user_base_token.pubkey,
user_quote_token: user_quote_token.pubkey,
base_vault: base_vault.pubkey,
quote_vault: quote_vault.pubkey,
base_token_mint: base_token_mint.pubkey,
quote_token_mint: quote_token_mint.pubkey,
base_token_program: base_token_program.pubkey,
quote_token_program: quote_token_program.pubkey,
event_authority: event_authority.pubkey,
program: program.pubkey,
payer,
authority,
global_config,
platform_config,
pool_state,
user_base_token,
user_quote_token,
base_vault,
quote_vault,
base_token_mint,
quote_token_mint,
base_token_program,
quote_token_program,
event_authority,
program,
})
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use carbon_core::{borsh, CarbonDeserialize};
use carbon_core::{account_utils::next_account, borsh, CarbonDeserialize};

#[derive(
CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
Expand Down Expand Up @@ -35,28 +35,39 @@ impl carbon_core::deserialize::ArrangeAccounts for BuyExactOut {
fn arrange_accounts(
accounts: &[solana_instruction::AccountMeta],
) -> Option<Self::ArrangedAccounts> {
let [payer, authority, global_config, platform_config, pool_state, user_base_token, user_quote_token, base_vault, quote_vault, base_token_mint, quote_token_mint, base_token_program, quote_token_program, event_authority, program, _remaining @ ..] =
accounts
else {
return None;
};
let mut iter = accounts.iter();
let payer = next_account(&mut iter)?;
let authority = next_account(&mut iter)?;
let global_config = next_account(&mut iter)?;
let platform_config = next_account(&mut iter)?;
let pool_state = next_account(&mut iter)?;
let user_base_token = next_account(&mut iter)?;
let user_quote_token = next_account(&mut iter)?;
let base_vault = next_account(&mut iter)?;
let quote_vault = next_account(&mut iter)?;
let base_token_mint = next_account(&mut iter)?;
let quote_token_mint = next_account(&mut iter)?;
let base_token_program = next_account(&mut iter)?;
let quote_token_program = next_account(&mut iter)?;
let event_authority = next_account(&mut iter)?;
let program = next_account(&mut iter)?;

Some(BuyExactOutInstructionAccounts {
payer: payer.pubkey,
authority: authority.pubkey,
global_config: global_config.pubkey,
platform_config: platform_config.pubkey,
pool_state: pool_state.pubkey,
user_base_token: user_base_token.pubkey,
user_quote_token: user_quote_token.pubkey,
base_vault: base_vault.pubkey,
quote_vault: quote_vault.pubkey,
base_token_mint: base_token_mint.pubkey,
quote_token_mint: quote_token_mint.pubkey,
base_token_program: base_token_program.pubkey,
quote_token_program: quote_token_program.pubkey,
event_authority: event_authority.pubkey,
program: program.pubkey,
payer,
authority,
global_config,
platform_config,
pool_state,
user_base_token,
user_quote_token,
base_vault,
quote_vault,
base_token_mint,
quote_token_mint,
base_token_program,
quote_token_program,
event_authority,
program,
})
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
use carbon_core::{account_utils::next_account, borsh, CarbonDeserialize};

#[derive(
CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
)]
#[carbon(discriminator = "0x1a618acb84ab8dfc")]
pub struct ClaimCreatorFee {}

#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
pub struct ClaimCreatorFeeInstructionAccounts {
pub creator: solana_pubkey::Pubkey,
pub fee_vault_authority: solana_pubkey::Pubkey,
pub creator_fee_vault: solana_pubkey::Pubkey,
pub recipient_token_account: solana_pubkey::Pubkey,
pub quote_mint: solana_pubkey::Pubkey,
pub token_program: solana_pubkey::Pubkey,
pub system_program: solana_pubkey::Pubkey,
pub associated_token_program: solana_pubkey::Pubkey,
}

impl carbon_core::deserialize::ArrangeAccounts for ClaimCreatorFee {
type ArrangedAccounts = ClaimCreatorFeeInstructionAccounts;

fn arrange_accounts(
accounts: &[solana_instruction::AccountMeta],
) -> Option<Self::ArrangedAccounts> {
let mut iter = accounts.iter();
let creator = next_account(&mut iter)?;
let fee_vault_authority = next_account(&mut iter)?;
let creator_fee_vault = next_account(&mut iter)?;
let recipient_token_account = next_account(&mut iter)?;
let quote_mint = next_account(&mut iter)?;
let token_program = next_account(&mut iter)?;
let system_program = next_account(&mut iter)?;
let associated_token_program = next_account(&mut iter)?;

Some(ClaimCreatorFeeInstructionAccounts {
creator,
fee_vault_authority,
creator_fee_vault,
recipient_token_account,
quote_mint,
token_program,
system_program,
associated_token_program,
})
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use carbon_core::{borsh, CarbonDeserialize};
use carbon_core::{account_utils::next_account, borsh, CarbonDeserialize};

#[derive(
CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
Expand Down Expand Up @@ -26,23 +26,29 @@ impl carbon_core::deserialize::ArrangeAccounts for ClaimPlatformFee {
fn arrange_accounts(
accounts: &[solana_instruction::AccountMeta],
) -> Option<Self::ArrangedAccounts> {
let [platform_fee_wallet, authority, pool_state, platform_config, quote_vault, recipient_token_account, quote_mint, token_program, system_program, associated_token_program, _remaining @ ..] =
accounts
else {
return None;
};
let mut iter = accounts.iter();
let platform_fee_wallet = next_account(&mut iter)?;
let authority = next_account(&mut iter)?;
let pool_state = next_account(&mut iter)?;
let platform_config = next_account(&mut iter)?;
let quote_vault = next_account(&mut iter)?;
let recipient_token_account = next_account(&mut iter)?;
let quote_mint = next_account(&mut iter)?;
let token_program = next_account(&mut iter)?;
let system_program = next_account(&mut iter)?;
let associated_token_program = next_account(&mut iter)?;

Some(ClaimPlatformFeeInstructionAccounts {
platform_fee_wallet: platform_fee_wallet.pubkey,
authority: authority.pubkey,
pool_state: pool_state.pubkey,
platform_config: platform_config.pubkey,
quote_vault: quote_vault.pubkey,
recipient_token_account: recipient_token_account.pubkey,
quote_mint: quote_mint.pubkey,
token_program: token_program.pubkey,
system_program: system_program.pubkey,
associated_token_program: associated_token_program.pubkey,
platform_fee_wallet,
authority,
pool_state,
platform_config,
quote_vault,
recipient_token_account,
quote_mint,
token_program,
system_program,
associated_token_program,
})
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
use carbon_core::{account_utils::next_account, borsh, CarbonDeserialize};

#[derive(
CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
)]
#[carbon(discriminator = "0x75f1c6a8f8da501d")]
pub struct ClaimPlatformFeeFromVault {}

#[derive(Debug, PartialEq, Eq, Clone, Hash, serde::Serialize, serde::Deserialize)]
pub struct ClaimPlatformFeeFromVaultInstructionAccounts {
pub platform_fee_wallet: solana_pubkey::Pubkey,
pub fee_vault_authority: solana_pubkey::Pubkey,
pub platform_config: solana_pubkey::Pubkey,
pub platform_fee_vault: solana_pubkey::Pubkey,
pub recipient_token_account: solana_pubkey::Pubkey,
pub quote_mint: solana_pubkey::Pubkey,
pub token_program: solana_pubkey::Pubkey,
pub system_program: solana_pubkey::Pubkey,
pub associated_token_program: solana_pubkey::Pubkey,
}

impl carbon_core::deserialize::ArrangeAccounts for ClaimPlatformFeeFromVault {
type ArrangedAccounts = ClaimPlatformFeeFromVaultInstructionAccounts;

fn arrange_accounts(
accounts: &[solana_instruction::AccountMeta],
) -> Option<Self::ArrangedAccounts> {
let mut iter = accounts.iter();
let platform_fee_wallet = next_account(&mut iter)?;
let fee_vault_authority = next_account(&mut iter)?;
let platform_config = next_account(&mut iter)?;
let platform_fee_vault = next_account(&mut iter)?;
let recipient_token_account = next_account(&mut iter)?;
let quote_mint = next_account(&mut iter)?;
let token_program = next_account(&mut iter)?;
let system_program = next_account(&mut iter)?;
let associated_token_program = next_account(&mut iter)?;

Some(ClaimPlatformFeeFromVaultInstructionAccounts {
platform_fee_wallet,
fee_vault_authority,
platform_config,
platform_fee_vault,
recipient_token_account,
quote_mint,
token_program,
system_program,
associated_token_program,
})
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use carbon_core::{borsh, CarbonDeserialize};
use carbon_core::{account_utils::next_account, borsh, CarbonDeserialize};

#[derive(
CarbonDeserialize, Debug, serde::Serialize, serde::Deserialize, PartialEq, Eq, Clone, Hash,
Expand Down Expand Up @@ -26,23 +26,29 @@ impl carbon_core::deserialize::ArrangeAccounts for ClaimVestedToken {
fn arrange_accounts(
accounts: &[solana_instruction::AccountMeta],
) -> Option<Self::ArrangedAccounts> {
let [beneficiary, authority, pool_state, vesting_record, base_vault, user_base_token, base_token_mint, base_token_program, system_program, associated_token_program, _remaining @ ..] =
accounts
else {
return None;
};
let mut iter = accounts.iter();
let beneficiary = next_account(&mut iter)?;
let authority = next_account(&mut iter)?;
let pool_state = next_account(&mut iter)?;
let vesting_record = next_account(&mut iter)?;
let base_vault = next_account(&mut iter)?;
let user_base_token = next_account(&mut iter)?;
let base_token_mint = next_account(&mut iter)?;
let base_token_program = next_account(&mut iter)?;
let system_program = next_account(&mut iter)?;
let associated_token_program = next_account(&mut iter)?;

Some(ClaimVestedTokenInstructionAccounts {
beneficiary: beneficiary.pubkey,
authority: authority.pubkey,
pool_state: pool_state.pubkey,
vesting_record: vesting_record.pubkey,
base_vault: base_vault.pubkey,
user_base_token: user_base_token.pubkey,
base_token_mint: base_token_mint.pubkey,
base_token_program: base_token_program.pubkey,
system_program: system_program.pubkey,
associated_token_program: associated_token_program.pubkey,
beneficiary,
authority,
pool_state,
vesting_record,
base_vault,
user_base_token,
base_token_mint,
base_token_program,
system_program,
associated_token_program,
})
}
}
Loading
Loading