rebuild nonce and swqos strategy

This commit is contained in:
wood
2025-09-20 14:00:45 +08:00
parent 4df22f2057
commit b46582a273
7 changed files with 120 additions and 124 deletions
+14 -9
View File
@@ -9,6 +9,7 @@ use tokio::task::JoinHandle;
use crate::{
common::{GasFeeStrategy, SolanaRpcClient},
common::nonce_cache::DurableNonceInfo,
swqos::{SwqosClient, SwqosType, TradeType},
trading::{common::build_transaction, BuyParams, MiddlewareManager, SellParams},
};
@@ -25,8 +26,9 @@ pub async fn buy_parallel_execute(
instructions,
params.lookup_table_key,
params.recent_blockhash,
params.nonce_account,
params.current_nonce,
params.durable_nonce.clone(),
// params.nonce_account,
// params.current_nonce,
params.data_size_limit,
params.middleware_manager,
protocol_name,
@@ -49,8 +51,9 @@ pub async fn sell_parallel_execute(
instructions,
params.lookup_table_key,
params.recent_blockhash,
params.nonce_account,
params.current_nonce,
params.durable_nonce.clone(),
// params.nonce_account,
// params.current_nonce,
0,
params.middleware_manager,
protocol_name,
@@ -68,9 +71,10 @@ async fn parallel_execute(
rpc: Option<Arc<SolanaRpcClient>>,
instructions: Vec<Instruction>,
lookup_table_key: Option<Pubkey>,
recent_blockhash: Hash,
nonce_account: Option<Pubkey>,
current_nonce: Option<Hash>,
recent_blockhash: Option<Hash>,
durable_nonce: Option<DurableNonceInfo>,
// nonce_account: Option<Pubkey>,
// current_nonce: Option<Hash>,
data_size_limit: u32,
middleware_manager: Option<Arc<MiddlewareManager>>,
protocol_name: &'static str,
@@ -133,6 +137,7 @@ async fn parallel_execute(
let swqos_type = swqos_type.clone();
let tip_account = tip_account.clone();
let rpc = rpc.clone();
let durable_nonce = durable_nonce.clone();
let handle = tokio::spawn(async move {
core_affinity::set_for_current(core_id);
@@ -156,8 +161,8 @@ async fn parallel_execute(
swqos_type != SwqosType::Default,
&tip_account,
tip_amount,
nonce_account,
current_nonce,
durable_nonce,
// current_nonce,
)
.await?;
+9 -6
View File
@@ -1,6 +1,7 @@
use super::traits::ProtocolParams;
use crate::common::bonding_curve::BondingCurveAccount;
use crate::common::SolanaRpcClient;
use crate::common::nonce_cache::DurableNonceInfo;
use crate::solana_streamer_sdk::streaming::event_parser::common::EventType;
use crate::solana_streamer_sdk::streaming::event_parser::protocols::bonk::BonkTradeEvent;
use crate::swqos::SwqosClient;
@@ -25,7 +26,7 @@ pub struct BuyParams {
pub sol_amount: u64,
pub slippage_basis_points: Option<u64>,
pub lookup_table_key: Option<Pubkey>,
pub recent_blockhash: Hash,
pub recent_blockhash: Option<Hash>,
pub data_size_limit: u32,
pub wait_transaction_confirmed: bool,
pub protocol_params: Box<dyn ProtocolParams>,
@@ -35,8 +36,9 @@ pub struct BuyParams {
pub create_wsol_ata: bool,
pub close_wsol_ata: bool,
pub create_mint_ata: bool,
pub nonce_account: Option<Pubkey>,
pub current_nonce: Option<Hash>,
// pub nonce_account: Option<Pubkey>,
// pub current_nonce: Option<Hash>,
pub durable_nonce: Option<DurableNonceInfo>,
}
/// Sell parameters
@@ -48,7 +50,7 @@ pub struct SellParams {
pub token_amount: Option<u64>,
pub slippage_basis_points: Option<u64>,
pub lookup_table_key: Option<Pubkey>,
pub recent_blockhash: Hash,
pub recent_blockhash: Option<Hash>,
pub wait_transaction_confirmed: bool,
pub with_tip: bool,
pub protocol_params: Box<dyn ProtocolParams>,
@@ -57,8 +59,9 @@ pub struct SellParams {
pub middleware_manager: Option<Arc<MiddlewareManager>>,
pub create_wsol_ata: bool,
pub close_wsol_ata: bool,
pub nonce_account: Option<Pubkey>,
pub current_nonce: Option<Hash>,
// pub nonce_account: Option<Pubkey>,
// pub current_nonce: Option<Hash>,
pub durable_nonce: Option<DurableNonceInfo>,
}
impl std::fmt::Debug for BuyParams {