pub mod change_status_row;
pub mod claim_row;
pub mod close_claim_account_row;
pub mod collect_revenue_row;
pub mod cpi_event_row;
pub mod init_claim_account_row;
pub mod init_liquidity_row;
pub mod init_new_protocol_row;
pub mod init_token_reserve_row;
pub mod operate_row;
pub mod pause_user_row;
pub mod pre_operate_row;
pub mod unpause_user_row;
pub mod update_authority_row;
pub mod update_auths_row;
pub mod update_exchange_price_row;
pub mod update_guardians_row;
pub mod update_rate_data_v1_row;
pub mod update_rate_data_v2_row;
pub mod update_revenue_collector_row;
pub mod update_token_config_row;
pub mod update_user_borrow_config_row;
pub mod update_user_class_row;
pub mod update_user_supply_config_row;
pub mod update_user_withdrawal_limit_row;
pub use self::{
change_status_row::*, claim_row::*, close_claim_account_row::*, collect_revenue_row::*,
cpi_event_row::*, init_claim_account_row::*, init_liquidity_row::*, init_new_protocol_row::*,
init_token_reserve_row::*, operate_row::*, pause_user_row::*, pre_operate_row::*,
unpause_user_row::*, update_authority_row::*, update_auths_row::*,
update_exchange_price_row::*, update_guardians_row::*, update_rate_data_v1_row::*,
update_rate_data_v2_row::*, update_revenue_collector_row::*, update_token_config_row::*,
update_user_borrow_config_row::*, update_user_class_row::*, update_user_supply_config_row::*,
update_user_withdrawal_limit_row::*,
};
use super::JupiterLendInstruction;
pub struct JupiterLendInstructionsMigration;
impl sqlx_migrator::Migration<sqlx::Postgres> for JupiterLendInstructionsMigration {
fn app(&self) -> &str {
"jupiter-lend"
}
fn name(&self) -> &str {
"jupiter_lend_instructions"
}
fn operations(&self) -> Vec<Box<dyn sqlx_migrator::Operation<sqlx::Postgres>>> {
vec![
Box::new(ChangeStatusMigrationOperation),
Box::new(ClaimMigrationOperation),
Box::new(CloseClaimAccountMigrationOperation),
Box::new(CollectRevenueMigrationOperation),
Box::new(InitClaimAccountMigrationOperation),
Box::new(InitLiquidityMigrationOperation),
Box::new(InitNewProtocolMigrationOperation),
Box::new(InitTokenReserveMigrationOperation),
Box::new(OperateMigrationOperation),
Box::new(PauseUserMigrationOperation),
Box::new(PreOperateMigrationOperation),
Box::new(UnpauseUserMigrationOperation),
Box::new(UpdateAuthorityMigrationOperation),
Box::new(UpdateAuthsMigrationOperation),
Box::new(UpdateExchangePriceMigrationOperation),
Box::new(UpdateGuardiansMigrationOperation),
Box::new(UpdateRateDataV1MigrationOperation),
Box::new(UpdateRateDataV2MigrationOperation),
Box::new(UpdateRevenueCollectorMigrationOperation),
Box::new(UpdateTokenConfigMigrationOperation),
Box::new(UpdateUserBorrowConfigMigrationOperation),
Box::new(UpdateUserClassMigrationOperation),
Box::new(UpdateUserSupplyConfigMigrationOperation),
Box::new(UpdateUserWithdrawalLimitMigrationOperation),
Box::new(CpiEventMigrationOperation),
]
}
fn parents(&self) -> Vec<Box<dyn sqlx_migrator::Migration<sqlx::Postgres>>> {
vec![]
}
}
pub struct JupiterLendInstructionWithMetadata(
pub JupiterLendInstruction,
pub carbon_core::instruction::InstructionMetadata,
pub Vec<solana_instruction::AccountMeta>,
);
impl
From<(
JupiterLendInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
)> for JupiterLendInstructionWithMetadata
{
fn from(
value: (
JupiterLendInstruction,
carbon_core::instruction::InstructionMetadata,
Vec<solana_instruction::AccountMeta>,
),
) -> Self {
JupiterLendInstructionWithMetadata(value.0, value.1, value.2)
}
}
#[async_trait::async_trait]
impl carbon_core::postgres::operations::Insert for JupiterLendInstructionWithMetadata {
async fn insert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let JupiterLendInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) = self;
match decoded_instruction {
JupiterLendInstruction::ChangeStatus { data, .. } => {
let row = change_status_row::ChangeStatusRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::Claim { data, .. } => {
let row = claim_row::ClaimRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::CloseClaimAccount { data, .. } => {
let row = close_claim_account_row::CloseClaimAccountRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::CollectRevenue { data, .. } => {
let row = collect_revenue_row::CollectRevenueRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::InitClaimAccount { data, .. } => {
let row = init_claim_account_row::InitClaimAccountRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::InitLiquidity { data, .. } => {
let row = init_liquidity_row::InitLiquidityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::InitNewProtocol { data, .. } => {
let row = init_new_protocol_row::InitNewProtocolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::InitTokenReserve { data, .. } => {
let row = init_token_reserve_row::InitTokenReserveRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::Operate { data, .. } => {
let row = operate_row::OperateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::PauseUser { data, .. } => {
let row = pause_user_row::PauseUserRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::PreOperate { data, .. } => {
let row = pre_operate_row::PreOperateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UnpauseUser { data, .. } => {
let row = unpause_user_row::UnpauseUserRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateAuthority { data, .. } => {
let row = update_authority_row::UpdateAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateAuths { data, .. } => {
let row = update_auths_row::UpdateAuthsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateExchangePrice { data, .. } => {
let row = update_exchange_price_row::UpdateExchangePriceRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateGuardians { data, .. } => {
let row = update_guardians_row::UpdateGuardiansRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateRateDataV1 { data, .. } => {
let row = update_rate_data_v1_row::UpdateRateDataV1Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateRateDataV2 { data, .. } => {
let row = update_rate_data_v2_row::UpdateRateDataV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateRevenueCollector { data, .. } => {
let row = update_revenue_collector_row::UpdateRevenueCollectorRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateTokenConfig { data, .. } => {
let row = update_token_config_row::UpdateTokenConfigRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateUserBorrowConfig { data, .. } => {
let row = update_user_borrow_config_row::UpdateUserBorrowConfigRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateUserClass { data, .. } => {
let row = update_user_class_row::UpdateUserClassRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateUserSupplyConfig { data, .. } => {
let row = update_user_supply_config_row::UpdateUserSupplyConfigRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateUserWithdrawalLimit { data, .. } => {
let row =
update_user_withdrawal_limit_row::UpdateUserWithdrawalLimitRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.insert(pool).await?;
Ok(())
}
JupiterLendInstruction::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 JupiterLendInstructionWithMetadata {
async fn upsert(&self, pool: &sqlx::PgPool) -> carbon_core::error::CarbonResult<()> {
let JupiterLendInstructionWithMetadata(decoded_instruction, metadata, raw_accounts) = self;
match decoded_instruction {
JupiterLendInstruction::ChangeStatus { data, .. } => {
let row = change_status_row::ChangeStatusRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::Claim { data, .. } => {
let row = claim_row::ClaimRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::CloseClaimAccount { data, .. } => {
let row = close_claim_account_row::CloseClaimAccountRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::CollectRevenue { data, .. } => {
let row = collect_revenue_row::CollectRevenueRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::InitClaimAccount { data, .. } => {
let row = init_claim_account_row::InitClaimAccountRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::InitLiquidity { data, .. } => {
let row = init_liquidity_row::InitLiquidityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::InitNewProtocol { data, .. } => {
let row = init_new_protocol_row::InitNewProtocolRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::InitTokenReserve { data, .. } => {
let row = init_token_reserve_row::InitTokenReserveRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::Operate { data, .. } => {
let row = operate_row::OperateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::PauseUser { data, .. } => {
let row = pause_user_row::PauseUserRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::PreOperate { data, .. } => {
let row = pre_operate_row::PreOperateRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UnpauseUser { data, .. } => {
let row = unpause_user_row::UnpauseUserRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateAuthority { data, .. } => {
let row = update_authority_row::UpdateAuthorityRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateAuths { data, .. } => {
let row = update_auths_row::UpdateAuthsRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateExchangePrice { data, .. } => {
let row = update_exchange_price_row::UpdateExchangePriceRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateGuardians { data, .. } => {
let row = update_guardians_row::UpdateGuardiansRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateRateDataV1 { data, .. } => {
let row = update_rate_data_v1_row::UpdateRateDataV1Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateRateDataV2 { data, .. } => {
let row = update_rate_data_v2_row::UpdateRateDataV2Row::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateRevenueCollector { data, .. } => {
let row = update_revenue_collector_row::UpdateRevenueCollectorRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateTokenConfig { data, .. } => {
let row = update_token_config_row::UpdateTokenConfigRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateUserBorrowConfig { data, .. } => {
let row = update_user_borrow_config_row::UpdateUserBorrowConfigRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateUserClass { data, .. } => {
let row = update_user_class_row::UpdateUserClassRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateUserSupplyConfig { data, .. } => {
let row = update_user_supply_config_row::UpdateUserSupplyConfigRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::UpdateUserWithdrawalLimit { data, .. } => {
let row =
update_user_withdrawal_limit_row::UpdateUserWithdrawalLimitRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
JupiterLendInstruction::CpiEvent { data, .. } => {
let row = cpi_event_row::CpiEventRow::from_parts(
data.clone(),
metadata.clone(),
raw_accounts.clone(),
);
row.upsert(pool).await?;
Ok(())
}
}
}
}