# @dynamic-labs-sdk/legacy-embedded-wallet-upgrade 中文文档

规范地址：https://npmcn.com/package/%40dynamic-labs-sdk/legacy-embedded-wallet-upgrade/

版本：1\.51\.0
npm 元数据更新时间：2026-11-10T18:07:32.121Z
中文译文更新时间：2026-11-13T02:24:42.608Z
软件包许可：未声明

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dynamic-labs-sdk/legacy-embedded-wallet-upgrade
原文对照：https://npmcn.com/package/%40dynamic-labs-sdk/legacy-embedded-wallet-upgrade/?lang=original

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.2 MB，111 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：react ^18\.0\.0 \|\| ^19\.0\.0，@dynamic-labs-sdk/client 1\.51\.0，@dynamic-labs-sdk/react-hooks 1\.51\.0
- 首次发布：2026-07-21T18:21:28.880Z
- 最新版本发布：2026-11-10T18:07:31.891Z
- 近 30 天下载量：3394（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：57（近 12 个月 57 个）

## 中文简介

帮助用户将遗留的"动态"嵌入式钱包升级为"动态瓦". 将 URL 合同、 重定向回程、 iframe/ WebView 完成握手、 会话更新到一小组功能后面, 所以您只调用函数

## 安装

```sh
npm install @dynamic-labs-sdk/legacy-embedded-wallet-upgrade
```

也可以使用：`pnpm add @dynamic-labs-sdk/legacy-embedded-wallet-upgrade`、`yarn add @dynamic-labs-sdk/legacy-embedded-wallet-upgrade`、`bun add @dynamic-labs-sdk/legacy-embedded-wallet-upgrade`

## README

# @ 力学- labs- sdk/ legacy- 嵌入- wallet- 升级

帮助用户将遗留的"动态"嵌入式钱包升级为"动态瓦". 将 URL 合同, 重定向回转, iframe/WebView 完成握手, 会话在一小组函数后刷新, 所以您只调用函数 —— 您从未自己组装流量 .

核心切入点为框架-可知性(无反应). 反应钩子分开住 `/react` 子路径,所以非反应消费者永远不会加载它们.

## 安装

```bash
npm install @dynamic-labs-sdk/legacy-embedded-wallet-upgrade @dynamic-labs-sdk/client
```

## 检测需要升级的钱包

```ts
import {
  getWalletsRequiringUpgrade,
  hasWalletsRequiringUpgrade,
} from '@dynamic-labs-sdk/legacy-embedded-wallet-upgrade';

if (hasWalletsRequiringUpgrade()) {
  const wallets = getWalletsRequiringUpgrade();
  // show an upgrade entry point for these wallets
}
```

## 重定向路径

将顶级窗口导航到主机升级应用,然后在返回时处理结果. 后腿有两步—— `detectUpgradeRedirect` 告诉你当前 URL 是否是升级应用的回放,以及 `completeUpgradeRedirect` 完成它(恢复关于成功的会话)——反映OAuth和器件注册如何消耗它们的重定向. 你总是自己通过 URL(`window.location.href` 在浏览器中,React Introduction中的深链接 URL).

```ts
import {
  startUpgradeRedirect,
  detectUpgradeRedirect,
  completeUpgradeRedirect,
} from '@dynamic-labs-sdk/legacy-embedded-wallet-upgrade';

// on the "Upgrade via redirect" button
startUpgradeRedirect();

// once, on app load
if (detectUpgradeRedirect({ url: window.location.href })) {
  const result = await completeUpgradeRedirect({ url: window.location.href });
  if (result?.status === 'error') {
    showErrorToast();
  }
}
```

## Iframe 路径

包件没有自己的UI——你拥有容器(例如底板). `openUpgradeIframe` 将 iframe 附加到您的容器中, 监听原端检查的补全信息, 刷新会话的成功度, 并解析 .

```ts
import { openUpgradeIframe } from '@dynamic-labs-sdk/legacy-embedded-wallet-upgrade';

const session = openUpgradeIframe({ container: sheetBodyElement });
const { status } = await session.completed;
closeSheet();

// if the user dismisses the sheet first:
session.close();
```

### 反应原生/自定义挂载

在您挂载升级时使用 DOM- 不可知原始软件( 例如, 反应原生) `WebView`:

```ts
import {
  buildUpgradeUrl,
  subscribeToUpgradeCompletion,
} from '@dynamic-labs-sdk/legacy-embedded-wallet-upgrade';

const src = buildUpgradeUrl();
const unsubscribe = subscribeToUpgradeCompletion({
  onComplete: ({ status }) => handleOutcome(status),
});
```

## 反应

反应钩是从 `/react` 子路径, 与 `react` 作为可选同伴依赖:

```tsx
import {
  useWalletsRequiringUpgrade,
  useHasWalletsRequiringUpgrade,
  useUpgradeRedirectResult,
  useUpgradeIframe,
} from '@dynamic-labs-sdk/legacy-embedded-wallet-upgrade/react';

const needsUpgrade = useHasWalletsRequiringUpgrade();

useUpgradeRedirectResult({ onComplete: ({ status }) => handleOutcome(status) });

const { upgradeUrl } = useUpgradeIframe({
  active: isSheetOpen,
  onComplete: ({ status }) => closeSheet(status),
});
```

## 多客户

每个函数都接受动态客户端作为可选的第二个参数,默认为 `getDefaultClient()`; 只在使用一个以上客户端时明确通过.

## 常见问题

### @dynamic-labs-sdk/legacy-embedded-wallet-upgrade 是什么？

帮助用户将遗留的"动态"嵌入式钱包升级为"动态瓦"\. 将 URL 合同、 重定向回程、 iframe/ WebView 完成握手、 会话更新到一小组功能后面, 所以您只调用函数

### 如何安装 @dynamic-labs-sdk/legacy-embedded-wallet-upgrade？

在项目目录运行 npm install @dynamic-labs-sdk/legacy-embedded-wallet-upgrade，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@dynamic-labs-sdk/client（1\.51\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @dynamic-labs-sdk/legacy-embedded-wallet-upgrade 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @dynamic-labs-sdk/legacy-embedded-wallet-upgrade 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @dynamic-labs-sdk/legacy-embedded-wallet-upgrade 可以商用吗？

@dynamic-labs-sdk/legacy-embedded-wallet-upgrade 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @dynamic-labs-sdk/legacy-embedded-wallet-upgrade 的下载量有多少？

根据 npm 官方下载统计，@dynamic-labs-sdk/legacy-embedded-wallet-upgrade 在 2026/10/13 – 2026/11/11 这 30 天内被下载 3,394 次，日均约 113 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @dynamic-labs-sdk/legacy-embedded-wallet-upgrade 还在维护吗？

最新版本 1\.51\.0 发布于 2026/11/11（2 天前）；至今共发布 57 个版本，其中过去 12 个月发布了 57 个；首次发布于 2026/07/22。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

