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.
npm install truffle-flattener -g
Just intall it with npm in your truffle project and run
truffle-flattener <solidity-files>
.
Why not Solidity Flattener?
This 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.
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.