# @antseed/web-sdk 中文文档

规范地址：https://npmcn.com/package/%40antseed/web-sdk/

版本：0\.1\.32
npm 元数据更新时间：2026-11-04T21:44:53.356Z
中文译文更新时间：2026-11-06T07:17:01.347Z
软件包许可：未声明

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

原始 npm 页面：https://www.npmjs.com/package/%40antseed/web-sdk
原文对照：https://npmcn.com/package/%40antseed/web-sdk/?lang=original

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

- 包体积（解压后）：171 kB，31 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2026-08-19T10:15:21.232Z
- 最新版本发布：2026-11-04T21:44:53.183Z
- 近 30 天下载量：4463（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：33（近 12 个月 33 个）

## 中文简介

AntSeed的浏览器购买者SDK:通过信号中继器与WebRTC上的销售商连接,以浏览器EIP-712签名支付

## 安装

```sh
npm install @antseed/web-sdk
```

也可以使用：`pnpm add @antseed/web-sdk`、`yarn add @antseed/web-sdk`、`bun add @antseed/web-sdk`

## README

# @antseed/web-sdk (英语)

AntSeed的浏览器购买者 SDK. 通过WebRTC与未修改的销售商连接 数据渠道(通过 [@ antseed/ 转发](https://npmcn.com/package/apps/relay))并支付 每一份请求都有EIP-712签名。 没有本地模块; 唯一的 运行时间依赖是醚.

```ts
import { AntseedWebClient } from '@antseed/web-sdk';

const client = await AntseedWebClient.create({
  relayUrl: 'https://relay.example.com',
  privateKey: buyerHotWalletKey,        // peerId = its EVM address
  connection: {
    iceServers: [
      { urls: 'stun:stun.example.com' },
      { urls: 'turns:turn.example.com', username, credential },
    ],
    onConnectionInfo: ({ path }) => showPath(path), // direct | relay | unknown
  },
});

const sellers = await client.sellers();
const session = await client.connect(sellers[0].peerId);

const response = await session.request(
  {
    path: '/v1/chat/completions',
    provider: 'openai',
    headers: { accept: 'text/event-stream' },
    body: JSON.stringify({ model: 'gpt-oss-120b', stream: true, messages: [...] }),
  },
  { onChunk: (data, done) => render(new TextDecoder().decode(data)) },
);
```

## 示例页面

工作单页实例( 销售者发现、 连接、 流出聊天) 住在这里 [`examples/example.html`](https://npmcn.com/package/%40antseed/web-sdk/examples/example.html)数字 :

```bash
pnpm --filter @antseed/web-sdk run example
# open http://127.0.0.1:8974/example.html
```

它期望有一个可达到的中继器(`node apps/relay/dist/index.js`默认端口 8917 — 使用 (中文(简体) ) `RELAY_STATIC_SELLERS=<peerId>@<host>:<port>` 针入本地 卖方)和针对接受免费请求的卖方的工程没有资金.

## 持久频道状态和多选项卡

默认情况下, 客户端会使用内存频道商店: 在重新装入最新时 签了名的SPYAuth州已经不在了 预留资金一直锁着直到 届会截止日期已过。 生产应用软件应注入耐用商店:

```ts
const client = new AntseedWebClient({ relayUrl, wallet, channelStore: myStore });
```

`channelStore` 使用任意 `BuyerChannelStore` (此处再出). 对于 执行空难安全选项 `flush()`: 在每个新之后等待 持续签署授权书 _在此之前_ 它被传送,所以它必须 无法解析, 直至持续写入( 例如, IndexedDB behind a) 同步内存缓存). 如果多个标签可以共享商店,则 实施还必须将签名序列化(例如:. `navigator.locks`(b) —— 耗用Auth 金额是每个频道的累计数, 并签名两个标签 同时破坏序列 没有共享的商店,每个标签都会打开它 拥有自己的渠道并保留自己的预算.

## ICE / TURN 配置

`connection.iceServers` 接受赤裸的 URL 字符串或完整 `RTCIceServer` (TURN证书); `connection.iceTransportPolicy: 'relay'` 强制 TURN 唯一的路径 . `connection.onConnectionInfo` 报告所选 路径( r)`'direct' | 'relay' | 'unknown'`一旦连接,而不暴露 地址或原始候选人.

## 建筑

此软件包只包含浏览器特定部件:中继信号 (单位:千美元)`hello` 信封,社民党提议,微调 ICE `RTCPeerConnection` 运输,恒活性,信道-存储适配器,并实现跨塔协调. 其他一切都是共享代码,而不是重新执行. 生产客户 使用索引 DB 商店; 内存商店仅可通过 明确 `ephemeral()` API : (英语)

-   **@ antseed/ protocol** ——有线格式:消息类型,帧/HTTP/支付 代码,EIP-712支付签名,连接认证. 相同的模块 @antseed/节点运行.
-   **@antseed/买方核心** - 购买机械: `BuyerRequestHandler`, (中文(简体) ), `BuyerPaymentManager`, (中文(简体) ), `BuyerPaymentNegotiator`, (中文(简体) ), `ProxyMux`编号 :`PaymentMux`。 。 。 . 节点/CLI买家代理商背后的准确分类 连接到WebRTC DataChannel 和已配置的频道存储器(默认情况下在记忆中).

因此,402次谈判, ReserveAuth/AuthAck, NeedAuth成本验证, 累积 耗用Auth 元数据、流出和块上传行为与 节点买家。 一个浏览器特定覆盖: 上传块超过 192 KiB (不是 512 KiB) 保留在 ~ 256 KiB SCTP 信件天花板浏览器下 与Libdatachannel销售商谈判。 默认目标 Base 主网; 覆盖 `payment.*` 对于其他链条.

中继桥一打开DataChannel就关闭了——只是 需要信号,持有它会消耗中继器的每IP桥 插槽 。 没有重新签名路径; 已丢弃的 DataChannel 表示新鲜 `connect()`。 。 。 .

## 持久性和多标签

`AntseedWebClient.create()` 是一个同步的,因为它得到了独家 付款前购买者身份和水合物索引DB的网页锁定 经理可以签字。 同一链/通道上只能使用一个标签 合同一次。 第二个标签失败 `BuyerAlreadyActiveError` 以 默认; 设置 `persistence.waitForLock` 等待代替。 崩溃的标签发布 其Web锁定自动恢复,其继任者持续恢复最后 承诺的频道状态.

每一个储备机构 和 消耗机构 承诺在它成为索引数据库之前 发送。 数据库包含频道标识符、签名、累积 金额、元数据和回收上下文,但绝不是买家的私人密钥. 使用 `onPersistenceError` 从普通到表面背景失败 身份/会计立即写作;等待批准 `close()` 当持久性不健康时,也要予以拒绝. 打电话 `await client.close()` 当应用程序完成冲洗存储和 解开锁 页面卸载处理器不是一个频道恢复机制.

`AntseedWebClient.ephemeral()` 保留模拟行为进行测试和免费 互通性实验. 不得用于付费交通,因为 重新装入会失去它的频道状态,并且不提供多塔布排除.

`SellerSession.close()` 只关闭 WebRTC 传输 。 使用 `await session.closeChannel()` 请求给予合作解决 支持卖方. `client.listActiveChannels()` 暴露未解决的本地问题 恢复UI的渠道. 如果卖方无法出庭,请打电话 `session.requestOnChainClose(operatorSigner)` 在契约之后 期间, `session.withdrawTimedOutChannel(operatorSigner)`。签名者必须是 在 AntseedDeposits 为买方配置的操作员; SDK 不 假设浏览器钱包或任何特定的后端拥有该角色.

中继器在缓存前先验证 DHT 元数据, SDK 拒绝 a 非空卖家快照比 `maxSellerSnapshotAgeMs` (15分钟前) (a) 在将其正常化后,再将其纳入共同购买者定价/能力视图. 中继器仍然是可信赖的发现-可用性边界;连接认证, 卖方反应认证,付款签名仍为结束.

## 已知限制:大型非流式答复

春金目前只保护上传方向 。 卖方发送 作为单一 DataChannel 消息的非流化响应机构, 浏览器封顶 在 ~256 KiB 接收 SCTP 消息——一个更大的响应(例如 Base64 图像) 输出)将杀死 DataChannel 。 直至卖方方反应分解 存在, 偏好流线化(`accept: text/event-stream`用于潜在大型 回应.

## 支付卖方的前提条件

买方地址必须是USDC存入AntseedDeposits(直接或 通过无气EIP-3009扫荡). 存款UX是超出这个SDK的范围.

## 测试

`vitest run` 覆盖字节对等 `@antseed/node` (哈罗) 信封、框架编码器、EIP-712签名、元数据散列) 驱动真实的端到端套件 `@antseed/node` 销售者通过 真实的中继实例 `node-datachannel/polyfill` 站出来 浏览器 `RTCPeerConnection`。 。 。 . `pnpm run test:browser` 额外发射 将本地的 WebRTC 堆栈连接到一个 通过中继器的销售者不变,并验证多标签排除法加 坠机接管。 浏览器套件还完成402次付费谈判,验证 eIP-712授权、重新装入索引数据库、模拟丢失的销售状态,以及 回收相同的链上通道而无需发行第二储备.

## 常见问题

### @antseed/web-sdk 是什么？

AntSeed的浏览器购买者SDK:通过信号中继器与WebRTC上的销售商连接,以浏览器EIP-712签名支付

### 如何安装 @antseed/web-sdk？

在项目目录运行 npm install @antseed/web-sdk，或使用 pnpm add / yarn add / bun add。

### @antseed/web-sdk 支持 TypeScript 吗？

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

### @antseed/web-sdk 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @antseed/web-sdk 可以商用吗？

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

### @antseed/web-sdk 的下载量有多少？

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

### @antseed/web-sdk 还在维护吗？

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

