diff --git a/README.md b/README.md index 2c0fa9928..bcb3a330a 100644 --- a/README.md +++ b/README.md @@ -65,16 +65,16 @@ Num | Detector | What it Detects | Impact | Confidence 24 | `reentrancy-benign` | [Benign reentrancy vulnerabilities](https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-2) | Low | Medium 25 | `timestamp` | [Dangerous usage of `block.timestamp`](https://github.com/crytic/slither/wiki/Detector-Documentation#block-timestamp) | Low | Medium 26 | `assembly` | [Assembly usage](https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage) | Informational | High -27 | `constable-states` | [State variables that could be declared constant](https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant) | Informational | High -28 | `deprecated-standards` | [Deprecated Solidity Standards](https://github.com/crytic/slither/wiki/Detector-Documentation#deprecated-standards) | Informational | High -29 | `erc20-indexed` | [Un-indexed ERC20 event parameters](https://github.com/crytic/slither/wiki/Detector-Documentation#unindexed-erc20-event-parameters) | Informational | High -30 | `external-function` | [Public function that could be declared as external](https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-as-external) | Informational | High -31 | `low-level-calls` | [Low level calls](https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls) | Informational | High -32 | `naming-convention` | [Conformance to Solidity naming conventions](https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions) | Informational | High -33 | `pragma` | [If different pragma directives are used](https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used) | Informational | High -34 | `solc-version` | [Incorrect Solidity version (< 0.4.24 or complex pragma)](https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-version-of-solidity) | Informational | High -35 | `unused-state` | [Unused state variables](https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variables) | Informational | High -36 | `too-many-digits` | [Conformance to numeric notation best practices](https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits) | Informational | Medium +27 | `deprecated-standards` | [Deprecated Solidity Standards](https://github.com/crytic/slither/wiki/Detector-Documentation#deprecated-standards) | Informational | High +28 | `erc20-indexed` | [Un-indexed ERC20 event parameters](https://github.com/crytic/slither/wiki/Detector-Documentation#unindexed-erc20-event-parameters) | Informational | High +29 | `low-level-calls` | [Low level calls](https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls) | Informational | High +30 | `naming-convention` | [Conformance to Solidity naming conventions](https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions) | Informational | High +31 | `pragma` | [If different pragma directives are used](https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used) | Informational | High +32 | `solc-version` | [Incorrect Solidity version (< 0.4.24 or complex pragma)](https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-version-of-solidity) | Informational | High +33 | `unused-state` | [Unused state variables](https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variables) | Informational | High +34 | `too-many-digits` | [Conformance to numeric notation best practices](https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits) | Informational | Medium +35 | `constable-states` | [State variables that could be declared constant](https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant) | Optimization | High +36 | `external-function` | [Public function that could be declared as external](https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-as-external) | Optimization | High [Contact us](https://www.trailofbits.com/contact/) to get access to additional detectors. diff --git a/scripts/tests_generate_expected_json_4.sh b/scripts/tests_generate_expected_json_4.sh index 74050acd1..4e1def80c 100755 --- a/scripts/tests_generate_expected_json_4.sh +++ b/scripts/tests_generate_expected_json_4.sh @@ -21,38 +21,38 @@ generate_expected_json(){ } -generate_expected_json tests/deprecated_calls.sol "deprecated-standards" -generate_expected_json tests/erc20_indexed.sol "erc20-indexed" -generate_expected_json tests/incorrect_erc20_interface.sol "erc20-interface" -generate_expected_json tests/incorrect_erc721_interface.sol "erc721-interface" -generate_expected_json tests/uninitialized.sol "uninitialized-state" -generate_expected_json tests/backdoor.sol "backdoor" -generate_expected_json tests/backdoor.sol "suicidal" -generate_expected_json tests/pragma.0.4.24.sol "pragma" -generate_expected_json tests/old_solc.sol.json "solc-version" -generate_expected_json tests/reentrancy.sol "reentrancy-eth" -generate_expected_json tests/uninitialized_storage_pointer.sol "uninitialized-storage" -generate_expected_json tests/tx_origin.sol "tx-origin" -generate_expected_json tests/unused_state.sol "unused-state" -generate_expected_json tests/locked_ether.sol "locked-ether" -generate_expected_json tests/arbitrary_send.sol "arbitrary-send" -generate_expected_json tests/inline_assembly_contract.sol "assembly" -generate_expected_json tests/inline_assembly_library.sol "assembly" -generate_expected_json tests/low_level_calls.sol "low-level-calls" -generate_expected_json tests/const_state_variables.sol "constable-states" -generate_expected_json tests/external_function.sol "external-function" -generate_expected_json tests/external_function_2.sol "external-function" -generate_expected_json tests/naming_convention.sol "naming-convention" -generate_expected_json tests/uninitialized_local_variable.sol "uninitialized-local" -generate_expected_json tests/controlled_delegatecall.sol "controlled-delegatecall" -generate_expected_json tests/constant.sol "constant-function" -generate_expected_json tests/unused_return.sol "unused-return" -generate_expected_json tests/shadowing_state_variable.sol "shadowing-state" -generate_expected_json tests/shadowing_abstract.sol "shadowing-abstract" -generate_expected_json tests/timestamp.sol "timestamp" -generate_expected_json tests/multiple_calls_in_loop.sol "calls-loop" -generate_expected_json tests/shadowing_builtin_symbols.sol "shadowing-builtin" -generate_expected_json tests/shadowing_local_variable.sol "shadowing-local" -generate_expected_json tests/solc_version_incorrect.sol "solc-version" -generate_expected_json tests/right_to_left_override.sol "rtlo" -generate_expected_json tests/unchecked_lowlevel.sol "unchecked-lowlevel" +#generate_expected_json tests/deprecated_calls.sol "deprecated-standards" +#generate_expected_json tests/erc20_indexed.sol "erc20-indexed" +#generate_expected_json tests/incorrect_erc20_interface.sol "erc20-interface" +#generate_expected_json tests/incorrect_erc721_interface.sol "erc721-interface" +#generate_expected_json tests/uninitialized.sol "uninitialized-state" +#generate_expected_json tests/backdoor.sol "backdoor" +#generate_expected_json tests/backdoor.sol "suicidal" +#generate_expected_json tests/pragma.0.4.24.sol "pragma" +#generate_expected_json tests/old_solc.sol.json "solc-version" +#generate_expected_json tests/reentrancy.sol "reentrancy-eth" +#generate_expected_json tests/uninitialized_storage_pointer.sol "uninitialized-storage" +#generate_expected_json tests/tx_origin.sol "tx-origin" +#generate_expected_json tests/unused_state.sol "unused-state" +#generate_expected_json tests/locked_ether.sol "locked-ether" +#generate_expected_json tests/arbitrary_send.sol "arbitrary-send" +#generate_expected_json tests/inline_assembly_contract.sol "assembly" +#generate_expected_json tests/inline_assembly_library.sol "assembly" +#generate_expected_json tests/low_level_calls.sol "low-level-calls" +#generate_expected_json tests/const_state_variables.sol "constable-states" +#generate_expected_json tests/external_function.sol "external-function" +#generate_expected_json tests/external_function_2.sol "external-function" +#generate_expected_json tests/naming_convention.sol "naming-convention" +#generate_expected_json tests/uninitialized_local_variable.sol "uninitialized-local" +#generate_expected_json tests/controlled_delegatecall.sol "controlled-delegatecall" +#generate_expected_json tests/constant.sol "constant-function" +#generate_expected_json tests/unused_return.sol "unused-return" +#generate_expected_json tests/shadowing_state_variable.sol "shadowing-state" +#generate_expected_json tests/shadowing_abstract.sol "shadowing-abstract" +#generate_expected_json tests/timestamp.sol "timestamp" +#generate_expected_json tests/multiple_calls_in_loop.sol "calls-loop" +#generate_expected_json tests/shadowing_builtin_symbols.sol "shadowing-builtin" +#generate_expected_json tests/shadowing_local_variable.sol "shadowing-local" +#generate_expected_json tests/solc_version_incorrect.sol "solc-version" +#generate_expected_json tests/right_to_left_override.sol "rtlo" +#generate_expected_json tests/unchecked_lowlevel.sol "unchecked-lowlevel" diff --git a/scripts/travis_test_etherscan.sh b/scripts/travis_test_etherscan.sh index 43c8a1e4a..c96eca12e 100755 --- a/scripts/travis_test_etherscan.sh +++ b/scripts/travis_test_etherscan.sh @@ -10,7 +10,7 @@ chmod +x solc-0.4.25 slither 0x7F37f78cBD74481E593F9C737776F7113d76B315 --solc "./solc-0.4.25" -if [ $? -ne 6 ] +if [ $? -ne 5 ] then echo "Etherscan test failed" exit -1 diff --git a/slither/__main__.py b/slither/__main__.py index 5a0563fa3..a1b4ce4ad 100644 --- a/slither/__main__.py +++ b/slither/__main__.py @@ -88,7 +88,8 @@ def process_files(filenames, args, detector_classes, printer_classes): disable_solc_warnings=args.disable_solc_warnings, solc_arguments=args.solc_args, filter_paths=parse_filter_paths(args), - triage_mode=args.triage_mode) + triage_mode=args.triage_mode, + exclude_dependencies=args.exclude_dependencies) return _process(slither, detector_classes, printer_classes) @@ -258,6 +259,7 @@ defaults_flag_in_config = { 'detectors_to_run': 'all', 'printers_to_run': None, 'detectors_to_exclude': None, + 'exclude_dependencies': False, 'exclude_informational': False, 'exclude_low': False, 'exclude_medium': False, @@ -330,6 +332,11 @@ def parse_args(detector_classes, printer_classes): dest='detectors_to_exclude', default=defaults_flag_in_config['detectors_to_exclude']) + group_detector.add_argument('--exclude-dependencies', + help='Exclude results that are only related to dependencies', + action='store_true', + default=defaults_flag_in_config['exclude_dependencies']) + group_detector.add_argument('--exclude-informational', help='Exclude informational impact analyses', action='store_true', diff --git a/slither/core/slither_core.py b/slither/core/slither_core.py index a72fa3482..94bd7eb35 100644 --- a/slither/core/slither_core.py +++ b/slither/core/slither_core.py @@ -181,10 +181,14 @@ class Slither(Context): A result is invalid if: - All its source paths belong to the source path filtered - Or a similar result was reported and saved during a previous run + - The --exclude-dependencies flag is set and results are only related to dependencies ''' source_mapping_elements = [elem['source_mapping']['filename_absolute'] for elem in r['elements'] if 'source_mapping' in elem] if r['elements'] and all((any(path in src_mapping for path in self._paths_to_filter) for src_mapping in source_mapping_elements)): return False + if r['elements'] and self._exclude_dependencies: + return not all(element['source_mapping']['is_dependency'] for element in r['elements']) + return not r['description'] in [pr['description'] for pr in self._previous_results] def load_previous_results(self): diff --git a/slither/core/source_mapping/source_mapping.py b/slither/core/source_mapping/source_mapping.py index 422287f41..9217b12fc 100644 --- a/slither/core/source_mapping/source_mapping.py +++ b/slither/core/source_mapping/source_mapping.py @@ -77,6 +77,8 @@ class SourceMapping(Context): filename_relative = None filename_short = None + is_dependency = False + lines = [] # If possible, convert the filename to its absolute/relative version @@ -86,6 +88,8 @@ class SourceMapping(Context): filename_relative = filenames.relative filename_short = filenames.short + is_dependency = slither.crytic_compile.is_dependency(filename_absolute) + if filename_absolute in slither.source_code: filename = filename_absolute elif filename_relative in slither.source_code: @@ -105,13 +109,13 @@ class SourceMapping(Context): else: (lines, starting_column, ending_column) = ([], None, None) - return {'start':s, 'length':l, 'filename_used': filename_used, 'filename_relative': filename_relative, 'filename_absolute': filename_absolute, 'filename_short': filename_short, + 'is_dependency': is_dependency, 'lines' : lines, 'starting_column': starting_column, 'ending_column': ending_column diff --git a/slither/detectors/abstract_detector.py b/slither/detectors/abstract_detector.py index 39651c12a..8a9f6fecf 100644 --- a/slither/detectors/abstract_detector.py +++ b/slither/detectors/abstract_detector.py @@ -2,9 +2,10 @@ import abc import re from slither.utils.colors import green, yellow, red - +from slither.core.source_mapping.source_mapping import SourceMapping from collections import OrderedDict + class IncorrectDetectorInitialization(Exception): pass @@ -14,22 +15,26 @@ class DetectorClassification: MEDIUM = 1 LOW = 2 INFORMATIONAL = 3 + OPTIMIZATION = 4 classification_colors = { DetectorClassification.INFORMATIONAL: green, + DetectorClassification.OPTIMIZATION: green, DetectorClassification.LOW: green, DetectorClassification.MEDIUM: yellow, - DetectorClassification.HIGH: red, + DetectorClassification.HIGH: red } classification_txt = { DetectorClassification.INFORMATIONAL: 'Informational', + DetectorClassification.OPTIMIZATION: 'Optimization', DetectorClassification.LOW: 'Low', DetectorClassification.MEDIUM: 'Medium', DetectorClassification.HIGH: 'High', } + class AbstractDetector(metaclass=abc.ABCMeta): ARGUMENT = '' # run the detector with slither.py --ARGUMENT HELP = '' # help information @@ -43,7 +48,6 @@ class AbstractDetector(metaclass=abc.ABCMeta): WIKI_EXPLOIT_SCENARIO = '' WIKI_RECOMMENDATION = '' - def __init__(self, slither, logger): self.slither = slither self.contracts = slither.contracts @@ -65,7 +69,8 @@ class AbstractDetector(metaclass=abc.ABCMeta): if not self.WIKI_DESCRIPTION: raise IncorrectDetectorInitialization('WIKI_DESCRIPTION is not initialized {}'.format(self.__class__.__name__)) - if not self.WIKI_EXPLOIT_SCENARIO and self.IMPACT != DetectorClassification.INFORMATIONAL: + if not self.WIKI_EXPLOIT_SCENARIO and self.IMPACT not in [DetectorClassification.INFORMATIONAL, + DetectorClassification.OPTIMIZATION]: raise IncorrectDetectorInitialization('WIKI_EXPLOIT_SCENARIO is not initialized {}'.format(self.__class__.__name__)) if not self.WIKI_RECOMMENDATION: @@ -77,16 +82,17 @@ class AbstractDetector(metaclass=abc.ABCMeta): if self.IMPACT not in [DetectorClassification.LOW, DetectorClassification.MEDIUM, DetectorClassification.HIGH, - DetectorClassification.INFORMATIONAL]: + DetectorClassification.INFORMATIONAL, + DetectorClassification.OPTIMIZATION]: raise IncorrectDetectorInitialization('IMPACT is not initialized {}'.format(self.__class__.__name__)) if self.CONFIDENCE not in [DetectorClassification.LOW, DetectorClassification.MEDIUM, DetectorClassification.HIGH, - DetectorClassification.INFORMATIONAL]: + DetectorClassification.INFORMATIONAL, + DetectorClassification.OPTIMIZATION]: raise IncorrectDetectorInitialization('CONFIDENCE is not initialized {}'.format(self.__class__.__name__)) - def _log(self, info): self.logger.info(self.color(info)) @@ -129,7 +135,6 @@ class AbstractDetector(metaclass=abc.ABCMeta): self.logger.error(yellow('Malformed input. Example of valid input: 0,1,2,3')) return results - @property def color(self): return classification_colors[self.IMPACT] @@ -156,139 +161,152 @@ class AbstractDetector(metaclass=abc.ABCMeta): element['additional_fields'] = additional_fields return element - @staticmethod - def _create_parent_element(element): + def _create_parent_element(self, element): from slither.core.children.child_contract import ChildContract from slither.core.children.child_function import ChildFunction from slither.core.children.child_inheritance import ChildInheritance if isinstance(element, ChildInheritance): if element.contract_declarer: contract = {'elements': []} - AbstractDetector.add_contract_to_json(element.contract_declarer, contract) + self.add_contract_to_json(element.contract_declarer, contract) return contract['elements'][0] elif isinstance(element, ChildContract): if element.contract: contract = {'elements': []} - AbstractDetector.add_contract_to_json(element.contract, contract) + self.add_contract_to_json(element.contract, contract) return contract['elements'][0] elif isinstance(element, ChildFunction): if element.function: function = {'elements': []} - AbstractDetector.add_function_to_json(element.function, function) + self.add_function_to_json(element.function, function) return function['elements'][0] return None - @staticmethod - def add_variable_to_json(variable, d, additional_fields={}): + def add_variable_to_json(self, variable, d, additional_fields={}): type_specific_fields = { - 'parent': AbstractDetector._create_parent_element(variable) + 'parent': self._create_parent_element(variable) } - element = AbstractDetector._create_base_element('variable', - variable.name, - variable.source_mapping, - type_specific_fields, - additional_fields) + element = self._create_base_element('variable', + variable.name, + variable.source_mapping, + type_specific_fields, + additional_fields) d['elements'].append(element) - @staticmethod - def add_variables_to_json(variables, d): + def add_variables_to_json(self, variables, d): for variable in sorted(variables, key=lambda x:x.name): - AbstractDetector.add_variable_to_json(variable, d) - - @staticmethod - def add_contract_to_json(contract, d, additional_fields={}): - element = AbstractDetector._create_base_element('contract', - contract.name, - contract.source_mapping, - {}, - additional_fields) + self.add_variable_to_json(variable, d) + + def add_contract_to_json(self, contract, d, additional_fields={}): + element = self._create_base_element('contract', + contract.name, + contract.source_mapping, + {}, + additional_fields) d['elements'].append(element) - @staticmethod - def add_function_to_json(function, d, additional_fields={}): + def add_function_to_json(self, function, d, additional_fields={}): type_specific_fields = { - 'parent': AbstractDetector._create_parent_element(function), + 'parent': self._create_parent_element(function), 'signature': function.full_name } - element = AbstractDetector._create_base_element('function', - function.name, - function.source_mapping, - type_specific_fields, - additional_fields) + element = self._create_base_element('function', + function.name, + function.source_mapping, + type_specific_fields, + additional_fields) d['elements'].append(element) - - @staticmethod - def add_functions_to_json(functions, d, additional_fields={}): + def add_functions_to_json(self, functions, d, additional_fields={}): for function in sorted(functions, key=lambda x: x.name): - AbstractDetector.add_function_to_json(function, d, additional_fields) + self.add_function_to_json(function, d, additional_fields) - @staticmethod - def add_enum_to_json(enum, d, additional_fields={}): + def add_enum_to_json(self, enum, d, additional_fields={}): type_specific_fields = { - 'parent': AbstractDetector._create_parent_element(enum) + 'parent': self._create_parent_element(enum) } - element = AbstractDetector._create_base_element('enum', - enum.name, - enum.source_mapping, - type_specific_fields, - additional_fields) + element = self._create_base_element('enum', + enum.name, + enum.source_mapping, + type_specific_fields, + additional_fields) d['elements'].append(element) - @staticmethod - def add_struct_to_json(struct, d, additional_fields={}): + def add_struct_to_json(self, struct, d, additional_fields={}): type_specific_fields = { - 'parent': AbstractDetector._create_parent_element(struct) + 'parent': self._create_parent_element(struct) } - element = AbstractDetector._create_base_element('struct', - struct.name, - struct.source_mapping, - type_specific_fields, - additional_fields) + element = self._create_base_element('struct', + struct.name, + struct.source_mapping, + type_specific_fields, + additional_fields) d['elements'].append(element) - @staticmethod - def add_event_to_json(event, d, additional_fields={}): + def add_event_to_json(self, event, d, additional_fields={}): type_specific_fields = { - 'parent': AbstractDetector._create_parent_element(event), + 'parent': self._create_parent_element(event), 'signature': event.full_name } - element = AbstractDetector._create_base_element('event', - event.name, - event.source_mapping, - type_specific_fields, - additional_fields) + element = self._create_base_element('event', + event.name, + event.source_mapping, + type_specific_fields, + additional_fields) d['elements'].append(element) - @staticmethod - def add_node_to_json(node, d, additional_fields={}): + def add_node_to_json(self, node, d, additional_fields={}): type_specific_fields = { - 'parent': AbstractDetector._create_parent_element(node), + 'parent': self._create_parent_element(node), } node_name = str(node.expression) if node.expression else "" - element = AbstractDetector._create_base_element('node', - node_name, - node.source_mapping, - type_specific_fields, - additional_fields) + element = self._create_base_element('node', + node_name, + node.source_mapping, + type_specific_fields, + additional_fields) d['elements'].append(element) - - @staticmethod - def add_nodes_to_json(nodes, d): + def add_nodes_to_json(self, nodes, d): for node in sorted(nodes, key=lambda x: x.node_id): - AbstractDetector.add_node_to_json(node, d) + self.add_node_to_json(node, d) - @staticmethod - def add_pragma_to_json(pragma, d, additional_fields={}): + def add_pragma_to_json(self, pragma, d, additional_fields={}): type_specific_fields = { 'directive': pragma.directive } - element = AbstractDetector._create_base_element('pragma', - pragma.version, - pragma.source_mapping, - type_specific_fields, - additional_fields) + element = self._create_base_element('pragma', + pragma.version, + pragma.source_mapping, + type_specific_fields, + additional_fields) + d['elements'].append(element) + def add_other_to_json(self, name, source_mapping, d, additional_fields={}): + # If this a tuple with (filename, start, end), convert it to a source mapping. + if isinstance(source_mapping, tuple): + # Parse the source id + (filename, start, end) = source_mapping + source_id = next((source_unit_id for (source_unit_id, source_unit_filename) in self.slither.source_units.items() if source_unit_filename == filename), -1) + + # Convert to a source mapping string + source_mapping = f"{start}:{end}:{source_id}" + + # If this is a source mapping string, parse it. + if isinstance(source_mapping, str): + source_mapping_str = source_mapping + source_mapping = SourceMapping() + source_mapping.set_offset(source_mapping_str, self.slither) + + # If this is a source mapping object, get the underlying source mapping dictionary + if isinstance(source_mapping, SourceMapping): + source_mapping = source_mapping.source_mapping + + # Create the underlying element and add it to our resulting json + element = self._create_base_element('other', + name, + source_mapping, + {}, + additional_fields) d['elements'].append(element) diff --git a/slither/detectors/functions/external_function.py b/slither/detectors/functions/external_function.py index 9c95bde31..e2250ba3a 100644 --- a/slither/detectors/functions/external_function.py +++ b/slither/detectors/functions/external_function.py @@ -13,7 +13,7 @@ class ExternalFunction(AbstractDetector): ARGUMENT = 'external-function' HELP = 'Public function that could be declared as external' - IMPACT = DetectorClassification.INFORMATIONAL + IMPACT = DetectorClassification.OPTIMIZATION CONFIDENCE = DetectorClassification.HIGH WIKI = 'https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-as-external' @@ -96,6 +96,10 @@ class ExternalFunction(AbstractDetector): for function in derived_contract.functions if function.full_name == base_most_function.full_name] + @staticmethod + def function_parameters_written(function): + return any(p in function.variables_written for p in function.parameters) + def _detect(self): results = [] @@ -130,6 +134,11 @@ class ExternalFunction(AbstractDetector): if function in completed_functions: continue + # If the function has parameters which are written-to in function body, we skip + # because parameters of external functions will be allocated in calldata region which is immutable + if self.function_parameters_written(function): + continue + # Get the base-most function to know our origin of this function. base_most_function = self.get_base_most_function(function) diff --git a/slither/detectors/naming_convention/naming_convention.py b/slither/detectors/naming_convention/naming_convention.py index 61d917b26..9c69e41ba 100644 --- a/slither/detectors/naming_convention/naming_convention.py +++ b/slither/detectors/naming_convention/naming_convention.py @@ -104,6 +104,9 @@ Solidity defines a [naming convention](https://solidity.readthedocs.io/en/v0.4.2 results.append(json) for argument in func.parameters: + # Ignore parameter names that are not specified i.e. empty strings + if argument.name == "": + continue if argument in func.variables_read_or_written: correct_naming = self.is_mixed_case(argument.name) else: diff --git a/slither/detectors/source/rtlo.py b/slither/detectors/source/rtlo.py index 86690f271..5c0599940 100644 --- a/slither/detectors/source/rtlo.py +++ b/slither/detectors/source/rtlo.py @@ -44,20 +44,39 @@ contract Token ''' WIKI_RECOMMENDATION = 'Special control characters must not be allowed.' + RTLO_CHARACTER_ENCODED = "\u202e".encode('utf-8') + def _detect(self): results = [] + pattern = re.compile(".*\u202e.*".encode('utf-8')) - pattern = re.compile(".*\u202e.*") for filename, source in self.slither.source_code.items(): - info = "{} contains a unicode right-to-left-override character:\n".format(filename) - found = False - for match in pattern.finditer(source): - match_line = match.group(0) - info += "\t- {}\n".format(match_line) - found = True - - if found: - json = self.generate_json_result(info) - results.append(json) + # Attempt to find all RTLO characters in this source file. + original_source_encoded = source.encode('utf-8') + start_index = 0 + + # Keep searching all file contents for the character. + while True: + source_encoded = original_source_encoded[start_index:] + result_index = source_encoded.find(self.RTLO_CHARACTER_ENCODED) + + # If we couldn't find the character in the remainder of source, stop. + if result_index == -1: + break + else: + # We found another instance of the character, define our output + idx = start_index + result_index + info = f"{filename} contains a unicode right-to-left-override character at byte offset {idx}:\n" + + # We have a patch, so pattern.find will return at least one result + + info += f"\t- {pattern.findall(source_encoded)[0]}\n" + json = self.generate_json_result(info) + self.add_other_to_json("rtlo-character", + (filename, idx, len(self.RTLO_CHARACTER_ENCODED)), json) + results.append(json) + + # Advance the start index for the next iteration + start_index = result_index + 1 return results diff --git a/slither/detectors/variables/possible_const_state_variables.py b/slither/detectors/variables/possible_const_state_variables.py index d509f4569..f062a0c7a 100644 --- a/slither/detectors/variables/possible_const_state_variables.py +++ b/slither/detectors/variables/possible_const_state_variables.py @@ -18,7 +18,7 @@ class ConstCandidateStateVars(AbstractDetector): ARGUMENT = 'constable-states' HELP = 'State variables that could be declared constant' - IMPACT = DetectorClassification.INFORMATIONAL + IMPACT = DetectorClassification.OPTIMIZATION CONFIDENCE = DetectorClassification.HIGH WIKI = 'https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant' diff --git a/slither/slither.py b/slither/slither.py index 617b8b81f..d0c0ccf02 100644 --- a/slither/slither.py +++ b/slither/slither.py @@ -33,6 +33,7 @@ class Slither(SlitherSolc): ast_format (str): ast format (default '--ast-compact-json') filter_paths (list(str)): list of path to filter (default []) triage_mode (bool): if true, switch to triage mode (default false) + exclude_dependencies (bool): if true, exclude results that are only related to dependencies truffle_ignore (bool): ignore truffle.js presence (default false) truffle_build_directory (str): build truffle directory (default 'build/contracts') @@ -67,6 +68,8 @@ class Slither(SlitherSolc): for p in filter_paths: self.add_path_to_filter(p) + self._exclude_dependencies = kwargs.get('exclude_dependencies', False) + triage_mode = kwargs.get('triage_mode', False) self._triage_mode = triage_mode diff --git a/tests/expected_json/arbitrary_send-0.5.1.arbitrary-send.json b/tests/expected_json/arbitrary_send-0.5.1.arbitrary-send.json index 60542bbe6..6e544d0c4 100644 --- a/tests/expected_json/arbitrary_send-0.5.1.arbitrary-send.json +++ b/tests/expected_json/arbitrary_send-0.5.1.arbitrary-send.json @@ -19,6 +19,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -38,6 +39,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -98,6 +100,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 12 ], @@ -115,6 +118,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -134,6 +138,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -204,6 +209,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 19, 20, @@ -223,6 +229,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -283,6 +290,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 20 ], @@ -300,6 +308,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 19, 20, @@ -319,6 +328,7 @@ "filename_relative": "tests/arbitrary_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send-0.5.1.sol", "filename_short": "tests/arbitrary_send-0.5.1.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/arbitrary_send.arbitrary-send.json b/tests/expected_json/arbitrary_send.arbitrary-send.json index 87223d6d8..993747b20 100644 --- a/tests/expected_json/arbitrary_send.arbitrary-send.json +++ b/tests/expected_json/arbitrary_send.arbitrary-send.json @@ -19,6 +19,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -38,6 +39,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -98,6 +100,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 12 ], @@ -115,6 +118,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -134,6 +138,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -204,6 +209,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 19, 20, @@ -223,6 +229,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -283,6 +290,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 20 ], @@ -300,6 +308,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 19, 20, @@ -319,6 +328,7 @@ "filename_relative": "tests/arbitrary_send.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/arbitrary_send.sol", "filename_short": "tests/arbitrary_send.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/backdoor.backdoor.json b/tests/expected_json/backdoor.backdoor.json index 477f5fe32..243fabcc7 100644 --- a/tests/expected_json/backdoor.backdoor.json +++ b/tests/expected_json/backdoor.backdoor.json @@ -19,6 +19,7 @@ "filename_relative": "tests/backdoor.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/backdoor.sol", "filename_short": "tests/backdoor.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -38,6 +39,7 @@ "filename_relative": "tests/backdoor.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/backdoor.sol", "filename_short": "tests/backdoor.sol", + "is_dependency": false, "lines": [ 2, 3, diff --git a/tests/expected_json/backdoor.suicidal.json b/tests/expected_json/backdoor.suicidal.json index 9d4a073df..73ff578a5 100644 --- a/tests/expected_json/backdoor.suicidal.json +++ b/tests/expected_json/backdoor.suicidal.json @@ -19,6 +19,7 @@ "filename_relative": "tests/backdoor.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/backdoor.sol", "filename_short": "tests/backdoor.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -38,6 +39,7 @@ "filename_relative": "tests/backdoor.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/backdoor.sol", "filename_short": "tests/backdoor.sol", + "is_dependency": false, "lines": [ 2, 3, diff --git a/tests/expected_json/const_state_variables.constable-states.json b/tests/expected_json/const_state_variables.constable-states.json index 55cb25ee9..60aeaa59b 100644 --- a/tests/expected_json/const_state_variables.constable-states.json +++ b/tests/expected_json/const_state_variables.constable-states.json @@ -5,7 +5,7 @@ "detectors": [ { "check": "constable-states", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "A.myFriendsAddress should be constant (tests/const_state_variables.sol#7)\n", "elements": [ @@ -19,6 +19,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 7 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -66,7 +68,7 @@ }, { "check": "constable-states", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "A.test should be constant (tests/const_state_variables.sol#10)\n", "elements": [ @@ -80,6 +82,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 10 ], @@ -97,6 +100,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -127,7 +131,7 @@ }, { "check": "constable-states", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "A.text2 should be constant (tests/const_state_variables.sol#14)\n", "elements": [ @@ -141,6 +145,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 14 ], @@ -158,6 +163,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -188,7 +194,7 @@ }, { "check": "constable-states", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "B.mySistersAddress should be constant (tests/const_state_variables.sol#26)\n", "elements": [ @@ -202,6 +208,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 26 ], @@ -219,6 +226,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 24, 25, @@ -245,7 +253,7 @@ }, { "check": "constable-states", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "MyConc.should_be_constant should be constant (tests/const_state_variables.sol#42)\n", "elements": [ @@ -259,6 +267,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 42 ], @@ -276,6 +285,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 39, 40, @@ -302,7 +312,7 @@ }, { "check": "constable-states", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "MyConc.should_be_constant_2 should be constant (tests/const_state_variables.sol#43)\n", "elements": [ @@ -316,6 +326,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 43 ], @@ -333,6 +344,7 @@ "filename_relative": "tests/const_state_variables.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/const_state_variables.sol", "filename_short": "tests/const_state_variables.sol", + "is_dependency": false, "lines": [ 39, 40, diff --git a/tests/expected_json/constant-0.5.1.constant-function.json b/tests/expected_json/constant-0.5.1.constant-function.json index f88dd2fe4..92880bd23 100644 --- a/tests/expected_json/constant-0.5.1.constant-function.json +++ b/tests/expected_json/constant-0.5.1.constant-function.json @@ -19,6 +19,7 @@ "filename_relative": "tests/constant-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant-0.5.1.sol", "filename_short": "tests/constant-0.5.1.sol", + "is_dependency": false, "lines": [ 15, 16, @@ -38,6 +39,7 @@ "filename_relative": "tests/constant-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant-0.5.1.sol", "filename_short": "tests/constant-0.5.1.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/constant.constant-function.json b/tests/expected_json/constant.constant-function.json index 298faef95..cf6f53771 100644 --- a/tests/expected_json/constant.constant-function.json +++ b/tests/expected_json/constant.constant-function.json @@ -19,6 +19,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -38,6 +39,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -82,6 +84,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 3 ], @@ -99,6 +102,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -153,6 +157,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 9, 10, @@ -172,6 +177,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -216,6 +222,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 3 ], @@ -233,6 +240,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -287,6 +295,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 22, 23, @@ -306,6 +315,7 @@ "filename_relative": "tests/constant.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/constant.sol", "filename_short": "tests/constant.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/controlled_delegatecall.controlled-delegatecall.json b/tests/expected_json/controlled_delegatecall.controlled-delegatecall.json index 931add794..8ee63d9cc 100644 --- a/tests/expected_json/controlled_delegatecall.controlled-delegatecall.json +++ b/tests/expected_json/controlled_delegatecall.controlled-delegatecall.json @@ -19,6 +19,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 10 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 8, 9, @@ -56,6 +58,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -102,6 +105,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 8, 9, @@ -122,6 +126,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -174,6 +179,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 19 ], @@ -191,6 +197,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -210,6 +217,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -256,6 +264,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -275,6 +284,7 @@ "filename_relative": "tests/controlled_delegatecall.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/controlled_delegatecall.sol", "filename_short": "tests/controlled_delegatecall.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/deprecated_calls.deprecated-standards.json b/tests/expected_json/deprecated_calls.deprecated-standards.json index e18879fa2..c25d611b8 100644 --- a/tests/expected_json/deprecated_calls.deprecated-standards.json +++ b/tests/expected_json/deprecated_calls.deprecated-standards.json @@ -19,6 +19,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 2 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -89,6 +91,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 7 ], @@ -106,6 +109,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -129,6 +133,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -185,6 +190,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 9 ], @@ -202,6 +208,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -225,6 +232,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -281,6 +289,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 16 ], @@ -298,6 +307,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -327,6 +337,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -383,6 +394,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 19 ], @@ -400,6 +412,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -429,6 +442,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -485,6 +499,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 22 ], @@ -502,6 +517,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -531,6 +547,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -587,6 +604,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 25 ], @@ -604,6 +622,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -633,6 +652,7 @@ "filename_relative": "tests/deprecated_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/deprecated_calls.sol", "filename_short": "tests/deprecated_calls.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/erc20_indexed.erc20-indexed.json b/tests/expected_json/erc20_indexed.erc20-indexed.json index 1a8456227..b6d7aafcb 100644 --- a/tests/expected_json/erc20_indexed.erc20-indexed.json +++ b/tests/expected_json/erc20_indexed.erc20-indexed.json @@ -19,6 +19,7 @@ "filename_relative": "tests/erc20_indexed.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/erc20_indexed.sol", "filename_short": "tests/erc20_indexed.sol", + "is_dependency": false, "lines": [ 19 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/erc20_indexed.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/erc20_indexed.sol", "filename_short": "tests/erc20_indexed.sol", + "is_dependency": false, "lines": [ 12, 13, @@ -76,6 +78,7 @@ "filename_relative": "tests/erc20_indexed.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/erc20_indexed.sol", "filename_short": "tests/erc20_indexed.sol", + "is_dependency": false, "lines": [ 19 ], @@ -93,6 +96,7 @@ "filename_relative": "tests/erc20_indexed.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/erc20_indexed.sol", "filename_short": "tests/erc20_indexed.sol", + "is_dependency": false, "lines": [ 12, 13, @@ -133,6 +137,7 @@ "filename_relative": "tests/erc20_indexed.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/erc20_indexed.sol", "filename_short": "tests/erc20_indexed.sol", + "is_dependency": false, "lines": [ 20 ], @@ -150,6 +155,7 @@ "filename_relative": "tests/erc20_indexed.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/erc20_indexed.sol", "filename_short": "tests/erc20_indexed.sol", + "is_dependency": false, "lines": [ 12, 13, @@ -190,6 +196,7 @@ "filename_relative": "tests/erc20_indexed.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/erc20_indexed.sol", "filename_short": "tests/erc20_indexed.sol", + "is_dependency": false, "lines": [ 20 ], @@ -207,6 +214,7 @@ "filename_relative": "tests/erc20_indexed.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/erc20_indexed.sol", "filename_short": "tests/erc20_indexed.sol", + "is_dependency": false, "lines": [ 12, 13, diff --git a/tests/expected_json/external_function.external-function.json b/tests/expected_json/external_function.external-function.json index c5f667494..d60c5ef49 100644 --- a/tests/expected_json/external_function.external-function.json +++ b/tests/expected_json/external_function.external-function.json @@ -5,7 +5,7 @@ "detectors": [ { "check": "external-function", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "ContractWithFunctionNotCalled.funcNotCalled3() (tests/external_function.sol#13-15) should be declared external\n", "elements": [ @@ -19,6 +19,7 @@ "filename_relative": "tests/external_function.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", "filename_short": "tests/external_function.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -38,6 +39,7 @@ "filename_relative": "tests/external_function.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", "filename_short": "tests/external_function.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -70,7 +72,7 @@ }, { "check": "external-function", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "ContractWithFunctionNotCalled.funcNotCalled2() (tests/external_function.sol#17-19) should be declared external\n", "elements": [ @@ -84,6 +86,7 @@ "filename_relative": "tests/external_function.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", "filename_short": "tests/external_function.sol", + "is_dependency": false, "lines": [ 17, 18, @@ -103,6 +106,7 @@ "filename_relative": "tests/external_function.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", "filename_short": "tests/external_function.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -135,7 +139,7 @@ }, { "check": "external-function", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "ContractWithFunctionNotCalled.funcNotCalled() (tests/external_function.sol#21-23) should be declared external\n", "elements": [ @@ -149,6 +153,7 @@ "filename_relative": "tests/external_function.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", "filename_short": "tests/external_function.sol", + "is_dependency": false, "lines": [ 21, 22, @@ -168,6 +173,7 @@ "filename_relative": "tests/external_function.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", "filename_short": "tests/external_function.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -200,7 +206,7 @@ }, { "check": "external-function", - "impact": "Informational", + "impact": "Optimization", "confidence": "High", "description": "ContractWithFunctionNotCalled2.funcNotCalled() (tests/external_function.sol#32-39) should be declared external\n", "elements": [ @@ -214,6 +220,7 @@ "filename_relative": "tests/external_function.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", "filename_short": "tests/external_function.sol", + "is_dependency": false, "lines": [ 32, 33, @@ -238,6 +245,7 @@ "filename_relative": "tests/external_function.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", "filename_short": "tests/external_function.sol", + "is_dependency": false, "lines": [ 31, 32, @@ -258,6 +266,65 @@ } } ] + }, + { + "check": "external-function", + "impact": "Optimization", + "confidence": "High", + "description": "FunctionParameterWrite.parameter_read_ok_for_external(uint256) (tests/external_function.sol#74-76) should be declared external\n", + "elements": [ + { + "type": "function", + "name": "parameter_read_ok_for_external", + "source_mapping": { + "start": 1420, + "length": 81, + "filename_used": "/home/travis/build/crytic/slither/tests/external_function.sol", + "filename_relative": "tests/external_function.sol", + "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", + "filename_short": "tests/external_function.sol", + "is_dependency": false, + "lines": [ + 74, + 75, + 76 + ], + "starting_column": 3, + "ending_column": 4 + }, + "type_specific_fields": { + "parent": { + "type": "contract", + "name": "FunctionParameterWrite", + "source_mapping": { + "start": 1381, + "length": 234, + "filename_used": "/home/travis/build/crytic/slither/tests/external_function.sol", + "filename_relative": "tests/external_function.sol", + "filename_absolute": "/home/travis/build/crytic/slither/tests/external_function.sol", + "filename_short": "tests/external_function.sol", + "is_dependency": false, + "lines": [ + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82 + ], + "starting_column": 1, + "ending_column": 2 + } + }, + "signature": "parameter_read_ok_for_external(uint256)" + } + } + ] } ] } diff --git a/tests/expected_json/external_function.external-function.txt b/tests/expected_json/external_function.external-function.txt index 525880eda..82470ba0d 100644 --- a/tests/expected_json/external_function.external-function.txt +++ b/tests/expected_json/external_function.external-function.txt @@ -3,5 +3,6 @@ ContractWithFunctionNotCalled.funcNotCalled3() (tests/external_function.sol#13-1 ContractWithFunctionNotCalled.funcNotCalled2() (tests/external_function.sol#17-19) should be declared external ContractWithFunctionNotCalled.funcNotCalled() (tests/external_function.sol#21-23) should be declared external ContractWithFunctionNotCalled2.funcNotCalled() (tests/external_function.sol#32-39) should be declared external +FunctionParameterWrite.parameter_read_ok_for_external(uint256) (tests/external_function.sol#74-76) should be declared external Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-as-external -INFO:Slither:tests/external_function.sol analyzed (5 contracts), 4 result(s) found +INFO:Slither:tests/external_function.sol analyzed (6 contracts), 5 result(s) found diff --git a/tests/expected_json/incorrect_equality.incorrect-equality.json b/tests/expected_json/incorrect_equality.incorrect-equality.json index eb890ff8a..3802e83b6 100644 --- a/tests/expected_json/incorrect_equality.incorrect-equality.json +++ b/tests/expected_json/incorrect_equality.incorrect-equality.json @@ -19,6 +19,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 22 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 21, 22, @@ -55,6 +57,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 10, 11, @@ -95,6 +98,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 21, 22, @@ -114,6 +118,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 10, 11, @@ -160,6 +165,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 26 ], @@ -177,6 +183,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 25, 26, @@ -196,6 +203,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 10, 11, @@ -236,6 +244,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 25, 26, @@ -255,6 +264,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 10, 11, @@ -301,6 +311,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 33 ], @@ -318,6 +329,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 32, 33, @@ -338,6 +350,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -427,6 +440,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 32, 33, @@ -447,6 +461,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -542,6 +557,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 38 ], @@ -559,6 +575,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 37, 38, @@ -579,6 +596,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -668,6 +686,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 37, 38, @@ -688,6 +707,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -783,6 +803,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 43 ], @@ -800,6 +821,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 42, 43, @@ -820,6 +842,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -909,6 +932,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 42, 43, @@ -929,6 +953,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -1024,6 +1049,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 48 ], @@ -1041,6 +1067,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 47, 48, @@ -1061,6 +1088,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -1150,6 +1178,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 47, 48, @@ -1170,6 +1199,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -1265,6 +1295,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 54 ], @@ -1282,6 +1313,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 52, 53, @@ -1304,6 +1336,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -1393,6 +1426,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 52, 53, @@ -1415,6 +1449,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -1510,6 +1545,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 61 ], @@ -1527,6 +1563,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 59, 60, @@ -1549,6 +1586,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -1638,6 +1676,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 59, 60, @@ -1660,6 +1699,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -1755,6 +1795,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 68 ], @@ -1772,6 +1813,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 66, 67, @@ -1794,6 +1836,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -1883,6 +1926,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 66, 67, @@ -1905,6 +1949,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -2000,6 +2045,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 124 ], @@ -2017,6 +2063,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 123, 124, @@ -2036,6 +2083,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 99, 100, @@ -2094,6 +2142,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 123, 124, @@ -2113,6 +2162,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 99, 100, @@ -2177,6 +2227,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 128 ], @@ -2194,6 +2245,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 127, 128, @@ -2213,6 +2265,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 99, 100, @@ -2271,6 +2324,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 127, 128, @@ -2290,6 +2344,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 99, 100, @@ -2354,6 +2409,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 132 ], @@ -2371,6 +2427,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 131, 132, @@ -2390,6 +2447,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 99, 100, @@ -2448,6 +2506,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 131, 132, @@ -2467,6 +2526,7 @@ "filename_relative": "tests/incorrect_equality.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_equality.sol", "filename_short": "tests/incorrect_equality.sol", + "is_dependency": false, "lines": [ 99, 100, diff --git a/tests/expected_json/incorrect_erc20_interface.erc20-interface.json b/tests/expected_json/incorrect_erc20_interface.erc20-interface.json index e5b62fab1..c0b6c6b99 100644 --- a/tests/expected_json/incorrect_erc20_interface.erc20-interface.json +++ b/tests/expected_json/incorrect_erc20_interface.erc20-interface.json @@ -19,6 +19,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 4 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -71,6 +73,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 5 ], @@ -88,6 +91,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -123,6 +127,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 6 ], @@ -140,6 +145,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -175,6 +181,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 7 ], @@ -192,6 +199,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -227,6 +235,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 8 ], @@ -244,6 +253,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -279,6 +289,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 9 ], @@ -296,6 +307,7 @@ "filename_relative": "tests/incorrect_erc20_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc20_interface.sol", "filename_short": "tests/incorrect_erc20_interface.sol", + "is_dependency": false, "lines": [ 3, 4, diff --git a/tests/expected_json/incorrect_erc721_interface.erc721-interface.json b/tests/expected_json/incorrect_erc721_interface.erc721-interface.json index 878900271..528be3fc0 100644 --- a/tests/expected_json/incorrect_erc721_interface.erc721-interface.json +++ b/tests/expected_json/incorrect_erc721_interface.erc721-interface.json @@ -19,6 +19,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 4 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -66,6 +68,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 7 ], @@ -83,6 +86,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -121,6 +125,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 8 ], @@ -138,6 +143,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -176,6 +182,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 9 ], @@ -193,6 +200,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -231,6 +239,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 10 ], @@ -248,6 +257,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -286,6 +296,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 11 ], @@ -303,6 +314,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -341,6 +353,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 12 ], @@ -358,6 +371,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -396,6 +410,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 13 ], @@ -413,6 +428,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -451,6 +467,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 14 ], @@ -468,6 +485,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -506,6 +524,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 15 ], @@ -523,6 +542,7 @@ "filename_relative": "tests/incorrect_erc721_interface.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/incorrect_erc721_interface.sol", "filename_short": "tests/incorrect_erc721_interface.sol", + "is_dependency": false, "lines": [ 6, 7, diff --git a/tests/expected_json/inline_assembly_contract-0.5.1.assembly.json b/tests/expected_json/inline_assembly_contract-0.5.1.assembly.json index 037b21636..24790e712 100644 --- a/tests/expected_json/inline_assembly_contract-0.5.1.assembly.json +++ b/tests/expected_json/inline_assembly_contract-0.5.1.assembly.json @@ -19,6 +19,7 @@ "filename_relative": "tests/inline_assembly_contract-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract-0.5.1.sol", "filename_short": "tests/inline_assembly_contract-0.5.1.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -50,6 +51,7 @@ "filename_relative": "tests/inline_assembly_contract-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract-0.5.1.sol", "filename_short": "tests/inline_assembly_contract-0.5.1.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -86,6 +88,7 @@ "filename_relative": "tests/inline_assembly_contract-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract-0.5.1.sol", "filename_short": "tests/inline_assembly_contract-0.5.1.sol", + "is_dependency": false, "lines": [ 7, 8, @@ -116,6 +119,7 @@ "filename_relative": "tests/inline_assembly_contract-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract-0.5.1.sol", "filename_short": "tests/inline_assembly_contract-0.5.1.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -147,6 +151,7 @@ "filename_relative": "tests/inline_assembly_contract-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract-0.5.1.sol", "filename_short": "tests/inline_assembly_contract-0.5.1.sol", + "is_dependency": false, "lines": [ 5, 6, diff --git a/tests/expected_json/inline_assembly_contract.assembly.json b/tests/expected_json/inline_assembly_contract.assembly.json index d8d7ac358..75e439a7e 100644 --- a/tests/expected_json/inline_assembly_contract.assembly.json +++ b/tests/expected_json/inline_assembly_contract.assembly.json @@ -19,6 +19,7 @@ "filename_relative": "tests/inline_assembly_contract.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract.sol", "filename_short": "tests/inline_assembly_contract.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -50,6 +51,7 @@ "filename_relative": "tests/inline_assembly_contract.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract.sol", "filename_short": "tests/inline_assembly_contract.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -86,6 +88,7 @@ "filename_relative": "tests/inline_assembly_contract.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract.sol", "filename_short": "tests/inline_assembly_contract.sol", + "is_dependency": false, "lines": [ 7, 8, @@ -116,6 +119,7 @@ "filename_relative": "tests/inline_assembly_contract.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract.sol", "filename_short": "tests/inline_assembly_contract.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -147,6 +151,7 @@ "filename_relative": "tests/inline_assembly_contract.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_contract.sol", "filename_short": "tests/inline_assembly_contract.sol", + "is_dependency": false, "lines": [ 5, 6, diff --git a/tests/expected_json/inline_assembly_library-0.5.1.assembly.json b/tests/expected_json/inline_assembly_library-0.5.1.assembly.json index 90eaefbe0..bd9b4d97f 100644 --- a/tests/expected_json/inline_assembly_library-0.5.1.assembly.json +++ b/tests/expected_json/inline_assembly_library-0.5.1.assembly.json @@ -19,6 +19,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -42,6 +43,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -105,6 +107,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -125,6 +128,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -148,6 +152,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -221,6 +226,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 25, 26, @@ -260,6 +266,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -323,6 +330,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 26, 27, @@ -361,6 +369,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 25, 26, @@ -400,6 +409,7 @@ "filename_relative": "tests/inline_assembly_library-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library-0.5.1.sol", "filename_short": "tests/inline_assembly_library-0.5.1.sol", + "is_dependency": false, "lines": [ 5, 6, diff --git a/tests/expected_json/inline_assembly_library.assembly.json b/tests/expected_json/inline_assembly_library.assembly.json index 955f9ccf0..5c1230028 100644 --- a/tests/expected_json/inline_assembly_library.assembly.json +++ b/tests/expected_json/inline_assembly_library.assembly.json @@ -19,6 +19,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -42,6 +43,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -105,6 +107,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -125,6 +128,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -148,6 +152,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -221,6 +226,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 25, 26, @@ -260,6 +266,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -323,6 +330,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 26, 27, @@ -361,6 +369,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 25, 26, @@ -400,6 +409,7 @@ "filename_relative": "tests/inline_assembly_library.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/inline_assembly_library.sol", "filename_short": "tests/inline_assembly_library.sol", + "is_dependency": false, "lines": [ 5, 6, diff --git a/tests/expected_json/locked_ether-0.5.1.locked-ether.json b/tests/expected_json/locked_ether-0.5.1.locked-ether.json index 7d05ff3f8..d848114fd 100644 --- a/tests/expected_json/locked_ether-0.5.1.locked-ether.json +++ b/tests/expected_json/locked_ether-0.5.1.locked-ether.json @@ -19,6 +19,7 @@ "filename_relative": "tests/locked_ether-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/locked_ether-0.5.1.sol", "filename_short": "tests/locked_ether-0.5.1.sol", + "is_dependency": false, "lines": [ 26 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/locked_ether-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/locked_ether-0.5.1.sol", "filename_short": "tests/locked_ether-0.5.1.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -55,6 +57,7 @@ "filename_relative": "tests/locked_ether-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/locked_ether-0.5.1.sol", "filename_short": "tests/locked_ether-0.5.1.sol", + "is_dependency": false, "lines": [ 2, 3, diff --git a/tests/expected_json/locked_ether.locked-ether.json b/tests/expected_json/locked_ether.locked-ether.json index 3412efa8e..1daa8631b 100644 --- a/tests/expected_json/locked_ether.locked-ether.json +++ b/tests/expected_json/locked_ether.locked-ether.json @@ -19,6 +19,7 @@ "filename_relative": "tests/locked_ether.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/locked_ether.sol", "filename_short": "tests/locked_ether.sol", + "is_dependency": false, "lines": [ 26 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/locked_ether.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/locked_ether.sol", "filename_short": "tests/locked_ether.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -55,6 +57,7 @@ "filename_relative": "tests/locked_ether.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/locked_ether.sol", "filename_short": "tests/locked_ether.sol", + "is_dependency": false, "lines": [ 2, 3, diff --git a/tests/expected_json/low_level_calls.low-level-calls.json b/tests/expected_json/low_level_calls.low-level-calls.json index 529a522f8..71a20c4fe 100644 --- a/tests/expected_json/low_level_calls.low-level-calls.json +++ b/tests/expected_json/low_level_calls.low-level-calls.json @@ -19,6 +19,7 @@ "filename_relative": "tests/low_level_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/low_level_calls.sol", "filename_short": "tests/low_level_calls.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -38,6 +39,7 @@ "filename_relative": "tests/low_level_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/low_level_calls.sol", "filename_short": "tests/low_level_calls.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -62,6 +64,7 @@ "filename_relative": "tests/low_level_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/low_level_calls.sol", "filename_short": "tests/low_level_calls.sol", + "is_dependency": false, "lines": [ 6 ], @@ -79,6 +82,7 @@ "filename_relative": "tests/low_level_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/low_level_calls.sol", "filename_short": "tests/low_level_calls.sol", + "is_dependency": false, "lines": [ 5, 6, @@ -98,6 +102,7 @@ "filename_relative": "tests/low_level_calls.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/low_level_calls.sol", "filename_short": "tests/low_level_calls.sol", + "is_dependency": false, "lines": [ 4, 5, diff --git a/tests/expected_json/multiple_calls_in_loop.calls-loop.json b/tests/expected_json/multiple_calls_in_loop.calls-loop.json index 93a904fa3..d08dfb95d 100644 --- a/tests/expected_json/multiple_calls_in_loop.calls-loop.json +++ b/tests/expected_json/multiple_calls_in_loop.calls-loop.json @@ -19,6 +19,7 @@ "filename_relative": "tests/multiple_calls_in_loop.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/multiple_calls_in_loop.sol", "filename_short": "tests/multiple_calls_in_loop.sol", + "is_dependency": false, "lines": [ 11 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/multiple_calls_in_loop.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/multiple_calls_in_loop.sol", "filename_short": "tests/multiple_calls_in_loop.sol", + "is_dependency": false, "lines": [ 9, 10, @@ -57,6 +59,7 @@ "filename_relative": "tests/multiple_calls_in_loop.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/multiple_calls_in_loop.sol", "filename_short": "tests/multiple_calls_in_loop.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/naming_convention.naming-convention.json b/tests/expected_json/naming_convention.naming-convention.json index bbc38da9d..794250fcc 100644 --- a/tests/expected_json/naming_convention.naming-convention.json +++ b/tests/expected_json/naming_convention.naming-convention.json @@ -19,6 +19,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -93,6 +94,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -112,6 +114,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -188,6 +191,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 23 ], @@ -205,6 +209,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -282,6 +287,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 30, 31, @@ -302,6 +308,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -379,6 +386,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 35 ], @@ -396,6 +404,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 35, 36, @@ -416,6 +425,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -495,6 +505,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 9 ], @@ -512,6 +523,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -588,6 +600,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 11 ], @@ -605,6 +618,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -681,6 +695,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 6 ], @@ -698,6 +713,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -774,6 +790,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 41, 42, @@ -793,6 +810,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -870,6 +888,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 59 ], @@ -887,6 +906,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 59, 60 @@ -905,6 +925,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 54, 55, @@ -953,6 +974,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 56 ], @@ -970,6 +992,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 54, 55, @@ -1015,6 +1038,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 67 ], @@ -1032,6 +1056,7 @@ "filename_relative": "tests/naming_convention.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/naming_convention.sol", "filename_short": "tests/naming_convention.sol", + "is_dependency": false, "lines": [ 54, 55, diff --git a/tests/expected_json/naming_convention.naming-convention.txt b/tests/expected_json/naming_convention.naming-convention.txt index 500b50836..25be91780 100644 --- a/tests/expected_json/naming_convention.naming-convention.txt +++ b/tests/expected_json/naming_convention.naming-convention.txt @@ -12,4 +12,4 @@ Parameter '_used' of _used (tests/naming_convention.sol#59) is not in mixedCase Variable 'T._myPublicVar' (tests/naming_convention.sol#56) is not in mixedCase Variable 'T.l' (tests/naming_convention.sol#67) used l, O, I, which should not be used Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions -INFO:Slither:tests/naming_convention.sol analyzed (3 contracts), 12 result(s) found +INFO:Slither:tests/naming_convention.sol analyzed (4 contracts), 12 result(s) found diff --git a/tests/expected_json/old_solc.sol.json.solc-version.json b/tests/expected_json/old_solc.sol.json.solc-version.json index 83604420d..e9800bc58 100644 --- a/tests/expected_json/old_solc.sol.json.solc-version.json +++ b/tests/expected_json/old_solc.sol.json.solc-version.json @@ -19,6 +19,7 @@ "filename_relative": null, "filename_absolute": null, "filename_short": null, + "is_dependency": false, "lines": [], "starting_column": null, "ending_column": null diff --git a/tests/expected_json/pragma.0.4.24.pragma.json b/tests/expected_json/pragma.0.4.24.pragma.json index 80e8de844..42a1a4092 100644 --- a/tests/expected_json/pragma.0.4.24.pragma.json +++ b/tests/expected_json/pragma.0.4.24.pragma.json @@ -19,6 +19,7 @@ "filename_relative": "tests/pragma.0.4.23.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/pragma.0.4.23.sol", "filename_short": "tests/pragma.0.4.23.sol", + "is_dependency": false, "lines": [ 1 ], @@ -44,6 +45,7 @@ "filename_relative": "tests/pragma.0.4.24.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/pragma.0.4.24.sol", "filename_short": "tests/pragma.0.4.24.sol", + "is_dependency": false, "lines": [ 1 ], diff --git a/tests/expected_json/reentrancy-0.5.1.reentrancy-eth.json b/tests/expected_json/reentrancy-0.5.1.reentrancy-eth.json index 02e406d89..32cc329fc 100644 --- a/tests/expected_json/reentrancy-0.5.1.reentrancy-eth.json +++ b/tests/expected_json/reentrancy-0.5.1.reentrancy-eth.json @@ -19,6 +19,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -44,6 +45,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -115,6 +117,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 17 ], @@ -132,6 +135,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -157,6 +161,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -233,6 +238,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 21 ], @@ -250,6 +256,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -275,6 +282,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -360,6 +368,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 44, 45, @@ -386,6 +395,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -457,6 +467,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 49 ], @@ -474,6 +485,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 44, 45, @@ -500,6 +512,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -576,6 +589,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 51 ], @@ -593,6 +607,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 44, 45, @@ -619,6 +634,7 @@ "filename_relative": "tests/reentrancy-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy-0.5.1.sol", "filename_short": "tests/reentrancy-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, diff --git a/tests/expected_json/reentrancy.reentrancy-eth.json b/tests/expected_json/reentrancy.reentrancy-eth.json index 92c77b522..cf7f5ae09 100644 --- a/tests/expected_json/reentrancy.reentrancy-eth.json +++ b/tests/expected_json/reentrancy.reentrancy-eth.json @@ -19,6 +19,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -43,6 +44,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -132,6 +134,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 17 ], @@ -149,6 +152,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -173,6 +177,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -267,6 +272,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 20 ], @@ -284,6 +290,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -308,6 +315,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -411,6 +419,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 64, 65, @@ -434,6 +443,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -523,6 +533,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 67 ], @@ -540,6 +551,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 64, 65, @@ -563,6 +575,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -657,6 +670,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 68 ], @@ -674,6 +688,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 64, 65, @@ -697,6 +712,7 @@ "filename_relative": "tests/reentrancy.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/reentrancy.sol", "filename_short": "tests/reentrancy.sol", + "is_dependency": false, "lines": [ 3, 4, diff --git a/tests/expected_json/right_to_left_override.rtlo.json b/tests/expected_json/right_to_left_override.rtlo.json index adccb6cb2..c189dbcd7 100644 --- a/tests/expected_json/right_to_left_override.rtlo.json +++ b/tests/expected_json/right_to_left_override.rtlo.json @@ -7,8 +7,27 @@ "check": "rtlo", "impact": "High", "confidence": "High", - "description": "/home/travis/build/crytic/slither/tests/right_to_left_override.sol contains a unicode right-to-left-override character:\n\t- test1(/*A\u202e/*B*/2 , 1/*\u202d\n", - "elements": [] + "description": "/home/travis/build/crytic/slither/tests/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96:\n\t- b' test1(/*A\\xe2\\x80\\xae/*B*/2 , 1/*\\xe2\\x80\\xad'\n", + "elements": [ + { + "type": "other", + "name": "rtlo-character", + "source_mapping": { + "start": 96, + "length": 3, + "filename_used": "/home/travis/build/crytic/slither/tests/right_to_left_override.sol", + "filename_relative": "tests/right_to_left_override.sol", + "filename_absolute": "/home/travis/build/crytic/slither/tests/right_to_left_override.sol", + "filename_short": "tests/right_to_left_override.sol", + "is_dependency": false, + "lines": [ + 7 + ], + "starting_column": 18, + "ending_column": 21 + } + } + ] } ] } diff --git a/tests/expected_json/right_to_left_override.rtlo.txt b/tests/expected_json/right_to_left_override.rtlo.txt index 7c817e1bd..9d77008f0 100644 --- a/tests/expected_json/right_to_left_override.rtlo.txt +++ b/tests/expected_json/right_to_left_override.rtlo.txt @@ -1,5 +1,5 @@ INFO:Detectors: -/home/travis/build/crytic/slither/tests/right_to_left_override.sol contains a unicode right-to-left-override character: - - test1(/*A‮/*B*/2 , 1/*‭ +/home/travis/build/crytic/slither/tests/right_to_left_override.sol contains a unicode right-to-left-override character at byte offset 96: + - b' test1(/*A\xe2\x80\xae/*B*/2 , 1/*\xe2\x80\xad' Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#right-to-left-override-character INFO:Slither:tests/right_to_left_override.sol analyzed (1 contracts), 1 result(s) found diff --git a/tests/expected_json/shadowing_abstract.shadowing-abstract.json b/tests/expected_json/shadowing_abstract.shadowing-abstract.json index 2b51a80cf..ec993de29 100644 --- a/tests/expected_json/shadowing_abstract.shadowing-abstract.json +++ b/tests/expected_json/shadowing_abstract.shadowing-abstract.json @@ -19,6 +19,7 @@ "filename_relative": "tests/shadowing_abstract.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_abstract.sol", "filename_short": "tests/shadowing_abstract.sol", + "is_dependency": false, "lines": [ 7 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/shadowing_abstract.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_abstract.sol", "filename_short": "tests/shadowing_abstract.sol", + "is_dependency": false, "lines": [ 6, 7, @@ -58,6 +60,7 @@ "filename_relative": "tests/shadowing_abstract.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_abstract.sol", "filename_short": "tests/shadowing_abstract.sol", + "is_dependency": false, "lines": [ 2 ], @@ -75,6 +78,7 @@ "filename_relative": "tests/shadowing_abstract.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_abstract.sol", "filename_short": "tests/shadowing_abstract.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/shadowing_builtin_symbols.shadowing-builtin.json b/tests/expected_json/shadowing_builtin_symbols.shadowing-builtin.json index 38562f9df..a328fa79a 100644 --- a/tests/expected_json/shadowing_builtin_symbols.shadowing-builtin.json +++ b/tests/expected_json/shadowing_builtin_symbols.shadowing-builtin.json @@ -19,6 +19,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 4 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -68,6 +70,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 5 ], @@ -85,6 +88,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -117,6 +121,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 7 ], @@ -134,6 +139,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -167,6 +173,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -186,6 +193,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 10, 11, @@ -220,6 +228,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 14 ], @@ -237,6 +246,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -256,6 +266,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 10, 11, @@ -292,6 +303,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 11 ], @@ -309,6 +321,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 10, 11, @@ -342,6 +355,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 23, 24, @@ -364,6 +378,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -403,6 +418,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 25 ], @@ -420,6 +436,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 23, 24, @@ -442,6 +459,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -483,6 +501,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 26 ], @@ -500,6 +519,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 23, 24, @@ -522,6 +542,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -563,6 +584,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 19 ], @@ -580,6 +602,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -618,6 +641,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 20 ], @@ -635,6 +659,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -673,6 +698,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 21 ], @@ -690,6 +716,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 18, 19, @@ -728,6 +755,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 32 ], @@ -745,6 +773,7 @@ "filename_relative": "tests/shadowing_builtin_symbols.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_builtin_symbols.sol", "filename_short": "tests/shadowing_builtin_symbols.sol", + "is_dependency": false, "lines": [ 31, 32, diff --git a/tests/expected_json/shadowing_local_variable.shadowing-local.json b/tests/expected_json/shadowing_local_variable.shadowing-local.json index bfec04807..616a637df 100644 --- a/tests/expected_json/shadowing_local_variable.shadowing-local.json +++ b/tests/expected_json/shadowing_local_variable.shadowing-local.json @@ -19,6 +19,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -53,6 +55,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -85,6 +88,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 17 ], @@ -102,6 +106,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -131,6 +136,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 9 ], @@ -148,6 +154,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 8, 9, @@ -173,6 +180,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 4 ], @@ -190,6 +198,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -220,6 +229,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -237,6 +247,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -254,6 +265,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -286,6 +298,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 5 ], @@ -303,6 +316,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -333,6 +347,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -350,6 +365,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -367,6 +383,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -399,6 +416,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 11 ], @@ -416,6 +434,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 8, 9, @@ -450,6 +469,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -467,6 +487,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -484,6 +505,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -516,6 +538,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 20, 21, @@ -536,6 +559,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -574,6 +598,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -591,6 +616,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 25 ], @@ -608,6 +634,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 16, 17, @@ -640,6 +667,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 13 ], @@ -657,6 +685,7 @@ "filename_relative": "tests/shadowing_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_local_variable.sol", "filename_short": "tests/shadowing_local_variable.sol", + "is_dependency": false, "lines": [ 8, 9, diff --git a/tests/expected_json/shadowing_state_variable.shadowing-state.json b/tests/expected_json/shadowing_state_variable.shadowing-state.json index 5f2780606..2833ee769 100644 --- a/tests/expected_json/shadowing_state_variable.shadowing-state.json +++ b/tests/expected_json/shadowing_state_variable.shadowing-state.json @@ -19,6 +19,7 @@ "filename_relative": "tests/shadowing_state_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_state_variable.sol", "filename_short": "tests/shadowing_state_variable.sol", + "is_dependency": false, "lines": [ 12 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/shadowing_state_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_state_variable.sol", "filename_short": "tests/shadowing_state_variable.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -65,6 +67,7 @@ "filename_relative": "tests/shadowing_state_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_state_variable.sol", "filename_short": "tests/shadowing_state_variable.sol", + "is_dependency": false, "lines": [ 2 ], @@ -82,6 +85,7 @@ "filename_relative": "tests/shadowing_state_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/shadowing_state_variable.sol", "filename_short": "tests/shadowing_state_variable.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/solc_version_incorrect.solc-version.json b/tests/expected_json/solc_version_incorrect.solc-version.json index 654b79fef..eb0c2f514 100644 --- a/tests/expected_json/solc_version_incorrect.solc-version.json +++ b/tests/expected_json/solc_version_incorrect.solc-version.json @@ -19,6 +19,7 @@ "filename_relative": "tests/solc_version_incorrect.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/solc_version_incorrect.sol", "filename_short": "tests/solc_version_incorrect.sol", + "is_dependency": false, "lines": [ 2 ], @@ -52,6 +53,7 @@ "filename_relative": "tests/solc_version_incorrect.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/solc_version_incorrect.sol", "filename_short": "tests/solc_version_incorrect.sol", + "is_dependency": false, "lines": [ 3 ], diff --git a/tests/expected_json/solc_version_incorrect_05.ast.json.solc-version.json b/tests/expected_json/solc_version_incorrect_05.ast.json.solc-version.json index 5e65c602d..00b47a15a 100644 --- a/tests/expected_json/solc_version_incorrect_05.ast.json.solc-version.json +++ b/tests/expected_json/solc_version_incorrect_05.ast.json.solc-version.json @@ -19,6 +19,7 @@ "filename_relative": null, "filename_absolute": null, "filename_short": null, + "is_dependency": false, "lines": [], "starting_column": null, "ending_column": null @@ -50,6 +51,7 @@ "filename_relative": null, "filename_absolute": null, "filename_short": null, + "is_dependency": false, "lines": [], "starting_column": null, "ending_column": null diff --git a/tests/expected_json/timestamp.timestamp.json b/tests/expected_json/timestamp.timestamp.json index dc2adae7c..f35e6f173 100644 --- a/tests/expected_json/timestamp.timestamp.json +++ b/tests/expected_json/timestamp.timestamp.json @@ -19,6 +19,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -38,6 +39,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -77,6 +79,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 5 ], @@ -94,6 +97,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 4, 5, @@ -113,6 +117,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -162,6 +167,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 8, 9, @@ -182,6 +188,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -221,6 +228,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 10 ], @@ -238,6 +246,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 8, 9, @@ -258,6 +267,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -307,6 +317,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -326,6 +337,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -365,6 +377,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 14 ], @@ -382,6 +395,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -401,6 +415,7 @@ "filename_relative": "tests/timestamp.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/timestamp.sol", "filename_short": "tests/timestamp.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/too_many_digits.too-many-digits.json b/tests/expected_json/too_many_digits.too-many-digits.json index 17fd16f45..a8f2311f6 100644 --- a/tests/expected_json/too_many_digits.too-many-digits.json +++ b/tests/expected_json/too_many_digits.too-many-digits.json @@ -19,6 +19,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 10 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 9, 10, @@ -59,6 +61,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -121,6 +124,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 11 ], @@ -138,6 +142,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 9, 10, @@ -161,6 +166,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -223,6 +229,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 12 ], @@ -240,6 +247,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 9, 10, @@ -263,6 +271,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -325,6 +334,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 13 ], @@ -342,6 +352,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 9, 10, @@ -365,6 +376,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -427,6 +439,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 22 ], @@ -444,6 +457,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 20, 21, @@ -465,6 +479,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -527,6 +542,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 31 ], @@ -544,6 +560,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 29, 30, @@ -565,6 +582,7 @@ "filename_relative": "tests/too_many_digits.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/too_many_digits.sol", "filename_short": "tests/too_many_digits.sol", + "is_dependency": false, "lines": [ 3, 4, diff --git a/tests/expected_json/tx_origin-0.5.1.tx-origin.json b/tests/expected_json/tx_origin-0.5.1.tx-origin.json index a0c117cb6..020e85f5e 100644 --- a/tests/expected_json/tx_origin-0.5.1.tx-origin.json +++ b/tests/expected_json/tx_origin-0.5.1.tx-origin.json @@ -19,6 +19,7 @@ "filename_relative": "tests/tx_origin-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin-0.5.1.sol", "filename_short": "tests/tx_origin-0.5.1.sol", + "is_dependency": false, "lines": [ 10 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/tx_origin-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin-0.5.1.sol", "filename_short": "tests/tx_origin-0.5.1.sol", + "is_dependency": false, "lines": [ 9, 10, @@ -55,6 +57,7 @@ "filename_relative": "tests/tx_origin-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin-0.5.1.sol", "filename_short": "tests/tx_origin-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -108,6 +111,7 @@ "filename_relative": "tests/tx_origin-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin-0.5.1.sol", "filename_short": "tests/tx_origin-0.5.1.sol", + "is_dependency": false, "lines": [ 14 ], @@ -125,6 +129,7 @@ "filename_relative": "tests/tx_origin-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin-0.5.1.sol", "filename_short": "tests/tx_origin-0.5.1.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -146,6 +151,7 @@ "filename_relative": "tests/tx_origin-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin-0.5.1.sol", "filename_short": "tests/tx_origin-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, diff --git a/tests/expected_json/tx_origin.tx-origin.json b/tests/expected_json/tx_origin.tx-origin.json index 0dc5b7d20..baa703378 100644 --- a/tests/expected_json/tx_origin.tx-origin.json +++ b/tests/expected_json/tx_origin.tx-origin.json @@ -19,6 +19,7 @@ "filename_relative": "tests/tx_origin.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin.sol", "filename_short": "tests/tx_origin.sol", + "is_dependency": false, "lines": [ 10 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/tx_origin.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin.sol", "filename_short": "tests/tx_origin.sol", + "is_dependency": false, "lines": [ 9, 10, @@ -55,6 +57,7 @@ "filename_relative": "tests/tx_origin.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin.sol", "filename_short": "tests/tx_origin.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -108,6 +111,7 @@ "filename_relative": "tests/tx_origin.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin.sol", "filename_short": "tests/tx_origin.sol", + "is_dependency": false, "lines": [ 14 ], @@ -125,6 +129,7 @@ "filename_relative": "tests/tx_origin.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin.sol", "filename_short": "tests/tx_origin.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -146,6 +151,7 @@ "filename_relative": "tests/tx_origin.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/tx_origin.sol", "filename_short": "tests/tx_origin.sol", + "is_dependency": false, "lines": [ 3, 4, diff --git a/tests/expected_json/unchecked_lowlevel-0.5.1.unchecked-lowlevel.json b/tests/expected_json/unchecked_lowlevel-0.5.1.unchecked-lowlevel.json index 79ba492aa..3548d3215 100644 --- a/tests/expected_json/unchecked_lowlevel-0.5.1.unchecked-lowlevel.json +++ b/tests/expected_json/unchecked_lowlevel-0.5.1.unchecked-lowlevel.json @@ -19,6 +19,7 @@ "filename_relative": "tests/unchecked_lowlevel-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel-0.5.1.sol", "filename_short": "tests/unchecked_lowlevel-0.5.1.sol", + "is_dependency": false, "lines": [ 3 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/unchecked_lowlevel-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel-0.5.1.sol", "filename_short": "tests/unchecked_lowlevel-0.5.1.sol", + "is_dependency": false, "lines": [ 2, 3, @@ -55,6 +57,7 @@ "filename_relative": "tests/unchecked_lowlevel-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel-0.5.1.sol", "filename_short": "tests/unchecked_lowlevel-0.5.1.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -87,6 +90,7 @@ "filename_relative": "tests/unchecked_lowlevel-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel-0.5.1.sol", "filename_short": "tests/unchecked_lowlevel-0.5.1.sol", + "is_dependency": false, "lines": [ 2, 3, @@ -106,6 +110,7 @@ "filename_relative": "tests/unchecked_lowlevel-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel-0.5.1.sol", "filename_short": "tests/unchecked_lowlevel-0.5.1.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/unchecked_lowlevel.unchecked-lowlevel.json b/tests/expected_json/unchecked_lowlevel.unchecked-lowlevel.json index 96abc874d..9c964c90b 100644 --- a/tests/expected_json/unchecked_lowlevel.unchecked-lowlevel.json +++ b/tests/expected_json/unchecked_lowlevel.unchecked-lowlevel.json @@ -19,6 +19,7 @@ "filename_relative": "tests/unchecked_lowlevel.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel.sol", "filename_short": "tests/unchecked_lowlevel.sol", + "is_dependency": false, "lines": [ 3 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/unchecked_lowlevel.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel.sol", "filename_short": "tests/unchecked_lowlevel.sol", + "is_dependency": false, "lines": [ 2, 3, @@ -55,6 +57,7 @@ "filename_relative": "tests/unchecked_lowlevel.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel.sol", "filename_short": "tests/unchecked_lowlevel.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -86,6 +89,7 @@ "filename_relative": "tests/unchecked_lowlevel.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel.sol", "filename_short": "tests/unchecked_lowlevel.sol", + "is_dependency": false, "lines": [ 2, 3, @@ -105,6 +109,7 @@ "filename_relative": "tests/unchecked_lowlevel.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_lowlevel.sol", "filename_short": "tests/unchecked_lowlevel.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/unchecked_send-0.5.1.unchecked-send.json b/tests/expected_json/unchecked_send-0.5.1.unchecked-send.json index b679a4360..26bf7efdd 100644 --- a/tests/expected_json/unchecked_send-0.5.1.unchecked-send.json +++ b/tests/expected_json/unchecked_send-0.5.1.unchecked-send.json @@ -19,6 +19,7 @@ "filename_relative": "tests/unchecked_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_send-0.5.1.sol", "filename_short": "tests/unchecked_send-0.5.1.sol", + "is_dependency": false, "lines": [ 3 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/unchecked_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_send-0.5.1.sol", "filename_short": "tests/unchecked_send-0.5.1.sol", + "is_dependency": false, "lines": [ 2, 3, @@ -55,6 +57,7 @@ "filename_relative": "tests/unchecked_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_send-0.5.1.sol", "filename_short": "tests/unchecked_send-0.5.1.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -94,6 +97,7 @@ "filename_relative": "tests/unchecked_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_send-0.5.1.sol", "filename_short": "tests/unchecked_send-0.5.1.sol", + "is_dependency": false, "lines": [ 2, 3, @@ -113,6 +117,7 @@ "filename_relative": "tests/unchecked_send-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unchecked_send-0.5.1.sol", "filename_short": "tests/unchecked_send-0.5.1.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/uninitialized-0.5.1.uninitialized-state.json b/tests/expected_json/uninitialized-0.5.1.uninitialized-state.json index 07cd618c0..eca28e3ca 100644 --- a/tests/expected_json/uninitialized-0.5.1.uninitialized-state.json +++ b/tests/expected_json/uninitialized-0.5.1.uninitialized-state.json @@ -19,6 +19,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 5 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -63,6 +65,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 7, 8, @@ -82,6 +85,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -118,6 +122,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 15 ], @@ -135,6 +140,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -167,6 +173,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 23, 24, @@ -187,6 +194,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -228,6 +236,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 45 ], @@ -245,6 +254,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 42, 43, @@ -280,6 +290,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 53, 54, @@ -300,6 +311,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 42, 43, @@ -344,6 +356,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 47 ], @@ -361,6 +374,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 42, 43, @@ -396,6 +410,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 49, 50, @@ -415,6 +430,7 @@ "filename_relative": "tests/uninitialized-0.5.1.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized-0.5.1.sol", "filename_short": "tests/uninitialized-0.5.1.sol", + "is_dependency": false, "lines": [ 42, 43, diff --git a/tests/expected_json/uninitialized.uninitialized-state.json b/tests/expected_json/uninitialized.uninitialized-state.json index 1c46dd8c5..288a04851 100644 --- a/tests/expected_json/uninitialized.uninitialized-state.json +++ b/tests/expected_json/uninitialized.uninitialized-state.json @@ -19,6 +19,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 5 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -63,6 +65,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 7, 8, @@ -82,6 +85,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -118,6 +122,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 15 ], @@ -135,6 +140,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -167,6 +173,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 23, 24, @@ -187,6 +194,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 14, 15, @@ -228,6 +236,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 45 ], @@ -245,6 +254,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 42, 43, @@ -280,6 +290,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 53, 54, @@ -300,6 +311,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 42, 43, @@ -344,6 +356,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 47 ], @@ -361,6 +374,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 42, 43, @@ -396,6 +410,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 49, 50, @@ -415,6 +430,7 @@ "filename_relative": "tests/uninitialized.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized.sol", "filename_short": "tests/uninitialized.sol", + "is_dependency": false, "lines": [ 42, 43, diff --git a/tests/expected_json/uninitialized_local_variable.uninitialized-local.json b/tests/expected_json/uninitialized_local_variable.uninitialized-local.json index 8eca553d8..7434ab404 100644 --- a/tests/expected_json/uninitialized_local_variable.uninitialized-local.json +++ b/tests/expected_json/uninitialized_local_variable.uninitialized-local.json @@ -19,6 +19,7 @@ "filename_relative": "tests/uninitialized_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_local_variable.sol", "filename_short": "tests/uninitialized_local_variable.sol", + "is_dependency": false, "lines": [ 4 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/uninitialized_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_local_variable.sol", "filename_short": "tests/uninitialized_local_variable.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -57,6 +59,7 @@ "filename_relative": "tests/uninitialized_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_local_variable.sol", "filename_short": "tests/uninitialized_local_variable.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -87,6 +90,7 @@ "filename_relative": "tests/uninitialized_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_local_variable.sol", "filename_short": "tests/uninitialized_local_variable.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -108,6 +112,7 @@ "filename_relative": "tests/uninitialized_local_variable.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_local_variable.sol", "filename_short": "tests/uninitialized_local_variable.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/uninitialized_storage_pointer.uninitialized-storage.json b/tests/expected_json/uninitialized_storage_pointer.uninitialized-storage.json index 27a99fd31..08364d527 100644 --- a/tests/expected_json/uninitialized_storage_pointer.uninitialized-storage.json +++ b/tests/expected_json/uninitialized_storage_pointer.uninitialized-storage.json @@ -19,6 +19,7 @@ "filename_relative": "tests/uninitialized_storage_pointer.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_storage_pointer.sol", "filename_short": "tests/uninitialized_storage_pointer.sol", + "is_dependency": false, "lines": [ 10 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/uninitialized_storage_pointer.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_storage_pointer.sol", "filename_short": "tests/uninitialized_storage_pointer.sol", + "is_dependency": false, "lines": [ 7, 8, @@ -58,6 +60,7 @@ "filename_relative": "tests/uninitialized_storage_pointer.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_storage_pointer.sol", "filename_short": "tests/uninitialized_storage_pointer.sol", + "is_dependency": false, "lines": [ 1, 2, @@ -93,6 +96,7 @@ "filename_relative": "tests/uninitialized_storage_pointer.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_storage_pointer.sol", "filename_short": "tests/uninitialized_storage_pointer.sol", + "is_dependency": false, "lines": [ 7, 8, @@ -115,6 +119,7 @@ "filename_relative": "tests/uninitialized_storage_pointer.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/uninitialized_storage_pointer.sol", "filename_short": "tests/uninitialized_storage_pointer.sol", + "is_dependency": false, "lines": [ 1, 2, diff --git a/tests/expected_json/unused_return.unused-return.json b/tests/expected_json/unused_return.unused-return.json index 727ee6020..e597b7392 100644 --- a/tests/expected_json/unused_return.unused-return.json +++ b/tests/expected_json/unused_return.unused-return.json @@ -19,6 +19,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 18 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 17, 18, @@ -65,6 +67,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -104,6 +107,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 17, 18, @@ -133,6 +137,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -178,6 +183,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 22 ], @@ -195,6 +201,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 17, 18, @@ -224,6 +231,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 13, 14, @@ -263,6 +271,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 17, 18, @@ -292,6 +301,7 @@ "filename_relative": "tests/unused_return.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_return.sol", "filename_short": "tests/unused_return.sol", + "is_dependency": false, "lines": [ 13, 14, diff --git a/tests/expected_json/unused_state.unused-state.json b/tests/expected_json/unused_state.unused-state.json index 14033ad66..3a01bcb4a 100644 --- a/tests/expected_json/unused_state.unused-state.json +++ b/tests/expected_json/unused_state.unused-state.json @@ -19,6 +19,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 4 ], @@ -36,6 +37,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -61,6 +63,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -91,6 +94,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 5 ], @@ -108,6 +112,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -133,6 +138,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -163,6 +169,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 6 ], @@ -180,6 +187,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -205,6 +213,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 11, 12, @@ -235,6 +244,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 7 ], @@ -252,6 +262,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 3, 4, @@ -277,6 +288,7 @@ "filename_relative": "tests/unused_state.sol", "filename_absolute": "/home/travis/build/crytic/slither/tests/unused_state.sol", "filename_short": "tests/unused_state.sol", + "is_dependency": false, "lines": [ 11, 12, diff --git a/tests/external_function.sol b/tests/external_function.sol index 1ed7c70c0..cc2910aa4 100644 --- a/tests/external_function.sol +++ b/tests/external_function.sol @@ -68,3 +68,15 @@ contract InternalCall { } } + +contract FunctionParameterWrite { + + function parameter_read_ok_for_external (uint i) public { + uint local = i; + } + + function parameter_read_not_ok_for_external (uint i) public returns (uint) { + i += 1; + return (i); + } +} diff --git a/tests/naming_convention.sol b/tests/naming_convention.sol index cc3596f6d..6c4b2f936 100644 --- a/tests/naming_convention.sol +++ b/tests/naming_convention.sol @@ -66,3 +66,10 @@ contract T { uint l = 1; } + +contract ParameterNameEmptyString { + + function foo (uint) public { + } + +}