Source code for crytic_compile.cryticparser.cryticparser

"""
Module handling the cli arguments
"""
from argparse import ArgumentParser

from crytic_compile.cryticparser import DEFAULTS_FLAG_IN_CONFIG


[docs]def init(parser: ArgumentParser): """ Add crytic-compile arguments to the parser :param parser: :return: """ group_solc = parser.add_argument_group("Compile options") group_solc.add_argument( "--compile-force-framework", help="Force the compile to a given framework " "(truffle, embark, dapp, etherlime, etherscan, waffle)", action="store", default=DEFAULTS_FLAG_IN_CONFIG["compile_force_framework"], ) group_solc.add_argument( "--compile-remove-metadata", help="Remove the metadata from the bytecodes", action="store_true", default=DEFAULTS_FLAG_IN_CONFIG["compile_remove_metadata"], ) group_solc.add_argument( "--compile-custom-build", help="Replace platform specific build command", action="store", default=DEFAULTS_FLAG_IN_CONFIG["compile_custom_build"], ) group_solc.add_argument( "--ignore-compile", help="Do not run compile of any platform", action="store_true", dest="ignore_compile", default=DEFAULTS_FLAG_IN_CONFIG["ignore_compile"], ) _init_solc(parser) _init_truffle(parser) _init_embark(parser) _init_dapp(parser) _init_etherlime(parser) _init_etherscan(parser) _init_waffle(parser) _init_npx(parser)
def _init_solc(parser): group_solc = parser.add_argument_group("Solc options") group_solc.add_argument( "--solc", help="solc path", action="store", default=DEFAULTS_FLAG_IN_CONFIG["solc"] ) group_solc.add_argument( "--solc-remaps", help="Add remapping", action="store", default=DEFAULTS_FLAG_IN_CONFIG["solc_remaps"], ) group_solc.add_argument( "--solc-args", help="Add custom solc arguments. Example: --solc-args" ' "--allow-path /tmp --evm-version byzantium".', action="store", default=DEFAULTS_FLAG_IN_CONFIG["solc_args"], ) group_solc.add_argument( "--solc-disable-warnings", help="Disable solc warnings", action="store_true", default=DEFAULTS_FLAG_IN_CONFIG["solc_disable_warnings"], ) group_solc.add_argument( "--solc-working-dir", help="Change the default working directory", action="store", default=DEFAULTS_FLAG_IN_CONFIG["solc_working_dir"], ) group_solc.add_argument( "--solc-solcs-select", help="Specify different solc version to try (env config). Depends on solc-select ", action="store", default=DEFAULTS_FLAG_IN_CONFIG["solc_solcs_select"], ) group_solc.add_argument( "--solc-solcs-bin", help="Specify different solc version to try (path config)." " Example: --solc-solcs-bin solc-0.4.24,solc-0.5.3", action="store", default=DEFAULTS_FLAG_IN_CONFIG["solc_solcs_bin"], ) group_solc.add_argument( "--solc-standard-json", help="Compile all specified targets in a single compilation using solc standard json", action="store_true", default=DEFAULTS_FLAG_IN_CONFIG["solc_standard_json"], ) def _init_waffle(parser): group_waffle = parser.add_argument_group("Waffle options") group_waffle.add_argument( "--waffle-ignore-compile", help="Do not run waffle compile", action="store_true", dest="waffle_ignore_compile", default=DEFAULTS_FLAG_IN_CONFIG["waffle_ignore_compile"], ) group_waffle.add_argument( "--waffle-config-file", help="Provide a waffle config file", action="store", default=DEFAULTS_FLAG_IN_CONFIG["waffle_config_file"], ) def _init_truffle(parser): group_truffle = parser.add_argument_group("Truffle options") group_truffle.add_argument( "--truffle-ignore-compile", help="Do not run truffle compile", action="store_true", dest="truffle_ignore_compile", default=DEFAULTS_FLAG_IN_CONFIG["truffle_ignore_compile"], ) group_truffle.add_argument( "--truffle-build-directory", help="Use an alternative truffle build directory", action="store", dest="truffle_build_directory", default=DEFAULTS_FLAG_IN_CONFIG["truffle_build_directory"], ) group_truffle.add_argument( "--truffle-version", help="Use a local Truffle version (with npx)", action="store", default=DEFAULTS_FLAG_IN_CONFIG["truffle_version"], ) return group_truffle def _init_embark(parser): group_embark = parser.add_argument_group("Embark options") group_embark.add_argument( "--embark-ignore-compile", help="Do not run embark build", action="store_true", dest="embark_ignore_compile", default=DEFAULTS_FLAG_IN_CONFIG["embark_ignore_compile"], ) group_embark.add_argument( "--embark-overwrite-config", help="Install @trailofbits/embark-contract-export and add it to embark.json", action="store_true", default=DEFAULTS_FLAG_IN_CONFIG["embark_overwrite_config"], ) def _init_brownie(parser): group_embark = parser.add_argument_group("Brownie options") group_embark.add_argument( "--brownie-ignore-compile", help="Do not run brownie compile", action="store_true", dest="brownie_ignore_compile", default=DEFAULTS_FLAG_IN_CONFIG["brownie_ignore_compile"], ) def _init_dapp(parser): group_dapp = parser.add_argument_group("Dapp options") group_dapp.add_argument( "--dapp-ignore-compile", help="Do not run dapp build", action="store_true", dest="dapp_ignore_compile", default=DEFAULTS_FLAG_IN_CONFIG["dapp_ignore_compile"], ) def _init_etherlime(parser): group_etherlime = parser.add_argument_group("Etherlime options") group_etherlime.add_argument( "--etherlime-ignore-compile", help="Do not run etherlime compile", action="store_true", dest="etherlime_ignore_compile", default=DEFAULTS_FLAG_IN_CONFIG["etherlime_ignore_compile"], ) group_etherlime.add_argument( "--etherlime-compile-arguments", help="Add arbitrary arguments to etherlime compile " "(note: [dir] is the the directory provided to crytic-compile)", action="store_true", dest="etherlime_compile_arguments", default=DEFAULTS_FLAG_IN_CONFIG["etherlime_compile_arguments"], ) def _init_etherscan(parser): group_etherscan = parser.add_argument_group("Etherscan options") group_etherscan.add_argument( "--etherscan-only-source-code", help="Only compile if the source code is available.", action="store_true", dest="etherscan_only_source_code", default=DEFAULTS_FLAG_IN_CONFIG["etherscan_only_source_code"], ) group_etherscan.add_argument( "--etherscan-only-bytecode", help="Only looks for bytecode.", action="store_true", dest="etherscan_only_bytecode", default=DEFAULTS_FLAG_IN_CONFIG["etherscan_only_bytecode"], ) group_etherscan.add_argument( "--etherscan-apikey", help="Etherscan API key.", action="store", dest="etherscan_api_key", default=DEFAULTS_FLAG_IN_CONFIG["etherscan_api_key"], ) def _init_npx(parser): group_npx = parser.add_argument_group("NPX options") group_npx.add_argument( "--npx-disable", help="Do not use npx", action="store_true", dest="npx_disable", default=DEFAULTS_FLAG_IN_CONFIG["npx_disable"], )