slither
slither copied to clipboard
Static Analyzer for Solidity and Vyper
### Describe the issue: Custom errors which have contracts/interface types as arguments are not support properly. ### Code example to reproduce the issue: ```solidity interface K { } interface I...
Detects (or silence the detector) when the zero address check is done inside an internal call. This also take into account some data dependency. Unittests for the detector were updated....
### Describe the issue: Slither reports internal library function as unused although it's called from the code using the library. See https://github.com/keep-network/tbtc-v2/pull/373#issuecomment-1169056597 ### Code example to reproduce the issue: Steps...
### Describe the desired feature when I try to execute slither: `slither .`, in command line it says, not found `zsh: command not found: slither`. Can you please add to...
``` $ slither --version 0.8.0 ``` Please consider [the following code](https://github.com/keep-network/keep-core/blob/5bc95364647baabb9b6c7951805b9fb2681dcdfb/solidity/random-beacon/contracts/libraries/DKG.sol#L404-L423): ``` try self.dkgValidator.validate(result, self.seed, self.startBlock) returns (bool isValid, string memory errorMsg) { if (isValid) { revert("unjustified challenge"); } emit...
Traceback (most recent call last): File "/home/ericng/.local/lib/python3.8/site-packages/slither/__main__.py", line 741, in main_impl ) = process_all(filename, args, detector_classes, printer_classes) File "/home/ericng/.local/lib/python3.8/site-packages/slither/__main__.py", line 83, in process_all ) = process_single(compilation, args, detector_classes, printer_classes) File...
### Describe the issue: `public`/`external` fields of a contract are exported as functions, so they are part of a public API, and Slither should not report the warning `not in...
### Describe the desired feature IDK `slither` can use config in `slither.config.json`, but tools like `slither-check-upgradeability` have to add remappings by hand.
``` function subCall(uint a, uint b) public pure returns(uint) { return sub({arg2: b, arg1: a}); } function sub(uint arg1, uint arg2) public pure returns(uint) { return arg1 - arg2; }...
The code for the function being modified is inserted where the _ is placed in the modifier. RequireExample.sol file: ``` pragma solidity ^0.5.11; contract RequireExample { address public owner; constructor()...