forge inspect

Get specialized information about a smart contract

$ forge inspect --help
Usage: forge inspect [OPTIONS] <CONTRACT> <FIELD>

          The identifier of the contract to inspect in the form `(<path>:)?<contractname>`

          The contract artifact field to inspect
          [possible values: abi, bytecode, deployedBytecode, assembly, assemblyOptimized,
          methodIdentifiers, gasEstimates, storageLayout, devdoc, ir, irOptimized, metadata,
          userdoc, ewasm, errors, events]

          Pretty print the selected field, if supported

  -h, --help
          Print help (see a summary with '-h')

Cache options:
          Clear the cache and artifacts folder and recompile

Build options:
          Disable the cache

Linker options:
      --libraries <LIBRARIES>
          Set pre-linked libraries
          [env: DAPP_LIBRARIES=]

Compiler options:
      --ignored-error-codes <ERROR_CODES>
          Ignore solc warnings by error code

          Warnings will trigger a compiler error

          Do not auto-detect the `solc` version

      --use <SOLC_VERSION>
          Specify the solc version, or a path to a local solc, to build with.
          Valid values are in the format `x.y.z`, `solc:x.y.z` or `path/to/solc`.

          Do not access the network.
          Missing solc versions will not be installed.

          Use the Yul intermediate representation compilation pipeline

          Don't print anything on startup

          Includes the AST as JSON in the compiler output

      --evm-version <VERSION>
          The target EVM version

          Activate the Solidity optimizer

      --optimizer-runs <RUNS>
          The number of optimizer runs

      --extra-output <SELECTOR>...
          Extra output to include in the contract's artifact.
          Example keys: evm.assembly, ewasm, ir, irOptimized, metadata
          For a full description, see

      --extra-output-files <SELECTOR>...
          Extra output to write to separate files.
          Valid values: metadata, ir, irOptimized, ewasm, evm.assembly

Project options:
  -o, --out <PATH>
          The path to the contract artifacts folder

      --revert-strings <REVERT>
          Revert string configuration.
          Possible values are "default", "strip" (remove), "debug" (Solidity-generated revert
          strings) and "verboseDebug"

          Generate build info files

      --build-info-path <PATH>
          Output path to directory that build info files will be written to

      --root <PATH>
          The project's root path.
          By default root of the Git repository, if in one, or the current working directory.

  -C, --contracts <PATH>
          The contracts source directory

  -R, --remappings <REMAPPINGS>
          The project's remappings

      --remappings-env <ENV>
          The project's remappings from the environment

      --cache-path <PATH>
          The path to the compiler cache

      --lib-paths <PATH>
          The path to the library folder

          Use the Hardhat-style project layout.
          This is the same as using: `--contracts contracts --lib-paths node_modules`.
          [aliases: hh]

      --config-path <FILE>
          Path to the config file