-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix/benfen #389
Fix/benfen #389
Conversation
Caution Review failedThe pull request is closed. Walkthrough本次变更主要涉及多个包的 Changes
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (12)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
📒 Files selected for processing (18)
packages/connect-examples/electron-example/package.json
(1 hunks)packages/connect-examples/expo-example/package.json
(2 hunks)packages/connect-examples/expo-example/src/data/benfen.ts
(1 hunks)packages/core/package.json
(2 hunks)packages/core/src/api/benfen/BenfenGetAddress.ts
(3 hunks)packages/core/src/api/benfen/BenfenSignTransaction.ts
(2 hunks)packages/core/src/api/benfen/normalize.ts
(2 hunks)packages/core/src/types/api/benfenSignTransaction.ts
(1 hunks)packages/hd-ble-sdk/package.json
(2 hunks)packages/hd-common-connect-sdk/package.json
(2 hunks)packages/hd-transport-http/package.json
(2 hunks)packages/hd-transport-lowlevel/package.json
(2 hunks)packages/hd-transport-react-native/package.json
(2 hunks)packages/hd-transport-webusb/package.json
(2 hunks)packages/hd-transport/package.json
(1 hunks)packages/hd-transport/src/types/messages.ts
(2 hunks)packages/hd-web-sdk/package.json
(2 hunks)packages/shared/package.json
(1 hunks)
🔇 Additional comments (25)
packages/hd-transport-http/package.json (2)
3-3
: 版本号更新正确
版本号从 1.0.15-alpha.0 更新到 1.0.15-alpha.2,符合语义化版本规范。
27-28
: 依赖版本更新合理
@onekeyfe 相关依赖包版本同步更新到 1.0.15-alpha.2,保持了版本一致性。使用 ^
符号允许补丁版本的自动更新,这个做法很好。
packages/shared/package.json (1)
3-3
: 版本更新需要验证依赖包的一致性
版本从 1.0.15-alpha.0
更新到 1.0.15-alpha.2
的变更看起来没有问题,但建议验证相关依赖包的版本是否同步更新,以确保整个项目的版本一致性。
✅ Verification successful
版本更新已完成同步,无需进一步操作
检查结果显示所有 @onekeyfe 相关包(除 hardware-js-sdk 外)均已同步更新至 1.0.15-alpha.2 版本,且所有依赖引用也都正确使用了 ^1.0.15-alpha.2 版本号。版本一致性已得到保证。
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# 描述:检查所有相关包的版本一致性
# 查找所有 package.json 文件
echo "检查所有 @onekeyfe 相关包的版本:"
fd package.json | xargs cat | jq 'select(.name | startswith("@onekeyfe")) | {name: .name, version: .version}'
# 检查依赖项中的版本引用
echo -e "\n检查依赖项中的版本引用:"
fd package.json | xargs cat | jq 'select(.dependencies != null) | .dependencies | with_entries(select(.key | startswith("@onekeyfe")))'
Length of output: 2545
packages/hd-transport-react-native/package.json (2)
3-3
: 版本更新看起来没问题!
版本号从 1.0.15-alpha.0
更新到 1.0.15-alpha.2
的变更符合语义化版本规范。
22-23
: 检查依赖版本一致性
依赖包版本更新与主版本保持一致,建议验证整个项目中相关包的版本号是否都已同步更新。
✅ Verification successful
依赖版本一致性检查结果:版本已同步
经验证,所有使用 @onekeyfe 相关包的依赖版本均已统一更新至 1.0.15-alpha.2,包括:
- core
- hd-ble-sdk
- hd-common-connect-sdk
- hd-transport-http
- hd-transport-lowlevel
- hd-transport-react-native
- hd-transport-webusb
- hd-web-sdk
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# 描述:检查所有 package.json 文件中 @onekeyfe 相关依赖的版本号
# 查找所有 package.json 文件中 @onekeyfe 相关的依赖版本
echo "检查 @onekeyfe 包的版本一致性..."
rg -A 1 '"@onekeyfe/.*":\s*"(?:\^|~)?1\.0\.15-alpha\.' package.json packages/*/package.json
Length of output: 2882
packages/hd-common-connect-sdk/package.json (2)
3-3
: 版本号更新符合规范
版本号从 1.0.15-alpha.0
更新到 1.0.15-alpha.2
的变更遵循了语义化版本规范。
23-27
: 依赖版本同步更新,保持一致性
所有 @onekeyfe
相关依赖包都已更新到 1.0.15-alpha.2
,确保了版本的一致性。
运行以下脚本验证所有相关包的版本一致性:
packages/hd-transport-webusb/package.json (2)
3-3
: 版本号更新正确!
版本号从 1.0.15-alpha.0 更新到 1.0.15-alpha.2 的变更符合语义化版本规范。
23-24
: 验证相关包版本一致性
需要确保所有 @onekeyfe 相关包的版本号保持同步更新。
✅ Verification successful
所有 @onekeyfe 包版本已同步一致
根据检查结果,所有 @onekeyfe 相关包(除了 react-native-ble-plx 和 cross-inpage-provider-core)都使用了相同的版本 1.0.15-alpha.2,版本保持一致性。
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# 描述:检查所有 @onekeyfe 包的版本一致性
# 查找所有 package.json 文件
fd package.json | while read -r file; do
echo "=== 检查文件: $file ==="
# 提取包名和版本号
jq -r 'select(.name | startswith("@onekeyfe")) | "\(.name): \(.version)"' "$file"
# 提取 @onekeyfe 相关依赖的版本
jq -r '.dependencies | with_entries(select(.key | startswith("@onekeyfe"))) | to_entries[] | "\(.key): \(.value)"' "$file"
done
Length of output: 6952
packages/hd-transport-lowlevel/package.json (2)
3-3
: 版本号更新已确认
版本号从 1.0.15-alpha.0 更新到 1.0.15-alpha.2 的变更符合语义化版本规范。
22-23
: 依赖版本同步更新正确
@onekeyfe 相关依赖包版本已同步更新到 ^1.0.15-alpha.2,保持了版本一致性。
运行以下脚本验证相关包的版本一致性:
✅ Verification successful
所有 @onekeyfe 包版本已同步更新且一致
根据验证结果,除了 @onekeyfe/hardware-js-sdk
(0.0.0) 和 @onekeyfe/react-native-ble-plx
(3.0.0/3.0.1) 这两个特殊包外,所有其他 @onekeyfe 包(包括被依赖的包)都已统一更新到 1.0.15-alpha.2 版本。
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# 描述:检查所有 @onekeyfe 包的版本是否一致
# 查找所有 package.json 文件并检查版本号
fd package.json | xargs cat | jq -r 'select(.name | startswith("@onekeyfe")) | "\(.name): \(.version)"'
# 检查所有依赖中 @onekeyfe 的版本
fd package.json | xargs cat | jq -r '.dependencies | with_entries(select(.key | startswith("@onekeyfe"))) | to_entries[] | "\(.key): \(.value)"'
Length of output: 1978
packages/hd-web-sdk/package.json (2)
24-27
: 依赖版本更新看起来合理
所有 @onekeyfe 依赖包版本统一更新到 ^1.0.15-alpha.2,保持了版本一致性,这是个好的实践。
3-3
: 检查依赖包版本是否已发布
所有 @onekeyfe 相关包都更新到了 1.0.15-alpha.2 版本,建议验证这些包是否都已经发布到 npm。
Also applies to: 24-27
packages/hd-ble-sdk/package.json (2)
3-3
: 版本更新看起来很合理!
所有依赖包版本都统一更新到了 1.0.15-alpha.2
,保持了良好的一致性。
Also applies to: 23-25
3-3
: 建议确认版本更新的原因
为了更好地追踪变更,建议:
- 确认此次 alpha 版本升级的具体改动
- 检查是否有对应的更新日志记录
packages/core/src/types/api/benfenSignTransaction.ts (1)
11-11
: 代码变更看起来不错!
将 coinType
设置为可选参数是个好主意,这样可以保持向后兼容性。
packages/core/src/api/benfen/BenfenSignTransaction.ts (1)
19-19
: 参数验证更新正确
将 coinType
设置为非必需参数,与类型定义保持一致。
packages/hd-transport/src/types/messages.ts (2)
144-144
:
注意:BenfenAddress 类型发生了破坏性变更
将 address
字段从可选改为必需可能会影响现有代码。请确保:
- 更新所有使用
BenfenAddress
类型的代码 - 验证所有调用处都正确提供了 address 值
3723-3723
:
注意:SuiAddress 类型发生了破坏性变更
将 address
字段从可选改为必需可能会影响现有代码。请确保:
- 更新所有使用
SuiAddress
类型的代码 - 验证所有调用处都正确提供了 address 值
packages/hd-transport/package.json (1)
3-3
: 请验证相关依赖包版本一致性
需要确保所有 @onekeyfe 相关包的版本号同步更新至 1.0.15-alpha.2,以避免潜在的版本不匹配问题。
✅ Verification successful
版本号已完全同步更新
所有 @onekeyfe 相关包均已统一更新至 1.0.15-alpha.2 版本,版本一致性检查通过。
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# 检查所有 @onekeyfe 包的版本一致性
echo "检查相关包版本..."
for pkg in $(find . -name "package.json"); do
if grep -q '"@onekeyfe"' "$pkg"; then
echo "=== $pkg ==="
cat "$pkg" | jq -r '.version, (.dependencies // {} | with_entries(select(.key | startswith("@onekeyfe"))) | to_entries[] | "\(.key): \(.value)")'
fi
done
Length of output: 65655
Script:
#!/bin/bash
# 检查所有 @onekeyfe 包的版本一致性,使用更精确的搜索
echo "检查相关包版本..."
for pkg in $(find . -name "package.json" -not -path "*/node_modules/*"); do
if grep -q '"@onekeyfe"' "$pkg"; then
echo "=== $pkg ==="
cat "$pkg" | jq -r '.version, (.dependencies // {} | with_entries(select(.key | startswith("@onekeyfe"))) | to_entries[] | "\(.key): \(.value)")'
fi
done
Length of output: 1963
Script:
#!/bin/bash
# 检查所有包的具体版本号
echo "检查所有相关包的版本号..."
for pkg in $(find ./packages -name "package.json" -not -path "*/node_modules/*"); do
echo "=== $pkg ==="
jq -r '.version' "$pkg"
done
Length of output: 3429
packages/core/package.json (1)
3-3
: 版本更新检查通过
包版本和依赖版本都已统一更新到 1.0.15-alpha.2
,保持了版本一致性。
Also applies to: 28-29
packages/connect-examples/electron-example/package.json (1)
5-5
: 建议检查相关依赖
虽然主版本已更新到 1.0.15-alpha.2
,但建议检查是否有未列出的 @onekeyfe
相关依赖需要同步更新。
✅ Verification successful
版本更新无需额外操作
electron-example 项目中没有使用 @onekeyfe 相关依赖,因此版本更新到 1.0.15-alpha.2 不需要同步更新其他依赖。
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# 检查项目中是否存在其他 @onekeyfe 依赖
rg '"@onekeyfe/.*":\s*"\^1\.0\.15-alpha\.0"' -g 'package.json'
Length of output: 62
Script:
#!/bin/bash
# 检查所有 package.json 中的 @onekeyfe 依赖
rg '"@onekeyfe/.*":\s*"[^"]*"' -g 'package.json'
Length of output: 2667
Script:
#!/bin/bash
# 检查 electron-example 中的 @onekeyfe 依赖
cat packages/connect-examples/electron-example/package.json | grep "@onekeyfe"
Length of output: 78
packages/connect-examples/expo-example/package.json (2)
3-3
: 版本更新完整且一致
主版本和所有 @onekeyfe
相关依赖都已正确更新到 1.0.15-alpha.2
。
Also applies to: 22-25
3-3
: 建议全局验证版本一致性
为确保版本更新的完整性,建议检查整个仓库中所有 package.json 文件的版本号。
Also applies to: 5-5, 3-3
✅ Verification successful
版本号已验证一致
经检查所有 package.json 文件,相关包版本保持一致:
- 所有 @onekeyfe 包版本均为 1.0.15-alpha.2
- 所有依赖的 @onekeyfe 包版本也统一使用 ^1.0.15-alpha.2
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# 检查所有 package.json 中的版本号
echo "检查主版本号..."
find . -name "package.json" -type f -exec grep -H "\"version\":" {} \;
echo "\n检查 @onekeyfe 依赖版本..."
find . -name "package.json" -type f -exec grep -H "\"@onekeyfe/" {} \;
Length of output: 57440
packages/core/src/api/benfen/BenfenGetAddress.ts (1)
87-88
: 地址格式转换的实现看起来不错
代码在两处正确地使用了 hex2BfcAddress
函数来统一地址格式:
- 批量处理模式下的地址转换
- 单个处理模式下的地址转换
让我们验证一下所有相关文件是否都统一使用了这个新的地址格式:
Also applies to: 104-104
✅ Verification successful
让我们进一步检查所有与地址相关的代码,以确保地址格式的一致性。
地址格式转换实现正确且一致
代码检查显示 hex2BfcAddress
函数在 Benfen 相关代码中使用正确且统一:
- 函数定义在
normalize.ts
中并正确处理 BFC 格式 BenfenGetAddress.ts
中所有地址转换都使用了这个函数- 没有发现其他地方直接处理 BFC 格式的地址
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# 搜索所有可能使用到地址格式的地方
rg -l "address.*BFC|BFC.*address" --type ts
Length of output: 94
Script:
#!/bin/bash
# 搜索所有使用地址转换相关函数的地方
rg "hex2BfcAddress|toBfcAddress|fromBfcAddress" --type ts -A 2
# 搜索所有包含address的TypeScript文件
rg "address" --type ts -l
Length of output: 11167
👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎ This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Outside diff range comments (1)
packages/core/src/api/benfen/BenfenSignTransaction.ts (1)
Line range hint
89-93
: 注意处理 coin_type 可能为空的情况在
run()
方法中,直接访问this.params.coin_type
可能导致运行时错误。建议添加相应的空值处理。this.params = { address_n: this.params.address_n, - coin_type: this.params.coin_type, + ...(this.params.coin_type && { coin_type: this.params.coin_type }), raw_tx: '', data_initial_chunk: bytesToHex(new Uint8Array(data.buffer).subarray(0, this.chunkByteSize)),
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
📒 Files selected for processing (1)
packages/core/src/api/benfen/BenfenSignTransaction.ts
(2 hunks)
🔇 Additional comments (2)
packages/core/src/api/benfen/BenfenSignTransaction.ts (2)
19-19
:
建议增加输入验证
虽然 coinType
现在是可选的,但当提供时仍需要验证其格式。建议添加格式验证以确保输入的正确性。
- { name: 'coinType', type: 'string', required: false },
+ { name: 'coinType', type: 'string', required: false, validate: (value?: string) => {
+ if (value && !/^(0x)?[0-9a-fA-F]+$/.test(value)) {
+ throw new Error('无效的 coinType 格式');
+ }
+ return true;
+ }},
31-33
: 🧹 Nitpick (assertive)
优化 coinType 处理逻辑
当前实现中对 coinType
进行了重复的转换操作。建议优化代码以提高性能。
...(coinType && {
- coin_type: formatAnyHex(Buffer.from(coinType).toString('hex')),
+ coin_type: formatAnyHex(
+ coinType.startsWith('0x') ? coinType.slice(2) : Buffer.from(coinType).toString('hex')
+ ),
}),
Likely invalid or redundant comment.
Report too large to display inline |
Summary by CodeRabbit
新特性
1.0.15
,包括@onekeyfe/hd-ble-sdk
、@onekeyfe/hd-common-connect-sdk
、@onekeyfe/hd-transport-http
等。hex2BfcAddress
函数,用于将十六进制地址转换为 BFC 格式地址。BenfenSignTransaction
类中的coinType
参数现在为可选项,增强了灵活性。修复
coinType
值,确保与新格式兼容。