@aptos-labs/aptos-client

中文文档
4.1.0发布于 2026/05/21Apache-2.0TypeScriptES Module构建来源已验证近 30 天下载 75.2万

访问 Aptos 网络 API 的客户端软件包 .

中文使用文档
文档目录14 节
  1. 特征
  2. 安装
  3. 使用量
  4. 已命名的出口
  5. 运行时间解析
  6. 类型
  7. HTTP/2 导弹
  8. 从v2 移动
  9. 和v2一样有效
  10. 行为改变( 呼叫者可观察)
  11. V2以来的新能力
  12. 自 v2 起删除
  13. 移徙清单
  14. 发布新版本

License NPM Package Version Node Version NPM bundle size NPM Package Downloads codecov

@aptos-labs/aptos-客户端

Aptos 网络 API 的 HTTP 客户端. 单独工作或作为运输层 Aptos 类型脚本 SDK。 。 。 .

特征

  • HTTP/2 导弹 ——默认在所有平台启用
  • 多运行时间 — Node.js, Deno, Bun, 浏览器, 以及 React Introduct
  • 饼干罐 在节点、德诺和邦自动处理饼干
  • 业连支助 —— 说 bcsRequest() 返回原始内容 ArrayBuffer 二进制编码回复

安装

npm install @aptos-labs/aptos-client
# or
pnpm add @aptos-labs/aptos-client

使用量

import aptosClient from "@aptos-labs/aptos-client";

const { status, data } = await aptosClient<{ chain_id: number }>({
  url: "https://fullnode.mainnet.aptoslabs.com/v1",
  method: "GET",
});

已命名的出口

import { jsonRequest, bcsRequest } from "@aptos-labs/aptos-client";

// JSON (same as default export)
const json = await jsonRequest<MyType>({ url, method: "GET" });

// BCS (returns ArrayBuffer)
const bcs = await bcsRequest({ url, method: "GET" });

运行时间解析

软件包使用 有条件出口 为每次运行时间选择正确的执行 :

条件入境点HTTP/2 导弹页:1
nodeindex.node.ts可配置通过 http2 选项(默认) true(中文(简体) )用途 已经 (代码) br编号 :gzip编号 :deflate h1和H2透明
browserindex.browser.ts自动( 浏览器引擎)向浏览器代表 cookie
react-nativeindex.fetch.ts自动( OkHttp / NSURL 会话)平台通过 ALPN 谈判 HTTP/2
denoindex.fetch.ts自动—— 说
bunindex.fetch.ts自动—— 说
workerdindex.fetch.ts自动云花岗工人
edge-lightindex.fetch.ts自动Vercel边缘函数
defaultindex.fetch.ts取决于运行时间未知运行时间的倒计时

类型

type AptosClientRequest = {
  url: string;
  method: "GET" | "POST";
  body?: unknown;
  params?: Record<string, string | number | bigint | boolean | undefined>;
  headers?: Record<string, string | undefined>;
  overrides?: { WITH_CREDENTIALS?: boolean };
  http2?: boolean;    // Node only — ignored elsewhere
  cookieJar?: CookieJarLike; // Per-request cookie isolation (Node & fetch only)
};

type AptosClientResponse<Res> = {
  status: number;
  statusText: string;
  data: Res;
  config?: any;
  request?: any;
  response?: any;
  headers?: Record<string, string | string[]>;
};

见 src/types.ts 用于带有文档的完整类型定义.

HTTP/2 导弹

运行时间如何运作
节点.jsgot 通过ALPN(由 http2-wrapper当 http2: true (默认). 设定 http2: false 以强制使用 HTTP/1.1.
浏览器浏览器引擎与服务器自动谈判HTTP/2. 这个 http2 选项被忽略.
原生反应OkHttp(Android)和NSURL Session(iOS)通过ALPN自动谈判HTTP/2. 这个 http2 选项被忽略.
德诺/ 邦运行时间自动谈判HTTP/2. 这个 http2 选项被忽略.

从v2 移动

v4.1.0 返回相同的 HTTP 库 v2 (got),同时保留v4架构(ESM,有条件的出口,多运行时间). 对于大多数呼叫者来说,迁移是一两个小编辑.

如果你在v3.0.0到v4.0.0,升级. 这些版本静悄悄地返回原始压缩字节,而不是当来源发送时解析 JSON content-encoding: br编号 :gzip编号 :deflate ——这是Aptos fullnode和索引器的工作. 4.1.0 恢复v2-era减压行为.

和v2一样有效

  • http2: true 默认; 当服务器不支持 H2 时倒回 H1.1 .
  • Brotli / gzip / deflate 解压处理透明.
  • 饼干罐子回转 set-cookie 并且根据同源请求重新发送饼干.
  • bigint 查询参数为字符串.
  • 4xx / 5xx 答复有 没有 投掷-检查 res.status。 。 。 .
  • AptosClientResponse 形状 : { status, statusText, data, config, request, response, headers } 与 headers 作为一个平地 Record<string, string | string[]>。 。 。 .

行为改变( 呼叫者可观察)

变动页:1页:1
BCS 响应类型BufferArrayBuffer - 交叉运行时间,不 Buffer 需要多填充剂。 字节相同; 使用 new Uint8Array(res.data) 或者说 Buffer.from(res.data) 如果你需要任何形状.
检索获得默认( e)limit: 2, 备份)关闭 (单位:千美元)limit: 0) (中文(简体) ). 在您自己的重试回环中环绕, 或者让 Aptos TS SDK 在更高层管理重试 .
非JSON机构JSON.parse 会抛出返回原始文本输入 data ——让呼叫者检查状态代码,无论身体内容类型如何.
空 / 204/ 205具尸体不论得到什么回报(往往) "" 或者说 undefined(中文(简体) )明确 null。 。 。 .
statusText 超过 HTTP/2空字符串( H2 没有理由短语)倒计时 http.STATUS_CODES[code] —— 说 "OK", (中文(简体) ), "Not Found"等 (中文(简体) ).
NODE_TLS_REJECT_UNAUTHORIZED=0 关于H2过渡性继承(意外工作)明确传播到获得 https.rejectUnauthorized ——同时在H1和H2上工作.

