Skip to main content

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)

Source distribution for solflatliner 1.0.118
File Size Uploaded
solflatliner-1.0.118.tar.gz 31.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for solflatliner 1.0.118
File Interpreter ABI Platform
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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page