首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >减少ABI文件的大小

减少ABI文件的大小
EN

Ethereum用户
提问于 2020-05-11 16:58:37
回答 1查看 284关注 0票数 0

我有一些信托和坚实生产的ABI文件,我正在捆绑与一个JavaScript NPM软件包。

代码语言:javascript
复制
221.7kB esm5/lib/abi/IERC777.json   

目前,ABI文件包括完整的细节,如字节码,因为这些文件被用来进行单元测试、部署等等。但是基于JavaScript的用户界面包只需要abi函数定义本身,不需要其他任何东西。

如何从不必要的数据中删除ABI文件并减少下载大小?

EN

回答 1

Ethereum用户

发布于 2020-05-11 17:37:05

选项1-使用solc可执行文件直接编译代码,例如:

代码语言:javascript
复制
solc --bin --abi --optimize --optimize-runs=200 --output-dir=artifacts MyContract.sol

选项2-从松露或solc.js的输出中提取工件:

代码语言:javascript
复制
const fs = require("fs");

const INPUT_DIR  = "YourJsonFilesDirectory";
const OUTPUT_DIR = "YourArtifactsDirectory";

for (const fileName of fs.readdirSync(INPUT_DIR)) {
    const data = JSON.parse(fs.readFileSync(INPUT_DIR + fileName, {encoding: "utf8"}));
    fs.writeFileSync(OUTPUT_DIR + fileName.replace(".json", ".abi"), JSON.stringify(data.abi)  , {encoding: "utf8"});
    fs.writeFileSync(OUTPUT_DIR + fileName.replace(".json", ".bin"), data.bytecode.substring(2), {encoding: "utf8"});
}
票数 2
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/83299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档