V2以来的新能力

  • 按要求的饼干罐隔离 - 通过 cookieJar: new CookieJar() 以保留共享饼干状态的多租户请求.
  • 公开 CookieJar 现在出口(有RFC 6265验证、过期驱逐、人均原产地盖和SameSite=None+Secure执行).
  • CookieJarLike 接口 ——自带罐子(如:硬饼干或数据库后置商店等).
  • 有条件出口 自动选择 Node / 浏览器 / Deno / Bun / Cloudflare Workers / Vercel Edge / React Introduct. v2 仅运出 Node + 浏览器的右条目.
  • overrides.WITH_CREDENTIALS (浏览器条目)地图到 fetch是因为 credentials: "omit" | "include"。 。 。 .

自 v2 起删除

  • 司法理事会 require() ——自v 4.0起,该包只采用无害环境管理. 使用 import 或者说 await import(...)。 。 。 .
  • 获取错误类型的再导出 - 如果你处理 RequestError 编号 : HTTPError 直接导入 got (仍然是直接依赖).
  • 节点 < 22 ——最低支持的节点版本为22.

移徙清单

  1. 使用 require()? 吗? 切换到 import (或 await import() 从CJS).
  2. 通话 Buffer 关于BCS响应的方法? • 使用 new Uint8Array(res.data), (中文(简体) ), new DataView(res.data),或用 Buffer.from(res.data)。 。 。 .
  3. 依靠自动回击? + 添加一个明确的重试包装。 (大多数消费者——包括Aptos TS SDK——不需要. )
  4. 节点版本 < 22? • 升级.

这就是完整的迁移。 其它东西要么是相同的,要么是添加剂,要么是固定的虫子.

发布新版本

当创建了 GitHub 发布时, 发布会自动通过 GitHub Actions 发布到 npm 。 工作流程存在于 .github/workflows/publish.yml。 。 。 .

要发布新版本 :

  1. 更新版本 内 package.json (以下为) 铸造:

    npm version <major|minor|patch> --no-git-tag-version
    
  2. 更新 CHANGELOG.md - 将任何注释移到下面 # Unreleased 输入一个新版,用于发布版本.

  3. 提交和推 版本凸起和更改日志更新到 main数字 :

    git add package.json CHANGELOG.md
    git commit -m "v<VERSION>"
    git push
    
  4. 创建 GitHub 发布 带有匹配的标签 vMAJOR.MINOR.PATCH (例如:. v2.3.0) (中文(简体) ). 标签 必须 匹配当前版本 package.json ——发布工作流程否则会失败. 释放前标签 v2.3.0-beta.1 也得到支持.

然后发布工作流程会自动:

  • 验证标签是否匹配预期 vMAJOR.MINOR.PATCH[-prerelease] 模式.
  • 验证标签是否匹配 version 输入 package.json。 。 。 .
  • 安装依赖关系、构建软件包并发布到 npm 来源。 。 。 .

版本与发布记录

@aptos-labs/aptos-client 共发布 15 个版本,首次发布于 2023/07/14;过去 12 个月发布了 7 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.1.0latest2026/05/215 个月前
4.0.02026/04/156 个月前
3.0.22026/04/086 个月前
3.0.12026/03/147 个月前
3.0.02026/03/137 个月前
2.2.02026/03/068 个月前

关于 @aptos-labs/aptos-client 的常见问题

@aptos-labs/aptos-client 是什么?

访问 Aptos 网络 API 的客户端软件包 .

如何安装 @aptos-labs/aptos-client?

在项目目录运行 npm install @aptos-labs/aptos-client,或使用 pnpm add / yarn add / bun add。

@aptos-labs/aptos-client 支持 TypeScript 吗?

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

@aptos-labs/aptos-client 支持 ESM 还是 CommonJS?

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

@aptos-labs/aptos-client 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aptos-labs/aptos-client 可以商用吗?

@aptos-labs/aptos-client 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aptos-labs/aptos-client 的下载量有多少?

根据 npm 官方下载统计,@aptos-labs/aptos-client 在 2026/10/07 – 2026/11/05 这 30 天内被下载 752,287 次,日均约 25,076 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aptos-labs/aptos-client 还在维护吗?

最新版本 4.1.0 发布于 2026/05/21(5 个月前);至今共发布 15 个版本,其中过去 12 个月发布了 7 个;首次发布于 2023/07/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。