Files
sol-trade-sdk/docs/TRADING_PARAMETERS_CN.md
T
0xfnzero 05ac079d6d release: update DEX protocol support for v4.0.9
Sync supported DEX IDLs from bitquery/solana-idl-lib, upgrade protocol builders, and keep trade submission hot paths free of RPC query calls.

Include exact-output coverage, token-account setup fixes for WSOL and stable pairs, and low-latency transaction build improvements.
2026-05-16 06:42:50 +08:00

8.2 KiB
Raw Blame History

📋 交易参数参考手册

本文档提供 Sol Trade SDK 中所有交易参数的完整参考说明。

📋 目录

TradeBuyParams

TradeBuyParams 结构体包含在不同 DEX 协议上执行买入订单所需的所有参数。

基础交易参数

参数 类型 必需 描述
dex_type DexType 要使用的交易协议 (PumpFun, PumpSwap, Bonk, RaydiumCpmm, RaydiumAmmV4, MeteoraDammV2)
input_token_type TradeTokenType 要使用的输入代币类型 (SOL, WSOL, USD1)
mint Pubkey 要购买的代币 mint 公钥
input_token_amount u64 要花费的输入代币数量(最小代币单位)
slippage_basis_points Option<u64> 滑点容忍度(基点单位,例如 100 = 1%, 500 = 5%
recent_blockhash Option<Hash> 用于交易有效性的最新区块哈希
extension_params Box<dyn ProtocolParams> 协议特定参数 (PumpFunParams, PumpSwapParams 等)

高级配置参数

参数 类型 必需 描述
address_lookup_table_account Option<Pubkey> 用于交易优化的地址查找表
wait_tx_confirmed bool 是否等待交易确认
create_input_token_ata bool 是否创建输入代币关联代币账户
close_input_token_ata bool 交易后是否关闭输入代币 ATA
create_mint_ata bool 是否创建代币 mint ATA
durable_nonce Option<DurableNonceInfo> 持久 nonce 信息,包含 nonce 账户和当前 nonce 值
fixed_output_token_amount Option<u64> 可选的固定输出代币数量。对于支持 exact-out 的 DEX,会使用 exact-out 指令,并将 input_token_amount 作为最大输入预算(Meteora DAMM V2 必需)
gas_fee_strategy GasFeeStrategy Gas fee 策略实例,用于控制交易费用和优先级
simulate bool 是否模拟交易而不实际执行。当为 true 时,将通过 RPC 模拟交易以验证并显示详细日志、计算单元消耗和潜在错误,而不会实际提交到区块链

TradeSellParams

TradeSellParams 结构体包含在不同 DEX 协议上执行卖出订单所需的所有参数。

基础交易参数

参数 类型 必需 描述
dex_type DexType 要使用的交易协议 (PumpFun, PumpSwap, Bonk, RaydiumCpmm, RaydiumAmmV4, MeteoraDammV2)
output_token_type TradeTokenType 要接收的输出代币类型 (SOL, WSOL, USD1)
mint Pubkey 要出售的代币 mint 公钥
input_token_amount u64 要出售的代币数量(最小代币单位)
slippage_basis_points Option<u64> 滑点容忍度(基点单位,例如 100 = 1%, 500 = 5%
recent_blockhash Option<Hash> 用于交易有效性的最新区块哈希
with_tip bool 交易中是否包含小费
extension_params Box<dyn ProtocolParams> 协议特定参数 (PumpFunParams, PumpSwapParams 等)

高级配置参数

参数 类型 必需 描述
address_lookup_table_account Option<AddressLookupTableAccount> 用于交易优化的地址查找表
wait_tx_confirmed bool 是否等待交易确认
create_output_token_ata bool 是否创建输出代币关联代币账户
close_output_token_ata bool 交易后是否关闭输出代币 ATA
durable_nonce Option<DurableNonceInfo> 持久 nonce 信息,包含 nonce 账户和当前 nonce 值
gas_fee_strategy GasFeeStrategy Gas fee 策略实例,用于控制交易费用和优先级
fixed_output_token_amount Option<u64> 可选的固定输出代币数量。对于支持 exact-out 的 DEX,会使用 exact-out 指令,并将 input_token_amount 作为最大输入预算(Meteora DAMM V2 必需)
simulate bool 是否模拟交易而不实际执行。当为 true 时,将通过 RPC 模拟交易以验证并显示详细日志、计算单元消耗和潜在错误,而不会实际提交到区块链

参数分类

🎯 核心交易参数

这些参数对于定义基本交易操作至关重要:

  • dex_type: 确定用于交易的协议
  • input_token_type (买入) / output_token_type (卖出): 指定基础代币类型 (SOL, WSOL, USD1)
  • mint: 指定要交易的代币
  • input_token_amount: 定义交易规模(买入和卖出操作都使用此参数)
  • recent_blockhash: 确保交易有效性

⚙️ 交易控制参数

这些参数控制交易的处理方式:

  • slippage_basis_points: 控制可接受的价格滑点
  • wait_tx_confirmed: 控制是否等待确认

🔧 账户管理参数

这些参数控制自动账户创建和管理:

  • create_input_token_ata (买入) / create_output_token_ata (卖出): 自动为输入/输出代币创建代币账户
  • close_input_token_ata (买入) / close_output_token_ata (卖出): 交易后自动关闭代币账户
  • create_mint_ata: 自动为交易代币创建代币账户

🚀 优化参数

这些参数启用高级优化:

  • address_lookup_table_account: 使用地址查找表减少交易大小

🔄 代币类型参数

TradeTokenType 枚举支持以下基础代币:

  • SOL: Solana 原生代币(通常与 PumpFun 协议一起使用)
  • WSOL: 包装 SOL 代币(通常与 PumpSwap、Bonk、Raydium 协议一起使用)
  • USD1: USD1 稳定币(目前仅在 Bonk 协议上支持)

🔄 非必填参数

当你需要使用 durable nonce 时,需要填入这个参数:

  • durable_nonce: 持久 nonce 信息,包含 nonce 账户和当前 nonce 值

重要说明

🌱 Seed 优化

Seed 优化现在在创建 SolanaTrade 实例时通过 TradeConfig 全局配置:

// 全局启用 seed 优化(默认: true
let trade_config = TradeConfig::new(rpc_url, swqos_configs, commitment)
    .with_wsol_ata_config(
        true,  // create_wsol_ata_on_startup: 启动时检查并创建 WSOL ATA(默认: true
        true   // use_seed_optimize: 为所有 ATA 操作启用 seed 优化(默认: true
    );

当 seed 优化启用时:

  • ⚠️ 警告: 使用 seed 优化购买的代币必须通过此 SDK 出售
  • ⚠️ 警告: 官方平台的出售方法可能会失败
  • 📝 注意: 使用 get_associated_token_address_with_program_id_fast_use_seed 获取 ATA 地址

💰 代币账户管理

账户管理参数提供精细控制:

  • 独立控制: 创建和关闭操作可以分别控制
  • 批量操作: 创建一次,多次交易,然后关闭
  • 租金优化: 关闭账户时自动回收租金

🔍 地址查找表

使用 address_lookup_table_account 之前:

  • 查找表减少交易大小并提高成功率
  • 对于有许多账户引用的复杂交易特别有益

📊 滑点配置

推荐的滑点设置:

  • 保守: 100-300 基点 (1-3%)
  • 中等: 300-500 基点 (3-5%)
  • 激进: 500-1000 基点 (5-10%)

🎯 协议特定参数

每个 DEX 协议需要特定的 extension_params

  • PumpFun: PumpFunParams
  • PumpSwap: PumpSwapParams
  • Bonk: BonkParams
  • Raydium CPMM: RaydiumCpmmParams
  • Raydium AMM V4: RaydiumAmmV4Params
  • Meteora DAMM V2: MeteoraDammV2Params

请参阅相应的协议文档了解详细的参数规格。

🔍 交易模拟

simulate: true 时:

  • 不提交区块链: 交易不会实际提交到区块链
  • 验证功能: 验证交易构建和执行,而不会消耗实际代币
  • 详细输出: 显示全面的信息,包括:
    • 带有详细执行步骤的交易日志
    • 计算单元消耗(用于优化 CU 预算)
    • 潜在错误和失败原因
    • 用于调试的内部指令
  • 使用场景:
    • 在真实执行前测试交易逻辑
    • 调试失败的交易
    • 估算计算单元消耗
    • 验证交易参数
  • 📝 注意: 模拟使用 RPC 的 simulateTransaction 方法,采用 processed 承诺级别