2026-06-01
2026-06-01 daniel 工作日志
Section titled “2026-06-01 daniel 工作日志”FEAT-014 做市地址批量管理 —— QA 回归收尾 + 主网正式服上线
Section titled “FEAT-014 做市地址批量管理 —— QA 回归收尾 + 主网正式服上线”主线节奏:上午接 QA 回归(批量上链全灭、移动端导出无响应)逐条修 → 午后与 QA/bob 拉通”6 个一签 / 手机逐笔”现象,定位到钱包能力层而非前端 bug → 傍晚做 supportsAtomic 探测加固 → 晚段 master-v2 同步 test 进度、构建 bsc 主网生产产物、部署正式服并发上线通知。
🔧 做市批量上链三处修复(QA 回归)(commit 401f54a3,产物 b67b2b68):
- 自适应 EIP-5792 bundle:遇 “call bundle too large” 自动折半重试(25→12→6→…)找到钱包可接受条数;bundle revert / 缩到 1 仍失败 → 该批逐笔兜底,保证任意数量都能传完、不再全灭
- checksum(AC4):传 ethers 前地址/代币统一转小写,修复混合大小写地址被
getAddress判 “bad address checksum” 导致全灭;展示仍用原始大小写 - 删除确认/导入异常清单:行加
shrink-0+leading-5,修复地址超容器高度时 flex 压缩导致文字行重叠
📱 移动端导出 xlsx 无响应修复(commit 9e07ff08,产物 9f1efffb):QA 反馈移动端导出异常清单无响应,修复落地。
🛡️ supportsAtomic 探测加固(commit 85315e9b):
- 改用裸
wallet_getCapabilities自解析,兼容标准atomic.status/ 旧atomicBatch/ 布尔supported:true三种形态,避免 viem 严格标准化对 TP 等钱包变体字段误判不支持 - 探测未标支持 / 调用失败均打
console.warn并输出原始 caps,不再静默回退逐笔,便于主网排查与采集钱包 capabilities 原始返回 - ESLint 0 / 改动文件 typecheck 0 错误(仅 node_modules/ox 预存依赖告警)
🚀 master-v2 主网生产部署:
- fast-forward 同步 test 进度(无分叉,到
85315e9b) - 还原
scripts/deploy.sh为主网生产环境(iro-dapp-go-prod//data/dapp-go/build,commit7cda1910) build:bsc:prod(.env.bsc.production,chain 56 / api.novahub.global)出主网产物(commit52cb757f),push master-v2,正式服 https://dapp.novahub.global- 发送 FEAT-014 上线 TG 通知到 IRO小组群
关键决策记录
Section titled “关键决策记录”- “全平台 1 签 100 个”根治方案 = 合约批量方法:QA 诉求做市像白名单一样一次签多个。白名单能 100 一签是因合约原生有
batchAddTokenWhiteList(token, 数组)(1 笔 tx);做市 owner 合约只有单条excludeFromFee,前端只能靠 EIP-5792 钱包层批量,受钱包能力制约。建议合约加batchExcludeFromFee(token, address[])/batchIncludeInFee,前端即可复用白名单分批逻辑、彻底脱离钱包限制。 - 7702 救不了手机端(回应 bob EIP-7702 提议):EIP-7702 的 dapp 入口就是
wallet_sendCalls(EIP-5792),与现方案同层;BSC 主网虽支持 7702,但手机钱包未暴露该入口,手机端仍退化逐笔。7702 是钱包侧机制,合约改不动其支持度。 - bob 主网实测确认协议模式可行:bob 在主网用 TP 验证批量转账成功(区块浏览器显示
Token Pocket: EIP-7702 Delegator)。结论:现 EIP-5792 前端架构主网即生效,不必改架构;测试网 7702/5792 不启用,QA 在 bsc:test 只能看到逐笔,属预期、非 bug。 - demo 对齐:bob 提供裸
wallet_sendCalls探测页(index.html),核对项目 viem 2.47.6 的sendCalls(forceAtomic)/getCapabilitieswire format 与之一致(均 EIP-5792 v2.0.0 + atomicRequired)。
全天 commit 累计
Section titled “全天 commit 累计”5 个核心 commit:401f54a3(fix) / 9e07ff08(fix) / 85315e9b(fix-加固) / 7cda1910(deploy还原) / 52cb757f(主网产物),外加 bsc:test 产物提交。test 与 master-v2 双分支均已推送。
FEAT-009/010 做市引擎 —— 做活跃度采样方案B + reason 对齐 + FE→BE /stop 主动推(与 BE/PM 多轮对齐)
Section titled “FEAT-009/010 做市引擎 —— 做活跃度采样方案B + reason 对齐 + FE→BE /stop 主动推(与 BE/PM 多轮对齐)”主线节奏:续做活跃度单笔采样方案B(达量即停笔数对齐 PRD 示例2)→ 三策略运行对账 + FE-BE 交接文档大改 → 与 BE(zz) 收敛”停止权威”到 BE-004 → 核需求文档定 duration_exceeded 走向 → 落地 task.completed reason 对齐 + ② FE→BE /stop wiring。
🎲 做活跃度单笔金额方案B:对数正态 + 算术均值定心(commit ad51b1e,PM 2026-06-01 钦定):
- 旧实现均匀 [min,max] 采样,均值 ≈ base×2.625,“达量即停”实跑笔数 ≈ 275 << 派生预测 720
- 改
sampleLognormalMean(μ=ln(mean)−σ²/2,算术均值定心)+ 裁剪,让 PRD v2.1 §5 示例2「单笔 41.7 / 720 笔」预期≈实际 - 蒙特卡洛实测:实跑笔数 275 → 722 ≈ 720(误差 <0.3%);σ=0 退化常数、缺 derived(旧任务)退化均匀兜底;单测锁 −σ²/2 修正项不被回退
🔥 推价越界熔断 §11 #4(commit 1f6b286)+ 做活跃度系数提具名常量(commit 7966161):
- 越界熔断改单向越界、两方向对称(上推>目标价×110% / 下砸<×90%)→ 暂停告警;
isPriceOvershoot排在「达价」判定前,启动初期不误触 - 0.25/5 单笔范围系数提为
VOLUME_WASH_SIZE_MIN/MAX_RATIO具名常量 + 单测锁,杜绝 FE 版本悄悄漂移
🔌 task.completed reason 对齐 BE 拼写(commit 21ef96f):
- FE
COMPLETED_REASONS旧 keytarget_volume_reached词序与 BE 反,和 BE ws.md / tasks-stop(v2.3) 广播的volume_target_reached不匹配 → 达量完成落默认兜底文案;改名对齐 - 补推价达价完成
target_price_reached(原缺失,交接 spec §7.3 缺口)+ 2 条 task.completed reason 单测
🛰️ ② FE 引擎完成/熔断主动推 BE /stop(commit 2cec09a,FEAT-010 / tasks-stop v2.3,TDD):
- 5 触发点(做活跃度达量 / 推价达价 / 推价超时 / 越界 / 滑点)在本地 complete/pause 后调
stopTaskOnBackend,BE 落库 + 广播 STOP_REASON常量集中锁 BE 白名单拼写(防 typo 破契约);pushTaskStopfire-and-forget(无 backendTaskId 不推 / 失败 catch+warn 不阻塞 tick,靠 BE safeguard/worker 5min 兜底)- 预算完成不推——非 AC9 路径,BE safeguard 自判;TDD:API 1 测 + 引擎 6 测,tick 套 43/43 绿;bsc:test 产物重建(commit
367b51e)
FEAT-009/010 FE-BE 协同 + 文档(无 commit)
Section titled “FEAT-009/010 FE-BE 协同 + 文档(无 commit)”📄 三策略运行对账 + FE-BE 交接文档大改(本地 docs/nova-market/,待 docs-push):
- 交接 spec 新增 §7「完成判定 / 停止权威 BE-004」+ §8「源码摘录(采样 / 派生 / 完成判定 / pause-aware 计时,供 BE 1:1 对齐)」+ §2.5.1「超调熔断 ≠ 反向异动」澄清 + §7.4 单笔系数表
- 跑
/frontend-docs-pull同步 143 个 BE / 需求 / 合约文档到.docs/
🤝 与 BE(zz) / PM 多轮对齐:
- 停止权威收敛 BE-004:FE 现读的
generatedVolume/spentBudget是「本地累加意图量 + BE swap_events 聚合绝对值覆盖」混合值(race + 双重计数),与 zz 拉通改为 BE 按聚合量自判自停,FE 完成判定降为离线兜底;zz 已认「跨会话 / 跨时段聚合后端处理合适」 - duration_exceeded 需求核对:核 FEAT-010 AC9 确认推价超时是需求硬要求(QA-025 + BT-013 双锁),回 zz → BE
/stop白名单加duration_exceeded(zz 已加);budget_exhausted非 AC9,BE safeguard 自判,不加 - reason 命名不一致 alert:需求 story-01:247 写
target_volume_reached、接口 ws.md / tasks-stop 写volume_target_reached(词序反),FE 按接口契约对齐,建议 PM 同步需求文档 - PM 拍板 #1/#2 实测确认无偏差:#1 价格偏离 10% 按 §2.5 超调含义(= FE 已实装 isPriceOvershoot,启动不误触)/ #2 单笔系数 C1 不动(沿用 FE 派生固化)→ FE 跑 4 套测对值(priceOvershoot / strategyDerive / tick / taskWsBridge)92/92 绿,确认无偏差
- 14:10 · 前端 Bug 已修复 · [iro-bsc] · FEAT-014 做市批量上链三处修复(自适应 bundle / checksum 全灭 / 异常清单行重叠)
- 15:30 · 前端 Bug 已修复 · [iro-bsc] · FEAT-014 移动端导出 xlsx 无响应修复
- 17:50 · 前端已记录 · [iro-bsc] · 钱包能力分析:7702/5792 同层、手机仅主网启用、根治需合约 batchExcludeFromFee
- 18:30 · 前端已修复 · [iro-bsc] · supportsAtomic 探测加固(兼容多 capabilities 形态 + 不再静默逐笔)
- 20:10 · 前端已部署 · [iro-bsc] · master-v2 同步 test + bsc:prod 主网产物,部署正式服 dapp.novahub.global
- 20:30 · 前端已部署 · [iro-bsc] · FEAT-014 上线 TG 通知发送(IRO小组群)
- 12:30 · 前端已对接 · [nova-market] · FEAT-009 做活跃度方案B:单笔对数正态+算术均值定心,达量即停笔数 275→722 对齐 PRD 示例2 (ad51b1e)
- 16:00 · 前端已记录 · [nova-market] · 三策略对账 + FE-BE 交接 §7/§8 源码摘录;停止权威收敛 BE-004(与 zz 拉通,BE 按聚合量自判)
- 17:15 · 前端已对接 · [nova-market] · task.completed reason 对齐 BE 拼写 volume_target_reached + 补 target_price_reached (21ef96f)
- 18:00 · 前端已记录 · [nova-market] · 核需求 AC9 确认 duration_exceeded 硬要求(QA-025+BT-013),推 BE /stop 白名单加 1 行
- 18:54 · 前端已对接 · [nova-market] · ② FE→BE /stop wiring:5 触发点主动推完成/熔断 (2cec09a,TDD API+引擎 7 测绿)
- 等主网真实经纪商账户验收:当前测试钱包(0xE7…95)非主网认证经纪商,进不到做市批量页面,业务功能层未实测。需 bob/owner 给一个主网经纪商账户跑通”批量上传 → TP 一次签 → cost 落链”。
- 采集 TP 主网
wallet_getCapabilities原始返回:用 bob demo 或加固后的console.warn拿到 caps 真实结构,最终确认 supportsAtomic 兼容分支无需再调。 - 推动合约
batchExcludeFromFee:与 bob 对齐是否新增合约批量方法(根治全平台一次签),定了前端再对接。
FEAT-009/010 做市引擎(nova-market):
- 推送 + 文档同步:3 个本地 commit(build
367b51e/ reason21ef96f/ ②2cec09a)push 远端;docs-push-gitlab把交接 §7/§8 + 源码摘录同步 docs-site,贴给 zz。 - 等 BE-004 落地:BE 按 swap_events 聚合量自判完成 + BE worker 笔数(吃
target_trade_count)/ 推价间隔(强度 30/15/8)/ 间隔分布指数(AC2)对齐后联调。 - /stop 联调:
target_price_reached已补进 FE COMPLETED_REASONS,等 BE 实际推该 reason 走一遍达价 / 超时 / 越界 / 滑点四条路径。
- 测试网测不出批量 → TP 等钱包 7702/5792 仅主网启用,bsc:test 永远逐笔。QA 验收需走主网,否则会重复提”手机逐笔”单。
- 主网功能层未实测 → 缺主网经纪商测试账户,做市批量页面在主网未走通业务流程。
- 根治方案待合约拍板 →
batchExcludeFromFee是否新增取决于 bob;未定前主网走 EIP-5792 协议模式(桌面可批量、手机逐笔)。
FEAT-009/010 做市引擎(nova-market):
- BE-004 未落地 → 当前完成判定仍由 FE 本地兜底,读的是「本地累加 + BE 聚合覆盖」混合值(race),需 BE 按聚合量自判才彻底收口;属后端工作。
- 本地未推 → novamarket 3 个 commit 未 push 远端、交接文档 §7/§8 未 docs-push(等推送 / review)。
- PM 待拍(不卡 FE) → 守价硬熔断 / 响应延迟是否本期、§2.2 笔数下限随新公式重定义、反向异动保护是否立项。