feat: refactor GasFeeStrategy API and bump version to 1.2.2
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "sol-trade-sdk"
|
name = "sol-trade-sdk"
|
||||||
version = "1.2.1"
|
version = "1.2.2"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
authors = [
|
authors = [
|
||||||
"William <byteblock6@gmail.com>",
|
"William <byteblock6@gmail.com>",
|
||||||
|
|||||||
@@ -87,14 +87,14 @@ Add the dependency to your `Cargo.toml`:
|
|||||||
|
|
||||||
```toml
|
```toml
|
||||||
# Add to your Cargo.toml
|
# Add to your Cargo.toml
|
||||||
sol-trade-sdk = { path = "./sol-trade-sdk", version = "1.2.1" }
|
sol-trade-sdk = { path = "./sol-trade-sdk", version = "1.2.2" }
|
||||||
```
|
```
|
||||||
|
|
||||||
### Use crates.io
|
### Use crates.io
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
# Add to your Cargo.toml
|
# Add to your Cargo.toml
|
||||||
sol-trade-sdk = "1.2.1"
|
sol-trade-sdk = "1.2.2"
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🛠️ Usage Examples
|
## 🛠️ Usage Examples
|
||||||
|
|||||||
+2
-2
@@ -87,14 +87,14 @@ git clone https://github.com/0xfnzero/sol-trade-sdk
|
|||||||
|
|
||||||
```toml
|
```toml
|
||||||
# 添加到您的 Cargo.toml
|
# 添加到您的 Cargo.toml
|
||||||
sol-trade-sdk = { path = "./sol-trade-sdk", version = "1.2.1" }
|
sol-trade-sdk = { path = "./sol-trade-sdk", version = "1.2.2" }
|
||||||
```
|
```
|
||||||
|
|
||||||
### 使用 crates.io
|
### 使用 crates.io
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
# 添加到您的 Cargo.toml
|
# 添加到您的 Cargo.toml
|
||||||
sol-trade-sdk = "1.2.1"
|
sol-trade-sdk = "1.2.2"
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🛠️ 使用示例
|
## 🛠️ 使用示例
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ async fn main() {
|
|||||||
|
|
||||||
// Remove strategy for SwqosType::Jito on Buy
|
// Remove strategy for SwqosType::Jito on Buy
|
||||||
println!("\n9. Remove strategy for SwqosType::Jito on Buy");
|
println!("\n9. Remove strategy for SwqosType::Jito on Buy");
|
||||||
GasFeeStrategy::del(SwqosType::Jito, TradeType::Buy);
|
GasFeeStrategy::del_all(SwqosType::Jito, TradeType::Buy);
|
||||||
|
|
||||||
// Print all strategies
|
// Print all strategies
|
||||||
println!("\n10. Print all current strategies");
|
println!("\n10. Print all current strategies");
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ impl GasFeeStrategy {
|
|||||||
high_tip: f64,
|
high_tip: f64,
|
||||||
) {
|
) {
|
||||||
for swqos_type in swqos_types {
|
for swqos_type in swqos_types {
|
||||||
GasFeeStrategy::del(*swqos_type, trade_type);
|
GasFeeStrategy::del(*swqos_type, trade_type, GasFeeStrategyType::Normal);
|
||||||
GasFeeStrategy::set(
|
GasFeeStrategy::set(
|
||||||
*swqos_type,
|
*swqos_type,
|
||||||
trade_type,
|
trade_type,
|
||||||
@@ -118,7 +118,7 @@ impl GasFeeStrategy {
|
|||||||
if swqos_type.eq(&SwqosType::Default) {
|
if swqos_type.eq(&SwqosType::Default) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
GasFeeStrategy::del(swqos_type, trade_type);
|
GasFeeStrategy::del(swqos_type, trade_type, GasFeeStrategyType::Normal);
|
||||||
GasFeeStrategy::set(
|
GasFeeStrategy::set(
|
||||||
swqos_type,
|
swqos_type,
|
||||||
trade_type,
|
trade_type,
|
||||||
@@ -147,8 +147,8 @@ impl GasFeeStrategy {
|
|||||||
sell_tip: f64,
|
sell_tip: f64,
|
||||||
) {
|
) {
|
||||||
for swqos_type in swqos_types {
|
for swqos_type in swqos_types {
|
||||||
GasFeeStrategy::del(*swqos_type, TradeType::Buy);
|
GasFeeStrategy::del_all(*swqos_type, TradeType::Buy);
|
||||||
GasFeeStrategy::del(*swqos_type, TradeType::Sell);
|
GasFeeStrategy::del_all(*swqos_type, TradeType::Sell);
|
||||||
GasFeeStrategy::set(
|
GasFeeStrategy::set(
|
||||||
*swqos_type,
|
*swqos_type,
|
||||||
TradeType::Buy,
|
TradeType::Buy,
|
||||||
@@ -175,8 +175,8 @@ impl GasFeeStrategy {
|
|||||||
buy_tip: f64,
|
buy_tip: f64,
|
||||||
sell_tip: f64,
|
sell_tip: f64,
|
||||||
) {
|
) {
|
||||||
GasFeeStrategy::del(swqos_type, TradeType::Buy);
|
GasFeeStrategy::del_all(swqos_type, TradeType::Buy);
|
||||||
GasFeeStrategy::del(swqos_type, TradeType::Sell);
|
GasFeeStrategy::del_all(swqos_type, TradeType::Sell);
|
||||||
GasFeeStrategy::set(
|
GasFeeStrategy::set(
|
||||||
swqos_type,
|
swqos_type,
|
||||||
TradeType::Buy,
|
TradeType::Buy,
|
||||||
@@ -203,7 +203,12 @@ impl GasFeeStrategy {
|
|||||||
cu_price: u64,
|
cu_price: u64,
|
||||||
tip: f64,
|
tip: f64,
|
||||||
) {
|
) {
|
||||||
GasFeeStrategy::del(swqos_type, trade_type);
|
if strategy_type == GasFeeStrategyType::Normal {
|
||||||
|
GasFeeStrategy::del(swqos_type, trade_type, GasFeeStrategyType::HighTipLowCuPrice);
|
||||||
|
GasFeeStrategy::del(swqos_type, trade_type, GasFeeStrategyType::LowTipHighCuPrice);
|
||||||
|
} else {
|
||||||
|
GasFeeStrategy::del(swqos_type, trade_type, GasFeeStrategyType::Normal);
|
||||||
|
}
|
||||||
STRATEGIES.rcu(|current_map| {
|
STRATEGIES.rcu(|current_map| {
|
||||||
let mut new_map = (**current_map).clone();
|
let mut new_map = (**current_map).clone();
|
||||||
new_map.insert(
|
new_map.insert(
|
||||||
@@ -216,7 +221,7 @@ impl GasFeeStrategy {
|
|||||||
|
|
||||||
/// 移除指定(SwqosType,TradeType)的策略。
|
/// 移除指定(SwqosType,TradeType)的策略。
|
||||||
/// Remove strategy for specified (SwqosType,TradeType)
|
/// Remove strategy for specified (SwqosType,TradeType)
|
||||||
pub fn del(swqos_type: SwqosType, trade_type: TradeType) {
|
pub fn del_all(swqos_type: SwqosType, trade_type: TradeType) {
|
||||||
STRATEGIES.rcu(|current_map| {
|
STRATEGIES.rcu(|current_map| {
|
||||||
let mut new_map = (**current_map).clone();
|
let mut new_map = (**current_map).clone();
|
||||||
new_map.remove(&(swqos_type, trade_type, GasFeeStrategyType::Normal));
|
new_map.remove(&(swqos_type, trade_type, GasFeeStrategyType::Normal));
|
||||||
@@ -226,6 +231,16 @@ impl GasFeeStrategy {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 移除指定(SwqosType,TradeType,GasFeeStrategyType)的策略。
|
||||||
|
/// Remove strategy for specified (SwqosType,TradeType,GasFeeStrategyType)
|
||||||
|
pub fn del(swqos_type: SwqosType, trade_type: TradeType, strategy_type: GasFeeStrategyType) {
|
||||||
|
STRATEGIES.rcu(|current_map| {
|
||||||
|
let mut new_map = (**current_map).clone();
|
||||||
|
new_map.remove(&(swqos_type, trade_type, strategy_type));
|
||||||
|
Arc::new(new_map)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/// 获取指定交易类型的所有策略。
|
/// 获取指定交易类型的所有策略。
|
||||||
/// Get all strategies for specified trade type
|
/// Get all strategies for specified trade type
|
||||||
pub fn get_strategies(
|
pub fn get_strategies(
|
||||||
|
|||||||
Reference in New Issue
Block a user