ABI 源词
此软件包允许您从 ABI 文件生成 TypeScript 合同包 . 它的灵感很大 Geth 双子体 但采取不同的做法. 您可以编写您的自定义手提栏模板, 使您能够将生成的代码与现有的常规无缝地整合到您现有的代码库中 .
给 是用来生成 0x.js.e 所使用的合同包装的模板
安装
yarn add -g @0xproject/abi-gen
使用量
abi-gen
Options:
--help Show help [boolean]
--version Show version number [boolean]
--abis Glob pattern to search for ABI JSON files
[string] [required]
--output, -o, --out Folder where to put the output files [string] [required]
--partials Glob pattern for the partial template files [string]
--template Path for the main template file that will be used to
generate each contract [string] [required]
--backend The backing Ethereum library your app uses. Either 'web3'
or 'ethers'. Ethers auto-converts small ints to numbers
whereas Web3 doesn't.
[string] [choices: "web3", "ethers"] [default: "web3"]
--network-id ID of the network where contract ABIs are nested in
artifacts [number] [default: 50]
你必须通过一个 阴影 您的 abi 文件所在的模板. TL; DR - 这是0x.js的示例.
--abis 'src/artifacts/@(Exchange|Token|TokenTransferProxy|EtherToken|TokenRegistry).json
我们可以用 --abis 'src/artifacts/*.json 但我们想排除一些abi文件.
ABI 文件应该是 旋转 合同文物(带有ABI键的JSON对象)或JSON abi阵列.
您还需要指定每个合同所使用的主模板的位置 --template 以及部分模板 --partials 以后可以从主机上使用.
如何写自定义模板 ?
最好的开始方法是复制 0x.js 模板 并开始调整 满足你的需要.
我们用 手柄栏 引擎盖下的模板引擎.
您需要使用主模板 contract.mustache。它将用来生成每个合同包装。 尽管 - 你不需要,而且也许不应该将你的逻辑全部写入一个模板文件. 你可以写 部分模板 只要它们位于一个部分文件夹内,它们就会被登记和提供.
我的模板中有哪些数据/内容?
现在,你没有得到很多的方法 ABI,一些有用的帮助 和一个合同名称,因为它已经足够 我们的使用案例, 但如果你需要别的东西 - 创建一个公关. 见 类型定义 我们所传递的.
输出文件
输出文件将在一个输出文件夹内生成,名称被转换为骆驼案,取自abi文件名. 如果您的文件夹中已经有一些文件, 它们将被覆盖 .
捐款
我们欢迎更广泛的社会作出改进和修正! 要在此包中报告错误, 请在此寄存器中创建一个问题 .
请读我们的 捐款准则 在开始之前.
安装依赖关系
如果您没有启用纱线工作空间( Yarn < v1.0) - 启用它们 :
yarn config set workspaces-experimental true
然后安装依赖关系
yarn install
构建
要构建此软件包和它所依赖的所有其他单列波软件包,请从单列波根目录中运行以下内容:
PKG=@0xproject/abi-gen yarn build
或在变化中不断重建:
PKG=@0xproject/abi-gen yarn watch
干净
yarn clean
林特
yarn lint