v0.6.13
0.6.13 - 2020-09-08
This releases improves support for Solidity 0.6, adds partial support for YUL, and fixes many bugs. Internally, we improved the parsing architecture, easing the addition of a new parser and added type annotations. Additionally, slither now runs GitHub super-linter, and the regression tests were improved (see the new CONTRIBUTING.md guidelines).
We also want to thanks our contributors for reporting issues, and helping to improve Slither:
If you want access to additional detectors, try Crytic. It now has 96 detectors, including 2 YUL specific detectors.
Added
- Add partial, experimental YUL support (#502, #575, #617). YUL AST is parsed and converted into slithIR. Raw memory access are not supported. Solidity 0.6 is required to enable YUL support.
- Improve 0.6 support:
- Add support for
type(I).interfaceId
(#497) - List external publications (#512)
- Github super linter, and lgtm (#614, #620, #626)
- Added new tool:
slither-mutator
. PoC of fault injection based on Using Fault Injection to Assess Blockchain Systems in Presence of Faulty Smart Contracts
Internal
- Add type annotations (#514)
- Add storage layout information (#507, #540)
- Add
--disallow-partial
flag (#560). This hidden flag will prevent Slither from catching exceptions, and simplify debugging - Add support for function pointers in the RETURN operator (#601)
Changed
- Copy editing on detectors (#572)
- Use crytic-compile@0.1.9
- Improve human-summary printer (#477, #478)
- Improve dupplicate name report (#489)
slither-flat
: Improve utf8 support and mapping/array lookup (#494)- Filter contract to contract_declarer in call graph printer (#491)
- Several improvements in
slither-flat
, including new strategies, json/zip export (#496). Read the new documentation. - Add check on public state variables in
slither-erc
(#528) suicidal
detector: add detection on external functions (#527)- Add padding to function id printer (#546)
- Update the recommended Solidity version in the
solc-version
detector (#577). This might result in disabling triagedsolc-version
results with Slither < 0.6.13
Internal
- Change the parsing architecture: parser objects are separate objects and do not inherit from the
core
. This will ease the creation of new parsers (#514) - Improve support for tuple (#536, #539, #541, #548, #563, #564, #576)
- Improve
abi.decode
support (#475, #548, #551, #567, #598) - Temporary array slice support (#550)
- Allow converting library to address (#561)
- Allow total ordering on
Constant
(#565) - Improve fixpoint on
are_variables_written
(#480) - Improve support for
type()
(#569) - Increase the default python stack depth limit (#599)
- Refactor regression tests (#610)
Fixed
- Fix incorrect sons information on loop (#524)
- Fix numpy error on
slither-simil
(#484) - Fix infinite loop on try statements (#535)
- Fix incorrect parsing in case of variables name reused (#538)
- Linting issue (#555)
- Issues on
this.
usage (#600, #623) - Out of memory on large exponent (#608)
- All pylint issues (#616)
- Incorrect support of
using for
on functions pointers (#624)