feat: refactor seed optimization to global configuration in v3.2.0

- Remove open_seed_optimize parameter from TradeBuyParams and TradeSellParams structs
- Add global use_seed_optimize configuration in TradeConfig with default value true
- Add create_wsol_ata_on_startup configuration in TradeConfig with default value true
- Implement automatic WSOL ATA creation and verification on SDK initialization
- Add with_wsol_ata_config() builder method to TradeConfig for custom WSOL settings
- Update all examples to remove open_seed_optimize parameter usage
- Update documentation (README, TRADING_PARAMETERS) to reflect new configuration approach
- Upgrade package version from 3.1.7 to 3.2.0

Breaking Changes:
- open_seed_optimize parameter removed from trade parameters (now global setting)
- Seed optimization is now enabled by default for all operations
This commit is contained in:
ysq
2025-11-07 16:57:28 +08:00
parent 9824576164
commit c5a55b1c14
23 changed files with 173 additions and 74 deletions
-1
View File
@@ -154,7 +154,6 @@ async fn pumpfun_copy_trade_with_grpc(trade_info: PumpFunTradeEvent) -> AnyResul
create_input_token_ata: false,
close_input_token_ata: false,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
-2
View File
@@ -162,7 +162,6 @@ async fn bonk_copy_trade_with_grpc(trade_info: BonkTradeEvent) -> AnyResult<()>
create_input_token_ata: true,
close_input_token_ata: false,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -204,7 +203,6 @@ async fn bonk_copy_trade_with_grpc(trade_info: BonkTradeEvent) -> AnyResult<()>
)),
address_lookup_table_account: None,
wait_transaction_confirmed: true,
open_seed_optimize: false,
with_tip: false,
durable_nonce: None,
create_output_token_ata: false,
-2
View File
@@ -132,7 +132,6 @@ async fn bonk_sniper_trade_with_shreds(trade_info: BonkTradeEvent) -> AnyResult<
create_input_token_ata: true,
close_input_token_ata: true,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -170,7 +169,6 @@ async fn bonk_sniper_trade_with_shreds(trade_info: BonkTradeEvent) -> AnyResult<
create_output_token_ata: true,
close_output_token_ata: true,
close_mint_token_ata: false,
open_seed_optimize: false,
with_tip: false,
durable_nonce: None,
fixed_output_token_amount: None,
-10
View File
@@ -630,7 +630,6 @@ async fn handle_buy_pumpfun(
create_input_token_ata: false,
close_input_token_ata: false,
create_mint_ata: create_mint_ata,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -685,7 +684,6 @@ async fn handle_buy_pumpswap(
create_input_token_ata: true,
close_input_token_ata: false,
create_mint_ata: create_mint_ata,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -739,7 +737,6 @@ async fn handle_buy_bonk(
create_input_token_ata: true,
close_input_token_ata: false,
create_mint_ata: create_mint_ata,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -797,7 +794,6 @@ async fn handle_buy_raydium_v4(
create_input_token_ata: true,
close_input_token_ata: false,
create_mint_ata: create_mint_ata,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -855,7 +851,6 @@ async fn handle_buy_raydium_cpmm(
create_input_token_ata: true,
close_input_token_ata: false,
create_mint_ata: create_mint_ata,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -1024,7 +1019,6 @@ async fn handle_sell_pumpfun(
create_output_token_ata: true,
close_output_token_ata: false,
close_mint_token_ata: false,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -1083,7 +1077,6 @@ async fn handle_sell_pumpswap(
create_output_token_ata: true,
close_output_token_ata: false,
close_mint_token_ata: false,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -1141,7 +1134,6 @@ async fn handle_sell_bonk(
create_output_token_ata: true,
close_output_token_ata: false,
close_mint_token_ata: false,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -1202,7 +1194,6 @@ async fn handle_sell_raydium_v4(
create_output_token_ata: true,
close_output_token_ata: false,
close_mint_token_ata: false,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -1263,7 +1254,6 @@ async fn handle_sell_raydium_cpmm(
create_output_token_ata: true,
close_output_token_ata: false,
close_mint_token_ata: false,
open_seed_optimize: use_seed,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -43,7 +43,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
create_input_token_ata: false, //if input token is SOL/WSOL,set to true,if input token is USDC,set to false.
close_input_token_ata: false, //if input token is SOL/WSOL,set to true,if input token is USDC,set to false.
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: Some(1),
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -77,7 +76,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
create_output_token_ata: false, //if output token is SOL/WSOL,set to true,if output token is USDC,set to false.
close_output_token_ata: false, //if output token is SOL/WSOL,set to true,if output token is USDC,set to false.
close_mint_token_ata: false,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: Some(1),
gas_fee_strategy: gas_fee_strategy,
-1
View File
@@ -98,7 +98,6 @@ async fn test_middleware() -> AnyResult<()> {
create_input_token_ata: true,
close_input_token_ata: true,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
-1
View File
@@ -154,7 +154,6 @@ async fn pumpfun_copy_trade_with_grpc(trade_info: PumpFunTradeEvent) -> AnyResul
create_input_token_ata: false,
close_input_token_ata: false,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: durable_nonce,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -150,7 +150,6 @@ async fn pumpfun_copy_trade_with_grpc(trade_info: PumpFunTradeEvent) -> AnyResul
create_input_token_ata: false,
close_input_token_ata: false,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -194,7 +193,6 @@ async fn pumpfun_copy_trade_with_grpc(trade_info: PumpFunTradeEvent) -> AnyResul
create_output_token_ata: false,
close_output_token_ata: false,
close_mint_token_ata: false,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -116,7 +116,6 @@ async fn pumpfun_sniper_trade_with_shreds(trade_info: PumpFunTradeEvent) -> AnyR
create_input_token_ata: true,
close_input_token_ata: true,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -149,7 +148,6 @@ async fn pumpfun_sniper_trade_with_shreds(trade_info: PumpFunTradeEvent) -> AnyR
create_output_token_ata: true,
close_output_token_ata: true,
close_mint_token_ata: false,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -43,7 +43,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
create_input_token_ata: true,
close_input_token_ata: true,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -76,7 +75,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
create_output_token_ata: true,
close_output_token_ata: true,
close_mint_token_ata: false,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
-2
View File
@@ -212,7 +212,6 @@ async fn pumpswap_trade_with_grpc(mint_pubkey: Pubkey, params: PumpSwapParams) -
create_input_token_ata: is_sol,
close_input_token_ata: is_sol,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -247,7 +246,6 @@ async fn pumpswap_trade_with_grpc(mint_pubkey: Pubkey, params: PumpSwapParams) -
create_output_token_ata: is_sol,
close_output_token_ata: is_sol,
close_mint_token_ata: false,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -160,7 +160,6 @@ async fn raydium_amm_v4_copy_trade_with_grpc(trade_info: RaydiumAmmV4SwapEvent)
create_input_token_ata: is_wsol,
close_input_token_ata: is_wsol,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -194,7 +193,6 @@ async fn raydium_amm_v4_copy_trade_with_grpc(trade_info: RaydiumAmmV4SwapEvent)
create_output_token_ata: is_wsol,
close_output_token_ata: is_wsol,
close_mint_token_ata: false,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
@@ -154,7 +154,6 @@ async fn raydium_cpmm_copy_trade_with_grpc(trade_info: RaydiumCpmmSwapEvent) ->
create_input_token_ata: is_wsol,
close_input_token_ata: is_wsol,
create_mint_ata: true,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -190,7 +189,6 @@ async fn raydium_cpmm_copy_trade_with_grpc(trade_info: RaydiumCpmmSwapEvent) ->
create_output_token_ata: is_wsol,
close_output_token_ata: is_wsol,
close_mint_token_ata: false,
open_seed_optimize: false,
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,
-2
View File
@@ -42,7 +42,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
create_input_token_ata: true,
close_input_token_ata: true,
create_mint_ata: true,
open_seed_optimize: true, // ❗️❗️❗️❗️ open seed optimize
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy.clone(),
@@ -83,7 +82,6 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
create_output_token_ata: true,
close_output_token_ata: true,
close_mint_token_ata: false,
open_seed_optimize: true, // ❗️❗️❗️❗️ open seed optimize
durable_nonce: None,
fixed_output_token_amount: None,
gas_fee_strategy: gas_fee_strategy,