name: swap-tokens description: 在SunSwap DEX上构建安全的未签名交易,用于代币交换,具备自动路径查找、滑点保护和交易验证功能。
代币交换技能
何时使用此技能
当用户想要时使用此技能:
- 在SunSwap DEX上交换代币
- 将TRX兑换为TRC20代币
- 在TRC20代币之间进行交易
- 获取最佳交换路径
安全特性
🔒 绝不处理私钥
- 仅生成未签名交易
- 用户在自己的钱包中签名(如TronLink等)
- 提供预执行模拟
支持的交换类型
- TRX ↔ TRC20代币
- TRC20 ↔ TRC20(通过TRX对)
- 自动路径查找以获取最佳汇率
工作原理
- 路径查找:确定最优交换路由
- 金额计算:查询链上储备以获取精确输出
- 交易构建:创建未签名交易JSON
- 验证:签名前模拟
使用方法
from skills.swap_tokens.scripts.build_swap import build_swap_transaction
tx = await build_swap_transaction(
user_address="您的地址...",
token_in="TRX",
token_out="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t", # USDT
amount_in=100,
slippage=0.5
)
参数
- user_address:您的钱包地址(交易签名者)
- token_in:符号(如“TRX”)或合约地址
- token_out:符号或合约地址
- amount_in:要交换的金额(以代币小数表示)
- slippage:最大可接受滑点(%),默认0.5%
输出
返回未签名交易JSON:
{
"txID": "...",
"raw_data": {
"contract": [...],
"fee_limit": 100000000
},
"visible": true,
"metadata": {
"expected_output": "99.5 USDT",
"minimum_output": "99.0 USDT",
"price_impact": "0.12%",
"path": ["TRX", "WTRX", "USDT"]
}
}
重要注意事项
⚠️ 签名前:
- 查看预期输出金额
- 检查价格影响
- 验证合约地址
- 确保有足够的TRX用于能量/带宽
智能特性
- 批准检测:检查是否需要代币批准
- 能量估算:预测能量成本
- 路径优化:查找最佳路由(直接与多跳)
- 滑点保护:设置最小输出