This commit is contained in:
ysq
2025-09-17 11:14:15 +08:00
parent da28f40889
commit fad343ffbf
43 changed files with 1732 additions and 2017 deletions
-10
View File
@@ -9,7 +9,6 @@ pub mod node1;
pub mod flashblock;
pub mod blockrazor;
pub mod astralane;
pub mod settings;
use std::sync::Arc;
@@ -108,23 +107,14 @@ pub enum SwqosRegion {
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
pub enum SwqosConfig {
Default(String),
/// Jito(uuid, region, custom_url)
Jito(String, SwqosRegion, Option<String>),
/// NextBlock(api_token, region, custom_url)
NextBlock(String, SwqosRegion, Option<String>),
/// Bloxroute(api_token, region, custom_url)
Bloxroute(String, SwqosRegion, Option<String>),
/// Temporal(api_token, region, custom_url)
Temporal(String, SwqosRegion, Option<String>),
/// ZeroSlot(api_token, region, custom_url)
ZeroSlot(String, SwqosRegion, Option<String>),
/// Node1(api_token, region, custom_url)
Node1(String, SwqosRegion, Option<String>),
/// FlashBlock(api_token, region, custom_url)
FlashBlock(String, SwqosRegion, Option<String>),
/// BlockRazor(api_token, region, custom_url)
BlockRazor(String, SwqosRegion, Option<String>),
/// Astralane(api_token, region, custom_url)
Astralane(String, SwqosRegion, Option<String>),
}
-47
View File
@@ -1,47 +0,0 @@
use crate::swqos::{SwqosClient, SwqosConfig};
use solana_sdk::commitment_config::CommitmentConfig;
use std::sync::Arc;
pub struct SwqosSettings {
pub swqos_config: SwqosConfig,
pub swqos_client: Option<Arc<SwqosClient>>,
pub unit_limit: u32,
pub unit_price: u64,
pub buy_tip_fee: f64,
pub sell_tip_fee: f64,
}
impl SwqosSettings {
/// Create a new SwqosSettings
/// swqos_config: SwqosConfig,
/// unit_limit: u32,
/// unit_price: u64,
/// buy_tip_fee: f64,
/// sell_tip_fee: f64,
pub fn new(
swqos_config: SwqosConfig,
unit_limit: u32,
unit_price: u64,
buy_tip_fee: f64,
sell_tip_fee: f64,
) -> Self {
Self { swqos_config, swqos_client: None, unit_limit, unit_price, buy_tip_fee, sell_tip_fee }
}
pub fn setup_swqos_client(&mut self, rpc_url: String, commitment: CommitmentConfig) {
let swqos_client =
SwqosConfig::get_swqos_client(rpc_url, commitment, self.swqos_config.clone());
self.swqos_client = Some(swqos_client);
}
pub fn clone(&self) -> Self {
Self {
swqos_config: self.swqos_config.clone(),
swqos_client: self.swqos_client.clone(),
unit_limit: self.unit_limit,
unit_price: self.unit_price,
buy_tip_fee: self.buy_tip_fee,
sell_tip_fee: self.sell_tip_fee,
}
}
}