Skip to content
Artur Cygan edited this page Mar 4, 2024 · 17 revisions

Parameters in the configuration file

  • testMode

    • Type: String
    • Default: "property"
    • Description: The test mode to run. It should be one of the following items:
      • "property": Run user-defined property tests.
      • "assertion": Detect assertion failures (previously checkAsserts).
      • "optimization": Find the maximum value for a function.
      • "overflow": Detect integer overflows (only available in Solidity 0.8.0 or greater).
      • "exploration": Run contract code without executing any tests.
  • testLimit

    • Type: Int
    • Default: 50000
    • Description: Number of sequences of transactions to generate during testing.
  • seqLen

    • Type: Int
    • Default: 100
    • Description: Number of transactions to generate during testing.
  • shrinkLimit

    • Type: Int
    • Default: 5000
    • Description: Number of attempts to shrink a failing sequence of transactions.
  • contractAddr

    • Type: Address
    • Default: "0x00a329c0648769a73afac7f9381e08fb43dbea72"
    • Description: Address to deploy the contract to test.
  • coverage

    • Type: Bool
    • Default: true
    • Description: Enable the use of coverage-guided fuzzing and corpus collection.
  • corpusDir

    • Type: String
    • Default: null
    • Description: Directory to save the corpus collected (requires coverage enabled).
  • deployer

    • Type: Address
    • Default: "0x30000"
    • Description: Address of the deployer of the contract to test.
  • deployContracts

    • Type: [⁠[⁠Address, String⁠]⁠]
    • Default: []
    • Description: Addresses and contract names to deploy using the available source code. The deployer address is the same as the contract to test. Echidna will error if the deployment fails.
  • deployBytecodes

    • Type: [⁠[⁠Address, String⁠]⁠]
    • Default: []
    • Description: Addresses and bytecodes to deploy. The deployer address is the same as the contract to test. Echidna will error if the deployment fails.
  • sender

    • Type: [Address]
    • Default: ["0x10000", "0x20000", "0x30000"]
    • Description: List of addresses to (randomly) use for the transactions sent during testing.
  • psender

    • Type: Address
    • Default: "0x10000"
    • Description: Address of the sender of the property to test.
  • prefix

    • Type: String
    • Default: "echidna_"
    • Description: Prefix of the function names used as properties in the contract to test.
  • propMaxGas

    • Type: Int
    • Default: 12500000 (current max gas per block)
    • Description: Maximum amount of gas to consume when running function properties.
  • testMaxGas

    • Type: Int
    • Default: 12500000 (current max gas per block)
    • Description: Maximum amount of gas to consume when running random transactions.
  • maxGasprice

    • Type: Int
    • Default: 0
    • Description: Maximum amount of gas price to randomly use in transactions. Do not change it unless you absolutely need it.
  • maxTimeDelay

    • Type: Int
    • Default: 604800 (one week)
    • Description: Maximum amount of seconds of delay between transactions.
  • maxBlockDelay

    • Type: Int
    • Default: 60480
    • Description: Maximum amount of block numbers between transactions.
  • solcArgs

    • Type: String
    • Default: ""
    • Description: Additional arguments to use in solc for compiling the contract to test.
  • cryticArgs

    • Type: [String]
    • Default: []
    • Description: Additional arguments to use in crytic-compile for compiling the contract to test.
  • quiet

    • Type: Bool
    • Default: False
    • Description: Hide solc stderr output and additional information during the testing.
  • format

    • Type: String
    • Default: null
    • Description: Select a textual output format. By default, interactive TUI is run or text if a terminal is absent.
      • "text": simple textual interface.
      • "json": JSON output.
      • "none": no output.
  • balanceContract

    • Type: Int
    • Default: 0
    • Description: Initial Ether balance of contractAddr.
  • balanceAddr

    • Type: Int
    • Default: 0xffffffff
    • Description: Initial Ether balance of deployer and each of the sender accounts.
  • maxValue

    • Type: Int
    • Default: 100000000000000000000 (100 ETH)
    • Description: Max amount of value in each randomly generated transaction.
  • testDestruction

    • Type: Bool
    • Default: False
    • Description: Add a special test that fails if a contract is self-destructed.
  • stopOnFail

    • Type: Bool
    • Default: False
    • Description: Stops the fuzzing campaign when the first test fails.
  • allContracts

    • Type: Bool
    • Default: False
    • Description: Makes Echidna fuzz the provided test contracts and any other deployed contract whose ABI is known at runtime.
  • allowFFI

    • Type: Bool
    • Default: False
    • Description: Allows the use of the HEVM ffi cheatcode.