跳转到内容

2026-05-20

FEAT-003 AC15 链上 swap 链路收尾(6 天 0 事件 → 端到端打通)

Section titled “FEAT-003 AC15 链上 swap 链路收尾(6 天 0 事件 → 端到端打通)”
  • 根因定位:NovaMMRouter 报错 selector 0x5380c59d,4byte / openchain 查得 ZeroSlippage(),合约层 if (minAmountOut == 0) revert ZeroSlippage() 守卫。7bd36da 起 simulate 阶段刻意传 0n 绕 slippage gate 拿真实 amountOut 的策略恰好被这条守卫拒掉,导致 simulate 必 revert、broadcast 永不发出
  • 修复emitChainSwap simulate 阶段 minAmountOut: 0n → 1n,满足 ZeroSlippage(>0) 又远低于真实 amountOut(不会触发 InsufficientOutputAmount);broadcast 阶段仍用 slippage-derived minOut(不变)。注释更新到第四轮重写历史。commit ea2d493
  • buildbc05428 重建产物(main bundle main.ab75ec36.js → main.a7d2f543.js
  • 端到端验证:浏览器复跑 → testnet tx 0x3e94a0e0…f100b5(Status: Success,From 0x5FC8…53D0,To NovaMMRouter 0x7a3a0a…fda5fd),event log 17 由 NovaMMRouter 发出,topic0 0xe1ab90d2…b36a 经 viem 本地 keccak 验证 = Swapped(bytes32,address,address,address,address,uint256,uint256,uint256,address),3 indexed topic 对应 taskId / router / user — 6 天来第一笔真实 Swapped 事件落链
  • 副推论:simulate 报错本身证明 ①-⑤ 全通(BE tokens/wallets/tasks 注册 + scheduler 在推 task.tick + FE engine 接到 tick),zz 那 3 个 BE 表数据点不再阻塞,AC15 memory 闭环已删
  • chore(status): frontend mark FEAT-003 US-01 → 已完成:FEAT-003 前端列 联调中 → 已完成,frontmatter last_updated 2026-05-19 → 2026-05-20,状态 emoji 🟡(仍进行中,QA / PM 未推)。GitLab Files API PUT 200,约 30s 后 team-docs.pages.dev 部署可见
  • 删除 feat-003-ac15-chain-swap-pipeline-2026-05-19 闭环 memory + 同步索引

  • 11:18 · 接口对接 · [iro-bsc] · V3 联调发现 detail/list 字段需要后端补齐(pool_address / redeem_mode / fixed_release_rate),已发 TG 通知 zz

  • 11:36 · 前端已部署 · [iro-bsc] · 测试服部署 V3 合约接入完整链路(发币模态框 LP 赎回税三选一、详情页 + 赎回弹窗 redeemMode 三态、i18n 模板补齐、ONEDAY 对齐 4h、V3 IROOwner 路由独立、经纪商池子地址兜底)

  • 11:45 · 前端已部署 · [iro-bsc] · fomoadmin 测试服 V3 合约适配上线(reward-flow 退出税率 redeemMode 三模式 + admin 多页 V3 兼容 + 97 链 V3 地址)

QA preflight 审查 —— 9 个 FEAT 全量扫一遍

Section titled “QA preflight 审查 —— 9 个 FEAT 全量扫一遍”

把 story-status 上 QA「测试中 / 未开始」+ 后台前端已完成的 9 个 FEAT(001/003/004/007/008/009/010/011/012)全部跑了一次「spec vs impl」对照审查 —— QA 介入前主动找潜在的需求遗漏 / 实现偏离。8 个 FEAT 用 Explore subagent 并行跑(4+4 两批),每个 agent 输出 ✅/⚠️/❌ 三栏清单。FEAT-011 FE=— 跳过。

按修复优先级三档分类后批量推进。

  • FEAT-009 守住价格容忍度 + 最低钱包数(commit 413ec09):bandPct 三档 0.03/0.05/0.08 → 0.08/0.12/0.20 贴 spec L240;SubmitBar minWallets={1} → 2(spec 明确「守住价格 / 做活跃度至少 2 个钱包」,1 钱包能过校验但引擎跑不起来)
  • FEAT-010 pause/resume/cancel 错误 toast(commit 8e5f865):之前 void services.strategy.xxx(id) 把 promise 错误吞掉,QA 看不出接口失败。改 async + try/catch + toast 红字
  • FEAT-001 侧栏最近活动数据源 + 双 5s poll(commit 0ac1296):Sidebar 用 txStore(单代币 recent-trades 切片)跟 spec BE-007 /home/recent-activity(跨代币最近 5 条)不一致;首页活跃任务用 WS-driven 本地 taskStore,homeStore 已拉但渲染层从未消费。改为 homeStore.recentActivity + homeStore.activeTasks,各加独立 5s setInterval;TaskRow 改吃 TaskCardData 通用形
  • Sidebar 假按钮(commit 54c7ed5):「显示更多」div 顶 cursor-pointer + ChevronRight 但无 onClick,需求里也没要求该交互
  • FEAT-007 BT-010 5 次错误 + 30s 冷却(commit 2706839):VerifyPasswordPrompt 之前无失败计数 / 冷却,模块级 consecutiveFailures + cooldownUntil,第 5 次错触发冷却(counter 归零,下个序列从冷却后重新累计),冷却态 input + 提交按钮 disabled + tooltip / 倒计时
  • FEAT-009 三策略 intro 文案 + 单笔区间 + pump 笔数估算(commit 8014661):intro 改回 spec 原文「价格跌破自动接,涨过自动卖,维持区间」「同组钱包左手倒右手刷成交量」「短时间内拉 / 砸到指定价」;PRICE_SUPPORT 单笔区间贴 spec story-01 L241-242 gentle 50/250、standard 150/650、aggressive 600/1800;VOLUME_WASH gentle 单笔 200/600 → 100/400 贴 spec L251-252;三策略 SummaryCard 全部贴 spec FE-005 模板(守住价格补「锚价随行情滚动 / 柔性拉回 / 允许偶尔小幅破边」核心机制描述、做活跃度去冗余间隔、推到目标价补「预计约 M 笔交易」用 durationMin × 60 ÷ intensity_interval 公式估算)
  • FEAT-003 E8 周期切换超时(commit 6272ec9):之前 NovaSwap WSS history 不响应时 chart 卡新周期 fallback 视图。加 4s 超时:切周期后 novaswap.ready 没在 4s 内变 true → URL 回滚原周期 + toast「网络错误,请重试」。mock 模式跳过保护
  • FEAT-010 AC13 StrategyRow 1Hz tick(commit 216ff04):之前依赖 Zustand subscription 重渲,但 task 对象内部 timestamp 字段正常 running 中不变 → elapsed 字符串卡住。running 期间起 1Hz forceTick,paused/pending 不起 timer 省资源
  • FEAT-010 BT-014 Toast 队列(commit a0222cd):之前 setItemsslice(-MAX_STACK) 直接丢最旧,多策略并发完成时最早完成的看不到。改成超 stack 入 queueRef,每条 dismiss 自动从队列头取下一条替补,scheduleDismiss 递归到队列空
  • FEAT-003 K 线初始加载条数 spec 档位(1m=300、其他=200):NovaSwap WSS 协议 {type:'req', msg: \${subType}_${coinId}`}没有limit` 字段,FE 控制不了 BE 推几根。spec 当时是基于路线 A(NovaMM 后端代理)的预期,路线 B 直连 NovaSwap 后失效。留待 NovaSwap 协议升级或 PM 接受现状

❌ 不动(v2+ scope,user 已确认)

Section titled “❌ 不动(v2+ scope,user 已确认)”
  • FEAT-003 周期 4h/1d/1w + MA(7)/EMA(12)/BOLL(20,2) 三指标(spec overview L51/L72 明确 v2+)

today 累计 19 个 commit(10 src + 9 build),FEAT-003/007/009/010/012 五个 FEAT 都有 spec 合规 fix 落地。FEAT-001 数据源问题修完后 sidebar/home 切到 homeStore + 5s poll,跟 spec BE-006/BE-007 终于真正对齐。

  • 16:00 · 前端已部署 · [iro-bsc] · V3 主网合约接入正式服(v3IroFactory=0xC3400C4d… / v3Owner=0x69876820…),TG 通知 zz 补主网监听 factory
  • 16:10 · 前端已部署 · [iro-bsc] · fomoadmin 正式服 V3 BSC 主网配置就位(56.js v3IroFactory / v3Owner 回填 + V2 同步 2026-05-18 批次 + master-v2 buildspec 还原 prod)
  • 17:33 · 前端 Bug 已修复 · [nova-market] · BUG-054/055: 首页 TokenCard 价格刷新归零 / 策略暂停态首页显示「运行中」(race 修:runTokens apply 前兜底 await reconcileTokens + tokenService 加 inFlight 守卫;TokenCard 拆 running/paused selector)
  • FEAT-003 后续:观察 QA Ada 复跑 ABCD 脚本 + 看板成交 counter / recent-trades 列表是否真正反映链上 Swap 事件(依赖 BE listener 写 swap_events 表 → recent-trades 接口透传)。如果 listener 仍未写库,要找 zz 拍 listener
  • 清理另两条已实际闭环的 FEAT-003 memory(feat-003-kline-pipeline 路线 B 已合,feat-003-recent-trades-schema 路线 A 已合)
  • 若有新 P0/P1 FE bug 直接接
  • 无(FE 侧 chain swap 链路已端到端验证通,等 QA 复测 + BE listener 写库行为观察)