refactor(gas-fee): replace init_builtin_fee_strategies with set_global_strategy

- Add customizable cu_limit, cu_price, buy_tip, sell_tip parameters
- Update all examples and documentation
- Simplify strategy configuration API
This commit is contained in:
ysq
2025-09-19 23:31:41 +08:00
parent 4907aafead
commit e4a6b49aab
21 changed files with 95 additions and 91 deletions
+1 -1
View File
@@ -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). For detailed information about Gas Fee Strategy, see the [Gas Fee Strategy Reference](docs/GAS_FEE_STRATEGY.md).
```rust ```rust
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
``` ```
#### 3. Build Trading Parameters #### 3. Build Trading Parameters
+2 -2
View File
@@ -134,8 +134,8 @@ let client = SolanaTrade::new(Arc::new(payer), trade_config).await;
有关 Gas Fee 策略的详细信息,请参阅 [Gas Fee 策略参考手册](docs/GAS_FEE_STRATEGY_CN.md)。 有关 Gas Fee 策略的详细信息,请参阅 [Gas Fee 策略参考手册](docs/GAS_FEE_STRATEGY_CN.md)。
```rust ```rust
// 使用内置策略 // 设置全局策略
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
``` ```
#### 3. 构建交易参数 #### 3. 构建交易参数
+9 -4
View File
@@ -13,12 +13,17 @@ This module supports users to configure strategies for SwqosType under different
Each (SwqosType, TradeType) combination can only configure one strategy. Subsequent strategy configurations will override previous ones. Each (SwqosType, TradeType) combination can only configure one strategy. Subsequent strategy configurations will override previous ones.
### 2. Using Built-in Strategies ### 2. Set Global Strategy (can also be configured individually)
```rust ```rust
use sol_trade_sdk::common::gas_fee_strategy::GasFeeStrategy; use sol_trade_sdk::common::{gas_fee_strategy::GasFeeStrategy, set_global_gas_fee_strategy};
// Use built-in strategies (includes normal strategies for various SwqosTypes) // Set global strategy (normal strategy)
GasFeeStrategy::init_builtin_fee_strategies(); set_global_gas_fee_strategy(
150000, // cu_limit
500000, // cu_price
0.001, // buy tip
0.001 // sell tip
);
``` ```
### 3. Configuring Single Strategy ### 3. Configuring Single Strategy
+9 -4
View File
@@ -13,12 +13,17 @@
每个 (SwqosType, TradeType) 的组合仅可配置一个策略。后续配置的策略会覆盖之前的策略。 每个 (SwqosType, TradeType) 的组合仅可配置一个策略。后续配置的策略会覆盖之前的策略。
### 2. 使用内置策略 ### 2. 设置全局策略(也可以不设置,单独去配置单个策略)
```rust ```rust
use sol_trade_sdk::common::gas_fee_strategy::GasFeeStrategy; use sol_trade_sdk::common::{gas_fee_strategy::GasFeeStrategy, set_global_gas_fee_strategy};
// 使用内置策略(内置了各个 SwqosType 的 normal 策略 // 设置全局策略(normal 策略)
GasFeeStrategy::init_builtin_fee_strategies(); set_global_gas_fee_strategy(
150000, // cu_limit
500000, // cu_price
0.001, // buy tip
0.001 // sell tip
);
``` ```
### 3. 配置单个策略 ### 3. 配置单个策略
+2 -2
View File
@@ -124,8 +124,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -116,8 +116,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -79,8 +79,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -1304,8 +1304,8 @@ async fn initialize_real_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(payer, trade_config).await; let solana_trade = SolanaTrade::new(payer, trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+5 -5
View File
@@ -1,5 +1,5 @@
use sol_trade_sdk::{ use sol_trade_sdk::{
common::gas_fee_strategy::GasFeeStrategy, common::{gas_fee_strategy::GasFeeStrategy, set_global_gas_fee_strategy},
swqos::{SwqosType, TradeType}, swqos::{SwqosType, TradeType},
}; };
@@ -8,12 +8,12 @@ async fn main() {
println!("🚀 Gas Fee Strategy Demo"); println!("🚀 Gas Fee Strategy Demo");
println!("========================"); println!("========================");
// Initialize builtin strategies // Set global strategy
println!("1. Initialize builtin strategies"); println!("1. Set global strategy");
GasFeeStrategy::init_builtin_fee_strategies(); set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
// Print all strategies // Print all strategies
println!("\n2. Print all builtin strategies"); println!("\n2. Print all strategies");
GasFeeStrategy::print_all_strategies(); GasFeeStrategy::print_all_strategies();
// Clear all strategies // Clear all strategies
+2 -2
View File
@@ -66,8 +66,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -105,8 +105,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -104,8 +104,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -73,8 +73,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -85,8 +85,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -130,8 +130,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -104,8 +104,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -126,8 +126,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -94,8 +94,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+2 -2
View File
@@ -35,8 +35,8 @@ async fn create_solana_trade_client() -> AnyResult<SolanaTrade> {
]; ];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade_client = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade_client = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("SolanaTrade client created successfully!"); println!("SolanaTrade client created successfully!");
Ok(solana_trade_client) Ok(solana_trade_client)
} }
+2 -2
View File
@@ -58,8 +58,8 @@ async fn create_solana_trade_client() -> Result<SolanaTrade, Box<dyn std::error:
let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())]; let swqos_configs: Vec<SwqosConfig> = vec![SwqosConfig::Default(rpc_url.clone())];
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment); let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment);
let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await; let solana_trade = SolanaTrade::new(Arc::new(payer), trade_config).await;
// init gas fee strategy // set global strategy
sol_trade_sdk::common::GasFeeStrategy::init_builtin_fee_strategies(); sol_trade_sdk::common::set_global_gas_fee_strategy(150000, 500000, 0.001, 0.001);
println!("✅ SolanaTrade client initialized successfully!"); println!("✅ SolanaTrade client initialized successfully!");
Ok(solana_trade) Ok(solana_trade)
} }
+38 -44
View File
@@ -1,7 +1,3 @@
use crate::constants::trade::trade::{
DEFAULT_BUY_TIP_FEE, DEFAULT_RPC_UNIT_LIMIT, DEFAULT_RPC_UNIT_PRICE, DEFAULT_SELL_TIP_FEE,
DEFAULT_TIP_UNIT_LIMIT, DEFAULT_TIP_UNIT_PRICE,
};
use crate::swqos::{SwqosType, TradeType}; use crate::swqos::{SwqosType, TradeType};
use arc_swap::ArcSwap; use arc_swap::ArcSwap;
use std::collections::HashMap; use std::collections::HashMap;
@@ -33,46 +29,44 @@ static STRATEGIES: LazyLock<
pub struct GasFeeStrategy; pub struct GasFeeStrategy;
impl GasFeeStrategy { pub fn set_global_gas_fee_strategy(cu_limit: u32, cu_price: u64, buy_tip: f64, sell_tip: f64) {
/// 初始化内置策略。 GasFeeStrategy::add_normal_fee_strategies(
/// Initialize built-in strategies &SwqosType::values()
pub fn init_builtin_fee_strategies() { .into_iter()
GasFeeStrategy::add_normal_fee_strategies( .filter(|swqos_type| !swqos_type.eq(&SwqosType::Default))
&SwqosType::values() .collect::<Vec<SwqosType>>(),
.into_iter() TradeType::Buy,
.filter(|swqos_type| !swqos_type.eq(&SwqosType::Default)) cu_limit,
.collect::<Vec<SwqosType>>(), cu_price,
TradeType::Buy, buy_tip,
DEFAULT_TIP_UNIT_PRICE, );
DEFAULT_BUY_TIP_FEE, GasFeeStrategy::add_normal_fee_strategies(
DEFAULT_TIP_UNIT_LIMIT, &SwqosType::values()
); .into_iter()
GasFeeStrategy::add_normal_fee_strategies( .filter(|swqos_type| !swqos_type.eq(&SwqosType::Default))
&SwqosType::values() .collect::<Vec<SwqosType>>(),
.into_iter() TradeType::Sell,
.filter(|swqos_type| !swqos_type.eq(&SwqosType::Default)) cu_limit,
.collect::<Vec<SwqosType>>(), cu_price,
TradeType::Sell, sell_tip,
DEFAULT_TIP_UNIT_PRICE, );
DEFAULT_SELL_TIP_FEE, GasFeeStrategy::add_normal_fee_strategy(
DEFAULT_TIP_UNIT_LIMIT, SwqosType::Default,
); TradeType::Buy,
GasFeeStrategy::add_normal_fee_strategy( cu_limit,
SwqosType::Default, cu_price,
TradeType::Buy, 0.0,
DEFAULT_RPC_UNIT_LIMIT, );
DEFAULT_RPC_UNIT_PRICE, GasFeeStrategy::add_normal_fee_strategy(
0.0, SwqosType::Default,
); TradeType::Sell,
GasFeeStrategy::add_normal_fee_strategy( cu_limit,
SwqosType::Default, cu_price,
TradeType::Sell, 0.0,
DEFAULT_RPC_UNIT_LIMIT, );
DEFAULT_RPC_UNIT_PRICE, }
0.0,
);
}
impl GasFeeStrategy {
/// 为多个服务类型添加高低费率策略,会移除(SwqosType,TradeType)的默认策略。 /// 为多个服务类型添加高低费率策略,会移除(SwqosType,TradeType)的默认策略。
/// Add high-low fee strategies for multiple service types, Will remove the default strategy of (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( pub fn add_high_low_fee_strategies(
@@ -140,9 +134,9 @@ impl GasFeeStrategy {
pub fn add_normal_fee_strategies( pub fn add_normal_fee_strategies(
swqos_types: &[SwqosType], swqos_types: &[SwqosType],
trade_type: TradeType, trade_type: TradeType,
cu_limit: u32,
cu_price: u64, cu_price: u64,
tip: f64, tip: f64,
cu_limit: u32,
) { ) {
for swqos_type in swqos_types { for swqos_type in swqos_types {
GasFeeStrategy::remove_strategy(*swqos_type, trade_type); GasFeeStrategy::remove_strategy(*swqos_type, trade_type);