pub mod add_liquidity_token_pool_row;
pub mod close_escrow_value_mint_ata_admin_row;
pub mod close_nft_list_row;
pub mod close_order_book_row;
pub mod close_token_orderbook_row;
pub mod close_token_pool_row;
pub mod create_nft_list_row;
pub mod create_order_book_row;
pub mod create_program_version_row;
pub mod create_token_orderbook_row;
pub mod create_token_pool_row;
pub mod extend_loan_core_row;
pub mod extend_loan_v3_compressed_row;
pub mod extend_loan_v3_row;
pub mod extend_token_loan_row;
pub mod foreclose_loan_core_row;
pub mod foreclose_loan_v3_compressed_row;
pub mod foreclose_loan_v3_row;
pub mod foreclose_token_loan_row;
pub mod offer_loan_row;
pub mod repay_loan_core_row;
pub mod repay_loan_v3_compressed_row;
pub mod repay_loan_v3_row;
pub mod repay_token_loan_row;
pub mod rescind_loan_row;
pub mod take_loan_core_row;
pub mod take_loan_v3_compressed_row;
pub mod take_loan_v3_row;
pub mod take_token_loan_row;
pub mod update_nft_list_row;
pub mod update_order_book_row;
pub mod update_program_version_row;
pub mod update_token_orderbook_row;
pub mod update_token_pool_row;
pub mod withdraw_liquidity_token_pool_row;
pub use self::{
add_liquidity_token_pool_row::*, close_escrow_value_mint_ata_admin_row::*,
close_nft_list_row::*, close_order_book_row::*, close_token_orderbook_row::*,
close_token_pool_row::*, create_nft_list_row::*, create_order_book_row::*,
create_program_version_row::*, create_token_orderbook_row::*, create_token_pool_row::*,
extend_loan_core_row::*, extend_loan_v3_compressed_row::*, extend_loan_v3_row::*,
extend_token_loan_row::*, foreclose_loan_core_row::*, foreclose_loan_v3_compressed_row::*,
foreclose_loan_v3_row::*, foreclose_token_loan_row::*, offer_loan_row::*,
repay_loan_core_row::*, repay_loan_v3_compressed_row::*, repay_loan_v3_row::*,
repay_token_loan_row::*, rescind_loan_row::*, take_loan_core_row::*,
take_loan_v3_compressed_row::*, take_loan_v3_row::*, take_token_loan_row::*,
update_nft_list_row::*, update_order_book_row::*, update_program_version_row::*,
update_token_orderbook_row::*, update_token_pool_row::*, withdraw_liquidity_token_pool_row::*,
};
use super::SharkyInstruction;
pub struct SharkyInstructionsMigration;
impl sqlx_migrator::Migration<sqlx::Postgres> for SharkyInstructionsMigration {
fn app(&self) -> &str {
"sharky"
}
fn name(&self) -> &str {
"sharky_instructions"
}
fn operations(&self) -> Vec<Box<dyn sqlx_migrator::Operation<sqlx::Postgres>>> {
vec![
Box::new(AddLiquidityTokenPoolMigrationOperation),
Box::new(CloseEscrowValueMintAtaAdminMigrationOperation),
Box::new(CloseNftListMigrationOperation),
Box::new(CloseOrderBookMigrationOperation),
Box::new(CloseTokenOrderbookMigrationOperation),
Box::new(CloseTokenPoolMigrationOperation),
Box::new(CreateNftListMigrationOperation),
Box::new(CreateOrderBookMigrationOperation),
Box::new(CreateProgramVersionMigrationOperation),
Box::new(CreateTokenOrderbookMigrationOperation),
Box::new(CreateTokenPoolMigrationOperation),
Box::new(ExtendLoanCoreMigrationOperation),
Box::new(ExtendLoanV3MigrationOperation),
Box::new(ExtendLoanV3CompressedMigrationOperation),
Box::new(ExtendTokenLoanMigrationOperation),
Box::new(ForecloseLoanCoreMigrationOperation),
Box::new(ForecloseLoanV3MigrationOperation),
Box::new(ForecloseLoanV3CompressedMigrationOperation),
Box::new(ForecloseTokenLoanMigrationOperation),
Box::new(OfferLoanMigrationOperation),
Box::new(RepayLoanCoreMigrationOperation),
Box::new(RepayLoanV3MigrationOperation),
Box::new(RepayLoanV3CompressedMigrationOperation),
Box::new(RepayTokenLoanMigrationOperation),
Box::new(RescindLoanMigrationOperation),
Box::new(TakeLoanCoreMigrationOperation),
Box::new(TakeLoanV3MigrationOperation),
Box::new(TakeLoanV3CompressedMigrationOperation),
Box::new(TakeTokenLoanMigrationOperation),
Box::new(UpdateNftListMigrationOperation),
Box::new(UpdateOrderBookMigrationOperation),
Box::new(UpdateProgramVersionMigrationOperation),
Box::new(UpdateTokenOrderbookMigrationOperation),
Box::new(UpdateTokenPoolMigrationOperation),
Box::new(WithdrawLiquidityTokenPoolMigrationOperation),
]
}
fn parents(&self) -> Vec<Box<dyn sqlx_migrator::Migration<sqlx::Postgres>>> {
vec![]
}
}
pub struct SharkyInstructionWithMetadata(
pub SharkyInstruction,
pub carbon_core::instruction::InstructionMetadata,
pub Vec<solana_instruction::AccountMeta>,
);
impl
From<(
SharkyInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
)> for SharkyInstructionWithMetadata
{
fn from(
value: (
SharkyInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
),
) -> Self {
SharkyInstructionWithMetadata(value.0, value.1, value.2)
}
}
#[async_trait::async_trait]
impl carbon_core::postgres::operations::Insert for SharkyInstructionWithMetadata {
async fn insert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let SharkyInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) = self;
match decoded_instruction {
SharkyInstruction::AddLiquidityTokenPool { data, .. } => {
let row = add_liquidity_token_pool_row::AddLiquidityTokenPoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CloseEscrowValueMintAtaAdmin { data, .. } => {
let row = close_escrow_value_mint_ata_admin_row::CloseEscrowValueMintAtaAdminRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CloseNftList { data, .. } => {
let row = close_nft_list_row::CloseNftListRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CloseOrderBook { data, .. } => {
let row = close_order_book_row::CloseOrderBookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CloseTokenOrderbook { data, .. } => {
let row = close_token_orderbook_row::CloseTokenOrderbookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CloseTokenPool { data, .. } => {
let row = close_token_pool_row::CloseTokenPoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CreateNftList { data, .. } => {
let row = create_nft_list_row::CreateNftListRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CreateOrderBook { data, .. } => {
let row = create_order_book_row::CreateOrderBookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CreateProgramVersion { data, .. } => {
let row = create_program_version_row::CreateProgramVersionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CreateTokenOrderbook { data, .. } => {
let row = create_token_orderbook_row::CreateTokenOrderbookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::CreateTokenPool { data, .. } => {
let row = create_token_pool_row::CreateTokenPoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::ExtendLoanCore { data, .. } => {
let row = extend_loan_core_row::ExtendLoanCoreRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::ExtendLoanV3 { data, .. } => {
let row = extend_loan_v3_row::ExtendLoanV3Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::ExtendLoanV3Compressed { data, .. } => {
let row = extend_loan_v3_compressed_row::ExtendLoanV3CompressedRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::ExtendTokenLoan { data, .. } => {
let row = extend_token_loan_row::ExtendTokenLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::ForecloseLoanCore { data, .. } => {
let row = foreclose_loan_core_row::ForecloseLoanCoreRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::ForecloseLoanV3 { data, .. } => {
let row = foreclose_loan_v3_row::ForecloseLoanV3Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::ForecloseLoanV3Compressed { data, .. } => {
let row =
foreclose_loan_v3_compressed_row::ForecloseLoanV3CompressedRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::ForecloseTokenLoan { data, .. } => {
let row = foreclose_token_loan_row::ForecloseTokenLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::OfferLoan { data, .. } => {
let row = offer_loan_row::OfferLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::RepayLoanCore { data, .. } => {
let row = repay_loan_core_row::RepayLoanCoreRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::RepayLoanV3 { data, .. } => {
let row = repay_loan_v3_row::RepayLoanV3Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::RepayLoanV3Compressed { data, .. } => {
let row = repay_loan_v3_compressed_row::RepayLoanV3CompressedRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::RepayTokenLoan { data, .. } => {
let row = repay_token_loan_row::RepayTokenLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::RescindLoan { data, .. } => {
let row = rescind_loan_row::RescindLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::TakeLoanCore { data, .. } => {
let row = take_loan_core_row::TakeLoanCoreRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::TakeLoanV3 { data, .. } => {
let row = take_loan_v3_row::TakeLoanV3Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::TakeLoanV3Compressed { data, .. } => {
let row = take_loan_v3_compressed_row::TakeLoanV3CompressedRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::TakeTokenLoan { data, .. } => {
let row = take_token_loan_row::TakeTokenLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateNftList { data, .. } => {
let row = update_nft_list_row::UpdateNftListRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateOrderBook { data, .. } => {
let row = update_order_book_row::UpdateOrderBookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateProgramVersion { data, .. } => {
let row = update_program_version_row::UpdateProgramVersionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateTokenOrderbook { data, .. } => {
let row = update_token_orderbook_row::UpdateTokenOrderbookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateTokenPool { data, .. } => {
let row = update_token_pool_row::UpdateTokenPoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
SharkyInstruction::WithdrawLiquidityTokenPool { data, .. } => {
let row =
withdraw_liquidity_token_pool_row::WithdrawLiquidityTokenPoolRow::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 SharkyInstructionWithMetadata {
async fn upsert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let SharkyInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) = self;
match decoded_instruction {
SharkyInstruction::AddLiquidityTokenPool { data, .. } => {
let row = add_liquidity_token_pool_row::AddLiquidityTokenPoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CloseEscrowValueMintAtaAdmin { data, .. } => {
let row = close_escrow_value_mint_ata_admin_row::CloseEscrowValueMintAtaAdminRow::from_parts(data.clone(), metadata.clone(), raw_accounts.clone());
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CloseNftList { data, .. } => {
let row = close_nft_list_row::CloseNftListRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CloseOrderBook { data, .. } => {
let row = close_order_book_row::CloseOrderBookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CloseTokenOrderbook { data, .. } => {
let row = close_token_orderbook_row::CloseTokenOrderbookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CloseTokenPool { data, .. } => {
let row = close_token_pool_row::CloseTokenPoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CreateNftList { data, .. } => {
let row = create_nft_list_row::CreateNftListRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CreateOrderBook { data, .. } => {
let row = create_order_book_row::CreateOrderBookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CreateProgramVersion { data, .. } => {
let row = create_program_version_row::CreateProgramVersionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CreateTokenOrderbook { data, .. } => {
let row = create_token_orderbook_row::CreateTokenOrderbookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::CreateTokenPool { data, .. } => {
let row = create_token_pool_row::CreateTokenPoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::ExtendLoanCore { data, .. } => {
let row = extend_loan_core_row::ExtendLoanCoreRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::ExtendLoanV3 { data, .. } => {
let row = extend_loan_v3_row::ExtendLoanV3Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::ExtendLoanV3Compressed { data, .. } => {
let row = extend_loan_v3_compressed_row::ExtendLoanV3CompressedRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::ExtendTokenLoan { data, .. } => {
let row = extend_token_loan_row::ExtendTokenLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::ForecloseLoanCore { data, .. } => {
let row = foreclose_loan_core_row::ForecloseLoanCoreRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::ForecloseLoanV3 { data, .. } => {
let row = foreclose_loan_v3_row::ForecloseLoanV3Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::ForecloseLoanV3Compressed { data, .. } => {
let row =
foreclose_loan_v3_compressed_row::ForecloseLoanV3CompressedRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::ForecloseTokenLoan { data, .. } => {
let row = foreclose_token_loan_row::ForecloseTokenLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::OfferLoan { data, .. } => {
let row = offer_loan_row::OfferLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::RepayLoanCore { data, .. } => {
let row = repay_loan_core_row::RepayLoanCoreRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::RepayLoanV3 { data, .. } => {
let row = repay_loan_v3_row::RepayLoanV3Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::RepayLoanV3Compressed { data, .. } => {
let row = repay_loan_v3_compressed_row::RepayLoanV3CompressedRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::RepayTokenLoan { data, .. } => {
let row = repay_token_loan_row::RepayTokenLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::RescindLoan { data, .. } => {
let row = rescind_loan_row::RescindLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::TakeLoanCore { data, .. } => {
let row = take_loan_core_row::TakeLoanCoreRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::TakeLoanV3 { data, .. } => {
let row = take_loan_v3_row::TakeLoanV3Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::TakeLoanV3Compressed { data, .. } => {
let row = take_loan_v3_compressed_row::TakeLoanV3CompressedRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::TakeTokenLoan { data, .. } => {
let row = take_token_loan_row::TakeTokenLoanRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateNftList { data, .. } => {
let row = update_nft_list_row::UpdateNftListRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateOrderBook { data, .. } => {
let row = update_order_book_row::UpdateOrderBookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateProgramVersion { data, .. } => {
let row = update_program_version_row::UpdateProgramVersionRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateTokenOrderbook { data, .. } => {
let row = update_token_orderbook_row::UpdateTokenOrderbookRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::UpdateTokenPool { data, .. } => {
let row = update_token_pool_row::UpdateTokenPoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
SharkyInstruction::WithdrawLiquidityTokenPool { data, .. } => {
let row =
withdraw_liquidity_token_pool_row::WithdrawLiquidityTokenPoolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
}
}
}