NOIR WALLET / V2 · 2026-11-12 · 第二轮逐项复核
PR81 产品验收报告
55 条原反馈 + 追加 Add Account,共 56 条。A / B / C 是原文三组编号;条目编号与组内“图几”分别标注。已有明确方向的产品要求直接实现;待设计仅保留明确交给 @Mency 的未定方案。混合条目在结论中拆开说明。
基线:PR81 · cb4ca51。修改位于独立工作树,未推送。截图点击可查看原尺寸。
本轮复核更正
- 已按原文逐张核对 27 张产品图:B9 对应 Zcash settings(第二组图6),B10 对应 Receiving Address(第二组图7);纠正上版 B10 的标题和判断。
- 新增“明确需求”分类:产品已经给出方案的调整直接实施,不再当作待设计。混合条目分别列明已执行部分和设计剩余部分。
- B9 的具体问题是生成新 Shield 地址按钮的位置;C11 的 EVM Private 退款地址与 Zcash 透明退款地址分开处理。
- 每个有截图的条目直接展示产品原图与本轮实拍;混合项分开写已改部分和待设计部分。没有对应实拍的修复明确保留验证缺口。
验证范围
- 基线 PR81 cb4ca51;修改位于独立工作树,未提交、推送或发布。
- 2,777 项核心测试全部通过;最终扩展类型检查、默认构建、测试入口排除及 WASM 完整性检查通过。
- 截图来自真实隔离 MV3 扩展。接口受控、合成历史和模拟执行逐项标注;未执行真实资金交易。D1 的两种历史状态沿用上一轮已通过的真实 MV3 证据。
- 尚未验收:原目录竞态、闪烁、冷启动卡顿、原 BNB 余额场景、BNB USDT 线上报价。官方 dry quote 返回 401;受控报价截图不代表线上交易对可用。
A1
Private 收款提示过长
明确需求已落实 · 真实 MV3 验证通过收款选择器原有长警告和独立按钮;按指定短文案改为句内入口。
处理:RecipientSelector 中 Moves from Shield Account 可点击。
产品原图 · A组图1
修复后 · 短说明与句内 Move 入口真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图1,说明文案篇幅占用过大,文案改为:Private Account only accepts Moves from Shield Account. 然后Moves from Shield Account高亮可以点击即可,不需要单独的按钮.
- packages/extension/src/popup/components/transaction/RecipientSelector.tsx
A2
Send 地址与金额顺序
明确需求顺序已调整 · 细部样式待设计EVM Send 将金额输入放在收款地址之前,和反馈的操作顺序不符。
处理:已将收款地址移到 Amount 前;@Mency 提到的金额左右样式仍由设计确认。
产品原图 · A组图2
修复后 · 收款地址在金额前,显示预计时间真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图2,你可以体验一下,说实话有点不顺手,选完地址之后,总会下意识去找哪里输入Amount,因为别的钱包都是先地址再Amount,从用户习惯来看,也是先选地址再输入Amount。@Mency 实在不行就将Amount设置放在to地址的后面,不要用现在的AmountUI,就有左右显示的样式.
- packages/extension/src/popup/pages/transactions/EvmSendForm.tsx
A3
Public 转账缺预估时间
明确需求已落实 · 真实 MV3 验证通过动态时间估算缺失时原来显示破折号;产品已明确要求链级兜底。
处理:动态估算优先,缺失时采用粗略链级预计时间(ETH 约 30 秒);这是操作预估,不是到账保证。
产品原图 · A组图2
修复后 · 收款地址在金额前,显示预计时间真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图2,public模式的native转账,没有预估时间,ETH写死30s,别的链也有自己的对应时间,可以让AI分析一下并HardCode即可.
- packages/extension/src/popup/hooks/useEvmConfirmationEstimate.ts
- packages/extension/src/popup/pages/transactions/EvmSendForm.tsx
A4
页面/弹框切换闪烁
待核实待复现反馈未给具体切换路径、设备和闪烁帧;Move 的 picker 切换涉及异步数据和页面重绘。
处理:需真实扩展录屏/复现后定位具体闪烁层。
原始反馈与源码依据 / 原图
很多页面切换,仍旧有闪烁问题,例如从地址选择弹框切换到move UI.
- packages/extension/src/popup/pages/transactions/Transfer.tsx
A5
Move 首次默认方向
明确 bug已落实 · 真实 MV3 验证通过普通 Move 默认值与首页显式传入方向均受钱包模式影响;仅修默认值还会被首页参数覆盖。
处理:同时修正首页普通入口和草稿回退,默认 Public→Shield;显式路由、草稿及专用 Shield 入口保留原意图。
修复后 · 默认 Public → Shield,From/账户同排真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
Move UI默认Public到Shield,而不是Public到Private.
- packages/extension/src/popup/pages/transactions/move-draft.ts
A6
From / To 卡片换行
明确需求同排布局已落实 · 实拍通过From/To 卡片标签和账户名称分两行来自 DomainCard 布局。
处理:From/To 标签与账户名称改为紧凑同排;后续整体视觉由 @Mency 调整。
产品原图 · A组图3
修复后 · 默认 Public → Shield,From/账户同排真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图3,这个UI总觉得别扭,From和Account1分为了两行,下面的To也是一样的问题 @Mency .
- packages/extension/src/popup/pages/transactions/Transfer.tsx
A7
确认金额的点击弹框
明确需求已落实 · 真实 MV3 验证通过确认页通用金额组件默认开启详情/复制弹层。
处理:Move 确认页金额直接显示完整精度,不再弹出金额详情。
产品原图 · A组图4
修复后 · 金额无弹框、短地址及合并费用行真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图4,Move的Confirm UI,amount可以点击,点击后还有一个弹框?这个不需要吧.
- packages/extension/src/popup/pages/transactions/Transfer.tsx
- packages/extension/src/popup/components/common/AmountDisplay.tsx
A8
Move 地址显示过长
明确需求已落实 · 真实 MV3 验证通过Move 确认页源地址和目标地址原来可能换行显示完整值。
处理:改为 0x 后前五位加末五位,完整值仍由已审核交易负载保留。
产品原图 · A组图4
修复后 · 金额无弹框、短地址及合并费用行真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图4,From这里地址取0x后面前5后5显示就好了,没必要两行展示.
- packages/extension/src/popup/pages/transactions/Transfer.tsx
A9
是否删除 Minimum receive
需解释已核对源码报价同时返回 expectedOutputRaw 与 minimumOutputRaw;截图显示 2 USDC 和 1.99 USDC,不能假定无滑点或等额到账。
处理:保留 Minimum receive 作为真实报价下限;如要删除需先确认报价/执行契约。
产品原图 · A组图4
修复后 · 金额无弹框、短地址及合并费用行真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图4,前一个UI没有地方设置滑点,那么这里也不应该有Minimum receive吧,我记得隐私充值目前没有滑点吧,充多少到账多少?麻烦确认一下 @Willa 如果是,去掉Minimum receive.
- packages/extension/src/popup/pages/transactions/Transfer.tsx
- packages/extension/src/core/services/confidential-funding/confidential-funding-model.ts
A10
合并手续费行
明确需求已落实 · 真实 MV3 验证通过原确认页将报价费用与源链 gas 分列,二者币种和口径不同。
处理:合为 Estimated fee 一行,内部保留 Route 与 Network/Max network 各自数值。
产品原图 · A组图4
修复后 · 金额无弹框、短地址及合并费用行真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图4,Estimate Fee和Network Fee合并,变成一个Estimate Fee即可.
- packages/extension/src/popup/pages/transactions/Transfer.tsx
A11
Move Confirm 后跳转突兀
明确需求已落实 · 导航验证通过原先确认后跳首页再开 Activity,或 Done 默认返回首页,打断连续操作。
处理:Shield 操作在原页展示 Activity;Send / Swap Done 返回发起表单,保留必要资产、模式和方向,清空金额与旧结果。显式 View Activity 仍可进入历史。
产品原图 · A组图4
Move 原位详情 · 合成已启动记录,只读恢复
Move Done 后 · 原表单保留方向,金额清空真实隔离 MV3,只读恢复合成 plan / Activity;未点击最终 Confirm,广播和意图提交计数为 0。状态与哈希为测试数据。
原始反馈与源码依据
图4,点击Confirm之后动画跳转有点突兀,瞬间关闭页面,回到首页,并弹出Receive框,动画需要优化.
- packages/extension/src/popup/pages/transactions/Transfer.tsx
A12
Move 被标为 Receive
明确 bug语义修复实拍通过 · 版式待设计自有账户 Move 的 shield deposit 记录被 operation=deposit 通用映射误称 Receive;扣款及目标到账是两笔账户效果,不应简单丢弃。
处理:自转标题改 Move;专属详情金额布局待设计。外部入金仍保留 Receive。
产品原图 · A组图5
修复后 · Move 标题、单行 Route、Move direction、费用后的 Status真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 合成已完成历史,只验证展示,不代表链上结算。
原始反馈与源码依据
图5,这个是Move的弹框,是专属的还是?首先标题不对,不是Receive,然后又有-2USDC,又有+2USDC,应该是Move的专属弹框UI。@Mency .
- packages/extension/src/popup/components/transaction/multichain-activity-presentation.ts
- packages/extension/src/popup/components/transaction/MultichainActivityDetail.tsx
A13
Route 单行展示
明确需求已落实 · 真实 MV3 展示通过详情 Route 内容原有 245px 上限并允许换行。
处理:改为单行展示,在窄视口截断过长链名并保留完整 title。
产品原图 · A组图5
修复后 · Move 标题、单行 Route、Move direction、费用后的 Status真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 合成已完成历史,只验证展示,不代表链上结算。
原始反馈与源码依据
图5,Route放一行吧,放得下.
- packages/extension/src/popup/components/transaction/MultichainActivityDetail.tsx
A14
Move direction 标签
明确 bug已落实 · 真实 MV3 展示通过自转 Shield 详情的 Public→Shield 行标为 Account。
处理:自转时改为 Move direction。
产品原图 · A组图5
修复后 · Move 标题、单行 Route、Move direction、费用后的 Status真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 合成已完成历史,只验证展示,不代表链上结算。
原始反馈与源码依据
图5,Account后面显示的是Public-Shield,这个标题应该是Move Direction.
- packages/extension/src/popup/components/transaction/MultichainActivityDetail.tsx
A15
Move Status 字段位置
明确需求已落实 · 真实 MV3 展示通过Status 在日期后、手续费前。
处理:Move 详情将 Status 放到 Network fee 后;其他交易保持原位置。
产品原图 · A组图5
修复后 · Move 标题、单行 Route、Move direction、费用后的 Status真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 合成已完成历史,只验证展示,不代表链上结算。
原始反馈与源码依据
图5,Status放在NetworkFee下面.
- packages/extension/src/popup/components/transaction/MultichainActivityDetail.tsx
A16
Shield processing 的重复交易哈希
明确 bug去重已修 · 展示与链接断言通过Shield processing 的哈希与 Origin transaction 相同时是同一源链交易,无独立 Intents explorer 证据。
处理:仅隐藏重复中继哈希;真实不同的中继哈希仍显示,不伪造 explorer 链接。
产品原图 · A组图6
修复后 · 源交易哈希仅显示一次,Shield processing 无重复哈希真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 合成已完成历史,只验证展示;并以 DOM 断言源交易链接仅出现一次。
原始反馈与源码依据
图6,Shield Process下面没必要放转入的txHash,这里应该可以跳转NearIntents的Explore吗?我记得好像是看不到数据的,如果没有那就不需要任何数据,如果可以跳转,那么还是加一下对应的关联数据,并点击跳转Intents的Explore.
- packages/extension/src/popup/components/transaction/MultichainActivityDetail.tsx
A17
Move 历史标题与布局
明确 bug语义修复实拍通过 · 版式待设计历史列表把自转 Move 标为 Receive USDC→USDC。
处理:改为 Move;金额双向布局待设计确认。
产品原图 · A组图7
修复后 · 历史标题 Move;整体卡片样式仍待设计真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 合成已完成历史,只验证展示,不代表链上结算。
原始反馈与源码依据
图7,这是Move的历史记录,也需要UI确认,目前展示不太对。@Mency .
- packages/extension/src/popup/components/transaction/MultichainActivityRow.tsx
A18
Shield Send 缺少 BNB
明确 bug已落实 · 真实 MV3 验证通过BNB 原生协议映射仍指向旧 Hot Bridge ID;当前目录使用 Omnibridge 资产。
处理:更新 BNB/POL/AVAX 映射并优先当前同合约代币;与 C7/C8 共用修复。
产品原图 · A组图8
修复后 · Shield Send 目标网络可选 BNB真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图8,Shield Send To目前没有BNB可选,需要加上.
A19
Slippage 控件过于显眼
需设计待设计Slippage 设置的显著程度是视觉方案问题。
处理:需设计确认;本次未改。
原始反馈与源码依据 / 原图
图9,隐私Send有Slippage设置,这里的设置也太显眼了一点,就这样?@Mency .
产品原图 · A组图9- packages/extension/src/popup/pages/portfolio/ShieldWithdrawPage.tsx
A20
Confidential funding asset catalog changed
明确 bug代码与核心用例通过 · 原报错待复现前台与后台目录可能不同步。外部收款已有目录不匹配时刷新逻辑,但预览和准备交易原来没有,直接抛出目录变化错误。
处理:后台预览/准备前检测并刷新目录,保留严格资产校验。尚未用原 Send 目录竞态完整复现;不拿 Receive 选币截图充当此项通过证据。
原始反馈与源码依据 / 原图
图10,Confidential funding asset catalog changed,这个错误什么意思?点击retry可以正常预估.
产品原图 · A组图10- packages/extension/src/background/index.ts
- packages/extension/src/background/confidential-funding-coordinator.ts
B1
Network Fee 能否由收发差额计算
需解释无需代码修改不能直接这样计算。发送量与接收量之差可能包含兑换、协议费用及滑点;当前 sourceNetworkFee 是服务端可选字段。
处理:仅展示有可靠来源的费用,缺失时不冒充网络费。
原始反馈与源码依据 / 原图
图1,是拿不到NetworkFee吗?如果是,可以通过接收到的数量和发送数量做减法.
产品原图 · B组图1- packages/extension/src/popup/pages/portfolio/ShieldWithdrawPage.tsx
- packages/extension/src/core/services/confidential-funding/confidential-funding-model.ts
B2
Shield Send 再次提示资产目录变化
明确 bug代码与核心用例通过 · 原报错待复现与 A20 是同一类目录同步问题;不能把再次点击成功视为正常流程。
处理:后台预览/准备前检测并刷新目录,保留严格资产校验。尚未用原 Send 目录竞态完整复现;不拿 Receive 选币截图充当此项通过证据。
原始反馈与源码依据 / 原图
图2,Shield发送,点击Send后再次出现这个错误,但是此时没有retry按钮,此时再次点击底部的按钮会正常进入下一个窗口.
产品原图 · B组图2- packages/extension/src/background/index.ts
- packages/extension/src/background/confidential-funding-coordinator.ts
B3
预估时间 9 秒是否硬编码
需解释已核对源码9 秒来自报价返回的 quoteTimeEstimateSeconds,并非页面固定常量;它是估计值,不是到账保证。
处理:保留服务端估计;实际耗时准确性需要路线实测。
原始反馈与源码依据 / 原图
图3,预估时间9s是hard code吗?确定正确吗.
产品原图 · B组图3- packages/extension/src/popup/pages/portfolio/ShieldWithdrawPage.tsx
- packages/extension/src/popup/services/shield-transfer.ts
B4
Shield Send 的 +金额容易误认为自己收入
明确 bug已落实 · 真实 MV3 展示通过原来用交换摘要同时显示扣款和正向到账,容易把收款人到账误读为自身收入。
处理:保留关键到账数额,明确标为 Recipient receives,并移除误导性的 +。
产品原图 · B组图3
修复后 · Recipient receives 与 Shield · NEAR Confidential 来源真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 仅进入确认页,未点击最终 Confirm。
原始反馈与源码依据
图3,这里是Send的Confirm,USDC -2 到USDC +1.9789,什么意思,我们是Shield的Send,只有-2USDC,没有+.
- packages/extension/src/popup/pages/portfolio/ShieldWithdrawPage.tsx
B5
Shield Send 确认页缺少来源 Provider
明确需求已落实 · 真实 MV3 展示通过确认页有网络和收款人,但没有明确显示本次来源为 NEAR Confidential。
处理:在 From 中标记 Shield · NEAR Confidential。
产品原图 · B组图3
修复后 · Recipient receives 与 Shield · NEAR Confidential 来源真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 仅进入确认页,未点击最终 Confirm。
原始反馈与源码依据
图3,需要在Confirm弹框标记当前的From是Near Confidential。.
- packages/extension/src/popup/pages/portfolio/ShieldWithdrawPage.tsx
B6
Send 结果页与 Move 的视觉统一
需设计待设计涉及结果页结构、扣款与到账展示及字段顺序,不能仅用替换标题完成统一。
处理:明确语义错误已单独修复;整体版式与 C1、C15 一并设计。
原始反馈与源码依据 / 原图
图4,Send弹框和上面的Move一样的问题。@Mency .
产品原图 · B组图4- packages/extension/src/popup/components/transaction/MultichainActivityDetail.tsx
B7
合并 authorization 与 processing
明确需求已落实 · 合成历史展示通过Shield Send 的授权与中继分别显示,产品已经明确建议合并。
处理:合并为一个 Shield processing 展示项;底层阶段保留,授权失败/等待仍显示真实状态,只有存在中继时才合并。
产品原图 · B组图4
修复后 · 合并 Shield processing,保留目标链进度真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 只读合成历史;状态、地址与哈希为测试数据,不代表真实结算。
原始反馈与源码依据
图4,Shield authorization和Shield processing是否可以合并为Shield Processing.
- packages/extension/src/popup/components/transaction/multichain-activity-presentation.ts
B8
Send History 展示
需设计到账语义实拍通过 · 版式待设计历史记录复用多链 Activity。收款人到账与自身收入的语义已区分,整体卡片仍需统一设计。
处理:与 B4、C15 共用展示规则,避免重复设计。
产品原图 · B组图5
修复后 · 历史注明 Recipient receives
修复后 · 合并 Shield processing,保留目标链进度真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 只读合成历史;状态、地址与哈希为测试数据,不代表真实结算。
原始反馈与源码依据
图5,Send的History一样的问题。@Mency .
- packages/extension/src/popup/components/transaction/MultichainActivityRow.tsx
B9
Zcash 地址顺序与 Resync 日期
需设计按钮位置已修 · 视觉待设计原图 Shielded 地址本来就在 Transparent 上方,实际错位的是 Generate new shielded address 按钮位于透明地址之后。Resync 已支持 By Date。
处理:生成按钮移到 Shielded 下方。保留已知 birthday 为默认扫描起点,用户可改日期;直接默认今天可能漏扫历史资金。@Mency 的整体视觉另行设计。
产品原图 · B组图6
修复后 · 生成按钮紧随 Shielded 地址
当前实拍 · Resync 支持 By Date真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图6,AI风太浓了,看看能不能优化一下。@Mency .
a. 获取新的Shield地址在透明地址下面,可以交换一下透明和隐私地址的上下顺序.
b. Resync需要设置新的Birthday date吧,默认填现在的时间,但是允许用户修改.
- packages/extension/src/popup/pages/account/ZcashSettings.tsx
- packages/extension/src/popup/components/account/AccountModals.tsx
B10
Receiving Address 收款页视觉风格
需设计待设计原文第二组图7为 Receiving Address(收款二维码页),不是 Zcash settings。上版报告标题和结论误指 Zcash 设置,现已更正。
处理:原文明示 @Mency 确认收款页视觉方案;保留该项为需设计。
原始反馈与源码依据 / 原图
图7,也有点AI风,看看能不能优化 @Mency .
产品原图 · B组图7- packages/extension/src/popup/components/common/ReceivingAddressLayout.tsx
B11
进入 Swap 的等待时间
待核实暖启动已测 · 冷启动待复现真实 MV3 暖启动中,Swap 外壳立即显示,点击后 63ms 显示来源币;首帧有骨架。已有资产与账户缓存。
处理:当前证据不能复现原卡顿;保留待核实,需冷启动真实接口耗时定位,未叠加新的缓存层。
暖启动首帧 · 骨架与 Swap 页面已出现真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
Swap UI进入的卡点在哪里,能否在打开后立即显示,目前看起来是依赖了什么接口,可以提前缓存?.
- packages/extension/src/popup/hooks/useSwapState.ts
- packages/extension/src/popup/pages/swap/Swap.tsx
B12
Private / Shield Swap 默认币种
明确 bug已修复 · 两种模式实拍通过Private 首次目录预取了不适用的 Zcash 链,筛选后无默认币种;Shield 普通入口缺少完整默认选择。
处理:Private 普通 Swap 优先预取账户已有 Private execution address 的 EVM 链,复用原默认选择逻辑。Shield 选有效来源及不同目标,优先 Ethereum USDC/ETH;余额未就绪或不足时仍禁止提交。
修复后 · Private 默认 ETH → USDC
修复后 · Shield 默认 USDC → ETH;余额仍加载时禁止提交真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。 验证资产默认选择,不代表余额接口或真实成交验证。
原始反馈与源码依据
Swap UI只有public设置了默认token,private和Shield没有,需要加上.
- packages/extension/src/popup/services/swap-token-selection.ts
- packages/extension/src/popup/pages/portfolio/ShieldSwapPage.tsx
- packages/extension/src/popup/services/shield-transfer.ts
- packages/extension/src/config/intents.ts
B13
Swap 选币列表余额不正确
待核实原 BNB 场景待核实原产品图为 BNB、已废弃 USDC/USDT 条目的余额展示。暖启动 Ethereum USDC 显示 10,与 Public 余额一致;总额 20 包含 Private 10,不能用总额判错。
处理:保留原图;Ethereum 实拍不能证明 BNB 问题已修。需核对原账户 BNB 当前/废弃资产 ID 与余额关联,不将未知余额硬写为 0。
产品原图 · B组图8
对照验证 · Ethereum USDC Public 余额 10,非原 BNB 场景真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图8,Swap页面的token选择页面,token的余额问题还是没有解决.
- packages/extension/src/popup/components/swap/SwapTokenSelector.tsx
- packages/extension/src/popup/services/swap-page-model.ts
B14
选币列表每次加载慢
待核实暖启动已测 · 原慢场景待复现真实 MV3 暖启动选币列表 146ms 出现 USDC;已有目录及账户余额缓存。此结果不覆盖冷启动或真实接口慢请求。
处理:暂不做无依据的缓存重写,原性能问题保留待核实。
产品原图 · B组图8
对照验证 · Ethereum USDC Public 余额 10,非原 BNB 场景真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图8,token选择每次进入都要加载很久,需要有token列表和余额缓存,也需要提前获取.
- packages/extension/src/popup/services/rhea-swap-client.ts
- packages/extension/src/popup/services/swap-curated-catalog.ts
- packages/extension/src/popup/components/swap/SwapTokenSelector.tsx
B15
preswap 名称、耗时与手续费
明确 bug名称已修复 · 数据能力待补preswap-nearintents 是泄露到 UI 的内部路线名。当前 RHEA 报价模型没有可用的路线耗时和网络费字段。
处理:展示 NEAR Intents 名称和图标;耗时、费用需可靠服务数据,暂不伪造。
产品原图 · B组图9
修复后 · NEAR Intents 名称与图标真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图9,什么是preswap,而且这里没有预估时间和预估手续费.
- packages/extension/src/popup/components/swap/SwapInputView.tsx
- packages/extension/src/core/services/rhea-swap/rhea-swap-model.ts
B16
Approve / Swap 执行步骤说明
明确需求已落实 · 确认页实拍通过两步含义由实际执行模式决定。此次 evm-signature 路线第二步是签署 Swap Order,不是直接调用合约方法。
处理:显示 Step 1 的 Approve 数量与 spender、Step 2 的实际后续动作;此次显示 Sign Swap Order,不编造不存在的合约调用。
产品原图 · B组图10
修复后 · 两个执行步骤、授权金额与 Confirm真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图10,底部的3个说明本身没问题,但是标题不对吧:Execution step,那么应该分step1,step2,Approve是Step1,Step1里approve了1.9789USDC,然后Approve的合约地址,还需要再显示Step2,调用了什么合约的什么方法.
- packages/extension/src/popup/components/swap/SwapReviewView.tsx
- packages/extension/src/popup/pages/swap/Swap.tsx
B17
金额点击后 Copy 弹框
明确需求已落实 · 交互验证通过Swap 确认页使用相同金额详情组件,会弹出完整金额/复制层;按本次产品统一要求一并移除。
处理:关闭 Swap 确认页主金额及手续费金额的详情弹层,保留费率档位编辑;实测没有 Show full amount 按钮。
产品原图 · B组图10
修复后 · 两个执行步骤、授权金额与 Confirm真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图10,这里的amount一样可以点击,然后弹出一个copy弹框,这是统一操作吗?.
- packages/extension/src/popup/components/common/AmountDisplay.tsx
B18
Swap 确认按钮改为 Confirm
明确需求已落实 · 确认页实拍通过这是按钮文案统一需求;授权阶段仍只发起 token approval,不能暗示 Swap 已完成。
处理:按钮改为 Confirm,同时保留 Step 1 授权金额与合约,辅助标签标明 token approval。
产品原图 · B组图10
修复后 · 两个执行步骤、授权金额与 Confirm真实隔离 MV3,受控接口和公共测试向量;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图10,底部的按钮应该是Confirm,而不是Approve USDC.
- packages/extension/src/popup/components/swap/SwapReviewView.tsx
- packages/extension/src/popup/pages/swap/Swap.tsx
B19
Swap 报价有效期设为五分钟
明确需求已落实 · 核心期限用例通过原 30 秒是钱包本地上限,并非服务端统一有效期;前一版将二者混为一谈。
处理:本地上限改为五分钟,仍取服务端 expiresAt 与本地上限中更早的截止时间。
原始反馈与源码依据 / 原图
Swap的过期时间设置为5分钟吧,目前很容易出发过期.
- packages/extension/src/core/services/rhea-swap/rhea-swap-quote-validity.ts
B20
过期后在确认页接受新价格
需设计待设计当前会丢弃旧准备结果,重新取价并返回输入页。留在确认页需要展示新旧变化和重新授权。
处理:设计确认页内的价格更新提示及再次确认;不得静默替换已审阅金额。
原始反馈与源码依据 / 原图
Swap如果价格过期,那么直接在Confirm页面告诉用户,是否接收当前最新的价格,如果接收,可以继续trade,而不需要返回上一个UI。需要设计一下 @Mency .
- packages/extension/src/popup/pages/swap/Swap.tsx
C1
统一 Swap / Send / Move 结果页
需设计待设计三类操作当前共用或组合不同的结果展示,字段及进度需要统一,但各自的扣款、到账和链上引用不能被混为同一语义。
处理:统一结果页规范:操作名称、来源/目标、进度、可用交易链接与完成动作。
原始反馈与源码依据 / 原图
图1,Swap trade之后的UI和send/move都不一样,process缺少对应的txHash和跳转,tx放在了底部,建议统一UI设计,显示的字段也不对,不是send和receive,应该是swap from to等。需要设计一下 [@Mency](https://ref-team-hq.slack.com/team/U05S3MRN0LB)
产品原图 · C组图1- packages/extension/src/popup/components/transaction/MultichainActivityDetail.tsx
C2
Done 后留在发起操作页面
明确需求已落实 · 导航验证通过原先确认后跳首页再开 Activity,或 Done 默认返回首页,打断连续操作。
处理:Shield 操作在原页展示 Activity;Send / Swap Done 返回发起表单,保留必要资产、模式和方向,清空金额与旧结果。显式 View Activity 仍可进入历史。
产品原图 · C组图1
Send 结果 · 受控模拟执行
Send Done 后 · 回到清空金额的表单
Swap 结果 · 受控模拟执行
Swap Done 后 · 回到原表单
Move 原位详情 · 合成已启动记录,只读恢复
Move Done 后 · 原表单保留方向,金额清空真实隔离 MV3:Send / Swap 各一次受控模拟 EVM 广播,Done 未再次提交;Move 使用合成已启动记录只读恢复,未最终确认,广播及意图提交均为 0。所有场景均无真实网络交易。
原始反馈与源码依据
图1,点击Done之后回到了首页,其实不只是Swap,包括send和move,都不要回到首页,在那个UI发起的就应该还留在哪里,因为用户可能连续操作
- packages/extension/src/popup/pages/transactions/Transfer.tsx
- packages/extension/src/popup/pages/portfolio/ShieldWithdrawPage.tsx
C3
Shield Send 多弹一次 Provider 选择
明确 bug已落实 · 真实 MV3 验证通过Shield 总览在两种 Provider 都可用时仍先弹选择,和直达表单的要求不符。
处理:默认直达 NEAR Confidential Send;仅 Zcash 可用时进入 Zcash。
产品原图 · C组图2
当前实拍 · Confidential Send(Confidential 已选中)真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图2,Shield页面的Send点击后仍旧弹出了选择,应该去掉弹框
- packages/extension/src/popup/pages/portfolio/ShieldFundsPage.tsx
C4
Send 页可切换 Confidential / Zcash
明确需求已落实 · 真实 MV3 验证通过原来 Confidential 与 Zcash 分属两个 Send 页面,表单内不能直接切换。
处理:两页复用 Provider 选项,支持 Confidential ↔ Zcash 切换;按当前账户能力显示并在忙碌时禁用。
产品原图 · C组图3
当前实拍 · Confidential Send(Confidential 已选中)
切换后 · Zcash Send(Zcash 已选中)真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图3,send页面的Shield需要可以选择Confidential和Zcash
- packages/extension/src/popup/pages/portfolio/ShieldWithdrawPage.tsx
- packages/extension/src/popup/pages/transactions/Send.tsx
C5
Confidential 收款支持链数量
需解释实时目录与原图已核对原图是 USDT 的可选网络:当前 1Click USDT 目录中的可用 EVM 来源恰好为 Ethereum、BNB、Optimism、Polygon、Avalanche、Gnosis,没有当前 Arbitrum/Base USDT 条目。
处理:按所选币种的当前路线显示网络。USDC 可选链不同;不把不支持的交易对加入选项。
产品原图 · C组图4
当前实拍 · USDT 的六条可选 EVM 网络真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图4,confidential的收款token选择,看起来链少了很多
C6
整理 Intents referral 使用清单
明确需求清单已整理 · 参数未改原文包含“referral list 给 zero”,本轮按提供清单处理;没有充分依据把它解读成将推荐参数或手续费清零。
处理:列出各调用的 referral 与费用来源供核对,不擅自修改收费和推荐配置。
原始反馈与源码依据 / 原图
所有涉及Intents的referral list给zero,目前看很多地方都没有区分referral,用的都是noir_swap
- packages/extension/src/config/intents.ts
- packages/extension/src/background/confidential-funding-api.ts
C7
BNB / POL / AVAX 桥迁移与 USDT 报价失败
明确 bug映射已修 · 线上报价未验实时 1Click 目录同时返回旧 DEPRECATED 与新 Omnibridge 资产。原映射仍使用旧原生币 ID,同合约代币也可能先选到旧记录。
处理:更新当前桥资产映射、同合约优先非废弃记录。官方 dry quote 返回 401(需要认证);受控 BNB 地址页不代表 BNB USDT 线上交易对已恢复。
修复后 · 当前 BNB,已过滤 deprecated 资产
受控报价收款页 · Check 检查状态,最低额来自报价真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。 接收地址来自受控报价;官方实时报价返回 401,未创建线上订单。
原始反馈与源码依据
BNB, POL, and AVAX做了hot bridge到ominibridge的替换,所以看看是否影响了token的地址,需要调研看看,目前BNB收USDT不工作报错:Quoting for this pair is not available [@Jimi](https://ref-team-hq.slack.com/team/U063JHDVBUK)
- packages/extension/src/config/asset-market-assets.ts
- packages/extension/src/core/services/intents-evm-assets.ts
- packages/extension/src/core/services/intents-managed-assets.ts
- https://1click.chaindefuser.com/v0/tokens
C8
BNB 收款显示 deprecated
明确 bug已落实 · 真实 MV3 验证通过原生 BNB 映射指向旧 Hot Bridge 资产,当前有效 ID 为 nep141:bnb.omdep.near。
处理:使用当前目录映射;废弃资产不再作为新收款选项。
修复后 · 当前 BNB,已过滤 deprecated 资产真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。
原始反馈与源码依据
Shield收款,BNB的BNBtoken显示deprecated,为什么?
- packages/extension/src/config/asset-market-assets.ts
- packages/extension/src/popup/services/shield-deposit-options.ts
C9
切币种/链后旧错误未清除
明确 bug已落实 · 真实 MV3 验证通过收款表单切换 token/network 时原错误状态没有同步清空。
处理:选择变化时清除旧错误与旧反馈,后续失败再显示对应新选择的错误。
受控失败 · 更换 token 前的旧错误
更换 token 后 · 旧错误已清除
受控失败 · 更换网络前的旧错误
更换网络后 · 旧错误已清除真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。 两个独立场景分别验证 token / network 切换后旧错误消失。
原始反馈与源码依据
Shield收款,只要用户重新选择了token或者链,之前的错误信息应该自动隐藏
- packages/extension/src/popup/pages/portfolio/ShieldDepositPage.tsx
C10
最低收款 0.300001 USDT 的来源
需解释已核对源码金额来自 FLEX_INPUT 报价返回的最小 amountIn,不是前端硬编码,也不是钱包统一最低余额。
处理:保留实际报价最低入金金额;不同资产或报价时点可能不同。
产品原图 · C组图5
受控报价收款页 · Check 检查状态,最低额来自报价真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图5,至少0.300001 USDT怎么来的
- packages/extension/src/background/confidential-funding-coordinator.ts
C11
Refund address 解释及 Private 地址建议
明确需求已落实 · 真实 MV3 验证通过EVM 可使用同链的 Private execution address 退款。上版将 Zcash 的透明地址限制错误泛化到 EVM。
处理:EVM 默认优先同链 Private 地址,缺少 Private 地址时保留有效 Public 回退;Zcash 仍使用透明退款地址。已添加问号说明,并验证请求 refundTo 与界面 Private 地址一致。
产品原图 · C组图5
修复后 · Private 退款地址与点击展开的说明真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图5,refund address加一个问号,解释一下吧,然后Shield收款,refund应该是private地址,而不是public地址
- packages/extension/src/popup/pages/portfolio/ShieldDepositPage.tsx
- packages/extension/src/background/confidential-funding-coordinator.ts
C12
刷新按钮被误认为换地址
明确 bug已落实 · 真实 MV3 验证通过右上角原刷新图标实际执行存款状态检查,而非生成新地址。
处理:现在显示 Check,语义为检查存款状态;生成地址仍是独立操作。
产品原图 · C组图6
受控报价收款页 · Check 检查状态,最低额来自报价真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图6,点击右上角的刷新按钮,不是刷新地址吗?反而出现了这一句:Checked,Waiting Deposit
- packages/extension/src/popup/pages/portfolio/ShieldDepositPage.tsx
C13
收款历史中的两个按钮过大
明确需求已落实 · 真实 MV3 验证通过两个入金按钮的尺寸要求已经明确,不必等待整页设计。
处理:按钮缩为 36px 高、176px 最小宽度并收紧间距;整页风格仍可另行设计。
产品原图 · C组图7
修复后 · 两个入金按钮缩小真实隔离 MV3,公共测试向量、受控接口;未广播、未提交 Confidential 意图。
原始反馈与源码依据
图7,红框的两个按钮UI,改一下吧,太突兀了,降低大小 [@Mency](https://ref-team-hq.slack.com/team/U05S3MRN0LB)
- packages/extension/src/popup/pages/portfolio/ShieldDepositPage.tsx
C14
Pending deposit 何时取消
需解释已核对生命周期未充值订单在三小时后停止自动轮询;已过期且创建满二十四小时后默认隐藏,可通过 Show all 查看。不会自动调用服务端取消订单。
处理:区分过期、停止轮询、默认隐藏和删除;如需自动清理,另定保留和审计策略。
原始反馈与源码依据 / 原图
图7,pending的deposit,什么时候会自动取消,用户可能会产生很多的数据
产品原图 · C组图7- packages/extension/src/core/services/confidential-funding/confidential-external-deposit.ts
C15
Activity 全种类统一设计
需设计待设计应覆盖 Send、Receive、Move、Swap、授权/合约调用,以及 pending、失败、退款等状态;不能只设计一张成功卡片。
处理:设计清单:Send、Receive、Shield/Move、Swap、Supply、Withdraw、Claim、Borrow、Repay、Approve、Cancel transaction、On-chain interaction;另覆盖进行中、完成、失败/取消/过期、退款和替换交易。列表与详情共用语义。
原始反馈与源码依据 / 原图
Activity显示的所有种类都设计一下吧,具体有哪些种类找下jimi [@Mency](https://ref-team-hq.slack.com/team/U05S3MRN0LB)
- packages/extension/src/popup/components/transaction/multichain-activity-presentation.ts
- packages/extension/src/popup/components/transaction/MultichainActivityDetail.tsx
- packages/extension/src/core/transactions/domain/transaction.ts
D1
Add Account 仍使用旧 Zcash 弹窗
明确 bug已修复 · 真实 MV3 验证通过新增账户使用独立旧组件,导入流程已经使用新的紧凑 UI,造成相同选择重复实现且展示不一致。
处理:提取共用 ZcashHistoryFields;两个入口复用。保留 unknown 主动选择、used 强制 restore 和日期/高度校验。
产品原图 · D组图追加
修复后 · 历史未知时的新 UI
修复后 · 已使用账户强制恢复上一轮真实隔离 MV3 已通过,本轮未改变该流程。
原始反馈与源码依据
点击 AddAccount 还是默认弹出旧的 Zcash account history UI,应该复用新 UI。
- packages/extension/src/popup/components/common/ZcashHistoryFields.tsx
- packages/extension/src/popup/components/account/AddAccountZcashHistoryContent.tsx
- packages/extension/src/popup/components/onboarding/ImportZcashHistorySheet.tsx
- packages/extension/src/popup/pages/account/AccountList.tsx
- 真实隔离 MV3:unknown、used、生日校验及创建账户通过;无资金广播。