refactor: organize code into multi-protocol architecture with PumpFun submodules
This commit is contained in:
@@ -351,14 +351,14 @@ pub async fn extend_pumpfun_address_to_lookup_table(
|
||||
pub fn get_pumpfun_addresses(payer: Pubkey, include_addresses: Vec<Pubkey>) -> Vec<Pubkey> {
|
||||
let mut addresses = vec![
|
||||
payer,
|
||||
constants::accounts::PUMPFUN,
|
||||
constants::accounts::SYSTEM_PROGRAM,
|
||||
constants::accounts::TOKEN_PROGRAM,
|
||||
constants::accounts::RENT,
|
||||
constants::accounts::EVENT_AUTHORITY,
|
||||
constants::accounts::ASSOCIATED_TOKEN_PROGRAM,
|
||||
constants::global_constants::GLOBAL_ACCOUNT,
|
||||
constants::global_constants::FEE_RECIPIENT,
|
||||
constants::pumpfun::accounts::PUMPFUN,
|
||||
constants::pumpfun::accounts::SYSTEM_PROGRAM,
|
||||
constants::pumpfun::accounts::TOKEN_PROGRAM,
|
||||
constants::pumpfun::accounts::RENT,
|
||||
constants::pumpfun::accounts::EVENT_AUTHORITY,
|
||||
constants::pumpfun::accounts::ASSOCIATED_TOKEN_PROGRAM,
|
||||
constants::pumpfun::global_constants::GLOBAL_ACCOUNT,
|
||||
constants::pumpfun::global_constants::FEE_RECIPIENT,
|
||||
];
|
||||
|
||||
addresses.extend(include_addresses);
|
||||
@@ -369,22 +369,22 @@ pub fn get_pumpfun_addresses(payer: Pubkey, include_addresses: Vec<Pubkey>) -> V
|
||||
pub fn get_pumpfun_filtered_addresses(payer: Pubkey, include_addresses: Vec<Pubkey>) -> Vec<Pubkey> {
|
||||
let mut addresses = vec![
|
||||
payer,
|
||||
constants::accounts::PUMPFUN,
|
||||
constants::accounts::SYSTEM_PROGRAM,
|
||||
constants::accounts::TOKEN_PROGRAM,
|
||||
constants::accounts::RENT,
|
||||
constants::accounts::EVENT_AUTHORITY,
|
||||
constants::accounts::ASSOCIATED_TOKEN_PROGRAM,
|
||||
constants::global_constants::GLOBAL_ACCOUNT,
|
||||
constants::global_constants::FEE_RECIPIENT,
|
||||
constants::global_constants::PUMPFUN_AMM_FEE_1,
|
||||
constants::global_constants::PUMPFUN_AMM_FEE_2,
|
||||
constants::global_constants::PUMPFUN_AMM_FEE_3,
|
||||
constants::global_constants::PUMPFUN_AMM_FEE_4,
|
||||
constants::global_constants::PUMPFUN_AMM_FEE_5,
|
||||
constants::global_constants::PUMPFUN_AMM_FEE_6,
|
||||
constants::global_constants::PUMPFUN_AMM_FEE_7,
|
||||
// constants::global_constants::PUMPFUN_AMM_FEE_8,
|
||||
constants::pumpfun::accounts::PUMPFUN,
|
||||
constants::pumpfun::accounts::SYSTEM_PROGRAM,
|
||||
constants::pumpfun::accounts::TOKEN_PROGRAM,
|
||||
constants::pumpfun::accounts::RENT,
|
||||
constants::pumpfun::accounts::EVENT_AUTHORITY,
|
||||
constants::pumpfun::accounts::ASSOCIATED_TOKEN_PROGRAM,
|
||||
constants::pumpfun::global_constants::GLOBAL_ACCOUNT,
|
||||
constants::pumpfun::global_constants::FEE_RECIPIENT,
|
||||
constants::pumpfun::global_constants::PUMPFUN_AMM_FEE_1,
|
||||
constants::pumpfun::global_constants::PUMPFUN_AMM_FEE_2,
|
||||
constants::pumpfun::global_constants::PUMPFUN_AMM_FEE_3,
|
||||
constants::pumpfun::global_constants::PUMPFUN_AMM_FEE_4,
|
||||
constants::pumpfun::global_constants::PUMPFUN_AMM_FEE_5,
|
||||
constants::pumpfun::global_constants::PUMPFUN_AMM_FEE_6,
|
||||
constants::pumpfun::global_constants::PUMPFUN_AMM_FEE_7,
|
||||
// constants::pumpfun::global_constants::PUMPFUN_AMM_FEE_8,
|
||||
];
|
||||
|
||||
addresses.extend(include_addresses);
|
||||
|
||||
+1
-5
@@ -1,8 +1,4 @@
|
||||
pub mod logs_data;
|
||||
pub mod logs_parser;
|
||||
pub mod logs_filters;
|
||||
pub mod logs_subscribe;
|
||||
pub mod logs_events;
|
||||
pub mod pumpfun;
|
||||
pub mod address_lookup;
|
||||
pub mod nonce_cache;
|
||||
pub mod tip_cache;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
use base64::engine::general_purpose;
|
||||
use base64::Engine;
|
||||
use regex::Regex;
|
||||
use crate::common::logs_data::{CreateTokenInfo, TradeInfo, EventTrait, TransferInfo, TipInfo};
|
||||
use crate::common::pumpfun::logs_data::{CreateTokenInfo, TradeInfo, EventTrait, TransferInfo, TipInfo};
|
||||
|
||||
pub const PROGRAM_DATA: &str = "Program data: ";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use crate::common::logs_data::DexInstruction;
|
||||
use crate::common::logs_parser::{parse_create_token_data, parse_trade_data, parse_instruction_create_token_data, parse_instruction_trade_data};
|
||||
use crate::common::pumpfun::logs_data::DexInstruction;
|
||||
use crate::common::pumpfun::logs_parser::{parse_create_token_data, parse_trade_data, parse_instruction_create_token_data, parse_instruction_trade_data};
|
||||
use crate::error::ClientResult;
|
||||
pub struct LogFilter;
|
||||
use solana_sdk::pubkey::Pubkey;
|
||||
@@ -3,7 +3,7 @@ use std::str::FromStr;
|
||||
use base64::{Engine as _, engine::general_purpose::STANDARD as BASE64};
|
||||
|
||||
use crate::error::{ClientError, ClientResult};
|
||||
use crate::common::{
|
||||
use crate::common::pumpfun::{
|
||||
logs_data::{DexInstruction, CreateTokenInfo, TradeInfo},
|
||||
logs_filters::LogFilter
|
||||
};
|
||||
@@ -8,7 +8,7 @@ use std::sync::Arc;
|
||||
use tokio::sync::mpsc;
|
||||
use tokio::task::JoinHandle;
|
||||
use futures::StreamExt;
|
||||
use crate::{constants, common::{
|
||||
use crate::{constants, common::pumpfun::{
|
||||
logs_data::DexInstruction, logs_events::DexEvent, logs_filters::LogFilter
|
||||
}};
|
||||
|
||||
@@ -41,7 +41,7 @@ pub async fn tokens_subscription<F>(
|
||||
where
|
||||
F: Fn(PumpfunEvent) + Send + Sync + 'static,
|
||||
{
|
||||
let program_address = constants::accounts::PUMPFUN.to_string();
|
||||
let program_address = constants::pumpfun::accounts::PUMPFUN.to_string();
|
||||
let logs_filter = RpcTransactionLogsFilter::Mentions(vec![program_address]);
|
||||
|
||||
let logs_config = RpcTransactionLogsConfig {
|
||||
@@ -0,0 +1,11 @@
|
||||
pub mod logs_data;
|
||||
pub mod logs_parser;
|
||||
pub mod logs_filters;
|
||||
pub mod logs_subscribe;
|
||||
pub mod logs_events;
|
||||
|
||||
pub use logs_data::*;
|
||||
pub use logs_parser::*;
|
||||
pub use logs_filters::*;
|
||||
pub use logs_subscribe::*;
|
||||
pub use logs_events::*;
|
||||
+1
-1
@@ -3,7 +3,7 @@ use std::sync::Arc;
|
||||
use solana_client::rpc_client::RpcClient;
|
||||
use solana_sdk::{commitment_config::CommitmentConfig, pubkey::Pubkey, signature::Keypair};
|
||||
use serde::Deserialize;
|
||||
use crate::{constants::trade::{DEFAULT_BUY_TIP_FEE, DEFAULT_COMPUTE_UNIT_LIMIT, DEFAULT_COMPUTE_UNIT_PRICE, DEFAULT_SELL_TIP_FEE}, swqos::FeeClient};
|
||||
use crate::{constants::pumpfun::trade::{DEFAULT_BUY_TIP_FEE, DEFAULT_COMPUTE_UNIT_LIMIT, DEFAULT_COMPUTE_UNIT_PRICE, DEFAULT_SELL_TIP_FEE}, swqos::FeeClient};
|
||||
|
||||
#[derive(Debug, Clone, PartialEq)]
|
||||
pub enum FeeType {
|
||||
|
||||
Reference in New Issue
Block a user