truffle-flattener
Truffle Flattener concats solidity files developed under Truffle with all of their dependencies.
This tool helps you to verify contracts developed with Truffle on Etherscan, or debugging them on Remix, by merging your files and their dependencies in the right order.
Check out Buidler, our alternative to Truffle. It's got flattening built-in, it's faster, and much more flexible.
Installation
npm install truffle-flattener -g
Usage
Just intall it with npm in your truffle project and run
truffle-flattener <solidity-files>
.
Solidity Flattener?
Why notThis project is a Truffle specific
reimplementation of Solidity Flattener. By being closely coupled to Truffle it
can take advantage of its dependencies resolution logic making --solc-paths
a
thing of the past. It also supports flattening more than one file at once,
concatenating everything in the right order, whithout duplicating any file.
Limitations
If you deploy your contracts with truffle's migrations the output of
truffle-flattener
may not match while verifying it in Etherscan. You
can use Solidity Flattener
in that case, or deploy your contracts from Remix.
Aliased imports (eg: import {symbol1 as alias, symbol2} from "filename";
) are
not supported by truffle-flattener
.