Solidity Flatliner
Unfolds all local imports in a solidity file to generate a flat solidity file.
Introduction
Manually combining all imports in a solidity file when verifying your contract source on Etherscan is time-consuming and cumbersome. This tool automatically traverses the dependency graph of imports and combines them in the correct order, which is ready to be pasted into the contract verifier.
NOTE: This tool won't work with imports that are aliased (i.e. import "./foo.sol" as bar; )
Features
- support external library folder destination
- support output folder name
- auto remove redundant license place and solidity version code
- auto remove redundant contract / interface / abstract contract / library
- added support safety line
Installation
There are no requirements for this tool.
pip3 install solflatliner
or if you want to get the upgrade
sudo pip3 install solflatliner --upgrade
Create bin file for easy execution
#!/Library/Frameworks/Python.framework/Versions/3.8/bin/python3.8
# -*- coding: utf-8 -*-
import re
import sys
from solflatliner.cmd import cli
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(cli())
Usage
usage: solflatliner [-h] [-o *.sol] *.sol *.*.*
Unfolds all local imports in a solidity file to generate a flat solidity file.
Put the output file into out/ folders.
positional arguments:
*.sol Target filename with imports
*.*.* Solidity compiler version e.g. 0.4.24
optional arguments:
-h, --help Show this help message and exit
-o *.sol, --output *.sol
Output filename (default: flat.sol)
-f, --ofolder The output folder (default: verify)
-lib, --library Selection of library folder from the execution path. (default: lib)
-l, --license The license identifier from https://spdx.org/licenses/ (default: AGPL-3.0)
Example
solu contract-with-imports.sol 0.4.24
It will output flat.sol (default output filename) with solidity version 0.4.24 in verify/ folder.
solflatliner contract-with-imports.sol 0.4.20 --output contract-flat.sol
It will output contract-flat.sol with solidity version 0.4.20 in verify/ folder.
License
MIT License (2022), Jun-You Liu, Heskemo
Metadata
Release files for solflatliner 1.0.118
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| solflatliner-1.0.118.tar.gz | 31.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| solflatliner-1.0.118-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 39.2 kB
Release files / solflatliner-1.0.118.tar.gz
| Download URL | solflatliner-1.0.118.tar.gz |
|---|---|
| Size | 31.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0fbfd2170a13a1a7ec65a2cfd4f94fe974f7e364053308dc73e32973e44e4fa2
|
|
BLAKE2b-256 checksum How to use checksums |
cb1a5e421d007b0f55f77fc7b60f8b1e337c9f9f046fb9bb3590629bf86cd2f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.28.1 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5
|
Release files / solflatliner-1.0.118-py3-none-any.whl
| Download URL | solflatliner-1.0.118-py3-none-any.whl |
|---|---|
| Size | 8.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dd9d3673b89f2c73ce9521752f49eac41b3de64e4dd047c8d8e6f3ad2b305b87
|
|
BLAKE2b-256 checksum How to use checksums |
4d549715b297848417aeabda348a891a9cda3fc551d1401cb3e5c805ddbaeb5b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.28.1 setuptools/50.3.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5
|