@findeth/abi

中文文档
0.7.1发布于 2021/04/05MITTypeScriptESM + CJS零依赖近 30 天下载 4.3万

一个小小的固态ABI编码器和解码器

中文使用文档
文档目录5 节
  1. 安装
  2. 开始
  3. 编码
  4. 解码
  5. 发展

@findeth/abi

Version License GitHub CI codecov

@findeth/abi 是用于 FindETH 的零依赖性ABI 编码器和解码器库。 它既支持Node.js也支持网页浏览器. 这个图书馆是实验性的,并且可能不与所有合同接口合作。 它被用于FindETH应用中,可在此找到:

目前,大多数类型(固定点数除外)fixed<M>x<N>),和固定长阵列 type<M>) 得到支持.

说明:这是FinderETH的在建版本,并且是 没有 生产准备。 关于目前版本的FindETH,请参见: 此寄存器公众 API 可能 微量排放的变化低于1.0 (尽管这不太可能).


安装

您可以安装 @findeth/abi 与Yarn(建议)或国家预防机制:

$ yarn add @findeth/abi
$ npm install @findeth/abi

说明: 如果您正在使用类型脚本, @findeth/abi 需要 TypeScript 4.1 或更新。 用于根据指定的输入和输出类型自动推断 types。 。 。 .

开始

你可以用这个 encode 财务报告和审定财务报表 decode 函数可以分别编码和解码ABI.

编码

编码函数取出一组ABI类型(如:, ["string", "uint256"])和一系列要编码的值。 例如:

import { encode, toHex } from "@findeth/abi";

const buffer = encode(["string", "uint256"], ["foo bar", 12345]);
console.log(toHex(buffer));

// 000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000030390000000000000000000000000000000000000000000000000000000000000007666f6f2062617200000000000000000000000000000000000000000000000000

解码

解码功能需要一系列ABI类型和一个缓冲器(Uint8Array)去解码. 注意节点.js Buffers 兼容 Uint8Array,但为了保持与网页浏览器的完全相容性(不需要多填充),此库不使用 Buffer示例:

import { decode, fromHex } from "@findeth/abi";

const value = fromHex("000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000030390000000000000000000000000000000000000000000000000000000000000007666f6f2062617200000000000000000000000000000000000000000000000000");
console.log(decode(["string", "uint256"], value));

// ["foo bar", 12345n]

发展

安装依赖关系 yarn数字 :

$ yarn

要进行自动化测试,请使用 test 脚本 :

$ yarn test

为了建造图书馆,使用 build 脚本 :

$ yarn build

版本与发布记录

@findeth/abi 共发布 14 个版本,首次发布于 2020/06/05;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.7.1latest2021/04/055 年前
0.7.02021/04/055 年前
0.6.12021/04/045 年前
0.6.02021/04/045 年前
0.5.22021/03/095 年前
0.5.12021/03/085 年前

关于 @findeth/abi 的常见问题

@findeth/abi 是什么?

一个小小的固态ABI编码器和解码器

如何安装 @findeth/abi?

在项目目录运行 npm install @findeth/abi,或使用 pnpm add / yarn add / bun add。

@findeth/abi 支持 TypeScript 吗?

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

@findeth/abi 支持 ESM 还是 CommonJS?

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

@findeth/abi 需要什么版本的 Node.js?

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

@findeth/abi 可以商用吗?

@findeth/abi 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@findeth/abi 的下载量有多少?

根据 npm 官方下载统计,@findeth/abi 在 2026/10/15 – 2026/11/13 这 30 天内被下载 42,860 次,日均约 1,429 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@findeth/abi 还在维护吗?

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