[Feature] Add smart tip fee functionality

1. Add smart_buy_tip_fee field to PriorityFee struct
2. Extend copy_buy_with_tip method with custom_buy_tip_fee parameter
3. Implement dynamic tip fee adjustment logic
This commit is contained in:
ysq
2025-06-19 22:30:04 +08:00
parent 3d987987b3
commit 29ce9d787f
2 changed files with 10 additions and 2 deletions
+2
View File
@@ -79,6 +79,7 @@ pub struct PriorityFee {
pub rpc_unit_price: u64,
pub buy_tip_fee: f64,
pub buy_tip_fees: Vec<f64>,
pub smart_buy_tip_fee: f64,
pub sell_tip_fee: f64,
}
@@ -91,6 +92,7 @@ impl Default for PriorityFee {
rpc_unit_price: DEFAULT_RPC_UNIT_PRICE,
buy_tip_fee: DEFAULT_BUY_TIP_FEE,
buy_tip_fees: vec![],
smart_buy_tip_fee: 0.0,
sell_tip_fee: DEFAULT_SELL_TIP_FEE
}
}
+8 -2
View File
@@ -313,7 +313,13 @@ impl PumpFun {
recent_blockhash: Hash,
bonding_curve: Option<Arc<BondingCurveAccount>>,
trade_platform: String,
custom_buy_tip_fee: Option<f64>,
) -> Result<(), anyhow::Error> {
let mut priority_fee = self.priority_fee.clone();
if custom_buy_tip_fee.is_some() {
priority_fee.buy_tip_fee = custom_buy_tip_fee.unwrap();
priority_fee.buy_tip_fees = vec![custom_buy_tip_fee.unwrap()];
}
if trade_platform == PUMPFUN {
pumpfun::buy::buy_with_tip(
self.fee_clients.clone(),
@@ -324,7 +330,7 @@ impl PumpFun {
dev_sol_cost,
buy_sol_cost,
slippage_basis_points,
self.priority_fee.clone(),
priority_fee.clone(),
self.cluster.clone().lookup_table_key,
recent_blockhash,
bonding_curve,
@@ -339,7 +345,7 @@ impl PumpFun {
creator,
buy_sol_cost,
slippage_basis_points,
self.priority_fee.clone(),
priority_fee.clone(),
self.cluster.clone().lookup_table_key,
recent_blockhash,
None,