0.0.5 • Published 4 years ago
jooskos_flattener v0.0.5
jO-Osko's flattener
Flattens your solidity files into a single file needed for verification on blocksout or testing on remix.
Features
- Supports flattening of files with cyclical dependencies.
- In a cyclical dependency situation, contents are inlinded in the order of inheritance so that compiler can resolve the dependencies.
- Import from remote providers is supported (currently only github and gitlab).
- Supports imports from
node_modulesfolder (import @openzeppelinetc.). - Fast and efficient inlining (sub second invocation).
Usage
Once you install the package invoke it with yarn jooskos_flattener <path/to/input_file.sol>.
The flattened output will be written to stdout. Flattener automatically looks for node_modules in the current and parent directory to be used for @ imports.
Available options:
-o <path/to/output_file.sol>: write the flattened output to the specified file (default: stdout)--node-modules <path/to/node_modules>: specify the node_modules directory to be used for@imports (default: current directory or parent directory if they containnode_modules) folder--contract-libs <lib1>,<lib2>,<lib3>: Comma seperated list of@imports to be searched innode_modules(default:@openzeppelin,@gnosis.pm)
Roadmap
- More support for inline assembly
- Support for
uncheckedin solidity0.8.+ - Better documentation and error reporting.
- More autmatic configurations.
Contributing
Any contributions are welcome (PR, Issues, documentation, comments).
Acknowledgements
This work builds greatly on ocaml solidity developed by ocamlpro and modified a bit.
AFLabs and Flare foundation for testing and bug reporting.
jO-Osko