Skip to content

0.11.6

Latest

Choose a tag to compare

@smonicas smonicas released this 28 Jul 21:32
Immutable release. Only release title and notes can be modified.
050cc0a

This release supports Hardhat v3 and Sourcify, it contains performance improvements and a reduction of false positives for some detectors.

What's Changed

  • feat: add performance benchmark script by @dguido in #2933
  • perf: optimize transitive closure with worklist algorithm (17-27% faster) by @dguido in #2932
  • perf: use set for O(1) membership in _explore_functions by @dguido in #2924
  • perf: cache derived_contracts lookup in compilation unit by @dguido in #2925
  • feat: add --timing flag for phase-level performance breakdown by @dguido in #2928
  • perf: cache Literal.str conversion for numeric types by @dguido in #2934
  • perf: optimize Type.eq methods with direct attribute access by @dguido in #2935
  • perf: cache filename lookups in _convert_source_mapping by @dguido in #2936
  • Add --exclude-location flag to hide file locations in detector messages by @ep0chzer0 in #2872
  • Fix external call classification for Yul/Vyper by @edlsh in #2938
  • feat: add msg-value-in-nonpayable detector by @ep0chzer0 in #2923
  • fix: add ArrayType and complex type support in _find_struct_var_slot by @ep0chzer0 in #2922
  • feat: add --warn-unused-ignores flag for detecting unnecessary slither-disable comments by @ep0chzer0 in #2921
  • feat: add C3 linearization printer for inheritance analysis by @ep0chzer0 in #2917
  • fix: handle unhashable types in using_for lookup by @ep0chzer0 in #2916
  • feat: add support for constant and immutable variables in slither-read-storage by @ep0chzer0 in #2920
  • fix: output to stdout instead of stderr by @ep0chzer0 in #2912
  • fix: only exclude unoverridden virtual functions in inheritance-graph by @ep0chzer0 in #2915
  • fix: correct NewContract expression type annotation by @ep0chzer0 in #2914
  • Add enum ranges to echidna printer output by @ep0chzer0 in #2908
  • Add detector's name for the upgradeability tool by @smonicas in #2942
  • Fix dead-code detector incorrectly flagging library functions by @ep0chzer0 in #2905
  • chore: add Serena MCP server configuration by @dguido in #2948
  • chore: optimize Serena MCP configuration by @dguido in #2949
  • Fix dead-code detector false positive for virtual functions by @ep0chzer0 in #2951
  • Fix unused-return false positive when return values used in return statement by @ep0chzer0 in #2950
  • fix: handle TypeAlias in read_storage for custom value types by @ep0chzer0 in #2911
  • feat: add reference URL to JSON output by @ep0chzer0 in #2910
  • Fix call-graph printer to distinguish overloaded functions by @ep0chzer0 in #2909
  • fix: raise exception for malformed disable comments by @dguido in #2897
  • Fix call-graph printer to support top-level functions by @ep0chzer0 in #2904
  • Fix super call resolution by @smonicas in #2958
  • fix: len should gte 2 by @cuiweixie in #2969
  • fix: uvx use docs by @PatrickAlphaC in #2981
  • Update crytic-compile version by @smonicas in #3043
  • Dockerfile: always use uv, do cleaner layers, upgrade to noble by @elopez in #2966
  • feat(parsing): support 0.8.35 erc7201 comptime builtin by @smonicas in #3015
  • Fix divide-before-multiply false positive when the divided variable is reassigned by @MarkLee131 in #3040
  • Fix naming-convention false positive on Yul-local function parameters by @MarkLee131 in #3038
  • Fix incorrect-modifier false positive on revert("msg") and custom-error reverts by @MarkLee131 in #3035
  • Fix release workflow for immutable releases by @elopez in #3058
  • chore: fix some minor issues in comments by @cuoguojida in #3026
  • fix: update register_printer to handle multiple compilation units by @sulphur-swarm in #3025
  • Fix typos in detector documentation by @cats2101 in #3017
  • fix: accept onlyDelegateCall as protected modifier in unprotected-upgrade by @cats2101 in #3014
  • feat: accept slither.conf.json as alternative default config by @cats2101 in #3011
  • docs: fix typo in detector documentation by @rajatbeladiya in #2978
  • Update crytic-compile by @smonicas in #3060
  • Update version by @smonicas in #3062

New Contributors

Full Changelog: 0.11.5...0.11.6

