# @dynamic-labs-sdk/react-native-embedded-wallet-export 中文文档

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

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

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

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

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

- 包体积（解压后）：859 kB，15 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：react ^18\.0\.0 \|\| ^19\.0\.0，react-native \>=0\.73\.6，react-native-webview \>=13\.0\.0
- 首次发布：2026-06-15T19:01:44.119Z
- 最新版本发布：2026-11-10T18:07:02.920Z
- 近 30 天下载量：4298（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：67（近 12 个月 67 个）

## 中文简介

为动态 WaaS 嵌入钱包安全私钥导出 **原生反应**。 。 。 .

## 安装

```sh
npm install @dynamic-labs-sdk/react-native-embedded-wallet-export
```

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

## README

# @ 动力- labs- sdk/ 反应- 内嵌- wallet- 导出

为动态 WaaS 嵌入钱包安全私钥导出 **原生反应**。 。 。 .

导出仪式运行在一个可见,屏幕截图保护的本地 Webview 重叠。 私人密钥完全在WebView的沙盒内制成 文档——它是 **永远** 所以主机应用程序 JavaScript 无法读取,日志或截取它 。 这是故意的安全 边框:整合 SDK 的开发者无法访问原始密钥.

## 安装

```bash
pnpm add @dynamic-labs-sdk/react-native-embedded-wallet-export
```

要求数 `@dynamic-labs-sdk/client` (配置为 React 原住民) 和 a React 连接 `DynamicClientWebView` 本地模块运出 客户端软件包.

## 使用量

挂载 `<ExportPrivateKey />` 以显示导出覆盖;卸载到 开除 组件拥有覆盖的生命周期.

```tsx
import { ExportPrivateKey } from '@dynamic-labs-sdk/react-native-embedded-wallet-export';
import { getWalletAccounts } from '@dynamic-labs-sdk/client';
import { isWaasWalletAccount } from '@dynamic-labs-sdk/client/waas';
import { useState } from 'react';
import { Button, View } from 'react-native';

function ExportScreen() {
  const [revealing, setRevealing] = useState(false);
  const walletAccount = getWalletAccounts()[0];

  if (!walletAccount || !isWaasWalletAccount({ walletAccount })) return null;

  return (
    <View>
      <Button title="Reveal private key" onPress={() => setRevealing(true)} />
      {revealing && (
        <ExportPrivateKey
          walletAccount={walletAccount}
          onError={(error) => {
            // Log a non-sensitive representation only — never the raw error,
            // which could carry key material or stack traces.
            const errorType = error instanceof Error ? error.name : typeof error;
            console.warn('Private key export failed', { errorType });
            setRevealing(false);
          }}
        />
      )}
    </View>
  );
}
```

### 显示装入状态

`ExportPrivateKey` 是一个最小的原始: 它使安全箱加上 本地覆盖和信号准备通过 `onComplete` (一旦钥匙响起就开火) 显示). 装入UI是你的风格, 让你自己的旋转器和隐藏 打开 `onComplete`。本地覆盖在装入时透明,所以 旋转器放在后面 显示在等待期间.

```tsx
import { ActivityIndicator, StyleSheet, View } from 'react-native';
import { useState } from 'react';

function ExportWithSpinner({ walletAccount }) {
  const [loading, setLoading] = useState(true);

  return (
    <View style={{ position: 'relative' }}>
      <ExportPrivateKey
        walletAccount={walletAccount}
        onComplete={() => setLoading(false)}
        onError={() => setLoading(false)}
      />
      {loading && (
        <View
          pointerEvents="none"
          style={[
            StyleSheet.absoluteFillObject,
            { alignItems: 'center', justifyContent: 'center' },
          ]}
        >
          <ActivityIndicator size="large" />
        </View>
      )}
    </View>
  );
}
```

`pointerEvents="none"` 使旋转器不拦截用于 本地密钥WebView(例如其副本按钮).

### 道具

| Prop | 类型 | 说明 |
| --- | --- | --- |
| `walletAccount` | `WalletAccount` | WaaS 钱包账户,其私钥被导出 。 要求. |
| `password` | `string` | 可选密码来解密私钥. |
| `onComplete` | `() => void` | 当密钥显示在上方时调用 。 没有关键材料. |
| `onError` | `(error: unknown) => void` | 要求出口失败。 此错误从未包含密钥材料 . |

## 警卫

-   密钥只在本地的 WebView 上方显示, 并且从未交叉 jS桥.
-   覆盖可实现截图/记录保护并禁用网络 检查.
-   卸载组件会撕下覆盖, 因此显示的密钥不能 超过屏幕要求它.

## 常见问题

### @dynamic-labs-sdk/react-native-embedded-wallet-export 是什么？

为动态 WaaS 嵌入钱包安全私钥导出 原生反应。 。 。 \.

### 如何安装 @dynamic-labs-sdk/react-native-embedded-wallet-export？

在项目目录运行 npm install @dynamic-labs-sdk/react-native-embedded-wallet-export，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^18\.0\.0 \|\| ^19\.0\.0）、react-native（\>=0\.73\.6）、react-native-webview（\>=13\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @dynamic-labs-sdk/react-native-embedded-wallet-export 支持 TypeScript 吗？

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

### @dynamic-labs-sdk/react-native-embedded-wallet-export 支持 ESM 还是 CommonJS？

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

### @dynamic-labs-sdk/react-native-embedded-wallet-export 可以商用吗？

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

### @dynamic-labs-sdk/react-native-embedded-wallet-export 的下载量有多少？

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

### @dynamic-labs-sdk/react-native-embedded-wallet-export 还在维护吗？

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

