A Python package to unfold soldity code with imports into a single file.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file solflatliner-1.0.118.tar.gz
.
File metadata
- Download URL: solflatliner-1.0.118.tar.gz
- Upload date:
- Size: 31.2 kB
- Tags: Source
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fbfd2170a13a1a7ec65a2cfd4f94fe974f7e364053308dc73e32973e44e4fa2 |
|
MD5 | 07b543c0344330c69d7e90904ebd0e63 |
|
BLAKE2b-256 | cb1a5e421d007b0f55f77fc7b60f8b1e337c9f9f046fb9bb3590629bf86cd2f2 |
File details
Details for the file solflatliner-1.0.118-py3-none-any.whl
.
File metadata
- Download URL: solflatliner-1.0.118-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using 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
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd9d3673b89f2c73ce9521752f49eac41b3de64e4dd047c8d8e6f3ad2b305b87 |
|
MD5 | 53f47b37b9b708b95102bc9e5034867b |
|
BLAKE2b-256 | 4d549715b297848417aeabda348a891a9cda3fc551d1401cb3e5c805ddbaeb5b |