关于 gate-exchange-flashswap
通过 gate-cli 执行 Gate Flash Swap 加密货币兑换的 Skill,支持单币及多币兑换、查询交易对和限额,并提供执行前预览与确认流程。
主要功能
- 01单币兑换为另一种币
- 02一种币兑换为多种币
- 03多种币合并兑换为一种
- 04查询支持的交易对和限额
- 05查看兑换订单
适用场景
- 01预览 BTC 兑换 USDT
- 02用一种币购买多种资产
- 03将多种资产合并兑换
- 04查询兑换限额或订单状态
MCP 相关
通过 gate-cli flash-swap 命令获取报价、查询支持的交易对、创建兑换订单及查询订单。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ gate/ gate-skills --skill gate-exchange-flashswap安装后在 Claude Code 中输入/gate-exchange-flashswap确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.mdREADME.mdsetup.shreferences/gate-cli.mdmcp.mdscenarios.md详细介绍
解析 gate-cli(二进制路径)
按顺序解析 gate-cli:(1) command -v gate-cli 和 gate-cli --version 均执行成功;(2) 如果 ${HOME}/.local/bin/gate-cli 可执行,则使用该路径;(3) 如果 ${HOME}/.openclaw/skills/bin/gate-cli 可执行,则使用该路径。规范规则:exchange-runtime-rules.md §4(或 gate-runtime-rules.md §4)。
Gate Flash Swap
一般规则
⚠️ 停止——继续操作前,必须阅读并严格遵循共享运行时规则。 在读完所有规则之前,切勿选择或调用任何工具。这些规则具有最高优先级。 → 阅读 gate-runtime-rules.md
- 仅使用本技能明确列出的
gate-cli命令。 即使其他接口提供了本技能未记录的命令,也不得在这些工作流中运行。
技能依赖
使用的 gate-cli 命令
查询操作(只读)
gate-cli cex flash-swap ordergate-cli cex flash-swap pairsgate-cli cex flash-swap ordersgate-cli cex flash-swap preview-many-to-onegate-cli cex flash-swap preview-one-to-manygate-cli cex flash-swap preview-v1
执行操作(写入)
gate-cli cex flash-swap create-many-to-onegate-cli cex flash-swap create-one-to-manygate-cli cex flash-swap create-v1
身份验证
- 交互式文件设置: 如果主机上未同时设置
GATE_API_KEY和GATE_API_SECRET,运行gate-cli config init,按照向导完成 API 密钥、密钥、配置档和默认值的设置(参见 gate-cli)。 - 环境变量 / 标志: 如果已提供凭据,则无需运行
gate-cli config init——例如,在主机上同时设置GATE_API_KEY和GATE_API_SECRET,或在支持的情况下使用--api-key/--api-secret——绝不要让用户在聊天中粘贴密钥。 - 权限: Fc:Write
- 门户: 请在聊天之外创建或轮换密钥:https://www.gate.com/myaccount/profile/api-key/manage
安装检查
- 必需:
gate-cli(如果缺失,请在此技能目录中运行sh ./setup.sh;可选GATE_CLI_SETUP_MODE=release)。 - 如果要通过名称调用
gate-cli,请将$HOME/.openclaw/skills/bin添加到PATH(或添加setup.sh的安装目录)。 - 凭据: 如果主机已设置非空的
GATE_API_KEY和GATE_API_SECRET,则不要要求运行gate-cli config init——这对于gate-cli来说是等效的有效配置。如果两者均未设置或为空,请提醒操作者运行gate-cli config init,或在技能库中相应的技能里配置GATE_API_KEY/GATE_API_SECRET(绝不要让用户在聊天中粘贴密钥)。 - 健全性检查: 在执行经过身份验证的调用之前,不要继续操作,直到 CLI 行为符合预期(例如
gate-cli --version或本技能中的只读gate-cli cex ...命令);在执行任何修改操作前,确认凭据已成功解析。
执行模式
阅读并严格遵循 references/gate-cli.md,然后执行本技能的 flashswap 工作流。
SKILL.md负责路由和场景边界。references/gate-cli.md是权威的gate-cli执行规范,规定了预览 / 创建顺序、确认关卡和降级处理。
触发条件
当用户的请求符合以下任一条件时,将激活此 Skill:
- 想要将一种加密货币兑换成另一种
- 想要一次性使用一种货币购买多种加密货币(例如“用 1u 买 BTC、用 2u 买 ETH”)
- 想要将多种加密货币卖出并兑换成一种目标货币(例如“卖出 1 BTC、2 ETH,换成 USDT”)
- 询问哪些货币支持闪兑
- 询问兑换金额或限额的最低值/最高值
- 请求查询闪兑订单历史或特定订单详情
- 使用关键词:“flash swap”“convert”“quick exchange”“swap”“instant swap”
快速入门
常见用法示例:
- 一对一兑换:“卖出 1 BTC 换成 USDT”
- 购买多种币:“买入 1u BTC、2u ETH、3u SOL”
- 卖出多种币:“卖出 1 BTC、2 ETH、3 SOL 换成 USDT”
- 查看交易对:“显示支持闪兑的交易对”
- 订单历史:“显示我的闪兑订单”
领域知识
闪兑是 Gate 提供的快速加密货币兑换服务。用户可以按照实时汇率,将一种加密货币即时兑换成另一种,无需下单等待撮合。
兑换模式:
- 一对一:将一种货币兑换成另一种货币(例如 BTC → USDT)
- 一对多:将一种货币兑换成多种目标货币(例如 USDT → BTC + ETH + SOL)
- 多对一:将多种货币兑换成一种目标货币(例如 BTC + ETH + SOL → USDT)
关键概念:
- sell_asset / buy_asset:卖出方和买入方的货币符号
- sell_amount / buy_amount:指定其中一项,API 会计算另一项。一对多兑换时,对每种目标货币使用
sell_amount;多对一兑换时,对每种来源货币使用sell_amount - quote_id:预览 API 返回的唯一标识符,创建订单时必须提供。确切的有效期由响应中的
valid_timestamp指明。务必检查此字段,不要假定有效期固定 - 订单状态:
1= 成功,2= 失败
API 字段命名:
gate-cli cex flash-swap pairs返回 snake_case 字段:sell_min_amount、sell_max_amount、buy_min_amount、buy_max_amount、currency_pair、sell_currency、buy_currencygate-cli cex flash-swap preview-v1和多币种预览 API 在某些环境中会返回 camelCase 字段(例如sellMinAmount)。务必读取响应中的实际字段名,不要假定命名约定固定gate-cli cex flash-swap orders和gate-cli cex flash-swap order返回 snake_case 字段:sell_currency、buy_currency、sell_amount、buy_amount、create_time
数据类型说明:API 响应中的 order_id 以字符串形式返回。quote_id 也为字符串。
MCP 工具清单:
| 工具 | 类型 | 描述 |
|---|---|---|
gate-cli cex flash-swap preview-v1 | 预览 | 一对一兑换报价预览 |
gate-cli cex flash-swap create-v1 | 创建 | 创建一对一兑换订单(需要 quote_id) |
gate-cli cex flash-swap preview-one-to-many | 预览 | 一对多兑换报价预览 |
gate-cli cex flash-swap create-one-to-many | 创建 | 创建一对多兑换订单 |
gate-cli cex flash-swap preview-many-to-one | 预览 | 多对一兑换报价预览 |
gate-cli cex flash-swap create-many-to-one | 创建 | 创建多对一兑换订单 |
gate-cli cex flash-swap pairs | 查询 | 列出支持闪兑的交易对和限额 |
gate-cli cex flash-swap orders | 查询 | 查询闪兑订单历史 |
gate-cli cex flash-swap order | 查询 | 按 ID 查询单笔闪兑订单 |
工作流
步骤 1:识别用户意图
分析用户的请求,确定要执行哪种闪兑操作。
意图分类:
| 用户意图 | 模式 | 预览工具 | 创建工具 |
|---|---|---|---|
| 将一种币兑换为另一种币(例如“卖出 1 BTC 换成 USDT”) | one-to-one | gate-cli cex flash-swap preview-v1 | gate-cli cex flash-swap create-v1 |
| 无需单独确认即可一键兑换(例如“直接将 100 USDT 兑换成 GT”) | one-to-one-auto | gate-cli cex flash-swap preview-v1 → gate-cli cex flash-swap create-v1 | — |
| 使用一种货币购买多种币(例如“买入 1u BTC、2u ETH”) | one-to-many | gate-cli cex flash-swap preview-one-to-many | gate-cli cex flash-swap create-one-to-many |
| 按比例将一种货币拆分兑换为多种币(例如“拆分 1000 USDT,一半换成 BTC,一半换成 ETH”) | one-to-many-split | gate-cli cex flash-swap preview-one-to-many | gate-cli cex flash-swap create-one-to-many |
| 买入指定数量的多种币(例如“用 USDT 买入 0.1 BTC 和 1 ETH”) | one-to-many-buy | gate-cli cex flash-swap preview-one-to-many | gate-cli cex flash-swap create-one-to-many |
| 将多种币卖出并兑换为一种货币(例如“卖出 1 BTC、2 ETH 换成 USDT”) | many-to-one | gate-cli cex flash-swap preview-many-to-one | gate-cli cex flash-swap create-many-to-one |
| 将某些币的所有持仓合并兑换为一种币(例如“将我的所有 BTC、ETH、DOGE 兑换成 USDT”) | many-to-one-all | gate-cli cex flash-swap preview-many-to-one | gate-cli cex flash-swap create-many-to-one |
| 仅预览多币种兑换(例如“我的 BTC 和 ETH 能换多少 GT?”) | many-to-one-preview | gate-cli cex flash-swap preview-many-to-one | — |
| 查询支持闪兑的交易对 | query | gate-cli cex flash-swap pairs | — |
| 查询闪兑订单列表 | query | gate-cli cex flash-swap orders | — |
| 按 ID 查询单笔闪兑订单 | query | gate-cli cex flash-swap order | — |
| 验证最新订单结果(例如“我的兑换成功了吗?”) | verify-order | gate-cli cex flash-swap order | — |
需要提取的关键数据:
intent:"one_to_one" / "one_to_one_auto" / "one_to_many" / "one_to_many_split" / "one_to_many_buy" / "many_to_one" / "many_to_one_all" / "many_to_one_preview" / "list_pairs" / "list_orders" / "get_order" / "verify_order"sell_asset/buy_asset:涉及的货币sell_amount/buy_amount:用户指定的数量
步骤 2:预先校验兑换数量(在任何预览之前)
调用预览 API 前,根据交易对的最小值和最大值限制校验用户的兑换数量,避免不必要的 API 调用。
调用 gate-cli cex flash-swap pairs,并传入:
currency:用户请求中的 sell_asset 或 buy_asset
需要提取的关键数据:
sell_min_amount/sell_max_amount:卖出端允许的范围buy_min_amount/buy_max_amount:买入端允许的范围
校验逻辑:
- 如果用户的
sell_amount<sell_min_amount,告知用户金额低于最低限额,且不要继续预览 - 如果用户的
sell_amount>sell_max_amount,告知用户金额超过最高限额 - 如果未找到交易对,则表示该货币不支持闪兑
如果用户明确要求“一键”或“直接”兑换,请跳过此步骤以尽量降低延迟。
第 3 步:预览 — 一对一兑换(如果意图为 one_to_one 或 one_to_one_auto)
调用 gate-cli cex flash-swap preview-v1,并提供:
sell_asset(必填,字符串):要卖出的资产,例如 "BTC"buy_asset(必填,字符串):要买入的资产,例如 "USDT"sell_amount(字符串):卖出数量。在sell_amount和buy_amount中选择一个buy_amount(字符串):买入数量。在sell_amount和buy_amount中选择一个
需要提取的关键数据:
quote_id:创建订单时必需sell_asset/sell_amount:已确认的卖出方buy_asset/buy_amount:计算得出的买入方price:汇率valid_timestamp:报价到期时间
对于 one_to_one 意图:向用户展示预览,并在继续创建订单前征求确认。
对于 one_to_one_auto 意图:用户已通过明确要求“直接”或“一键”执行,预先授权此次兑换。跳过单独的确认提示,立即继续执行第 4 步。这符合安全规则,因为用户的直接请求即为确认。但是:如果预览返回任何错误(code != 0),则不要继续执行第 4 步,立即向用户报告错误。
第 4 步:创建 — 一对一兑换(用户确认第 3 步后,或 one_to_one_auto 自动执行)
前置条件:第 3 步必须返回 code == 0,且包含有效的 quote_id。如果第 3 步失败(任何 code != 0),则不要执行此步骤。切勿捏造 quote_id。
调用 gate-cli cex flash-swap create-v1,并提供 JSON 字符串请求体:
quote_id(必填,字符串):来自预览响应,必须是 API 实际返回的值sell_asset(必填,字符串):要卖出的资产sell_amount(必填,字符串):卖出数量buy_asset(必填,字符串):要买入的资产buy_amount(必填,字符串):买入数量
需要提取的关键数据:
id:已创建的订单 IDstatus:1= 成功,2= 失败sell_asset/sell_amount/buy_asset/buy_amount:已确认的数量price:执行汇率create_time:订单创建时间戳error.code/error.message:即使 HTTP 状态码为 200,也要检查错误
订单结果验证:创建后,检查 status 字段:
- 如果
status == 1:告知用户兑换成功,并显示最终收到的buy_amount - 如果
status == 2:告知用户兑换失败,并建议重新预览后再试 - 如果
error.code != 0:向用户报告具体错误消息
第 5 步:预览 — 一对多兑换(如果意图为 one_to_many、one_to_many_split 或 one_to_many_buy)
对于 one_to_many_split:用户指定总金额和分配比例(例如“拆分 1000 USDT,一半换 BTC、一半换 ETH”)。调用 API 前,先计算每个目标的 sell_amount。
对于 one_to_many_buy:用户指定每种币的目标 buy_amount(例如“买入 0.1 BTC 和 1 ETH”)。在 params 数组中使用 buy_amount 字段而非 sell_amount,让 API 计算所需的卖出数量。
调用 gate-cli cex flash-swap preview-one-to-many,并提供 JSON 字符串请求体:
params(必填,数组):每个元素包含:sell_asset(必填,字符串):源币种(所有项相同,例如 "USDT")sell_amount(字符串):用于兑换此目标的源币种数量buy_asset(必填,字符串):目标币种(例如 "BTC"、"ETH")buy_amount(字符串):可替代 sell_amount
需要提取的关键数据:
orders[]:预览结果数组,每项包含quote_id、sell_amount、buy_amount、price和errortotal_consume_amount:消耗的源币种总量- 检查每个订单的
error.code,非零表示该项获取报价失败
展示完整的预览表,并突出显示失败项。征求用户确认。
步骤 6:创建 — 一对多兑换(用户确认步骤 5 后)
重要:排除预览失败的项目(即 error.code != 0 或缺少 quote_id 的项目)。
调用 gate-cli cex flash-swap create-one-to-many,并传入 JSON 字符串作为请求体:
params(必需,数组):每个元素包含:sell_asset(必需,字符串):源货币sell_amount(必需,字符串):卖出数量buy_asset(必需,字符串):目标货币buy_amount(必需,字符串):买入数量(来自预览)quote_id(字符串):来自预览响应
需要提取的关键数据:
orders[]:已创建订单的数组,每个订单包含id、status、errortotal_consume_amount:实际消耗总额- 检查每个订单的
error.code,以确认各项目是否失败
步骤 7:预览 — 多对一兑换(如果 intent = many_to_one、many_to_one_all 或 many_to_one_preview)
对于 many_to_one_all:用户希望合并指定货币的全部持仓。预览前,查询用户的现货账户余额,确定每种货币的实际数量。过滤掉余额低于闪兑最低数量的货币(sell_min_amount 来自 gate-cli cex flash-swap pairs)。
调用 gate-cli cex flash-swap preview-many-to-one,并传入 JSON 字符串作为请求体:
params(必需,数组):每个元素包含:sell_asset(必需,字符串):源货币(例如“BTC”、“ETH”)sell_amount(字符串):卖出数量buy_asset(必需,字符串):目标货币(所有项目相同,例如“USDT”)buy_amount(字符串):可替代sell_amount
需要提取的关键数据:
orders[]:预览结果数组,包含quote_id、sell_amount、buy_amount、price、errortotal_acquire_amount:将收到的目标货币总量- 检查每个订单的
error.code——非零表示该项目失败
展示完整的预览表,并突出显示失败项目。
对于 many_to_one_preview:展示预计 buy_amount 总额(所有成功项目之和),且不要继续创建。告知用户这仅为预览。
对于 many_to_one 和 many_to_one_all:继续创建前,请求用户确认。
步骤 8:创建 — 多对一兑换(用户确认步骤 7 后)
重要:排除预览失败的项目。包含失败项目(例如 buy_amount: "0")会导致整个请求因 code: 4 而被拒绝。
调用 gate-cli cex flash-swap create-many-to-one,并传入 JSON 字符串作为请求体:
params(必需,数组):每个元素包含:sell_asset(必需,字符串):源货币sell_amount(必需,字符串):卖出数量buy_asset(必需,字符串):目标货币buy_amount(必需,字符串):买入数量(来自预览)quote_id(字符串):来自预览响应
需要提取的关键数据:
orders[]:已创建订单的数组,包含id、status、errortotal_acquire_amount:实际收到的总额
步骤 9:查询闪兑交易对(如果 intent = list_pairs)
调用 gate-cli cex flash-swap pairs,并传入:
currency(可选,字符串):按货币符号筛选limit(可选,数字):返回的最多项目数(默认 1000)page(可选,数字):页码
大型结果集警告:不设置货币筛选时,可能返回数千行。汇总总数,展示 20 个交易对示例,并建议按货币筛选。
需要提取的关键数据:
items[]:货币交易对列表,包含currency_pair、sell_currency、buy_currency、sell_min_amount、sell_max_amount、buy_min_amount、buy_max_amount
步骤 10:查询闪兑订单历史记录(如果意图为 list_orders)
调用前,如果提供了 status 参数,请先验证。有效值仅为 1(成功)和 2(失败)。
调用 gate-cli cex flash-swap orders,并传入:
status(可选,数字):1= 成功,2= 失败sell_currency(可选,字符串):按卖出币种筛选buy_currency(可选,字符串):按买入币种筛选limit(可选,数字):最大记录数page(可选,数字):页码reverse(可选,布尔值):true表示最新记录优先(默认值)
需要提取的关键数据:
- 订单列表及其
id、sell_currency、buy_currency、sell_amount、buy_amount、price、status、create_time
步骤 11:查询单笔订单(如果意图为 get_order 或 verify_order)
调用 gate-cli cex flash-swap order,并传入:
order_id(必填,数字):要查询的订单 ID
如果 API 返回 404,请告知用户未找到该订单。
对于 verify_order:获取订单后,检查 status:
- 如果
status == 1:确认闪兑成功,并显示实际收到的最终buy_amount - 如果
status == 2:告知用户闪兑失败,建议重新预览并下单
需要提取的关键数据:
- 完整订单详情:
id、sell_currency、buy_currency、sell_amount、buy_amount、price、status、create_time
步骤 12:整理并呈现结果
使用适当的报告模板整理结果。对于闪兑操作,始终展示:
- 包含报价详情的预览摘要表
- 创建后,展示订单 ID、状态以及各项错误(如有)
错误处理
| 错误场景 | 处理方式 |
|---|---|
| 地区/合规限制(code -2) | 严重:API 返回 {"code":-2,"message":"This service is not supported in your region"}。这意味着该用户所在地区无法使用闪兑。立即停止所有操作,切勿继续创建订单,并告知用户:“由于合规限制,您所在的地区无法使用闪兑。”切勿编造任何结果 |
| 预览失败(任何非零 code) | 严重:如果预览 API 返回任何 code != 0,则操作已失败。切勿继续执行创建步骤。切勿编造 quote_id。向用户报告确切的错误代码和消息。API 返回错误时,绝不可显示“成功” |
| 金额低于最低限额(sell_amount < sell_min_amount) | 先查询 gate-cli cex flash-swap pairs。如果低于最低限额,告知用户确切的最低限额,且不要调用预览 |
| 金额超过最高限额(sell_amount > sell_max_amount) | 告知用户金额超过允许的最高限额,并显示限额 |
| 报价已过期(code 1052) | quote_id 已过期。重新运行预览以获取最新报价,然后立即创建订单 |
| 无法获取准确报价(code 4 / 400001 / 400007) | 这些是服务端的报价相关错误。code 4 表示顶层请求被拒绝(通常由包含失败项目导致)。400001 和 400007 是单项错误,表示服务端无法为该交易对或金额定价。建议调整金额、尝试其他交易对,或移除失败项目 |
| 多币种创建:整个请求被拒绝(code 4) | 可能是因为包含了 buy_amount: "0" 的预览失败项目。移除所有预览结果中 error.code != 0 的项目,然后重试 |
| 订单状态 == 2(失败) | 告知用户闪兑失败。建议调整参数后重新预览并重试 |
| 未找到订单(404) | order_id 不存在。建议验证 ID,或先查询订单列表 |
| MCP 服务连接失败 | 提示用户检查网络或 VPN,并建议稍后重试 |
| 未提供 order_id | 提示用户提供订单 ID,或先查询订单列表 |
| 查询结果为空 | 告知用户未找到数据,并建议调整筛选条件 |
| 不支持该币种 | 告知用户指定的币种无法用于闪兑 |
| 状态值无效 | 状态仅接受 1(成功)或 2(失败)。调用 API 前拒绝其他值 |
| 结果集过大(数千行) | 汇总总数,展示 20 条样例,并建议按币种筛选 |
| many_to_one_all 的余额低于最低限额 | 整合所有持仓时,跳过余额 < sell_min_amount 的币种,并告知用户哪些币种已排除 |
安全规则
- 绝不伪造结果:如果任何 API 调用返回错误(code != 0),必须向用户报告实际错误。绝不伪造成功响应、虚构订单 ID、quote_id 或交易结果。这是最重要的安全规则
- 预览失败后绝不继续:如果预览 API 返回任何错误(code != 0,包括地区限制错误 code -2),必须立即停止。不要调用创建 API。不要虚构 quote_id(例如“ AUTO-GT-001”)。如实报告错误
- 创建前始终先预览:每笔兑换都必须先经过预览步骤。对于标准流程,向用户展示报价,并等待明确确认后再调用创建 API。仅在
one_to_one_auto模式下:用户已明确要求直接兑换(例如“直接兑换”或“一键兑换”),这视为预先授权的确认——预览后无需单独请求确认,立即继续创建 - 未经确认不得执行写入操作:除非(a)用户已明确确认预览结果,或(b)用户明确要求一键兑换/直接兑换,否则绝不要调用任何创建/下单 API。查询操作(列出交易对、列出订单、获取订单)无需确认
- 排除预览失败的项目:创建多币种订单时,只包含预览成功的项目(
error.code == 0) - 不要泄露敏感信息:绝不要输出 API Key、Secret 或身份验证令牌
- 按原样显示金额:不要对 API 响应中的金额进行四舍五入或修改
- 大额金额警告:如果兑换总额超过等值 10,000 USDT,提醒用户再次核对
- 处理过期确认:如果用户确认了先前的预览,请检查当前时间是否已超过该预览响应中的
valid_timestamp。如果已过期,则自动重新预览以获取新报价,然后再创建
判断逻辑摘要
| 条件 | 操作 | 工具 |
|---|---|---|
| 用户想将一种币兑换成另一种币 | 先预览一对一兑换,确认后再创建 | gate-cli cex flash-swap preview-v1 → gate-cli cex flash-swap create-v1 |
| 用户说“直接”或“一键”兑换 | 自动预览并创建,无需单独确认 | gate-cli cex flash-swap preview-v1 → gate-cli cex flash-swap create-v1 |
| 用户引用之前的 quote_id 进行确认 | 使用所引用的 quote_id 创建订单 | gate-cli cex flash-swap create-v1 |
| 兑换金额小得可疑 | 预览前根据交易对的最小金额进行预校验 | gate-cli cex flash-swap pairs |
| 用户想用一种货币购买多种币 | 先预览一对多兑换,再创建 | gate-cli cex flash-swap preview-one-to-many → gate-cli cex flash-swap create-one-to-many |
| 用户想按比例拆分一种货币(例如“各一半”) | 计算每个目标币种的 sell_amount,然后预览一对多兑换 | gate-cli cex flash-swap preview-one-to-many → gate-cli cex flash-swap create-one-to-many |
| 用户指定购买数量(例如“买 0.1 BTC 和 1 ETH”) | 在 params 中使用 buy_amount,预览一对多兑换 | gate-cli cex flash-swap preview-one-to-many → gate-cli cex flash-swap create-one-to-many |
| 用户想将多种币兑换成一种货币 | 先预览多对一兑换,再创建 | gate-cli cex flash-swap preview-many-to-one → gate-cli cex flash-swap create-many-to-one |
| 用户想归集某些持仓的“全部”资产 | 查询余额,按最小金额筛选,预览多对一兑换,再创建 | gate-cli cex flash-swap pairs → gate-cli cex flash-swap preview-many-to-one → gate-cli cex flash-swap create-many-to-one |
| 用户询问“不执行的话能换到多少” | 仅预览多对一兑换,汇总 buy_amounts,切勿创建 | gate-cli cex flash-swap preview-many-to-one |
预览返回 error.code != 0 的条目 | 警告用户,创建前排除失败的条目 | — |
| 预览返回代码 -2(区域限制) | 立即停止。切勿创建。告知用户其所在区域无法使用闪兑 | — |
| 预览返回任何非零代码 | 停止。切勿创建。切勿伪造 quote_id。向用户报告确切错误 | — |
| 创建返回代码 1052(报价已过期) | 重新运行预览以获取最新报价 | 预览工具 |
| 创建返回单项错误(400001/400007) | 报告失败的条目,并建议调整金额 | — |
| 多币种创建因代码 4 被拒绝 | 移除预览失败的条目并重试 | 创建工具 |
| 创建后订单状态 == 2 | 告知用户兑换失败,并建议重试 | — |
| 用户询问“我的兑换成功了吗?” | 按 ID 查询订单,并检查 status 字段 | gate-cli cex flash-swap order |
| 用户询问支持的交易对或限额 | 查询交易对列表 | gate-cli cex flash-swap pairs |
| 用户查询订单历史 | 查询订单列表 | gate-cli cex flash-swap orders |
| 用户按 ID 查询特定订单 | 查询单个订单 | gate-cli cex flash-swap order |
| 未找到订单(404) | 告知用户,并建议检查 ID | — |
| 用户提供无效的状态筛选值 | 拒绝请求,并告知有效值为 1 或 2 | — |
报告模板
时间戳格式:所有 {timestamp} 占位符均使用 ISO 8601 格式:YYYY-MM-DD HH:mm:ss UTC。
一对一预览报告
## Flash Swap Preview (One-to-One)
**Quote ID**: {quote_id}
**Valid Until**: {valid_timestamp}
| Sell | Amount | Buy | Amount | Rate |
|------|--------|-----|--------|------|
| {sell_asset} | {sell_amount} | {buy_asset} | {buy_amount} | {price} |
Proceed with this swap? (Yes/No)
一对一订单报告
## Flash Swap Order Created
**Order ID**: {id}
**Status**: {status_text}
**Created At**: {create_time}
| Sell | Amount | Buy | Amount | Rate |
|------|--------|-----|--------|------|
| {sell_asset} | {sell_amount} | {buy_asset} | {buy_amount} | {price} |
多币种预览报告(一对多 / 多对一)
## Flash Swap Preview ({mode})
**Total {direction}**: {total_amount} {currency}
| # | Sell | Sell Amount | Buy | Buy Amount | Rate | Quote ID | Status |
|---|------|-------------|-----|------------|------|----------|--------|
| {n} | {sell_asset} | {sell_amount} | {buy_asset} | {buy_amount} | {price} | {quote_id} | {status} |
{failed_count} item(s) failed to get a quote and will be excluded from the order.
Proceed with {success_count} successful item(s)? (Yes/No)
多币种订单报告
## Flash Swap Orders Created ({mode})
**Total {direction}**: {total_amount} {currency}
| # | Order ID | Sell | Sell Amount | Buy | Buy Amount | Status | Error |
|---|----------|------|-------------|-----|------------|--------|-------|
| {n} | {id} | {sell_asset} | {sell_amount} | {buy_asset} | {buy_amount} | {status_text} | {error_message} |
{success_count}/{total_count} orders succeeded.
交易对列表报告
## Gate Flash Swap Supported Pairs
**Query Time**: {timestamp}
**Filter**: {currency filter or "None"}
| Pair | Sell Currency | Buy Currency | Sell Min | Sell Max |
|------|---------------|--------------|----------|----------|
| {currency_pair} | {sell_currency} | {buy_currency} | {sell_min_amount} | {sell_max_amount} |
Total: {total} pairs.
订单列表报告
## Gate Flash Swap Order History
**Query Time**: {timestamp}
**Filters**: Status={status}, Sell={sell_currency}, Buy={buy_currency}
| Order ID | Sell | Sell Amount | Buy | Buy Amount | Status | Created At |
|----------|------|-------------|-----|------------|--------|------------|
| {id} | {sell_currency} | {sell_amount} | {buy_currency} | {buy_amount} | {status_text} | {create_time} |
Total: {total} records.
订单详情报告
## Gate Flash Swap Order Details
| Field | Value |
|-------|-------|
| Order ID | {id} |
| Sell Currency | {sell_currency} |
| Sell Amount | {sell_amount} |
| Buy Currency | {buy_currency} |
| Buy Amount | {buy_amount} |
| Exchange Rate | {price} |
| Status | {status_text} |
| Created At | {create_time} |