OneKeyHQ / app-monorepo

Secure, open source and community driven crypto wallet runs on all platforms and trusted by millions.
https://onekey.so
Other
2.01k stars 383 forks source link

Fix/wallet issues OK-33918 OK-33924 OK-33937 OK-33987 OK-33899 OK-33738 OK-33743 #6238

Closed weatherstar closed 1 week ago

weatherstar commented 1 week ago

Summary by CodeRabbit

codesandbox[bot] commented 1 week ago

Review or Edit in CodeSandbox

Open the branch in Web EditorVS CodeInsiders
Open Preview

coderabbitai[bot] commented 1 week ago

[!CAUTION]

Review failed

The pull request is closed.

Walkthrough

此次更改涉及多个文件,主要集中在简化网络管理逻辑上。IAllNetworksDBStruct 接口中移除了 deriveType 属性,更新后的逻辑仅基于 networkId 进行网络状态的更新和比较。此外,多个服务和组件的相关方法也进行了调整,以适应新的数据结构和逻辑,增强了错误处理和日志记录。这些改动旨在提高代码的清晰度和可维护性。

Changes

文件路径 更改摘要
packages/kit-bg/src/dbs/simple/entity/SimpleDbEntityAllNetworks.ts 移除 IAllNetworksDBStruct 接口中的 deriveType 属性,简化 updateAllNetworksState 方法的逻辑,仅基于 networkId 进行唯一性检查。
packages/kit-bg/src/services/ServiceAllNetwork/ServiceAllNetwork.ts 更新 getAllNetworkAccountsWithEnabledNetworks 方法,增加日志记录;调整 updateAllNetworksState 方法,移除 deriveType 参数,简化逻辑。
packages/kit-bg/src/services/ServiceGas.ts 修改 estimateFee 方法,调整费用计算逻辑,使用 BigNumber 处理精度问题。
packages/kit-bg/src/services/ServiceNetwork/ServiceNetwork.ts getChainSelectorNetworksCompatibleWithAccountId 方法中新增 clearCache 可选参数,用于清除网络缓存。
packages/kit/src/components/AccountSelector/AccountSelectorActiveAccount.tsx 增加 shouldClearAllNetworksCache 变量,更新网络账户获取逻辑,合并事件监听器。
packages/kit/src/components/AccountSelector/DeriveTypeSelectorTrigger.tsx 新增 onChange 属性,增强派发 derive type 变化的功能。
packages/kit/src/hooks/useAllNetwork.ts 增强错误处理,添加对空账户的检查,确保状态更新的准确性。
packages/kit/src/views/Home/pages/TokenListContainer.tsx 添加 NetworkDeriveTypeChanged 事件监听器,更新 token 列表刷新逻辑。
packages/kit/src/views/Send/components/SendFee/FeeEditor.tsx 更新费用计算逻辑,增加更全面的费用验证检查。
packages/kit/src/views/Setting/pages/AccountDerivation/index.tsx 新增 deriveTypes 状态管理,更新 AccountDerivationListItem 组件以支持 derive type 选择。
packages/kit/src/views/WalletAddress/pages/WalletAddress/index.tsx 移除网络状态逻辑中的 deriveType,简化网络可见性管理。
packages/shared/src/eventBus/appEventBus.ts 新增 NetworkDeriveTypeChanged 枚举值和对应的事件负载类型。
packages/shared/src/utils/networkUtils.ts 移除 isEnabledNetworksInAllNetworks 方法中的 deriveType 参数,简化函数接口。

🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit , please review it.` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` 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) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` or `Summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.