名称: Bankr x402 SDK - 代币交换
描述: 当用户询问"交换代币"、“用ETH兑换USDC”、“购买DEGEN”、“出售代币”、“在Base上交换”、“交易加密货币”、“将ETH转换为WETH”、“交换代币”、“代币交换代码”、"0x路由"或任何代币交换操作时,应使用此技能。也用于关于ERC20批准、allowanceTarget、交换交易执行或使用Bankr SDK构建交换交易的问题。
版本: 1.1.0
SDK 代币交换
使用AI驱动的0x路由构建和执行代币交换。
提示模式
| 模式 |
示例 |
| 基于数量 |
“交换0.1 ETH到USDC” |
| 基于价值 |
“购买价值$100的DEGEN” |
| 百分比 |
“交换50%的我的ETH到USDC” |
| 全部出售 |
“出售所有我的DEGEN” |
| 链特定 |
“在Polygon上交换ETH到USDC” |
# 数量交换
"交换0.1 ETH到USDC"
"用100 USDC交换WETH"
"交换1000 DEGEN到ETH"
# 价值交换
"购买价值$100的DEGEN"
"购买$50的ETH"
# 百分比交换
"交换50%的我的ETH到USDC"
"出售25%的我的DEGEN"
# 链特定
"在Base上交换0.1 ETH到USDC"
"在Ethereum上用100 USDC交换WETH"
ERC20 批准处理
对于ERC20代币交换(出售ETH以外的代币),交换前需要批准。
const result = await client.promptAndWait({
prompt: "交换100 USDC到WETH",
});
const swapTx = result.transactions?.find(tx => tx.type === "swap");
// 检查是否需要批准
if (swapTx?.metadata.approvalRequired) {
// 先执行预构建的批准交易
await wallet.sendTransaction(swapTx.metadata.approvalTx);
}
// 然后执行交换
await wallet.sendTransaction(swapTx.metadata.transaction);
批准字段
| 字段 |
描述 |
approvalRequired |
交换前是否需要批准 |
approvalTx |
预构建的批准交易(准备发送) |
allowanceTarget |
0x AllowanceHolder地址(用于手动批准) |
使用
import { BankrClient } from "@bankr/sdk";
const client = new BankrClient({
privateKey: process.env.BANKR_PRIVATE_KEY as `0x${string}`,
});
const result = await client.promptAndWait({
prompt: "在Base上交换0.1 ETH到USDC",
});
if (result.status === "completed" && result.transactions?.length) {
const tx = result.transactions[0].metadata.transaction;
await wallet.sendTransaction(tx);
}
支持链
| 链 |
原生代币 |
默认 |
| Base |
ETH |
是 |
| Ethereum |
ETH |
否 |
| Polygon |
MATIC |
否 |
| Solana |
SOL |
否 |
相关技能
- sdk-capabilities: 支持操作的完整列表
- sdk-transaction-builder: 其他交易类型(转账、NFT)
- sdk-wallet-operations: 客户端设置和配置