Solidity v0.6.7 introduces support for EIP-165 via type(InterfaceName).interfaceId.

Language Features:

  • Add support for EIP 165 interface identifiers with type(I).interfaceId.
  • Allow virtual modifiers inside abstract contracts to have empty body.

Compiler Features:

  • Optimizer: Simplify repeated AND and OR operations.
  • Option to specify optimization steps to be performed by Yul optimizer with yul-optimizations in the commandline interface or optimizer.details.yulDetails.optimizerSteps in standard-json.
  • Standard Json Input: Support the prefix file:// in the field urls.

Bugfixes:

  • SMTChecker: Fix internal error when fixed points are used.
  • SMTChecker: Fix internal error when using array slices.
  • Type Checker: Disallow virtual and override for constructors.
  • Type Checker: Fix several internal errors by performing size and recursiveness checks of types before the full type checking.
  • Type Checker: Fix internal error when assigning to empty tuples.
  • Type Checker: Fix internal error when applying unary operators to tuples with empty components.
  • Type Checker: Perform recursiveness check on structs declared at the file level.

Build System:

  • soltest.sh: SOLIDITY_BUILD_DIR is no longer relative to REPO_ROOT to allow for build directories outside of the source tree.

A big thank you to all contributors who helped make this release possible!

Download the new version of Solidity here.