pub mod close_bundled_position_row;
pub mod close_position_row;
pub mod close_position_with_token_extensions_row;
pub mod collect_fees_row;
pub mod collect_fees_v2_row;
pub mod collect_protocol_fees_row;
pub mod collect_protocol_fees_v2_row;
pub mod collect_reward_row;
pub mod collect_reward_v2_row;
pub mod cpi_event_row;
pub mod decrease_liquidity_row;
pub mod decrease_liquidity_v2_row;
pub mod delete_position_bundle_row;
pub mod delete_token_badge_row;
pub mod idl_include_row;
pub mod increase_liquidity_by_token_amounts_v2_row;
pub mod increase_liquidity_row;
pub mod increase_liquidity_v2_row;
pub mod initialize_adaptive_fee_tier_row;
pub mod initialize_config_extension_row;
pub mod initialize_config_row;
pub mod initialize_dynamic_tick_array_row;
pub mod initialize_fee_tier_row;
pub mod initialize_pool_row;
pub mod initialize_pool_v2_row;
pub mod initialize_pool_with_adaptive_fee_row;
pub mod initialize_position_bundle_row;
pub mod initialize_position_bundle_with_metadata_row;
pub mod initialize_reward_row;
pub mod initialize_reward_v2_row;
pub mod initialize_tick_array_row;
pub mod initialize_token_badge_row;
pub mod lock_position_row;
pub mod migrate_repurpose_reward_authority_space_row;
pub mod open_bundled_position_row;
pub mod open_position_row;
pub mod open_position_with_metadata_row;
pub mod open_position_with_token_extensions_row;
pub mod reposition_liquidity_v2_row;
pub mod reset_position_range_row;
pub mod set_adaptive_fee_constants_row;
pub mod set_collect_protocol_fees_authority_row;
pub mod set_config_extension_authority_row;
pub mod set_config_feature_flag_row;
pub mod set_default_base_fee_rate_row;
pub mod set_default_fee_rate_row;
pub mod set_default_protocol_fee_rate_row;
pub mod set_delegated_fee_authority_row;
pub mod set_fee_authority_row;
pub mod set_fee_rate_by_delegated_fee_authority_row;
pub mod set_fee_rate_row;
pub mod set_initialize_pool_authority_row;
pub mod set_preset_adaptive_fee_constants_row;
pub mod set_protocol_fee_rate_row;
pub mod set_reward_authority_by_super_authority_row;
pub mod set_reward_authority_row;
pub mod set_reward_emissions_row;
pub mod set_reward_emissions_super_authority_row;
pub mod set_reward_emissions_v2_row;
pub mod set_token_badge_attribute_row;
pub mod set_token_badge_authority_row;
pub mod swap_row;
pub mod swap_v2_row;
pub mod transfer_locked_position_row;
pub mod two_hop_swap_row;
pub mod two_hop_swap_v2_row;
pub mod update_fees_and_rewards_row;
pub use self::{
close_bundled_position_row::*, close_position_row::*,
close_position_with_token_extensions_row::*, collect_fees_row::*, collect_fees_v2_row::*,
collect_protocol_fees_row::*, collect_protocol_fees_v2_row::*, collect_reward_row::*,
collect_reward_v2_row::*, cpi_event_row::*, decrease_liquidity_row::*,
decrease_liquidity_v2_row::*, delete_position_bundle_row::*, delete_token_badge_row::*,
idl_include_row::*, increase_liquidity_by_token_amounts_v2_row::*, increase_liquidity_row::*,
increase_liquidity_v2_row::*, initialize_adaptive_fee_tier_row::*,
initialize_config_extension_row::*, initialize_config_row::*,
initialize_dynamic_tick_array_row::*, initialize_fee_tier_row::*, initialize_pool_row::*,
initialize_pool_v2_row::*, initialize_pool_with_adaptive_fee_row::*,
initialize_position_bundle_row::*, initialize_position_bundle_with_metadata_row::*,
initialize_reward_row::*, initialize_reward_v2_row::*, initialize_tick_array_row::*,
initialize_token_badge_row::*, lock_position_row::*,
migrate_repurpose_reward_authority_space_row::*, open_bundled_position_row::*,
open_position_row::*, open_position_with_metadata_row::*,
open_position_with_token_extensions_row::*, reposition_liquidity_v2_row::*,
reset_position_range_row::*, set_adaptive_fee_constants_row::*,
set_collect_protocol_fees_authority_row::*, set_config_extension_authority_row::*,
set_config_feature_flag_row::*, set_default_base_fee_rate_row::*, set_default_fee_rate_row::*,
set_default_protocol_fee_rate_row::*, set_delegated_fee_authority_row::*,
set_fee_authority_row::*, set_fee_rate_by_delegated_fee_authority_row::*, set_fee_rate_row::*,
set_initialize_pool_authority_row::*, set_preset_adaptive_fee_constants_row::*,
set_protocol_fee_rate_row::*, set_reward_authority_by_super_authority_row::*,
set_reward_authority_row::*, set_reward_emissions_row::*,
set_reward_emissions_super_authority_row::*, set_reward_emissions_v2_row::*,
set_token_badge_attribute_row::*, set_token_badge_authority_row::*, swap_row::*,
swap_v2_row::*, transfer_locked_position_row::*, two_hop_swap_row::*, two_hop_swap_v2_row::*,
update_fees_and_rewards_row::*,
};
use super::OrcaWhirlpoolInstruction;
pub struct OrcaWhirlpoolInstructionsMigration;
impl sqlx_migrator::Migration<sqlx::Postgres> for OrcaWhirlpoolInstructionsMigration {
fn app(&self) -> &str {
"orca-whirlpool"
}
fn name(&self) -> &str {
"orca_whirlpool_instructions"
}
fn operations(&self) -> Vec<Box<dyn sqlx_migrator::Operation<sqlx::Postgres>>> {
vec![
Box::new(CloseBundledPositionMigrationOperation),
Box::new(ClosePositionMigrationOperation),
Box::new(ClosePositionWithTokenExtensionsMigrationOperation),
Box::new(CollectFeesMigrationOperation),
Box::new(CollectFeesV2MigrationOperation),
Box::new(CollectProtocolFeesMigrationOperation),
Box::new(CollectProtocolFeesV2MigrationOperation),
Box::new(CollectRewardMigrationOperation),
Box::new(CollectRewardV2MigrationOperation),
Box::new(DecreaseLiquidityMigrationOperation),
Box::new(DecreaseLiquidityV2MigrationOperation),
Box::new(DeletePositionBundleMigrationOperation),
Box::new(DeleteTokenBadgeMigrationOperation),
Box::new(IdlIncludeMigrationOperation),
Box::new(IncreaseLiquidityMigrationOperation),
Box::new(IncreaseLiquidityByTokenAmountsV2MigrationOperation),
Box::new(IncreaseLiquidityV2MigrationOperation),
Box::new(InitializeAdaptiveFeeTierMigrationOperation),
Box::new(InitializeConfigMigrationOperation),
Box::new(InitializeConfigExtensionMigrationOperation),
Box::new(InitializeDynamicTickArrayMigrationOperation),
Box::new(InitializeFeeTierMigrationOperation),
Box::new(InitializePoolMigrationOperation),
Box::new(InitializePoolV2MigrationOperation),
Box::new(InitializePoolWithAdaptiveFeeMigrationOperation),
Box::new(InitializePositionBundleMigrationOperation),
Box::new(InitializePositionBundleWithMetadataMigrationOperation),
Box::new(InitializeRewardMigrationOperation),
Box::new(InitializeRewardV2MigrationOperation),
Box::new(InitializeTickArrayMigrationOperation),
Box::new(InitializeTokenBadgeMigrationOperation),
Box::new(LockPositionMigrationOperation),
Box::new(MigrateRepurposeRewardAuthoritySpaceMigrationOperation),
Box::new(OpenBundledPositionMigrationOperation),
Box::new(OpenPositionMigrationOperation),
Box::new(OpenPositionWithMetadataMigrationOperation),
Box::new(OpenPositionWithTokenExtensionsMigrationOperation),
Box::new(RepositionLiquidityV2MigrationOperation),
Box::new(ResetPositionRangeMigrationOperation),
Box::new(SetAdaptiveFeeConstantsMigrationOperation),
Box::new(SetCollectProtocolFeesAuthorityMigrationOperation),
Box::new(SetConfigExtensionAuthorityMigrationOperation),
Box::new(SetConfigFeatureFlagMigrationOperation),
Box::new(SetDefaultBaseFeeRateMigrationOperation),
Box::new(SetDefaultFeeRateMigrationOperation),
Box::new(SetDefaultProtocolFeeRateMigrationOperation),
Box::new(SetDelegatedFeeAuthorityMigrationOperation),
Box::new(SetFeeAuthorityMigrationOperation),
Box::new(SetFeeRateMigrationOperation),
Box::new(SetFeeRateByDelegatedFeeAuthorityMigrationOperation),
Box::new(SetInitializePoolAuthorityMigrationOperation),
Box::new(SetPresetAdaptiveFeeConstantsMigrationOperation),
Box::new(SetProtocolFeeRateMigrationOperation),
Box::new(SetRewardAuthorityMigrationOperation),
Box::new(SetRewardAuthorityBySuperAuthorityMigrationOperation),
Box::new(SetRewardEmissionsMigrationOperation),
Box::new(SetRewardEmissionsSuperAuthorityMigrationOperation),
Box::new(SetRewardEmissionsV2MigrationOperation),
Box::new(SetTokenBadgeAttributeMigrationOperation),
Box::new(SetTokenBadgeAuthorityMigrationOperation),
Box::new(SwapMigrationOperation),
Box::new(SwapV2MigrationOperation),
Box::new(TransferLockedPositionMigrationOperation),
Box::new(TwoHopSwapMigrationOperation),
Box::new(TwoHopSwapV2MigrationOperation),
Box::new(UpdateFeesAndRewardsMigrationOperation),
Box::new(CpiEventMigrationOperation),
]
}
fn parents(&self) -> Vec<Box<dyn sqlx_migrator::Migration<sqlx::Postgres>>> {
vec![]
}
}
pub struct OrcaWhirlpoolInstructionWithMetadata(
pub OrcaWhirlpoolInstruction,
pub carbon_core::instruction::InstructionMetadata,
pub Vec<solana_instruction::AccountMeta>,
);
impl
From<(
OrcaWhirlpoolInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
)> for OrcaWhirlpoolInstructionWithMetadata
{
fn from(
value: (
OrcaWhirlpoolInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
),
) -> Self {
OrcaWhirlpoolInstructionWithMetadata(value.0, value.1, value.2)
}
}
#[async_trait::async_trait]
impl carbon_core::postgres::operations::Insert for OrcaWhirlpoolInstructionWithMetadata {
async fn insert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let OrcaWhirlpoolInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) =
self;
match decoded_instruction {
OrcaWhirlpoolInstruction::CloseBundledPosition { data, .. } => {
let row = close_bundled_position_row::CloseBundledPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::ClosePosition { data, .. } => {
let row = close_position_row::ClosePositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::ClosePositionWithTokenExtensions { data, .. } => {
let row = close_position_with_token_extensions_row::ClosePositionWithTokenExtensionsRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectFees { data, .. } => {
let row = collect_fees_row::CollectFeesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectFeesV2 { data, .. } => {
let row = collect_fees_v2_row::CollectFeesV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectProtocolFees { data, .. } => {
let row = collect_protocol_fees_row::CollectProtocolFeesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectProtocolFeesV2 { data, .. } => {
let row = collect_protocol_fees_v2_row::CollectProtocolFeesV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectReward { data, .. } => {
let row = collect_reward_row::CollectRewardRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectRewardV2 { data, .. } => {
let row = collect_reward_v2_row::CollectRewardV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::DecreaseLiquidity { data, .. } => {
let row = decrease_liquidity_row::DecreaseLiquidityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::DecreaseLiquidityV2 { data, .. } => {
let row = decrease_liquidity_v2_row::DecreaseLiquidityV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::DeletePositionBundle { data, .. } => {
let row = delete_position_bundle_row::DeletePositionBundleRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::DeleteTokenBadge { data, .. } => {
let row = delete_token_badge_row::DeleteTokenBadgeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::IdlInclude { data, .. } => {
let row = idl_include_row::IdlIncludeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::IncreaseLiquidity { data, .. } => {
let row = increase_liquidity_row::IncreaseLiquidityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::IncreaseLiquidityByTokenAmountsV2 { data, .. } => {
let row = increase_liquidity_by_token_amounts_v2_row::IncreaseLiquidityByTokenAmountsV2Row::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::IncreaseLiquidityV2 { data, .. } => {
let row = increase_liquidity_v2_row::IncreaseLiquidityV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeAdaptiveFeeTier { data, .. } => {
let row =
initialize_adaptive_fee_tier_row::InitializeAdaptiveFeeTierRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeConfig { data, .. } => {
let row = initialize_config_row::InitializeConfigRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeConfigExtension { data, .. } => {
let row = initialize_config_extension_row::InitializeConfigExtensionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeDynamicTickArray { data, .. } => {
let row =
initialize_dynamic_tick_array_row::InitializeDynamicTickArrayRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeFeeTier { data, .. } => {
let row = initialize_fee_tier_row::InitializeFeeTierRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePool { data, .. } => {
let row = initialize_pool_row::InitializePoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePoolV2 { data, .. } => {
let row = initialize_pool_v2_row::InitializePoolV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePoolWithAdaptiveFee { data, .. } => {
let row = initialize_pool_with_adaptive_fee_row::InitializePoolWithAdaptiveFeeRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePositionBundle { data, .. } => {
let row = initialize_position_bundle_row::InitializePositionBundleRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePositionBundleWithMetadata { data, .. } => {
let row = initialize_position_bundle_with_metadata_row::InitializePositionBundleWithMetadataRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeReward { data, .. } => {
let row = initialize_reward_row::InitializeRewardRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeRewardV2 { data, .. } => {
let row = initialize_reward_v2_row::InitializeRewardV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeTickArray { data, .. } => {
let row = initialize_tick_array_row::InitializeTickArrayRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeTokenBadge { data, .. } => {
let row = initialize_token_badge_row::InitializeTokenBadgeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::LockPosition { data, .. } => {
let row = lock_position_row::LockPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::MigrateRepurposeRewardAuthoritySpace { data, .. } => {
let row = migrate_repurpose_reward_authority_space_row::MigrateRepurposeRewardAuthoritySpaceRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::OpenBundledPosition { data, .. } => {
let row = open_bundled_position_row::OpenBundledPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::OpenPosition { data, .. } => {
let row = open_position_row::OpenPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::OpenPositionWithMetadata { data, .. } => {
let row = open_position_with_metadata_row::OpenPositionWithMetadataRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::OpenPositionWithTokenExtensions { data, .. } => {
let row = open_position_with_token_extensions_row::OpenPositionWithTokenExtensionsRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::RepositionLiquidityV2 { data, .. } => {
let row = reposition_liquidity_v2_row::RepositionLiquidityV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::ResetPositionRange { data, .. } => {
let row = reset_position_range_row::ResetPositionRangeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetAdaptiveFeeConstants { data, .. } => {
let row = set_adaptive_fee_constants_row::SetAdaptiveFeeConstantsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetCollectProtocolFeesAuthority { data, .. } => {
let row = set_collect_protocol_fees_authority_row::SetCollectProtocolFeesAuthorityRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetConfigExtensionAuthority { data, .. } => {
let row =
set_config_extension_authority_row::SetConfigExtensionAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetConfigFeatureFlag { data, .. } => {
let row = set_config_feature_flag_row::SetConfigFeatureFlagRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetDefaultBaseFeeRate { data, .. } => {
let row = set_default_base_fee_rate_row::SetDefaultBaseFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetDefaultFeeRate { data, .. } => {
let row = set_default_fee_rate_row::SetDefaultFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetDefaultProtocolFeeRate { data, .. } => {
let row =
set_default_protocol_fee_rate_row::SetDefaultProtocolFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetDelegatedFeeAuthority { data, .. } => {
let row = set_delegated_fee_authority_row::SetDelegatedFeeAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetFeeAuthority { data, .. } => {
let row = set_fee_authority_row::SetFeeAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetFeeRate { data, .. } => {
let row = set_fee_rate_row::SetFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetFeeRateByDelegatedFeeAuthority { data, .. } => {
let row = set_fee_rate_by_delegated_fee_authority_row::SetFeeRateByDelegatedFeeAuthorityRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetInitializePoolAuthority { data, .. } => {
let row =
set_initialize_pool_authority_row::SetInitializePoolAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetPresetAdaptiveFeeConstants { data, .. } => {
let row = set_preset_adaptive_fee_constants_row::SetPresetAdaptiveFeeConstantsRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetProtocolFeeRate { data, .. } => {
let row = set_protocol_fee_rate_row::SetProtocolFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardAuthority { data, .. } => {
let row = set_reward_authority_row::SetRewardAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardAuthorityBySuperAuthority { data, .. } => {
let row = set_reward_authority_by_super_authority_row::SetRewardAuthorityBySuperAuthorityRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardEmissions { data, .. } => {
let row = set_reward_emissions_row::SetRewardEmissionsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardEmissionsSuperAuthority { data, .. } => {
let row = set_reward_emissions_super_authority_row::SetRewardEmissionsSuperAuthorityRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardEmissionsV2 { data, .. } => {
let row = set_reward_emissions_v2_row::SetRewardEmissionsV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetTokenBadgeAttribute { data, .. } => {
let row = set_token_badge_attribute_row::SetTokenBadgeAttributeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetTokenBadgeAuthority { data, .. } => {
let row = set_token_badge_authority_row::SetTokenBadgeAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::Swap { data, .. } => {
let row = swap_row::SwapRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SwapV2 { data, .. } => {
let row = swap_v2_row::SwapV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::TransferLockedPosition { data, .. } => {
let row = transfer_locked_position_row::TransferLockedPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::TwoHopSwap { data, .. } => {
let row = two_hop_swap_row::TwoHopSwapRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::TwoHopSwapV2 { data, .. } => {
let row = two_hop_swap_v2_row::TwoHopSwapV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::UpdateFeesAndRewards { data, .. } => {
let row = update_fees_and_rewards_row::UpdateFeesAndRewardsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CpiEvent { data, .. } => {
let row = cpi_event_row::CpiEventRow::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 OrcaWhirlpoolInstructionWithMetadata {
async fn upsert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let OrcaWhirlpoolInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) =
self;
match decoded_instruction {
OrcaWhirlpoolInstruction::CloseBundledPosition { data, .. } => {
let row = close_bundled_position_row::CloseBundledPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::ClosePosition { data, .. } => {
let row = close_position_row::ClosePositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::ClosePositionWithTokenExtensions { data, .. } => {
let row = close_position_with_token_extensions_row::ClosePositionWithTokenExtensionsRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectFees { data, .. } => {
let row = collect_fees_row::CollectFeesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectFeesV2 { data, .. } => {
let row = collect_fees_v2_row::CollectFeesV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectProtocolFees { data, .. } => {
let row = collect_protocol_fees_row::CollectProtocolFeesRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectProtocolFeesV2 { data, .. } => {
let row = collect_protocol_fees_v2_row::CollectProtocolFeesV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectReward { data, .. } => {
let row = collect_reward_row::CollectRewardRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CollectRewardV2 { data, .. } => {
let row = collect_reward_v2_row::CollectRewardV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::DecreaseLiquidity { data, .. } => {
let row = decrease_liquidity_row::DecreaseLiquidityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::DecreaseLiquidityV2 { data, .. } => {
let row = decrease_liquidity_v2_row::DecreaseLiquidityV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::DeletePositionBundle { data, .. } => {
let row = delete_position_bundle_row::DeletePositionBundleRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::DeleteTokenBadge { data, .. } => {
let row = delete_token_badge_row::DeleteTokenBadgeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::IdlInclude { data, .. } => {
let row = idl_include_row::IdlIncludeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::IncreaseLiquidity { data, .. } => {
let row = increase_liquidity_row::IncreaseLiquidityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::IncreaseLiquidityByTokenAmountsV2 { data, .. } => {
let row = increase_liquidity_by_token_amounts_v2_row::IncreaseLiquidityByTokenAmountsV2Row::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::IncreaseLiquidityV2 { data, .. } => {
let row = increase_liquidity_v2_row::IncreaseLiquidityV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeAdaptiveFeeTier { data, .. } => {
let row =
initialize_adaptive_fee_tier_row::InitializeAdaptiveFeeTierRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeConfig { data, .. } => {
let row = initialize_config_row::InitializeConfigRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeConfigExtension { data, .. } => {
let row = initialize_config_extension_row::InitializeConfigExtensionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeDynamicTickArray { data, .. } => {
let row =
initialize_dynamic_tick_array_row::InitializeDynamicTickArrayRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeFeeTier { data, .. } => {
let row = initialize_fee_tier_row::InitializeFeeTierRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePool { data, .. } => {
let row = initialize_pool_row::InitializePoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePoolV2 { data, .. } => {
let row = initialize_pool_v2_row::InitializePoolV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePoolWithAdaptiveFee { data, .. } => {
let row = initialize_pool_with_adaptive_fee_row::InitializePoolWithAdaptiveFeeRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePositionBundle { data, .. } => {
let row = initialize_position_bundle_row::InitializePositionBundleRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializePositionBundleWithMetadata { data, .. } => {
let row = initialize_position_bundle_with_metadata_row::InitializePositionBundleWithMetadataRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeReward { data, .. } => {
let row = initialize_reward_row::InitializeRewardRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeRewardV2 { data, .. } => {
let row = initialize_reward_v2_row::InitializeRewardV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeTickArray { data, .. } => {
let row = initialize_tick_array_row::InitializeTickArrayRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::InitializeTokenBadge { data, .. } => {
let row = initialize_token_badge_row::InitializeTokenBadgeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::LockPosition { data, .. } => {
let row = lock_position_row::LockPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::MigrateRepurposeRewardAuthoritySpace { data, .. } => {
let row = migrate_repurpose_reward_authority_space_row::MigrateRepurposeRewardAuthoritySpaceRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::OpenBundledPosition { data, .. } => {
let row = open_bundled_position_row::OpenBundledPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::OpenPosition { data, .. } => {
let row = open_position_row::OpenPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::OpenPositionWithMetadata { data, .. } => {
let row = open_position_with_metadata_row::OpenPositionWithMetadataRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::OpenPositionWithTokenExtensions { data, .. } => {
let row = open_position_with_token_extensions_row::OpenPositionWithTokenExtensionsRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::RepositionLiquidityV2 { data, .. } => {
let row = reposition_liquidity_v2_row::RepositionLiquidityV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::ResetPositionRange { data, .. } => {
let row = reset_position_range_row::ResetPositionRangeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetAdaptiveFeeConstants { data, .. } => {
let row = set_adaptive_fee_constants_row::SetAdaptiveFeeConstantsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetCollectProtocolFeesAuthority { data, .. } => {
let row = set_collect_protocol_fees_authority_row::SetCollectProtocolFeesAuthorityRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetConfigExtensionAuthority { data, .. } => {
let row =
set_config_extension_authority_row::SetConfigExtensionAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetConfigFeatureFlag { data, .. } => {
let row = set_config_feature_flag_row::SetConfigFeatureFlagRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetDefaultBaseFeeRate { data, .. } => {
let row = set_default_base_fee_rate_row::SetDefaultBaseFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetDefaultFeeRate { data, .. } => {
let row = set_default_fee_rate_row::SetDefaultFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetDefaultProtocolFeeRate { data, .. } => {
let row =
set_default_protocol_fee_rate_row::SetDefaultProtocolFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetDelegatedFeeAuthority { data, .. } => {
let row = set_delegated_fee_authority_row::SetDelegatedFeeAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetFeeAuthority { data, .. } => {
let row = set_fee_authority_row::SetFeeAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetFeeRate { data, .. } => {
let row = set_fee_rate_row::SetFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetFeeRateByDelegatedFeeAuthority { data, .. } => {
let row = set_fee_rate_by_delegated_fee_authority_row::SetFeeRateByDelegatedFeeAuthorityRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetInitializePoolAuthority { data, .. } => {
let row =
set_initialize_pool_authority_row::SetInitializePoolAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetPresetAdaptiveFeeConstants { data, .. } => {
let row = set_preset_adaptive_fee_constants_row::SetPresetAdaptiveFeeConstantsRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetProtocolFeeRate { data, .. } => {
let row = set_protocol_fee_rate_row::SetProtocolFeeRateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardAuthority { data, .. } => {
let row = set_reward_authority_row::SetRewardAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardAuthorityBySuperAuthority { data, .. } => {
let row = set_reward_authority_by_super_authority_row::SetRewardAuthorityBySuperAuthorityRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardEmissions { data, .. } => {
let row = set_reward_emissions_row::SetRewardEmissionsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardEmissionsSuperAuthority { data, .. } => {
let row = set_reward_emissions_super_authority_row::SetRewardEmissionsSuperAuthorityRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetRewardEmissionsV2 { data, .. } => {
let row = set_reward_emissions_v2_row::SetRewardEmissionsV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetTokenBadgeAttribute { data, .. } => {
let row = set_token_badge_attribute_row::SetTokenBadgeAttributeRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SetTokenBadgeAuthority { data, .. } => {
let row = set_token_badge_authority_row::SetTokenBadgeAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::Swap { data, .. } => {
let row = swap_row::SwapRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::SwapV2 { data, .. } => {
let row = swap_v2_row::SwapV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::TransferLockedPosition { data, .. } => {
let row = transfer_locked_position_row::TransferLockedPositionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::TwoHopSwap { data, .. } => {
let row = two_hop_swap_row::TwoHopSwapRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::TwoHopSwapV2 { data, .. } => {
let row = two_hop_swap_v2_row::TwoHopSwapV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::UpdateFeesAndRewards { data, .. } => {
let row = update_fees_and_rewards_row::UpdateFeesAndRewardsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
OrcaWhirlpoolInstruction::CpiEvent { data, .. } => {
let row = cpi_event_row::CpiEventRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
}
}
}