pub mod authority_config_grant_row;
pub mod authority_config_initialize_row;
pub mod authority_config_revoke_row;
pub mod bonding_curve_close_row;
pub mod bonding_curve_collect_fees_row;
pub mod bonding_curve_graduate_row;
pub mod bonding_curve_initialize_row;
pub mod create_launch_row;
pub mod create_lockedlaunch_row;
pub mod create_presale_row;
pub mod graduate_manual_row;
pub mod graduate_whirlpool_row;
pub mod lp_harvest_row;
pub mod lp_takeover_row;
pub mod lp_transfer_row;
pub mod mint_config_close_row;
pub mod mint_config_initialize_row;
pub mod mint_config_update_row;
pub mod permission_config_close_row;
pub mod permission_config_initialize_row;
pub mod permission_config_update_row;
pub mod permission_consume_cpi_row;
pub mod permission_consume_top_level_row;
pub mod permission_refund_row;
pub mod permission_revoke_row;
pub mod reserved_authority_config_a_row;
pub mod reserved_authority_config_b_row;
pub mod reserved_authority_config_c_row;
pub mod reserved_authority_config_y_row;
pub mod reserved_authority_config_z_row;
pub mod reserved_bonding_curve_a_row;
pub mod reserved_bonding_curve_x_row;
pub mod reserved_bonding_curve_y_row;
pub mod reserved_bonding_curve_z_row;
pub mod reserved_create_a_row;
pub mod reserved_create_b_row;
pub mod reserved_create_c_row;
pub mod reserved_create_y_row;
pub mod reserved_create_z_row;
pub mod reserved_graduate_a_row;
pub mod reserved_graduate_b_row;
pub mod reserved_graduate_c_row;
pub mod reserved_graduate_x_row;
pub mod reserved_graduate_y_row;
pub mod reserved_graduate_z_row;
pub mod reserved_lp_a_row;
pub mod reserved_lp_b_row;
pub mod reserved_lp_x_row;
pub mod reserved_lp_y_row;
pub mod reserved_lp_z_row;
pub mod reserved_mint_config_a_row;
pub mod reserved_mint_config_b_row;
pub mod reserved_mint_config_c_row;
pub mod reserved_mint_config_y_row;
pub mod reserved_mint_config_z_row;
pub mod reserved_permission_a_row;
pub mod reserved_token_a_row;
pub mod reserved_token_y_row;
pub mod reserved_token_z_row;
pub mod token_buy_exact_in_row;
pub mod token_buy_exact_out_row;
pub mod token_refund_row;
pub mod token_sell_exact_in_row;
pub mod token_sell_exact_out_row;
pub use self::{
authority_config_grant_row::*, authority_config_initialize_row::*,
authority_config_revoke_row::*, bonding_curve_close_row::*, bonding_curve_collect_fees_row::*,
bonding_curve_graduate_row::*, bonding_curve_initialize_row::*, create_launch_row::*,
create_lockedlaunch_row::*, create_presale_row::*, graduate_manual_row::*,
graduate_whirlpool_row::*, lp_harvest_row::*, lp_takeover_row::*, lp_transfer_row::*,
mint_config_close_row::*, mint_config_initialize_row::*, mint_config_update_row::*,
permission_config_close_row::*, permission_config_initialize_row::*,
permission_config_update_row::*, permission_consume_cpi_row::*,
permission_consume_top_level_row::*, permission_refund_row::*, permission_revoke_row::*,
reserved_authority_config_a_row::*, reserved_authority_config_b_row::*,
reserved_authority_config_c_row::*, reserved_authority_config_y_row::*,
reserved_authority_config_z_row::*, reserved_bonding_curve_a_row::*,
reserved_bonding_curve_x_row::*, reserved_bonding_curve_y_row::*,
reserved_bonding_curve_z_row::*, reserved_create_a_row::*, reserved_create_b_row::*,
reserved_create_c_row::*, reserved_create_y_row::*, reserved_create_z_row::*,
reserved_graduate_a_row::*, reserved_graduate_b_row::*, reserved_graduate_c_row::*,
reserved_graduate_x_row::*, reserved_graduate_y_row::*, reserved_graduate_z_row::*,
reserved_lp_a_row::*, reserved_lp_b_row::*, reserved_lp_x_row::*, reserved_lp_y_row::*,
reserved_lp_z_row::*, reserved_mint_config_a_row::*, reserved_mint_config_b_row::*,
reserved_mint_config_c_row::*, reserved_mint_config_y_row::*, reserved_mint_config_z_row::*,
reserved_permission_a_row::*, reserved_token_a_row::*, reserved_token_y_row::*,
reserved_token_z_row::*, token_buy_exact_in_row::*, token_buy_exact_out_row::*,
token_refund_row::*, token_sell_exact_in_row::*, token_sell_exact_out_row::*,
};
use super::WavebreakInstruction;
pub struct WavebreakInstructionsMigration;
impl sqlx_migrator::Migration<sqlx::Postgres> for WavebreakInstructionsMigration {
fn app(&self) -> &str {
"wavebreak"
}
fn name(&self) -> &str {
"wavebreak_instructions"
}
fn operations(&self) -> Vec<Box<dyn sqlx_migrator::Operation<sqlx::Postgres>>> {
vec![
Box::new(AuthorityConfigGrantMigrationOperation),
Box::new(AuthorityConfigInitializeMigrationOperation),
Box::new(AuthorityConfigRevokeMigrationOperation),
Box::new(BondingCurveCloseMigrationOperation),
Box::new(BondingCurveCollectFeesMigrationOperation),
Box::new(BondingCurveGraduateMigrationOperation),
Box::new(BondingCurveInitializeMigrationOperation),
Box::new(CreateLaunchMigrationOperation),
Box::new(CreateLockedlaunchMigrationOperation),
Box::new(CreatePresaleMigrationOperation),
Box::new(GraduateManualMigrationOperation),
Box::new(GraduateWhirlpoolMigrationOperation),
Box::new(LpHarvestMigrationOperation),
Box::new(LpTakeoverMigrationOperation),
Box::new(LpTransferMigrationOperation),
Box::new(MintConfigCloseMigrationOperation),
Box::new(MintConfigInitializeMigrationOperation),
Box::new(MintConfigUpdateMigrationOperation),
Box::new(PermissionConfigCloseMigrationOperation),
Box::new(PermissionConfigInitializeMigrationOperation),
Box::new(PermissionConfigUpdateMigrationOperation),
Box::new(PermissionConsumeCpiMigrationOperation),
Box::new(PermissionConsumeTopLevelMigrationOperation),
Box::new(PermissionRefundMigrationOperation),
Box::new(PermissionRevokeMigrationOperation),
Box::new(ReservedAuthorityConfigAMigrationOperation),
Box::new(ReservedAuthorityConfigBMigrationOperation),
Box::new(ReservedAuthorityConfigCMigrationOperation),
Box::new(ReservedAuthorityConfigYMigrationOperation),
Box::new(ReservedAuthorityConfigZMigrationOperation),
Box::new(ReservedBondingCurveAMigrationOperation),
Box::new(ReservedBondingCurveXMigrationOperation),
Box::new(ReservedBondingCurveYMigrationOperation),
Box::new(ReservedBondingCurveZMigrationOperation),
Box::new(ReservedCreateAMigrationOperation),
Box::new(ReservedCreateBMigrationOperation),
Box::new(ReservedCreateCMigrationOperation),
Box::new(ReservedCreateYMigrationOperation),
Box::new(ReservedCreateZMigrationOperation),
Box::new(ReservedGraduateAMigrationOperation),
Box::new(ReservedGraduateBMigrationOperation),
Box::new(ReservedGraduateCMigrationOperation),
Box::new(ReservedGraduateXMigrationOperation),
Box::new(ReservedGraduateYMigrationOperation),
Box::new(ReservedGraduateZMigrationOperation),
Box::new(ReservedLpAMigrationOperation),
Box::new(ReservedLpBMigrationOperation),
Box::new(ReservedLpXMigrationOperation),
Box::new(ReservedLpYMigrationOperation),
Box::new(ReservedLpZMigrationOperation),
Box::new(ReservedMintConfigAMigrationOperation),
Box::new(ReservedMintConfigBMigrationOperation),
Box::new(ReservedMintConfigCMigrationOperation),
Box::new(ReservedMintConfigYMigrationOperation),
Box::new(ReservedMintConfigZMigrationOperation),
Box::new(ReservedPermissionAMigrationOperation),
Box::new(ReservedTokenAMigrationOperation),
Box::new(ReservedTokenYMigrationOperation),
Box::new(ReservedTokenZMigrationOperation),
Box::new(TokenBuyExactInMigrationOperation),
Box::new(TokenBuyExactOutMigrationOperation),
Box::new(TokenRefundMigrationOperation),
Box::new(TokenSellExactInMigrationOperation),
Box::new(TokenSellExactOutMigrationOperation),
]
}
fn parents(&self) -> Vec<Box<dyn sqlx_migrator::Migration<sqlx::Postgres>>> {
vec![]
}
}
pub struct WavebreakInstructionWithMetadata(
pub WavebreakInstruction,
pub carbon_core::instruction::InstructionMetadata,
pub Vec<solana_instruction::AccountMeta>,
);
impl
From<(
WavebreakInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
)> for WavebreakInstructionWithMetadata
{
fn from(
value: (
WavebreakInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
),
) -> Self {
WavebreakInstructionWithMetadata(value.0, value.1, value.2)
}
}
#[async_trait::async_trait]
impl carbon_core::postgres::operations::Insert for WavebreakInstructionWithMetadata {
async fn insert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let WavebreakInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) = self;
match decoded_instruction {
WavebreakInstruction::PermissionConsumeTopLevel { data, .. } => {
let row =
permission_consume_top_level_row::PermissionConsumeTopLevelRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionConsumeCpi { data, .. } => {
let row = permission_consume_cpi_row::PermissionConsumeCpiRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionConfigInitialize { data, .. } => {
let row =
permission_config_initialize_row::PermissionConfigInitializeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionConfigUpdate { data, .. } => {
let row = permission_config_update_row::PermissionConfigUpdateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionConfigClose { data, .. } => {
let row = permission_config_close_row::PermissionConfigCloseRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionRevoke { data, .. } => {
let row = permission_revoke_row::PermissionRevokeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionRefund { data, .. } => {
let row = permission_refund_row::PermissionRefundRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedPermissionA { data, .. } => {
let row = reserved_permission_a_row::ReservedPermissionARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenBuyExactIn { data, .. } => {
let row = token_buy_exact_in_row::TokenBuyExactInRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenBuyExactOut { data, .. } => {
let row = token_buy_exact_out_row::TokenBuyExactOutRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenSellExactIn { data, .. } => {
let row = token_sell_exact_in_row::TokenSellExactInRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenSellExactOut { data, .. } => {
let row = token_sell_exact_out_row::TokenSellExactOutRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenRefund { data, .. } => {
let row = token_refund_row::TokenRefundRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedTokenY { data, .. } => {
let row = reserved_token_y_row::ReservedTokenYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedTokenZ { data, .. } => {
let row = reserved_token_z_row::ReservedTokenZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedTokenA { data, .. } => {
let row = reserved_token_a_row::ReservedTokenARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::AuthorityConfigInitialize { data, .. } => {
let row = authority_config_initialize_row::AuthorityConfigInitializeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::AuthorityConfigGrant { data, .. } => {
let row = authority_config_grant_row::AuthorityConfigGrantRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::AuthorityConfigRevoke { data, .. } => {
let row = authority_config_revoke_row::AuthorityConfigRevokeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigY { data, .. } => {
let row = reserved_authority_config_y_row::ReservedAuthorityConfigYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigZ { data, .. } => {
let row = reserved_authority_config_z_row::ReservedAuthorityConfigZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigA { data, .. } => {
let row = reserved_authority_config_a_row::ReservedAuthorityConfigARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigB { data, .. } => {
let row = reserved_authority_config_b_row::ReservedAuthorityConfigBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigC { data, .. } => {
let row = reserved_authority_config_c_row::ReservedAuthorityConfigCRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::MintConfigInitialize { data, .. } => {
let row = mint_config_initialize_row::MintConfigInitializeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::MintConfigClose { data, .. } => {
let row = mint_config_close_row::MintConfigCloseRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::MintConfigUpdate { data, .. } => {
let row = mint_config_update_row::MintConfigUpdateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigY { data, .. } => {
let row = reserved_mint_config_y_row::ReservedMintConfigYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigZ { data, .. } => {
let row = reserved_mint_config_z_row::ReservedMintConfigZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigA { data, .. } => {
let row = reserved_mint_config_a_row::ReservedMintConfigARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigB { data, .. } => {
let row = reserved_mint_config_b_row::ReservedMintConfigBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigC { data, .. } => {
let row = reserved_mint_config_c_row::ReservedMintConfigCRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::GraduateWhirlpool { data, .. } => {
let row = graduate_whirlpool_row::GraduateWhirlpoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::GraduateManual { data, .. } => {
let row = graduate_manual_row::GraduateManualRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateX { data, .. } => {
let row = reserved_graduate_x_row::ReservedGraduateXRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateY { data, .. } => {
let row = reserved_graduate_y_row::ReservedGraduateYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateZ { data, .. } => {
let row = reserved_graduate_z_row::ReservedGraduateZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateA { data, .. } => {
let row = reserved_graduate_a_row::ReservedGraduateARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateB { data, .. } => {
let row = reserved_graduate_b_row::ReservedGraduateBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateC { data, .. } => {
let row = reserved_graduate_c_row::ReservedGraduateCRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::CreateLockedlaunch { data, .. } => {
let row = create_lockedlaunch_row::CreateLockedlaunchRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::CreateLaunch { data, .. } => {
let row = create_launch_row::CreateLaunchRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::CreatePresale { data, .. } => {
let row = create_presale_row::CreatePresaleRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateY { data, .. } => {
let row = reserved_create_y_row::ReservedCreateYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateZ { data, .. } => {
let row = reserved_create_z_row::ReservedCreateZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateA { data, .. } => {
let row = reserved_create_a_row::ReservedCreateARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateB { data, .. } => {
let row = reserved_create_b_row::ReservedCreateBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateC { data, .. } => {
let row = reserved_create_c_row::ReservedCreateCRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::BondingCurveInitialize { data, .. } => {
let row = bonding_curve_initialize_row::BondingCurveInitializeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::BondingCurveCollectFees { data, .. } => {
let row = bonding_curve_collect_fees_row::BondingCurveCollectFeesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::BondingCurveGraduate { data, .. } => {
let row = bonding_curve_graduate_row::BondingCurveGraduateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::BondingCurveClose { data, .. } => {
let row = bonding_curve_close_row::BondingCurveCloseRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedBondingCurveX { data, .. } => {
let row = reserved_bonding_curve_x_row::ReservedBondingCurveXRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedBondingCurveY { data, .. } => {
let row = reserved_bonding_curve_y_row::ReservedBondingCurveYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedBondingCurveZ { data, .. } => {
let row = reserved_bonding_curve_z_row::ReservedBondingCurveZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedBondingCurveA { data, .. } => {
let row = reserved_bonding_curve_a_row::ReservedBondingCurveARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::LpHarvest { data, .. } => {
let row = lp_harvest_row::LpHarvestRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::LpTransfer { data, .. } => {
let row = lp_transfer_row::LpTransferRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::LpTakeover { data, .. } => {
let row = lp_takeover_row::LpTakeoverRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpX { data, .. } => {
let row = reserved_lp_x_row::ReservedLpXRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpY { data, .. } => {
let row = reserved_lp_y_row::ReservedLpYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpZ { data, .. } => {
let row = reserved_lp_z_row::ReservedLpZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpA { data, .. } => {
let row = reserved_lp_a_row::ReservedLpARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpB { data, .. } => {
let row = reserved_lp_b_row::ReservedLpBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
}
}
}
#[async_trait::async_trait]
impl carbon_core::postgres::operations::Upsert for WavebreakInstructionWithMetadata {
async fn upsert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let WavebreakInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) = self;
match decoded_instruction {
WavebreakInstruction::PermissionConsumeTopLevel { data, .. } => {
let row =
permission_consume_top_level_row::PermissionConsumeTopLevelRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionConsumeCpi { data, .. } => {
let row = permission_consume_cpi_row::PermissionConsumeCpiRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionConfigInitialize { data, .. } => {
let row =
permission_config_initialize_row::PermissionConfigInitializeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionConfigUpdate { data, .. } => {
let row = permission_config_update_row::PermissionConfigUpdateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionConfigClose { data, .. } => {
let row = permission_config_close_row::PermissionConfigCloseRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionRevoke { data, .. } => {
let row = permission_revoke_row::PermissionRevokeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::PermissionRefund { data, .. } => {
let row = permission_refund_row::PermissionRefundRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedPermissionA { data, .. } => {
let row = reserved_permission_a_row::ReservedPermissionARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenBuyExactIn { data, .. } => {
let row = token_buy_exact_in_row::TokenBuyExactInRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenBuyExactOut { data, .. } => {
let row = token_buy_exact_out_row::TokenBuyExactOutRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenSellExactIn { data, .. } => {
let row = token_sell_exact_in_row::TokenSellExactInRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenSellExactOut { data, .. } => {
let row = token_sell_exact_out_row::TokenSellExactOutRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::TokenRefund { data, .. } => {
let row = token_refund_row::TokenRefundRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedTokenY { data, .. } => {
let row = reserved_token_y_row::ReservedTokenYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedTokenZ { data, .. } => {
let row = reserved_token_z_row::ReservedTokenZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedTokenA { data, .. } => {
let row = reserved_token_a_row::ReservedTokenARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::AuthorityConfigInitialize { data, .. } => {
let row = authority_config_initialize_row::AuthorityConfigInitializeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::AuthorityConfigGrant { data, .. } => {
let row = authority_config_grant_row::AuthorityConfigGrantRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::AuthorityConfigRevoke { data, .. } => {
let row = authority_config_revoke_row::AuthorityConfigRevokeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigY { data, .. } => {
let row = reserved_authority_config_y_row::ReservedAuthorityConfigYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigZ { data, .. } => {
let row = reserved_authority_config_z_row::ReservedAuthorityConfigZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigA { data, .. } => {
let row = reserved_authority_config_a_row::ReservedAuthorityConfigARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigB { data, .. } => {
let row = reserved_authority_config_b_row::ReservedAuthorityConfigBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedAuthorityConfigC { data, .. } => {
let row = reserved_authority_config_c_row::ReservedAuthorityConfigCRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::MintConfigInitialize { data, .. } => {
let row = mint_config_initialize_row::MintConfigInitializeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::MintConfigClose { data, .. } => {
let row = mint_config_close_row::MintConfigCloseRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::MintConfigUpdate { data, .. } => {
let row = mint_config_update_row::MintConfigUpdateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigY { data, .. } => {
let row = reserved_mint_config_y_row::ReservedMintConfigYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigZ { data, .. } => {
let row = reserved_mint_config_z_row::ReservedMintConfigZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigA { data, .. } => {
let row = reserved_mint_config_a_row::ReservedMintConfigARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigB { data, .. } => {
let row = reserved_mint_config_b_row::ReservedMintConfigBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedMintConfigC { data, .. } => {
let row = reserved_mint_config_c_row::ReservedMintConfigCRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::GraduateWhirlpool { data, .. } => {
let row = graduate_whirlpool_row::GraduateWhirlpoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::GraduateManual { data, .. } => {
let row = graduate_manual_row::GraduateManualRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateX { data, .. } => {
let row = reserved_graduate_x_row::ReservedGraduateXRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateY { data, .. } => {
let row = reserved_graduate_y_row::ReservedGraduateYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateZ { data, .. } => {
let row = reserved_graduate_z_row::ReservedGraduateZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateA { data, .. } => {
let row = reserved_graduate_a_row::ReservedGraduateARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateB { data, .. } => {
let row = reserved_graduate_b_row::ReservedGraduateBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedGraduateC { data, .. } => {
let row = reserved_graduate_c_row::ReservedGraduateCRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::CreateLockedlaunch { data, .. } => {
let row = create_lockedlaunch_row::CreateLockedlaunchRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::CreateLaunch { data, .. } => {
let row = create_launch_row::CreateLaunchRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::CreatePresale { data, .. } => {
let row = create_presale_row::CreatePresaleRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateY { data, .. } => {
let row = reserved_create_y_row::ReservedCreateYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateZ { data, .. } => {
let row = reserved_create_z_row::ReservedCreateZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateA { data, .. } => {
let row = reserved_create_a_row::ReservedCreateARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateB { data, .. } => {
let row = reserved_create_b_row::ReservedCreateBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedCreateC { data, .. } => {
let row = reserved_create_c_row::ReservedCreateCRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::BondingCurveInitialize { data, .. } => {
let row = bonding_curve_initialize_row::BondingCurveInitializeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::BondingCurveCollectFees { data, .. } => {
let row = bonding_curve_collect_fees_row::BondingCurveCollectFeesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::BondingCurveGraduate { data, .. } => {
let row = bonding_curve_graduate_row::BondingCurveGraduateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::BondingCurveClose { data, .. } => {
let row = bonding_curve_close_row::BondingCurveCloseRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedBondingCurveX { data, .. } => {
let row = reserved_bonding_curve_x_row::ReservedBondingCurveXRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedBondingCurveY { data, .. } => {
let row = reserved_bonding_curve_y_row::ReservedBondingCurveYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedBondingCurveZ { data, .. } => {
let row = reserved_bonding_curve_z_row::ReservedBondingCurveZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedBondingCurveA { data, .. } => {
let row = reserved_bonding_curve_a_row::ReservedBondingCurveARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::LpHarvest { data, .. } => {
let row = lp_harvest_row::LpHarvestRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::LpTransfer { data, .. } => {
let row = lp_transfer_row::LpTransferRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::LpTakeover { data, .. } => {
let row = lp_takeover_row::LpTakeoverRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpX { data, .. } => {
let row = reserved_lp_x_row::ReservedLpXRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpY { data, .. } => {
let row = reserved_lp_y_row::ReservedLpYRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpZ { data, .. } => {
let row = reserved_lp_z_row::ReservedLpZRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpA { data, .. } => {
let row = reserved_lp_a_row::ReservedLpARow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
WavebreakInstruction::ReservedLpB { data, .. } => {
let row = reserved_lp_b_row::ReservedLpBRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
}
}
}