跳转到内容

2026-05-11

  • 10:05 · 拉取 FEAT-011-novamarketmaker 全量需求文档(12 子模块,62 markdown)至 .docs/iro-bsc/requirements/FEAT-011-novamarketmaker/
  • 10:10 · 从 master-v2 切出 feature/fe-001-novamarketmaker
  • 10:30 · 输出 sub-01 前端技术计划 docs/plans/FEAT-011-novamarketmaker-sub-01-home-onboarding-frontend-plan.md(14 任务 / 4 阶段,覆盖 21 AC + 12 Exception 全映射)
  • 11:00 · Phase 0 基建落地:NovaMM 子域 src/novamm/(providers / routes / placeholder pages / NovaMMShell / NovaMMGuard),tailwind 新增 13 个 novamm-* color tokens,App.tsx 拆出 IroMainLayout,独立 wagmi config + 独立 QueryClient
  • 11:30 · 完成 FEAT-011 12 子模块全量架构风险审计(每条阻塞点对应 sub + 严重度分级)
  • 重启 dev server 验证 /#/novamm/login 占位页能渲染
  • 评估 sub-07 OOXML AES-256 加密 xlsx POC(最关键的硬阻塞)
  • 进入 sub-01 Phase 1:SIWE 自建登录流程 + 5 钱包 picker modal(Tailwind+framer-motion)
  1. RainbowKit 2.x 与 wagmi 3.x 不兼容

    • 根因:RainbowKit 最新 2.2.11 peer hard-pin wagmi: ^2.9.0,编译时 import gemini connector,但 wagmi 3 已删除该 export
    • 处理:R1 回退激活,yarn remove @rainbow-me/rainbowkit,改用 wagmi 内置 4 connector(metaMask + walletConnect + coinbaseWallet + injected EIP-6963)。RainbowKit 在可预见的版本中不会支持 wagmi 3.x,项目长期路线必须自建钱包 UI
    • 影响:sub-01 钱包选择 modal 需自建(Tailwind+framer-motion,~150 LOC),与 memory feedback_v2_modal_tailwind 一致
  2. source-map-loader ENOENT 阻断编译

    • 根因:yarn remove rainbowkit 触发 node_modules 重平铺,@emotion/serialize / @reach/dialog//# sourceMappingURL= 注释指向已被 dedupe 掉的嵌套路径
    • 处理:.env.development.localGENERATE_SOURCEMAP=false + config-overrides.js 主动剔除 source-map-loader rule,双保险(不再依赖 env 重启时机)
    • 经验:env 改动必须完全重启 dev server,HMR 不重载 config-overrides
  3. @wagmi/connectors 桶导出污染(11:35 后新出现,未完全处理)

    • 现象:Module not found: @base-org/account / porto / @safe-global/safe-apps-sdk 等 7 条 warning
    • 根因:@wagmi/connectors index.jsexport * 把所有 connector 模块串起来,未用到的连接器(baseAccount / porto / safe)也会触发它们的 peer dep 解析
    • 当前状态:仅 warning 不阻断编译;运行时只用 MM / WC / CB / injected,对应 peer 都已装,不影响功能
    • 待处理:考虑用 webpack.IgnorePlugin 在 config-overrides 中静默这 6 个特定路径

🔴 后期阻塞(FEAT-011 风险审计输出,按严重度)

Section titled “🔴 后期阻塞(FEAT-011 风险审计输出,按严重度)”
  1. sub-07 OOXML AES-256 加密 xlsx 浏览器实现(P0 硬阻塞,sub-07 进开发前必须解决)

    • 需求:钱包 Excel 备份用钱包密码 AES-256 加密,离线打开需输密码(AC18)
    • 现状:已装 xlsx@0.18.5(SheetJS Community)不支持加密;exceljs 浏览器侧加密路径不稳
    • 候选方案:① crypto-js AES-GCM + 自包装 zip(保留 .xlsx 后缀) ② 后端代理加密(违反”本地非托管”否决) ③ 改用 .novamm-backup 纯密文 JSON(牺牲 Excel 兼容性,需 PM 确认)
    • 责任:前端 lead 在 sub-07 进入开发前 1 周内安排 1-2 天 POC
  2. sub-12 「24/7 做市」与本地非托管冲突(P1,待产品宣讲)

    • 浏览器关闭 = 任务停。已确定方案:单 tab leader(BroadcastChannel)+ beforeunload 确认,Service Worker 明确不做
    • 影响:产品需对运营宣讲「开多久跑多久」边界
    • 责任:PM
  3. 平台费 Treasury 地址未确定(P1,sub-11/12 合约前置)

    • 主网 / 测试网两套;umbrella overview.md Q4
    • 责任:iro-bsc 项目方 + 合约工程师
  4. REACT_APP_WALLETCONNECT_PROJECT_ID 未申请(P2,影响 sub-01 钱包列表)

    • 缺失则 WalletConnect 钱包不可用,5 钱包 AC 可能掉 1 个(其它 4 个仍能凑齐)
    • 责任:前端 / 运维 (https://cloud.walletconnect.com 申请)
  5. sub-09 / sub-10 同钱包并发跑多策略锁机制未拍板(P1,umbrella overview.md Q2)

    • 影响 task state 设计
    • 责任:产品 + 后端

🟢 已确认不是问题(避免误判为风险)

Section titled “🟢 已确认不是问题(避免误判为风险)”
  • HashRouter 路径风格(#/novamm/login):deeplink / refresh / share 均正常
  • Chakra ↔ Tailwind 共存:NovaMM 是新子域,零 Chakra 引用
  • 项目 src/state/multicall/** 4 大 Pitfall:NovaMM 用 viem 独立 useReadContracts,不接 Redux multicall slice
  • Redux-persist 槽位冲突:NovaMM 数据全部去 IndexedDB / Backend / Query cache
  • TypeScript 5.0.4 vs wagmi 3 peer ≥5.7.3:Babel 编译实际可跑,类型层个别 as any cast 即可

完整风险审计与代价对比详见会话上下文;后续每个 sub 进入开发前会单独 plan + brainstorming,本次先把 sub-01 走完闭环。