pub mod add_supply_row;
pub mod add_tokens_row;
pub mod close_pool_row;
pub mod create_dual_farm_row;
pub mod create_farm_row;
pub mod create_pool_row;
pub mod create_provider_row;
pub mod create_state_row;
pub mod create_triple_farm_row;
pub mod reset_farm_row;
pub mod swap_row;
pub mod update_fees_row;
pub mod update_reward_tokens_row;
pub mod withdraw_buyback_row;
pub mod withdraw_lp_fee_row;
pub mod withdraw_mercanti_fee_row;
pub mod withdraw_project_fee_row;
pub mod withdraw_rewards_row;
pub mod withdraw_shares_row;
pub use self::{
add_supply_row::*, add_tokens_row::*, close_pool_row::*, create_dual_farm_row::*,
create_farm_row::*, create_pool_row::*, create_provider_row::*, create_state_row::*,
create_triple_farm_row::*, reset_farm_row::*, swap_row::*, update_fees_row::*,
update_reward_tokens_row::*, withdraw_buyback_row::*, withdraw_lp_fee_row::*,
withdraw_mercanti_fee_row::*, withdraw_project_fee_row::*, withdraw_rewards_row::*,
withdraw_shares_row::*,
};
use super::BonkswapInstruction;
pub struct BonkswapInstructionsMigration;
impl sqlx_migrator::Migration<sqlx::Postgres> for BonkswapInstructionsMigration {
fn app(&self) -> &str {
"bonkswap"
}
fn name(&self) -> &str {
"bonkswap_instructions"
}
fn operations(&self) -> Vec<Box<dyn sqlx_migrator::Operation<sqlx::Postgres>>> {
vec![
Box::new(AddSupplyMigrationOperation),
Box::new(AddTokensMigrationOperation),
Box::new(ClosePoolMigrationOperation),
Box::new(CreateDualFarmMigrationOperation),
Box::new(CreateFarmMigrationOperation),
Box::new(CreatePoolMigrationOperation),
Box::new(CreateProviderMigrationOperation),
Box::new(CreateStateMigrationOperation),
Box::new(CreateTripleFarmMigrationOperation),
Box::new(ResetFarmMigrationOperation),
Box::new(SwapMigrationOperation),
Box::new(UpdateFeesMigrationOperation),
Box::new(UpdateRewardTokensMigrationOperation),
Box::new(WithdrawBuybackMigrationOperation),
Box::new(WithdrawLpFeeMigrationOperation),
Box::new(WithdrawMercantiFeeMigrationOperation),
Box::new(WithdrawProjectFeeMigrationOperation),
Box::new(WithdrawRewardsMigrationOperation),
Box::new(WithdrawSharesMigrationOperation),
]
}
fn parents(&self) -> Vec<Box<dyn sqlx_migrator::Migration<sqlx::Postgres>>> {
vec![]
}
}
pub struct BonkswapInstructionWithMetadata(
pub BonkswapInstruction,
pub carbon_core::instruction::InstructionMetadata,
pub Vec<solana_instruction::AccountMeta>,
);
impl
From<(
BonkswapInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
)> for BonkswapInstructionWithMetadata
{
fn from(
value: (
BonkswapInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
),
) -> Self {
BonkswapInstructionWithMetadata(value.0, value.1, value.2)
}
}
#[async_trait::async_trait]
impl carbon_core::postgres::operations::Insert for BonkswapInstructionWithMetadata {
async fn insert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let BonkswapInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) = self;
match decoded_instruction {
BonkswapInstruction::CreatePool { data, .. } => {
let row = create_pool_row::CreatePoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateProvider { data, .. } => {
let row = create_provider_row::CreateProviderRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateState { data, .. } => {
let row = create_state_row::CreateStateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::AddTokens { data, .. } => {
let row = add_tokens_row::AddTokensRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawBuyback { data, .. } => {
let row = withdraw_buyback_row::WithdrawBuybackRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::Swap { data, .. } => {
let row = swap_row::SwapRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawShares { data, .. } => {
let row = withdraw_shares_row::WithdrawSharesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawLpFee { data, .. } => {
let row = withdraw_lp_fee_row::WithdrawLpFeeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawProjectFee { data, .. } => {
let row = withdraw_project_fee_row::WithdrawProjectFeeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateFarm { data, .. } => {
let row = create_farm_row::CreateFarmRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateDualFarm { data, .. } => {
let row = create_dual_farm_row::CreateDualFarmRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateTripleFarm { data, .. } => {
let row = create_triple_farm_row::CreateTripleFarmRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawRewards { data, .. } => {
let row = withdraw_rewards_row::WithdrawRewardsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::ClosePool { data, .. } => {
let row = close_pool_row::ClosePoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawMercantiFee { data, .. } => {
let row = withdraw_mercanti_fee_row::WithdrawMercantiFeeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::AddSupply { data, .. } => {
let row = add_supply_row::AddSupplyRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::UpdateFees { data, .. } => {
let row = update_fees_row::UpdateFeesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::ResetFarm { data, .. } => {
let row = reset_farm_row::ResetFarmRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
BonkswapInstruction::UpdateRewardTokens { data, .. } => {
let row = update_reward_tokens_row::UpdateRewardTokensRow::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 BonkswapInstructionWithMetadata {
async fn upsert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let BonkswapInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) = self;
match decoded_instruction {
BonkswapInstruction::CreatePool { data, .. } => {
let row = create_pool_row::CreatePoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateProvider { data, .. } => {
let row = create_provider_row::CreateProviderRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateState { data, .. } => {
let row = create_state_row::CreateStateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::AddTokens { data, .. } => {
let row = add_tokens_row::AddTokensRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawBuyback { data, .. } => {
let row = withdraw_buyback_row::WithdrawBuybackRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::Swap { data, .. } => {
let row = swap_row::SwapRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawShares { data, .. } => {
let row = withdraw_shares_row::WithdrawSharesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawLpFee { data, .. } => {
let row = withdraw_lp_fee_row::WithdrawLpFeeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawProjectFee { data, .. } => {
let row = withdraw_project_fee_row::WithdrawProjectFeeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateFarm { data, .. } => {
let row = create_farm_row::CreateFarmRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateDualFarm { data, .. } => {
let row = create_dual_farm_row::CreateDualFarmRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::CreateTripleFarm { data, .. } => {
let row = create_triple_farm_row::CreateTripleFarmRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawRewards { data, .. } => {
let row = withdraw_rewards_row::WithdrawRewardsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::ClosePool { data, .. } => {
let row = close_pool_row::ClosePoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::WithdrawMercantiFee { data, .. } => {
let row = withdraw_mercanti_fee_row::WithdrawMercantiFeeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::AddSupply { data, .. } => {
let row = add_supply_row::AddSupplyRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::UpdateFees { data, .. } => {
let row = update_fees_row::UpdateFeesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::ResetFarm { data, .. } => {
let row = reset_farm_row::ResetFarmRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
BonkswapInstruction::UpdateRewardTokens { data, .. } => {
let row = update_reward_tokens_row::UpdateRewardTokensRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
}
}
}