refactor: reorganize code structure and optimize modular design

- Remove src/common/address_lookup.rs and tip_cache.rs to simplify common modules
- Move protocol-specific utility functions from trading/ to instruction/utils/
- Refactor utility functions for PumpFun, PumpSwap, Raydium AMM V4, and Raydium CPMM
- Consolidate constant definitions by inlining seeds and accounts modules into respective utility files
- Update all import paths to ensure code consistency
- Optimize trading parameter construction and executor logic
- Improve address lookup cache and nonce management mechanisms
This commit is contained in:
ysq
2025-09-07 19:00:08 +08:00
parent eddac7a679
commit 21d6714c25
41 changed files with 571 additions and 755 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
use crate::constants::bonk::accounts;
use crate::instruction::utils::bonk::accounts;
/// Calculates the amount of tokens to receive when buying with SOL
///
+1 -1
View File
@@ -1,7 +1,7 @@
use solana_sdk::{native_token::sol_str_to_lamports, pubkey::Pubkey};
use crate::{
constants::pumpfun::global_constants::{CREATOR_FEE, FEE_BASIS_POINTS},
instruction::utils::pumpfun::global_constants::{CREATOR_FEE, FEE_BASIS_POINTS},
utils::calc::common::compute_fee,
};
+1 -1
View File
@@ -1,7 +1,7 @@
use super::common::{
calculate_with_slippage_buy, calculate_with_slippage_sell, ceil_div, compute_fee,
};
use crate::constants::pumpswap::accounts::{
use crate::instruction::utils::pumpswap::accounts::{
COIN_CREATOR_FEE_BASIS_POINTS, LP_FEE_BASIS_POINTS, PROTOCOL_FEE_BASIS_POINTS,
};
use solana_sdk::pubkey::Pubkey;
+1 -1
View File
@@ -1,4 +1,4 @@
use crate::constants::raydium_amm_v4::accounts::{
use crate::instruction::utils::raydium_amm_v4::accounts::{
SWAP_FEE_DENOMINATOR, SWAP_FEE_NUMERATOR, TRADE_FEE_DENOMINATOR, TRADE_FEE_NUMERATOR,
};
+3 -2
View File
@@ -1,4 +1,4 @@
use crate::constants::raydium_cpmm::accounts::{
use crate::instruction::utils::raydium_cpmm::accounts::{
CREATOR_FEE_RATE, FEE_RATE_DENOMINATOR_VALUE, FUND_FEE_RATE, PROTOCOL_FEE_RATE, TRADE_FEE_RATE,
};
@@ -176,7 +176,8 @@ pub fn compute_swap_amount(
true,
);
let min_amount_out = ((swap_result.output_amount as f64) * (1.0 - (slippage_basis_points as f64) / 10000.0)) as u64;
let min_amount_out = ((swap_result.output_amount as f64)
* (1.0 - (slippage_basis_points as f64) / 10000.0)) as u64;
let all_trade = swap_result.input_amount == amount_in;