This commit is contained in:
William
2025-01-25 16:21:27 +08:00
parent 7bff98eaa5
commit e29e555c8f
+22
View File
@@ -254,20 +254,34 @@ impl PumpFun {
) -> Result<String, ClientError> { ) -> Result<String, ClientError> {
let start_time = Instant::now(); let start_time = Instant::now();
println!("111111111111111111")
let jito_client = self.jito_client.as_ref() let jito_client = self.jito_client.as_ref()
.ok_or_else(|| ClientError::Other("Jito client not found".to_string()))?; .ok_or_else(|| ClientError::Other("Jito client not found".to_string()))?;
println!("222222222222222222");
let global_account = self.get_global_account()?; let global_account = self.get_global_account()?;
println!("333333333333333333");
let bonding_curve_account = self.get_bonding_curve_account(mint)?; let bonding_curve_account = self.get_bonding_curve_account(mint)?;
println!("444444444444444444");
let buy_amount = bonding_curve_account let buy_amount = bonding_curve_account
.get_buy_price(amount_sol) .get_buy_price(amount_sol)
.map_err(ClientError::BondingCurveError)?; .map_err(ClientError::BondingCurveError)?;
println!("555555555555555555");
let buy_amount_with_slippage = let buy_amount_with_slippage =
utils::calculate_with_slippage_buy(amount_sol, slippage_basis_points.unwrap_or(DEFAULT_SLIPPAGE)); utils::calculate_with_slippage_buy(amount_sol, slippage_basis_points.unwrap_or(DEFAULT_SLIPPAGE));
println!("666666666666666666");
let mut instructions = vec![]; let mut instructions = vec![];
let tip_account = jito_client.get_tip_account().await?; let tip_account = jito_client.get_tip_account().await?;
println!("777777777777777777");
let ata = get_associated_token_address(&self.payer.pubkey(), mint); let ata = get_associated_token_address(&self.payer.pubkey(), mint);
if self.rpc.get_account(&ata).is_err() { if self.rpc.get_account(&ata).is_err() {
instructions.push(create_associated_token_account( instructions.push(create_associated_token_account(
@@ -278,6 +292,8 @@ impl PumpFun {
)); ));
} }
println!("888888888888888888");
instructions.push(instruction::buy( instructions.push(instruction::buy(
&self.payer.clone(), &self.payer.clone(),
mint, mint,
@@ -288,6 +304,8 @@ impl PumpFun {
}, },
)); ));
println!("999999999999999999");
instructions.push( instructions.push(
system_instruction::transfer( system_instruction::transfer(
&self.payer.pubkey(), &self.payer.pubkey(),
@@ -296,6 +314,8 @@ impl PumpFun {
), ),
); );
println!("101010101010101010");
let recent_blockhash = self.rpc.get_latest_blockhash()?; let recent_blockhash = self.rpc.get_latest_blockhash()?;
let transaction = Transaction::new_signed_with_payer( let transaction = Transaction::new_signed_with_payer(
&instructions, &instructions,
@@ -304,6 +324,8 @@ impl PumpFun {
recent_blockhash, recent_blockhash,
); );
println!("110000000000000000");
let signature = jito_client.send_transaction(&transaction).await?; let signature = jito_client.send_transaction(&transaction).await?;
println!("Total Jito buy operation time: {:?}ms", start_time.elapsed().as_millis()); println!("Total Jito buy operation time: {:?}ms", start_time.elapsed().as_millis());