What's Changed

  • feat: add performance benchmark script by @dguido in #2933
  • perf: optimize transitive closure with worklist algorithm (17-27% faster) by @dguido in #2932
  • perf: use set for O(1) membership in _explore_functions by @dguido in #2924
  • perf: cache derived_contracts lookup in compilation unit by @dguido in #2925
  • feat: add --timing flag for phase-level performance breakdown by @dguido in #2928
  • perf: cache Literal.str conversion for numeric types by @dguido in #2934
  • perf: optimize Type.eq methods with direct attribute access by @dguido in #2935
  • perf: cache filename lookups in _convert_source_mapping by @dguido in #2936
  • test: add comprehensive copy_ir and SSA snapshot tests by @dguido in #2937
  • Add --exclude-location flag to hide file locations in detector messages by @ep0chzer0 in #2872
  • Fix external call classification for Yul/Vyper by @edlsh in #2938
  • feat: add msg-value-in-nonpayable detector by @ep0chzer0 in #2923
  • docs: clarify traversal pattern guidance in CLAUDE.md by @dguido in #2940
  • fix: add ArrayType and complex type support in _find_struct_var_slot by @ep0chzer0 in #2922
  • feat: add --warn-unused-ignores flag for detecting unnecessary slither-disable comments by @ep0chzer0 in #2921
  • feat: add C3 linearization printer for inheritance analysis by @ep0chzer0 in #2917
  • fix: handle unhashable types in using_for lookup by @ep0chzer0 in #2916
  • feat: add support for constant and immutable variables in slither-read-storage by @ep0chzer0 in #2920
  • fix: output to stdout instead of stderr by @ep0chzer0 in #2912
  • fix: only exclude unoverridden virtual functions in inheritance-graph by @ep0chzer0 in #2915
  • fix: correct NewContract expression type annotation by @ep0chzer0 in #2914
  • Add enum ranges to echidna printer output by @ep0chzer0 in #2908
  • Add detector's name for the upgradeability tool by @smonicas in #2942
  • chore(deps-dev): bump yamllint from 1.37.1 to 1.38.0 in the all group by @dependabot[bot] in #2945
  • Fix dead-code detector incorrectly flagging library functions by @ep0chzer0 in #2905
  • chore: add Serena MCP server configuration by @dguido in #2948
  • chore: optimize Serena MCP configuration by @dguido in #2949
  • Fix dead-code detector false positive for virtual functions by @ep0chzer0 in #2951
  • Fix unused-return false positive when return values used in return statement by @ep0chzer0 in #2950
  • fix: handle TypeAlias in read_storage for custom value types by @ep0chzer0 in #2911
  • feat: add reference URL to JSON output by @ep0chzer0 in #2910
  • Fix call-graph printer to distinguish overloaded functions by @ep0chzer0 in #2909
  • fix: raise exception for malformed disable comments by @dguido in #2897
  • Fix call-graph printer to support top-level functions by @ep0chzer0 in #2904
  • Fix super call resolution by @smonicas in #2958
  • chore(deps): bump the all group across 1 directory with 5 updates by @dependabot[bot] in #2963
  • fix: len should gte 2 by @cuiweixie in #2969
  • fix: uvx use docs by @PatrickAlphaC in #2981
  • Update crytic-compile version by @smonicas in #3043
  • Dockerfile: always use uv, do cleaner layers, upgrade to noble by @elopez in #2966
  • chore(deps): bump web3 from 7.14.0 to 7.15.0 by @dependabot[bot] in #3001
  • feat(parsing): support 0.8.35 erc7201 comptime builtin by @smonicas in #3015
  • Update lockfile by @smonicas in #3051
  • chore(deps): bump the all group across 1 directory with 20 updates by @dependabot[bot] in #3053
  • Fix divide-before-multiply false positive when the divided variable is reassigned by @MarkLee131 in #3040
  • Fix naming-convention false positive on Yul-local function parameters by @MarkLee131 in #3038
  • Fix incorrect-modifier false positive on revert("msg") and custom-error reverts by @MarkLee131 in #3035
  • Fix release workflow for immutable releases by @elopez in #3058
  • chore: fix some minor issues in comments by @cuoguojida in #3026
  • fix: update register_printer to handle multiple compilation units by @sulphur-swarm in #3025
  • Fix typos in detector documentation by @cats2101 in #3017
  • chore(deps): bump the all group across 1 directory with 6 updates by @dependabot[bot] in #3059
  • fix: accept onlyDelegateCall as protected modifier in unprotected-upgrade by @cats2101 in #3014
  • feat: accept slither.conf.json as alternative default config by @cats2101 in #3011
  • docs: fix typo in detector documentation by @rajatbeladiya in #2978
  • Update crytic-compile by @smonicas in #3060
  • Update version by @smonicas in #3062

New Contributors

Full Changelog: 0.11.5...0.11.6