Skip to content

Conversation

@Gaubee
Copy link
Contributor

@Gaubee Gaubee commented Dec 30, 2025

概述

修复 PR #142 (Teleport) 和 PR #143 (Forge) 的代码 review 发现的问题。

修复内容

P0 - 高优先级

  1. Teleport signTransData 修复

    • 原问题:使用 signedTx.signature (只有 r+s)
    • 修复:改用 signedTx.data (RLP 编码的完整 rawTx)
  2. Forge publicKey 问题

    • 原问题:使用 address 代替 publicKey 进行签名验证
    • 修复:重构 bio_signMessage 返回 { signature, publicKey }

P1 - 中优先级

  1. Forge E2E mock 路径修复

    • 修复 endpoint 匹配:/cot/recharge/support, /cot/recharge/V2
  2. Forge API base URL 配置

    • 添加 fail-fast 策略,未配置时提示错误

E2E 测试修复

  • Forge: 9/9 通过

    • 添加 i18n 初始化
    • 优化选择器
    • 修复 SDK mock
  • Teleport: 8/8 通过

    • 改用 fetch 拦截 mock
    • 优化资产选择器
    • 修复确认页面选择器

测试结果

  • Unit Tests: 全部通过
  • Storybook Tests: 全部通过
  • E2E Tests: 全部通过

相关 Issue

Closes review issues from PR #142 and PR #143

P0 高风险修复:
- Teleport: signTransData 改用 signedTx.data(RLP encoded rawTx)而非 signature
- Forge: 添加 bio_getPublicKey API 框架(含回退机制)

P1 中风险修复:
- Forge E2E mock: 使用正确的 endpoint 路径 /cot/recharge/support 和 /cot/recharge/V2
- Forge API config: 改为 fail-fast 策略,未配置 VITE_COT_API_BASE_URL 时报错

P2 改进:
- Teleport types.ts: 添加 @bnqkl 包使用说明注释

详细变更:
- packages/bio-sdk: 添加 bio_getPublicKey 方法定义
- src/services/ecosystem: 添加 handleGetPublicKey handler(待完整实现)
- miniapps/forge: useForge 调用 bio_getPublicKey,失败时回退到 address
- miniapps/forge: 更新测试以包含新的 API 调用
- miniapps/teleport: 修正 signTransData 数据源并添加说明注释
- SignatureAuthService.handleMessageSign 返回 SignatureResult
- SigningConfirmJob 发送 signature + publicKey
- bio_signMessage/bio_signTypedData 返回新格式
- useForge 直接使用 signResult.publicKey(hex 格式)
- 移除 bio_getPublicKey 回退逻辑(不再需要)

publicKey 为 hex 编码的 32 字节公钥(BioForest Ed25519)
- forge: 添加 i18n 导入到 main.tsx
- forge: 修复 E2E mock (fetch 拦截 + 选择器优化)
- forge: 添加 E2E 测试用 API base URL
- teleport: 修复 E2E mock (使用 addInitScript)
- teleport: 优化资产选择器和确认页面选择器

E2E 测试结果:
- Forge: 9/9 通过
- Teleport: 8/8 通过
@Gaubee Gaubee merged commit 5a55809 into main Dec 30, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants