forge config

Display the current config

$ forge config --help
Usage: forge config [OPTIONS]

          Print only a basic set of the currently set config values

          Print currently set config values as JSON

          Attempt to fix any configuration warnings

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

Build options:
          Print compiled contract names

          Print compiled contract sizes

      --skip <SKIP>...
          Skip building files whose names contain the given filter.
          `test` and `script` are aliases for `.t.sol` and `.s.sol`.

          Disable the cache

Cache options:
          Clear the cache and artifacts folder and recompile

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

      --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

Watch options:
  -w, --watch [<PATH>...]
          Watch the given files or directories for changes.
          If no paths are provided, the source and test directories of the project are watched.

          Do not restart the command while it's still running

          Explicitly re-run all tests when a change is made.
          By default, only the tests of the last modified test file are executed.

      --watch-delay <DELAY>
          File update debounce delay.
          During the delay, incoming change events are accumulated and only once the delay has passed, is an action taken. Note that this does not mean a command will be started: if --no-restart is given and a command is already running,
          the outcome of the action will be to do nothing.
          Defaults to 50ms. Parses as decimal seconds by default, but using an integer with the `ms` suffix may be more convenient.
          When using --poll mode, you'll want a larger duration, or risk overloading disk I/O.

          Output the compilation errors in the json format. This is useful when you want to use the output in other tools

EVM options:
  -f, --fork-url <URL>
          Fetch state over a remote endpoint instead of starting from an empty state.
          If you want to fetch state from a specific block number, see --fork-block-number.
          [aliases: rpc-url]

      --fork-block-number <BLOCK>
          Fetch state from a specific block number over a remote endpoint.
          See --fork-url.

      --fork-retries <RETRIES>
          Number of retries.
          See --fork-url.

      --fork-retry-backoff <BACKOFF>
          Initial retry backoff on encountering errors.
          See --fork-url.

          Explicitly disables the use of RPC caching.
          All storage slots are read entirely from the endpoint.
          This flag overrides the project's configuration file.
          See --fork-url.

      --initial-balance <BALANCE>
          The initial balance of deployed test contracts

      --sender <ADDRESS>
          The address which will be executing tests

          Enable the FFI cheatcode

  -v, --verbosity...
          Verbosity of the EVM.
          Pass multiple times to increase the verbosity (e.g. -v, -vv, -vvv).
          Verbosity levels:
          - 2: Print logs for all tests
          - 3: Print execution traces for failing tests
          - 4: Print execution traces for all tests, and setup traces for failing tests
          - 5: Print execution and setup traces for all tests

Fork config:
      --compute-units-per-second <CUPS>
          Sets the number of assumed available compute units per second for this provider
          default value: 330
          See also --fork-url and

          Disables rate limiting for this node's provider.
          See also --fork-url and
          [aliases: no-rate-limit]

Executor environment config:
      --gas-limit <GAS_LIMIT>
          The block gas limit

      --code-size-limit <CODE_SIZE>
          EIP-170: Contract code size limit in bytes. Useful to increase this because of tests. By default, it is 0x6000 (~25kb)

      --chain <CHAIN>
          The chain name or EIP-155 chain ID
          [aliases: chain-id]

      --gas-price <GAS_PRICE>
          The gas price

      --block-base-fee-per-gas <FEE>
          The base fee in a block
          [aliases: base-fee]

      --tx-origin <ADDRESS>
          The transaction origin

      --block-coinbase <ADDRESS>
          The coinbase of the block

      --block-timestamp <TIMESTAMP>
          The timestamp of the block

      --block-number <BLOCK>
          The block number

      --block-difficulty <DIFFICULTY>
          The block difficulty

      --block-prevrandao <PREVRANDAO>
          The block prevrandao value. NOTE: Before merge this field was mix_hash

      --block-gas-limit <GAS_LIMIT>
          The block gas limit

      --memory-limit <MEMORY_LIMIT>
          The memory limit per EVM execution in bytes. If this limit is exceeded, a `MemoryLimitOOG` result is thrown.
          The default is 128MiB.