@findeth/abi
@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