Skip to main content
正在寻找最新的迁移指南?请参阅 从 v3 迁移到 v4 以升级到当前版本。

概述

LI.FI Widget v3 对其核心进行了全面改造,增强了与热门账户管理库(如 WagmiRainbowKit)的兼容性,并加入了许多新功能,包括从 Solana 开始的多生态系统支持。因此,本指南中概述了一些需要注意的破坏性变更和弃用项。此外,我们建议你阅读更新后的文档,其中包含此处未提及的新功能。 要开始使用,请安装最新版本的 Widget。

配置

重命名的变体

以下 widget 变体已重命名,以更好地反映其功能: default 现在为 compact expandable 现在为 wide 详情请参阅 选择 Widget 变体

更新的 toAddress 类型

在 Widget v3 中,我们更新了目标钱包功能,加入了钱包书签、最近使用的地址等。此前,toAddress 选项的类型为 string。为了在 v3 中扩展该功能,我们为此字段添加了一个专门的类型。

更新的 subvariantOptions 类型

在 Widget v3 中,我们扩展了 subvariant 的功能,subvariantOptions 需要更新类型。此前,subvariantOptions 仅支持 split subvariant,并具有 SplitSubvariantOptions 类型,现在我们添加了对 custom subvariant 的支持,未来可能还会有更多 subvariant 选项。

SDK 配置

随着 LI.FI SDK v3 的发布,widget 中的 SDK 配置有一些变化。 SDKConfig 类型现在为 WidgetSDKConfig defaultRouteOptions 重命名为 routeOptions

移除了预构建的抽屉按钮

此前在 Widget v2 中,有两种控制抽屉的方式。第一种是随抽屉变体附带的预构建按钮,用于打开和关闭它。第二种是通过 hiddenUI 选项隐藏该按钮,并通过附加 ref 来控制抽屉。由于标题和定位常常需要一些调整,我们决定移除预构建的抽屉按钮,转而使用外部按钮控制抽屉。 以下是使用 ref 控制抽屉的示例,你可以按自己的喜好自定义按钮。
我们还移除了 HiddenUI.DrawerButton 选项,因为不再有默认按钮。不过,我们添加了一个新选项 HiddenUI.DrawerCloseButton,用于隐藏抽屉内部的关闭按钮。

主题

在 Widget v3 中,我们改进了自定义和主题化的可能性,并进行了小幅清理。 顶层的 containerStyle 选项被移至 theme 选项之下,并重命名为 container
此外,theme 选项类型已从 ThemeConfig 重命名为 WidgetTheme 请在 自定义 Widget 部分查看更多内容。

杂项

disableLanguageDetector 配置选项已移除。现在应从集成的 dApp 继承语言检测。

钱包管理

从 Ethers.js 迁移到 Wagmi

我们放弃了对 Ethers.js 的支持。取而代之的是,Widget 现在拥有一流的 Wagmi 支持,以及所有基于 Wagmi 的库(如 RainbowKit)的支持。你仍然可以在项目中使用 Ethers.js,并在用 WagmiProvider 包装 Widget 之前,将 Signer/Provider 对象转换为使用 Wagmi 的 injected 连接器。不过,我们建议将你 dApp 的钱包管理迁移到使用 Wagmi,作为一个更具前瞻性的解决方案。

使用 Ethers.js 的 Widget v2 设置

使用 Wagmi 的 Widget v3 设置

不再需要复杂的回调,只需将 Widget 包装在 WagmiProvider 中即可。如果你的 dApp 中已经有一个,只需确保 Wagmi 的链配置与 Widget 的链列表保持同步,以便切换链等所有功能都能继续正常工作。 详情请参阅 钱包管理

更新的钱包管理配置

由于我们不再需要向 widget 配置提供回调和 signer,walletManagement 选项已重命名为 walletConfig,现在具有以下接口:

依赖

Wagmi 是新的对等依赖

由于我们从 ethers.js 迁移到了 Wagmi,我们将其添加到了对等依赖中。

放弃 CommonJS 支持

LI.FI Widget v3 不再发布单独的 CommonJS 构建,因为大多数现代前端工具都支持 ESM,而 ESM 是未来趋势。有关切换到 ESM 的更多信息,请参阅 Sindre Sorhus 的指南