Inspired by "earth" in Portuguese, terra and the flatness of the Earth.
Flaterra parses the provided Solidity source file and adds any other imported
files. This is useful if you want to upload your source code to a block explorer for verification, use it with Remix or to run analysis on it, for example with MythX or Mythril.
A way to make Solidity source code flat like the earth.
Install it with pip
from PyPI.
$ pip install --user flaterra
Specify the main contract you want flatten with --contract=
.
$ flaterra --contract=ERC20.sol
INFO:root:Reading file .//ERC20.sol
INFO:root:Reading file .//./IERC20.sol
INFO:root:Reading file .//../../math/SafeMath.sol
INFO:root:Writing flattened file ERC20_flat.sol
It assumes the contract is in the current folder. If the contract is in another folder specify it with --folder=contracts/
.
It is able to read import formats like
import "./contract.sol";
import './another_contract.sol';
import {Contract1, Contract2} from "contracts.sol";
Pragmas are added only from the main Solidity file. These formats are supported.
pragma solidity 0.5.0;
pragma experimental ABIEncoderV2;