diff --git a/README.md b/README.md index 3554844..bd81b28 100644 --- a/README.md +++ b/README.md @@ -134,7 +134,7 @@ let client = SolanaTrade::new(Arc::new(payer), trade_config).await; For detailed information about Gas Fee Strategy, see the [Gas Fee Strategy Reference](docs/GAS_FEE_STRATEGY.md). ```rust -sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); +GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); ``` #### 3. Build Trading Parameters diff --git a/README_CN.md b/README_CN.md index 4e4f5bb..5bea67d 100755 --- a/README_CN.md +++ b/README_CN.md @@ -135,7 +135,7 @@ let client = SolanaTrade::new(Arc::new(payer), trade_config).await; 有关 Gas Fee 策略的详细信息,请参阅 [Gas Fee 策略参考手册](docs/GAS_FEE_STRATEGY_CN.md)。 ```rust // 设置全局策略 -sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); +GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); ``` #### 3. 构建交易参数 diff --git a/docs/GAS_FEE_STRATEGY.md b/docs/GAS_FEE_STRATEGY.md index 45d6220..4ceeec4 100644 --- a/docs/GAS_FEE_STRATEGY.md +++ b/docs/GAS_FEE_STRATEGY.md @@ -16,9 +16,9 @@ Each (SwqosType, TradeType) combination can only configure one strategy. Subsequ ### 2. Set Global Strategy (can also be configured individually) ```rust -use sol_trade_sdk::common::{gas_fee_strategy::GasFeeStrategy, set_global_gas_fee_strategy}; +use sol_trade_sdk::common::{gas_fee_strategy::GasFeeStrategy}; // Set global strategy (normal strategy) -set_global_gas_fee_strategy( +GasFeeStrategy::set_global_fee_strategy( 150000, // cu_limit 500000, // cu_price 0.001, // buy tip diff --git a/docs/GAS_FEE_STRATEGY_CN.md b/docs/GAS_FEE_STRATEGY_CN.md index 73a7ffc..001ff51 100644 --- a/docs/GAS_FEE_STRATEGY_CN.md +++ b/docs/GAS_FEE_STRATEGY_CN.md @@ -16,9 +16,9 @@ ### 2. 设置全局策略(也可以不设置,单独去配置单个策略) ```rust -use sol_trade_sdk::common::{gas_fee_strategy::GasFeeStrategy, set_global_gas_fee_strategy}; +use sol_trade_sdk::common::{gas_fee_strategy::GasFeeStrategy}; // 设置全局策略(normal 策略) -set_global_gas_fee_strategy( +GasFeeStrategy::set_global_fee_strategy( 150000, // cu_limit 500000, // cu_price 0.001, // buy tip diff --git a/examples/address_lookup/src/main.rs b/examples/address_lookup/src/main.rs index 0ffa9bf..35fb1a9 100644 --- a/examples/address_lookup/src/main.rs +++ b/examples/address_lookup/src/main.rs @@ -125,7 +125,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/bonk_copy_trading/src/main.rs b/examples/bonk_copy_trading/src/main.rs index 6bb3bcf..9efd22b 100644 --- a/examples/bonk_copy_trading/src/main.rs +++ b/examples/bonk_copy_trading/src/main.rs @@ -117,7 +117,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/bonk_sniper_trading/src/main.rs b/examples/bonk_sniper_trading/src/main.rs index 6562c26..a197988 100644 --- a/examples/bonk_sniper_trading/src/main.rs +++ b/examples/bonk_sniper_trading/src/main.rs @@ -80,7 +80,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/cli_trading/src/main.rs b/examples/cli_trading/src/main.rs index 5233680..cb1aae1 100644 --- a/examples/cli_trading/src/main.rs +++ b/examples/cli_trading/src/main.rs @@ -1305,7 +1305,7 @@ async fn initialize_real_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(payer, trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/gas_fee_strategy/src/main.rs b/examples/gas_fee_strategy/src/main.rs index 746ff34..97f7727 100644 --- a/examples/gas_fee_strategy/src/main.rs +++ b/examples/gas_fee_strategy/src/main.rs @@ -1,5 +1,5 @@ use sol_trade_sdk::{ - common::{gas_fee_strategy::GasFeeStrategy, set_global_gas_fee_strategy}, + common::gas_fee_strategy::GasFeeStrategy, swqos::{SwqosType, TradeType}, }; @@ -10,7 +10,7 @@ async fn main() { // Set global strategy println!("1. Set global strategy"); - set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); // Print all strategies println!("\n2. Print all strategies"); diff --git a/examples/middleware_system/src/main.rs b/examples/middleware_system/src/main.rs index ca3d9e4..82f8fb5 100644 --- a/examples/middleware_system/src/main.rs +++ b/examples/middleware_system/src/main.rs @@ -67,7 +67,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/nonce_cache/src/main.rs b/examples/nonce_cache/src/main.rs index 982b008..3d22aa7 100644 --- a/examples/nonce_cache/src/main.rs +++ b/examples/nonce_cache/src/main.rs @@ -106,7 +106,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/pumpfun_copy_trading/src/main.rs b/examples/pumpfun_copy_trading/src/main.rs index 845e930..ec0f9ef 100644 --- a/examples/pumpfun_copy_trading/src/main.rs +++ b/examples/pumpfun_copy_trading/src/main.rs @@ -105,7 +105,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/pumpfun_sniper_trading/src/main.rs b/examples/pumpfun_sniper_trading/src/main.rs index f44881f..7a5df3d 100644 --- a/examples/pumpfun_sniper_trading/src/main.rs +++ b/examples/pumpfun_sniper_trading/src/main.rs @@ -74,7 +74,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/pumpswap_direct_trading/src/main.rs b/examples/pumpswap_direct_trading/src/main.rs index 2356576..7e87cdf 100644 --- a/examples/pumpswap_direct_trading/src/main.rs +++ b/examples/pumpswap_direct_trading/src/main.rs @@ -86,7 +86,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/pumpswap_trading/src/main.rs b/examples/pumpswap_trading/src/main.rs index 2b3d40c..c13175c 100644 --- a/examples/pumpswap_trading/src/main.rs +++ b/examples/pumpswap_trading/src/main.rs @@ -131,7 +131,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/raydium_amm_v4_trading/src/main.rs b/examples/raydium_amm_v4_trading/src/main.rs index 4c34840..23f37f1 100644 --- a/examples/raydium_amm_v4_trading/src/main.rs +++ b/examples/raydium_amm_v4_trading/src/main.rs @@ -105,7 +105,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/raydium_cpmm_trading/src/main.rs b/examples/raydium_cpmm_trading/src/main.rs index 611048f..385f2d6 100644 --- a/examples/raydium_cpmm_trading/src/main.rs +++ b/examples/raydium_cpmm_trading/src/main.rs @@ -127,7 +127,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/seed_trading/src/main.rs b/examples/seed_trading/src/main.rs index 246b386..c64493b 100644 --- a/examples/seed_trading/src/main.rs +++ b/examples/seed_trading/src/main.rs @@ -95,7 +95,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("✅ SolanaTrade client initialized successfully!"); Ok(solana_trade) } diff --git a/examples/trading_client/src/main.rs b/examples/trading_client/src/main.rs index fc9816c..46f651f 100644 --- a/examples/trading_client/src/main.rs +++ b/examples/trading_client/src/main.rs @@ -36,7 +36,7 @@ async fn create_solana_trade_client() -> AnyResult { let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let solana_trade_client = SolanaTrade::new(Arc::new(payer), trade_config).await; // set global strategy - sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001); + sol_trade_sdk::common::GasFeeStrategy::set_global_fee_strategy(150000, 500000, 0.001, 0.001); println!("SolanaTrade client created successfully!"); Ok(solana_trade_client) } diff --git a/examples/wsol_wrapper/src/main.rs b/examples/wsol_wrapper/src/main.rs index cfaf7a1..ea58e60 100644 --- a/examples/wsol_wrapper/src/main.rs +++ b/examples/wsol_wrapper/src/main.rs @@ -59,7 +59,7 @@ async fn create_solana_trade_client() -> Result>(), - TradeType::Buy, - cu_limit, - cu_price, - buy_tip, - ); - GasFeeStrategy::add_normal_fee_strategies( - &SwqosType::values() - .into_iter() - .filter(|swqos_type| !swqos_type.eq(&SwqosType::Default)) - .collect::>(), - TradeType::Sell, - cu_limit, - cu_price, - sell_tip, - ); - GasFeeStrategy::add_normal_fee_strategy( - SwqosType::Default, - TradeType::Buy, - cu_limit, - cu_price, - 0.0, - ); - GasFeeStrategy::add_normal_fee_strategy( - SwqosType::Default, - TradeType::Sell, - cu_limit, - cu_price, - 0.0, - ); -} - impl GasFeeStrategy { + /// 设置全局费率策略 + /// Set global fee strategy + pub fn set_global_fee_strategy(cu_limit: u32, cu_price: u64, buy_tip: f64, sell_tip: f64) { + GasFeeStrategy::add_normal_fee_strategies( + &SwqosType::values() + .into_iter() + .filter(|swqos_type| !swqos_type.eq(&SwqosType::Default)) + .collect::>(), + TradeType::Buy, + cu_limit, + cu_price, + buy_tip, + ); + GasFeeStrategy::add_normal_fee_strategies( + &SwqosType::values() + .into_iter() + .filter(|swqos_type| !swqos_type.eq(&SwqosType::Default)) + .collect::>(), + TradeType::Sell, + cu_limit, + cu_price, + sell_tip, + ); + GasFeeStrategy::add_normal_fee_strategy( + SwqosType::Default, + TradeType::Buy, + cu_limit, + cu_price, + 0.0, + ); + GasFeeStrategy::add_normal_fee_strategy( + SwqosType::Default, + TradeType::Sell, + cu_limit, + cu_price, + 0.0, + ); + } + /// 为多个服务类型添加高低费率策略,会移除(SwqosType,TradeType)的默认策略。 /// Add high-low fee strategies for multiple service types, Will remove the default strategy of (SwqosType,TradeType) pub fn add_high_low_fee_strategies(