[Contract] truffle-flattener 合並 Solidity 文件的依賴到一個文件


 

使用

$ npm install truffle-flattener -g

$ truffle-flattener <solidity-files> > output.sol

 

為什么不是 Solidity Flattener

truffle-flattener 與 truffle 結合緊密,利用到它的依賴項解析邏輯。

 

限制

如果使用 truffle migrate 部署,它與 truffle-flattener 合並后的文件不一樣,在 ethersan 上面 contract verify 是通不過的。

這種情況可以使用 Solidity Flattener 通過 Remix 來部署( 復制使用 cat output.sol | pbcopy )。當然我們通過 truffle-flattener 也可以合並整個合約 通過 Remix 部署。

注意,truffle-flattener 對別名導入不支持(如:import {symbol1 as alias, symbol2} from "filename";)。

 

優勢

我們在開發階段就可以使用這個工具了,方便我們在一個文件中查看依賴的所有合約方法的實現及使用方式。

比如使用 OpenZeppelin 庫文件:

// xxx.sol
import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";

在一個空文件中引入庫文件,然后 `truffle-flattener xxx.sol > ERC20Full.sol` 我們就可以得到包含所有依賴項的單個文件。

后面我們就可以通過 import "ERC20Full.sol" 直接使用了。

 

Link:https://www.cnblogs.com/farwish/p/12531556.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM