核心用法
cancel-task 是 OpenAnt 平台的任务管理技能,专供任务创建者使用,用于主动终止自己发布的任务并回收托管资金。该技能通过 CLI 工具链与 Solana 区块链交互,实现任务状态变更和链上退款。
标准执行流程:
1. 身份校验 → status --json 确认登录状态
2. 状态核查 → tasks get <taskId> 获取任务详情(状态、赏金、承接人)
3. 执行取消 → tasks cancel <taskId> 触发取消与退款
4. 退款验证 → tasks settlement <taskId> 确认链上资金退回
关键限制:
- 仅
DRAFT/OPEN/ASSIGNED状态可取消 SUBMITTED(已提交待审核)和COMPLETED(已完成)状态不可取消- 承接中的任务(
ASSIGNED)需先沟通,否则可能导致纠纷
显著优点
| 优势 | 说明 |
|------|------|
| **资金安全** | 取消自动触发智能合约退款,无需人工干预 |
| **状态透明** | 每一步都有 `--json` 结构化输出,便于程序化处理 |
| **链上可验证** | 通过 `settlement` 命令可独立验证退款到账 |
| **权限隔离** | 严格的创建者权限校验,防止恶意取消他人任务 |
潜在缺点与局限性
- 不可逆操作:取消后任务永久关闭,无法恢复
- 社交摩擦:
ASSIGNED状态取消可能影响承接人权益,需额外沟通步骤 - 链上延迟:Solana 索引确认需要数秒,退款非即时到账
- 状态依赖:需先掌握任务 ID 且状态符合要求,无法"强制取消"
- 无批量操作:每次仅支持单任务取消
适合人群
- 任务发布者需要撤回需求或调整预算
- 赏金任务长期无人承接,希望回收资金
- 发现任务描述有误,需在有人承接前紧急下架
- 与承接人协商一致后终止合作
常规风险
| 风险场景 | 缓解措施 |
|---------|---------|
| 误取消进行中任务 | 强制要求确认 `ASSIGNED` 状态的承接人信息 |
| 绕过审核直接取消已提交任务 | 明确禁止 `SUBMITTED` 状态取消,必须先处理提交 |
| 资金退款未到账焦虑 | 提供 `settlement` 验证命令与预期等待时间说明 |
| 非创建者越权操作 | CLI 后端权限校验 + 错误提示 "Only the task creator can cancel" |
该技能设计体现了 DeFi 任务平台的典型风控模式:链上自动执行与链下社交协调相结合。